QCOW2 イメージを使用して複数の KVM VM を作成しました。
各 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 でこれをテストしましたが、上記は不可能です。qemu-img snapshot
一時停止せずにライブ VM で実行することはできません。
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>
上記の操作はスナップショット作成よりもはるかに高速であるようです
回答 / 更新 2:
上記の質問 2 も不可能です。多くの調査を行った結果、私は同じ結論に達しました。
質問3:
RHEL 6/7 ベースノード上の Qcow2 ディスクを持つオンライン VM のスナップショットを作成し、後で復元できるようにスナップショットのバックアップを作成する方法はありますか?
答え1
これは正確な答えではありませんが、道を示すものとなります。
私たちは長い間 Linux KVM を使用しています。昔は qcow2 はスナップショットをサポートしていませんでした。最初の KVM ホストでは LVM スナップショットを使用したくなかったため、ライブ バックアップを取ることができませんでした。
そして私たちはLinux ホットコピーツール。
このツールを使用すると、ホストのファイルシステム全体をフリーズし、カスタム バックアップ スクリプトを使用して 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
答え2
私の KVM の経験は実はかなり限られていますが、非常に似た状況にあったので、次の方法がうまくいきました。
まず、MACHINE という名前の VM の構成のバックアップを作成します。
# virsh dumpxml MACHINE > /path/to/configfile.xml
次に、新しく作成されたマシンの破損を防ぐために、MACHINE という名前の VM を一時停止します。
# virsh suspend MACHINE
次に、通常は形式間の変換に使用される qemu-img コマンドを使用して、MACHINE という名前の VM から MACHINE-BAK.qcow2 という名前のスナップショットを作成します。
# qemu-img convert -O qcow2 /path/to/MACHINE.qcow2 /path/to/MACHINE-BAK.qcow2
次に、MACHINE という名前の元の VM の通常の操作を再開します。
# virsh resume MACHINE
crontab 自動化を介して実行されるスクリプトでこれらの簡単な手順を適用すると、最小限のダウンタイムで実行中の VM の定期的な完全バックアップを取得できます (元の VM のサイズによって異なります。前述のように、複製中は元の VM を停止する方がよいため)