web-dev-qa-db-ja.com

ライブでのqemu-imgスナップショットVM

QCOW2イメージを使用して複数のKVMVMを作成しました。
各VMには独自のqcow2ファイルがあり、バッキングファイルに基づいていません。
私の質問は、これらの実行中のVM上のQCow2イメージのスナップショットに特に関連しています。
実行中のVMで次のコマンドを実行した場合:
qemu-img snapshot -c backup /vms/vm10001.qcow2

上記のコマンドは実行中のVMファイルシステムに害を及ぼしますか?
次に、以下を使用してスナップショットをqcow2イメージに変換することを目的としています。
qemu-img convert -s backup /vms/vm10001.qcow2 /vms/output.qcow2

「virsh」コマンドを使用できないため、qemu-imgを使用してタスクを実行する方法を見つけようとしています。

回答/更新1
わかりました。これをいくつかのテストVMでテストしましたが、上記は不可能です。ライブのVMでqemu-img snapshotを一時停止せずに実行することはできません。

RHELベースノードでそれを行う唯一の方法は、以下を使用することです。
virsh snapshot-create <dom>

上記はVM状態を保存し、内部でqemu-img snapshot -cを呼び出します。ただし、これには時間がかかる場合があり、2番目の質問になります。

質問2:virsh snapshot-create <dom> --disk-only --atomicは、qemu-kvmが非常に古いため、RHELタイプ(RHEL 7を含む)であるベースノードではサポートされていません。
したがって、唯一のオプションはvirsh snapshot-create <dom>を使用することです。これはちょっと遅いです。
次のことは可能ですか:
virsh suspend <dom>
qemu-img snapshot -c backup /vms/<dom>.qcow2
virsh resume <dom>

上記の操作は、snapshot-createよりもはるかに高速であるようです。

回答/更新2

上記の質問2でも不可能です。多くの研究を行った後、私は同じことを結論づけました。

質問3:

RHEL 6/7ベースノードにQcow2ディスクを備えたオンラインVMのスナップショットを作成し、後で復元するためにスナップショットのバックアップを作成する方法はありますか?

2
user1066991

これは正確な答えではありませんが、道を示します。

Linux KVMを長い間使用しています。昔はqcow2はスナップショットをサポートしていませんでした。最初のKVMホストでは、LVMスナップショットを使用したくありませんでした。そのため、ライブバックアップをとることができませんでした。

次に、 Linux Hot Copy Tools が見つかりました。

このツールを使用する;カスタムバックアップスクリプトを使用して、ホストファイルシステム全体をフリーズし、qcowsを外部ディスクにコピーすることができます。

バックアップスクリプトは次のようなものでした。

# Mount Usb
mount /dev/sdb1 /USBDISK
# Mount file system as ro to temp folder
hcp --read-only --mount-point /SNAPSHOT /dev/md1
# Copy files out
cp /SNAPSHOT/*.qcow2 /USBDISK
# Stop Hot Copy
hcp --remove /dev/hcp1
# Remove Usb
umount /USBDISK
1
nano.net.tr

KVMでの私の経験は実際には非常に限られていますが、非常によく似た状況にあるので、それが私にとってうまくいきました:

まず最初に、MACHINEという名前のVM)の構成のバックアップを行います。

# virsh dumpxml MACHINE > /path/to/configfile.xml

次に、新しく作成されたマシンでの破損を防ぐために、MACHINEという名前のVM)を一時停止します。

# virsh suspend MACHINE

次に、通常はフォーマット間の変換に使用される場合でも、qemu-imgコマンドを使用してVM名前付きMACHINE)からMACHINE-BAK.qcow2という名前のスナップショットを作成します。

# qemu-img convert -O qcow2 /path/to/MACHINE.qcow2 /path/to/MACHINE-BAK.qcow2

次に、元のVM MACHINEという名前の通常の操作性を再開します。

# virsh resume MACHINE

Crontab自動化を介して実行されるスクリプトにこれらの簡単な手順を適用すると、最小限のダウンタイムで実行中のVMの定期的な完全バックアップを取得できます(元のVMのサイズによって異なりますが、前述のように、一時停止した方がよいためです。オリジナルVM)

1
funkoolow