PVE9.0 シリーズまとめ
概要
β版の内容です!
今後修正される可能性があることに注意してください!
LVMのスナップショット機能はテクノロジープレビューです!
今後修正される可能性があることに注意してください!
PVEでLVM over iSCSIでスナップショット取れない問題はかなりよくある問い合わせです。
今までは
- 他ストレージタイプ
- Veeamなどスナップショット対応している製品
- ストレージ製品のスナップショット機能
あたりを案内することしかできなかったのですが、LVMでスナップショットを取得できるとPVEだけで完結するので便利そうです。
ロードマップと該当部分の引用はこちら。
Snapshots on thick-provisioned LVM storages with snapshots as volume chains (technology preview).
A new property on thick-provisioned LVM storages enables support for snapshots as volume chains.
With this setting, taking a VM snapshot persists the current virtual disk state under the snapshot's name and starts a new volume based on the snapshot.
This enables snapshots on shared thick-provisioned LVM storages, as they are often used on LUNs provided by a storage box via iSCSI/Fibre Channel.
Logical volumes for snapshots are currently thick-provisioned, but an underlying storage box may implement thin provisioning.
The setting only affects newly created VM disks.
設定方法
PVE8から利用していたLVMは、PVE9にアップデートしてもそのままスナップショット取得できるようになってはいません。
ストレージ設定からAllow Snapshots as Volume-Chain
にチェックを入れます。
設定後、対象のLVMで新規作成したVMはスナップショット取得が可能です。
またqcow2のみ取得可能です。
※デフォルトでqcow2になっているので、明示的にrawに変更してなければ大丈夫。
既存VMのスナップショット取得できない問題対策
LVMでスナップショットを有効にしても、既存のVMは以下のように表示されてスナップショット取得ができません。
この場合は対象VMのストレージマイグレーションを行えばスナップショット取得が可能になります。
ストレージマイグレーションはVM-ハードウェア-ディスク-ディスクの操作-ストレージの移動
から実行可能です。
ストレージマイグレーションを利用する際の課題は、
- 同じストレージにマイグレーションする際には、同じ形式ではマイグレーションできない
- qcow2→row、row→qcow2のように2度実行して元の形式に戻す必要がある。
- 一時的にVM2つ分のストレージ容量が必要。
- ストレージマイグレーションは複数同時に実行できない。
- CLIでオプション付与する等でできる可能性ありますが、GUIからはできません。
そのため、環境の規模が大きいとスナップショット取得できるようにするまでが大変な気がします。
取得とロールバック
ストレージ・VMの設定を適切に行えばサポートされてないメッセージは消えます。
通常通りスナップショットの取得とロールバックが行えました。
取得時のサイズはディスクの差分+RAMのように見えますが、実際はディスク全量+RAMのようですので、ストレージの容量には注意が必要です。
LVMとLVM-Thinでのスナップショットの違い
もともとスナップショット対応していたLVM-Thin(thinprovisioned な LVM)と、
今回スナップショット対応したLVM(thick-provisioned な LVM)では、
内部的な動作が異なります。
端的に言うと、LVMではごり押しな仕組みなので使い方に注意が必要です。
LVM-Thin
Thin-poolを活用し、データの共有や割り当てを行います。
そのためスナップショットの複数世代取得してもサイズは大きくならず、取得・ロールバックも高速です。
LVM
Thin-poolを活用したデータの共有や動的な割り当てがありません。
そのため、現在動作中のVMと同じデータを複製するため、ディスク全量+RAMの容量がスナップショットごとに必要になります。
取得・ロールバックの時にも容量が多いため時間も必要になります。
また現在のCopy-on-WriteでVMとの差分をスナップショットにも反映する必要があるので、パフォーマンスにも影響を与える可能性があります。
ボリュームチェーン方式という、既存のLVMと異なる独自実装のようです。
現在のVMディスクをスナップショットとして保存し、カレントのVMディスクは新規領域で動かすとかそんな動作っぽい?
※カレントVM→スナップショットのCopy-on-Writeが不要になる?
※ちょっと理解が怪しいですが、まだβなので現時点で深堀はしないようにしておきます。
つまり?
LVMでスナップショットを取るメリットはLVM over iSCSIでスナップショットを取得できること。
また、変更作業前に取得し、作業後に都度削除するという利用方法になると思います。