web-dev-qa-db-ja.com

KVM raw-imagesのバックアップ

仮想マシンのRAWイメージを使用して、CentOS6.3でqemu-img-0.12.1.2-2.355.0.1.el6を実行しています。ゲストを停止せずに安全にバックアップする方法はありますか?テストゲストでスナップショットを作成しようとしましたが、実行されていませんでしたが、「ライブディスクスナップショットはこのqemuバイナリではサポートされていません」というエラーが発生しました。これは、生の形式がどのタイプのスナップショットにも適していないことを意味しますか、それとも私のKVMパッケージを使用したものですか?この分野でのベストプラクティスをいくつか教えていただけますか?

2
fume-shroom

raw image filesを使用している場合、一貫したスナップショットを取得する唯一の方法は、VMを一時停止またはシャットダウンすることです。

VMを中断せずにqcow2イメージファイルを使用してスナップショットを作成できますが、スナップショットはそのファイルの一部になります。これは、状況に応じて適切な場合と適切でない場合があります。

CentOS 7または現在のFedoraハイパーバイザー(スナップショットテーブルLVMボリュームやZFS zvolなど)を使用している場合は、より多くのオプションがあります。これらの最新のシステムでは、virsh domfsfreezeゲスト、スナップショットを撮る、virsh domfsthawゲスト、そしてスナップショットをバックアップします。これには、ゲストで実行されているqemu-guest-agentが必要です。

2
Michael Hampton

virsh suspend <domain>でVMを一時停止すると、VMがフリーズするだけです。ドキュメントによると、すべてのディスクI/OとネットワークI/Oは一時停止されますが、VMはホストのRAMを消費します。

Centosを使用している場合は、そこにLVMパーティションがあり、その上にXFSパーティションがある可能性が高くなります。ステートメントが真の場合、次の方法でバックアップできます。

  • VMにキャッシュをドロップして一時停止し、
  • ホスト上のキャッシュを削除し、LVMスナップショットを実行します。
  • ホストのどこかにLVMスナップショットをマウントし、バックアップスケジュールを実行します。

データベースサーバーでも機能します。ホストとgusetのカーネルパラメータがデフォルトであると仮定すると、ホストまたはVMにドロップキャッシュなしでファイルサーバー(たとえばsamba)をバックアップしても完全に安全です。データの損失は最小限です。たとえば、Ext4はRAM= 5秒ごとにデフォルトの設定でダーティページをコミットします(既定の設定)。フリーズする前に5秒未満コミットされたデータが失われる可能性があります。その量のデータ損失は私には受け入れられました。

すべてのバックアップ方法にはいくつかの欠点があります。ダウンタイムまたは潜在的なデータ損失。多くのデータベース管理者は、データベースエンジン(MS SQLなど)がすべてのトランザクションを変更を受け入れる前にファイルシステムにコミットする必要がある場合、データの損失がデータの破損につながる可能性があると考えています。一方、彼らはバックアップからデータを復元することを受け入れ、データの損失に同意します。

2