KVM 生イメージのバックアップ

KVM 生イメージのバックアップ

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

答え1

使用している場合画像ファイル一貫性のあるスナップショットを取得する唯一の方法は、VM を一時停止またはシャットダウンすることです。

VM を一時停止せずに qcow2 イメージ ファイルを使用してスナップショットを作成できますが、スナップショットはそのファイルの一部になります。状況によっては、これが適切かどうかが異なります。

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

答え2

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

Centos をお持ちの場合は、そこに LVM パーティションがあり、その上に XFS パーティションがある可能性が高くなります。この記述が正しい場合は、次の方法でバックアップできます。

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

データベース サーバーでも機能しています。ホストとゲストのカーネル パラメータがデフォルトであると仮定すると、ホストまたは VM 上のキャッシュを削除せずに、ファイル サーバー (たとえば samba) をバックアップしても完全に安全です。データの損失は最小限です。たとえば、Ext4 は 5 秒ごとにダーティ ページを RAM にコミットします (デフォルト設定)。フリーズする 5 秒未満前にコミットされたデータが失われる可能性があります。その程度のデータ損失は私にとって許容範囲内でした。

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

関連情報