Red Hat Training
A Red Hat training course is available for Red Hat Enterprise Linux
20.39. スナップショットの管理
以下のセクションでは、ゲスト仮想マシンのスナップショットを操作するために実行できるアクションを説明します。Snapshots は、指定した時点でゲスト仮想マシンのディスク、メモリー、およびデバイス状態を取得して、将来使用できるように保存します。スナップショットには、OS イメージのクリーンなコピーを保存することから、破壊的な操作になる可能性がある前にゲスト仮想マシンの状態を保存することまで、多くの用途があります。スナップショットは、一意の名前で識別されます。スナップショットのプロパティーを表すのに使用される XML 形式のドキュメントは、libvirt アップストリームの Web サイト を参照してください。
重要
Red Hat Enterprise Linux 7 では、ゲスト仮想マシンの一時停止または電源切断時のスナップショットの作成のみに対応しています。実行中のゲスト (ライブスナップショット としても知られている) のスナップショットの作成は、Red Hat Virtualization™ で利用できます。詳細はサービス担当者にお問い合わせください。
20.39.1. スナップショットの作成
virsh snapshot-create コマンドは、ゲスト仮想マシンの XML ファイル (
<name>
要素や <description>
要素、<disks>
など) で指定されたプロパティーを使用して、ゲスト仮想マシンのスナップショットを作成します。スナップショットを作成するには、以下のコマンドを実行します。
# virsh snapshot-create domain XML file [--redefine [--current] [--no-metadata] [--halt] [--disk-only] [--reuse-external] [--quiesce] [--atomic]
ゲスト仮想マシンの名前、ID、または uid は、ゲスト仮想マシンの要件として使用できます。XML 要件は、最低限でも name、description、および disks の各要素を含む必要がある文字列です。
残りのオプション引数は以下のとおりです。
--disk-only
- ゲスト仮想マシンのメモリー状態はスナップショットに含まれません。- XML ファイル文字列が完全に省略されている場合は、libvirt がすべてのフィールドの値を選択します。snapshot-current によって一覧表示されるように、新しいスナップショットが最新になります。また、スナップショットには、ゲスト仮想マシンの状態で通常のシステムチェックポイントではなく、ディスクの状態のみが含まれます。ディスクスナップショットは、完全なシステムチェックポイントよりも速くなりますが、電源コードが突然引っ張られたときのディスクの状態と同様であるため、ディスクスナップショットに戻すには fsck またはジャーナル再生が必要になる場合があります。
--halt
と--disk-only
を混在させると、現時点ではディスクにフラッシュされていないデータが失われることに注意してください。 --halt
- スナップショットの作成後、ゲスト仮想マシンは非アクティブのままになります。--halt
と--disk-only
を混在させると、現時点ではディスクにフラッシュされていないデータおよびメモリー状態が失われます。--redefine
は、virsh snapshot-dumpxml によって生成されたすべての XML 要素が有効であるかどうかを指定します。これは、スナップショット階層をあるマシンから別のマシンに移行したり、一時的な ゲスト仮想マシンがなくなって後で同じ名前と UUID で再作成された場合の階層を再作成したり、スナップショットメタデータにわずかな変更を加えたりするために使用できます (スナップショットに埋め込まれたゲスト仮想マシン XML のホスト固有の側面など)。このフラグを指定すると、xmlfile
引数が必須になります。--current
フラグも指定されていない場合は、ゲスト仮想マシンの現在のスナップショットは変更されません。--no-metadata
はスナップショットを作成しますが、メタデータは即座に破棄されます (つまり、libvirt は、スナップショットを現在のものとして扱いません。また、メタデータに関するlibvirtを教えるために--redefine
を使用しない限り、スナップショットに戻ることはできません)。--reuse-external
を使用すると、スナップショット XML は既存のファイルの宛先を使用して外部スナップショットを要求すると、宛先が存在している必要があり、再利用されます。そうしないと、既存ファイルの内容が失われないようにスナップショットは拒否されます。--quiesce
libvirt は、ゲストエージェントを使用して、ゲスト仮想マシンがマウントしたファイルシステムのフリーズとフリーズ解除を試みます。ただし、ゲスト仮想マシンにゲストエージェントがない場合は、スナップショットの作成に失敗します。スナップショットには、仮想ゲストマシンのメモリー状態を含めることができます。スナップショットは外部にある必要があります。--atomic
を指定すると、libvirt はスナップショットが成功するか、または変更なしで失敗するかのいずれかを保証します。すべてのハイパーバイザーがこれをサポートしているわけではないことに注意してください。このフラグを指定しないと、動作の一部を実行した後にハイパーバイザーの中には失敗するものがあります。このため、virsh dumpxml を使用して、部分的な変更が行われたかどうかを確認する必要があります。
スナップショットメタデータが存在すると、永続的なゲスト仮想マシンの定義を解除しようとすることを防ぐことができます。ただし、一時的な ゲスト仮想マシンでは、ゲスト仮想マシンが実行を終了すると ( destroy などのコマンドまたは内部ゲストアクションによって) スナップショットメタデータが警告なしで失われます。