web-dev-qa-db-ja.com

qcow2 kvmゲストのバックアップ

Qcow2 kvmゲストのバックアップに関する適切な情報が見つかりません。ゲストの実行状態にはあまり興味がなく、ファイルシステムにのみ興味があります。 この質問savevmの使用を提案しますが、スナップショットを適切に作成します。ファイルシステムをリモートでバックアップしたいのですが。

より良い方法はありますか:

  1. suspend virt_machine#仮想マシンを一時停止
  2. rsync --sparse /home/vm/image.qcow2 /tmp/image.dec_14_2010.qcow2#同じドライブにイメージをコピー
  3. virt_machineを再開します
  4. rsync --sparse /tmp/image.dec_14_2010.qcow2 ssh:// backup @ backupmachine:/ vmbackups

これにはいくつかの欠点があります。まず、巨大な画像ファイルのコピーには(比較的)長い時間がかかります。次に、マシンをバックアップするのに十分なスペースがあることを常に確認する必要があります。これは理想的ではありません。 KVMバックアップを管理する他のより良い方法はありますか?

ありがとう。

13
EightyEight

Qemu-nbdのスナップショット機能をお勧めします。

qemu-nbd --snapshot --connect=/dev/nbd0 image.qcow2

次に、/ dev/nbd0p1(パーティション1)、rsync、マウント解除をマウントし、最後に切断します。

qemu-nbd --disconnect/dev/nbd0

7
phhe

これを使用したダーティなイメージ(一時停止はおそらく効果がありますが、完全に一貫しているとは限りません):

Qcow2スパースファイルを保持するLVMファイルシステムでスナップショットを作成します(ここでも、LVMスナップショット用のスペースがあると想定しています)。

LVMスナップショットをマウントします。

Sshfsを使用してリモートをマウントします。

スパースコピーを使用してsshfsマウントポイントにコピーします(cp --sparse = always src dest)

コピーにかかる時間は短くなりますが、画像がほぼいっぱいの場合は、フルタイムまで時間がかかります。

VM内からのデータのバックアップは、おそらくより良いアイデアです(スペース/時間を節約してください)。バックアップ/復元する個々のVMを通常のホストとして扱います。つまり、必要なものを取得して保持しますデータなしのスタブvmのセット。

5
ax25

個人的に、私はこの問題で非常に困難な時間を過ごしており、静止したときでさえ、ゲストのバックアップはしばしば不安定であることがわかりました。覚えておいてください。これらのバックアップを定期的に復元しようとしていない場合、それらが機能するかどうかはまったくわかりません。

多くの実験を行った後、私はイメージバックアップに完全に穴をあけ、ベアメタルサーバーに使用できる従来のネットワークバックアップソリューションを採用しました。私の場合、私たちはBackupPCを使いました。これは古いですが、非常に信頼できます。各サーバーで、使用中の特定のアプリケーションのバックアップソリューションを構成しました。たとえば、MySQLのsqldump、Joomlaのプラグインなど。

これはPIAですが、はるかに高速で、非常に信頼できます。

3
hdave

LVMまたはqcow2のどこでスナップショットを作成しても、VMを取得する前に静止する必要があります。そうしないと、データが失われ、イメージが破損します。

2
dyasny