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


13

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バックアップを管理する他の優れた方法はありますか?

ありがとう。

回答:


7

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

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

次に/ dev / nbd0p1(パーティション1)をマウントし、rsync、アンマウントし、最後に検出します:

qemu-nbd --disconnect / dev / nbd0


5

これで汚れた画像(一時停止はおそらく役立つかもしれませんが、まだ完全に一貫していない可能性があります):

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

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

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

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

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

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


興味深い、ありがとう。簡単にするために、ファイルシステムの上にLVMを置いてはいけません。マシンが任意の時点で故障した場合に備えてスタンバイフェールオーバーを準備できるため、イメージ全体をコピーすることをお勧めします。
EightyEight

1
問題ない。LVMにより、VMを一時停止する必要がなくなり、実行を継続しながらスナップショットを作成できます。
ax25

3

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

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

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


ありがとう@hdave。このアプローチでは、VMの主要な利点の1つである封じ込めを失うことになります。復元するには、すべてを手動で再インストールして構成する必要があります。本当にしたいアプローチではありません。ただし、とにかくありがとう、それは有効なテクニックです。
EightyEight

100%は王室の痛みであることに同意します。このナットをクラックしたことがある場合は、それをどのように行ったかお知らせください。
hdave

@EightyEight:ChefやPuppetなどの構成管理ソフトウェアを強くお勧めします。同一の2番目のサーバー(物理サーバーでも仮想サーバーでも構いません)をセットアップする場合は、はるかに柔軟であり、苦痛も少なくなります。Chefには、ほぼすべてのハイパーバイザー用のプラグインがあり、ホストのプロビジョニングと構成に役立ちます。この方法では、バックアップに使用するスペースが少なく(VM全体が特定のデータセットに比べて大きい)、新しい環境での展開時間が短縮されるという利点があります。さらに、CMはコード内のインフラストラクチャドキュメントのようなものです。
ラファエルブガジュスキー14

2

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


電源コードを引っ張った場合よりもそうではありませんか?

1
これ以上、そしてもちろん以下:)
dyasny

これについてもう少し考えて、ドメインを静止しても何も追加されません。

エラー、「クラッシュコンシステント」を定義します。ゲストOSには、vディスク宛ての飛行中のデータが含まれている可能性があり、プラグを抜くと失われます。理論的には、このデータはスナップショットのライブ後にスナップショットに書き込まれる可能性がありますが、すべての仮想プラットフォームのライブスナップショットにゲストエージェントの静止/解凍が含まれるのには十分な理由があります。さらに、データが失われない場合、ベースイメージの代わりにスナップショットのままになり、PITの目的を
無効にします-dyasny

「クラッシュコンシステント」とは、「クラッシュ時の予想通りの一貫性」を意味します。つまり、ジャーナルなどに依存し、タイムリーなfsyncの欠如によるデータ損失を受け入れます。「すべてのvirtプラットフォームのライブスナップショットにゲストエージェントの静止/解凍が含まれるのには十分な理由があります」と私は理解していますが、その理由はLVMスナップショットの取得とまったく同じです。KVMは、LVMスナップショットよりも静止する前にfsyncしないようですか?もちろん、スナップショットにLVMを使用していない場合、静止しないのは愚かなことです。しかし、それは異なり、あなたが言っていることではありません。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.