libvirtスナップショットの保存方法を理解する

libvirtスナップショットの保存方法を理解する

最初はここに保存されると思いましたが、/var/lib/libvirt/images/ドメインのスナップショットを作成すると、centos7このディレクトリには何も変更されません。

drwx--x--x 2 root         root       4096 Feb 29 21:28 .
drwxr-xr-x 7 root         root       4096 Feb 28 23:47 ..
-rw------- 1 libvirt-qemu kvm  5370216574 Feb 29 22:09 centos7-1.qcow2
-rw------- 2 libvirt-qemu kvm  5931597824 Feb 29 22:12 centos7.qcow2
-rw------- 1 root         root 1499267135 Feb 28 21:07 centos7-server.qcow2

/var/lib/libvirt/qemu/snapshot/centos7次に、次のようなXMLファイルの内容を確認しました。

client2.xml client.xml disks.xml

私がスナップショットに付けた名前です。

スナップショットがディスクイメージではなくXMLファイルである理由を誰か教えてください。このxmlファイルは何を保存しますかimages?機能するには、私のディレクトリに元のqcow2イメージが必要で、どのイメージでも機能しないようです。これは正しいですか?

ベストアンサー1

xmlファイルはスナップショットメタデータを表し、ファイルを開くと次の内容が表示されます(簡潔にフィールド定義が短縮されます)。

yoursnapshot.xml

<!--
WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT ARE LIKELY TO BE
OVERWRITTEN AND LOST. Changes to this xml configuration should be made using:
  virsh snapshot-edit
or other application using the libvirt API.
-->

<domainsnapshot>
  <name>your-snapshot</name>
  <state>shutoff</state>
  <creationTime>1567455358</creationTime>
  <memory snapshot='no'/>
  <disks>
    <disk name='hda' snapshot='internal'/>
  </disks>
  <domain type='kvm'>
    <name>centos76-client</name>
    [...]
  </domain>
  <active>1</active>
</domainsnapshot>

このファイルには、スナップショット名、作成時のドメイン状態、作成時間、スナップショットの場合はメモリ、ディスク、およびその時点のドメイン定義が記録されます。

このフィールド定義は、あなたが取得する情報と同じですvirsh dumpxml your-domain。スナップショット当時の機器、CPU、メモリなどの構成です。たとえば、スナップショット後に一部のデバイス、メモリサイズなどを変更した場合は、スナップショットを撮るときの正確な設定に戻ることができます。

このdisksセクションでは、実際にスナップショットが作成されたディスクデバイスを確認できます。ディスクイメージを作成しようとしましたが、qcow2ファイルの場合は少し異なります。

qcow2書き込み時に画像コピーを実装します。他のCOW(記録中のコピー)ファイルシステムでは、ファイルはbtrfsその場所で変更されず、代わりに変更されたときにファイルの変更されたコピーがディスク上の他の場所に保存されることを意味します。

スナップショットを使用すると、イメージはqcow2常にその場所で変更されますが、スナップショットが作成された場合は、スナップショットの後にファイルが変更されるたびに、変更が適用されるqcow2前のファイルのコピーがスナップショットに保存されます。これは、イメージとスナップショットの両方がqcow2ファイル内にあることを意味します。 (ファイル形式とスナップショットのしくみの詳細についてはqcow2ここ

コマンドを使用して、これらのディスクスナップショットを一覧表示して対話することができます(熱、復元、作成、削除)qemu-img。たとえば、次のようにスナップショットを一覧表示できます。

# qemu-img snapshot -l /var/lib/libvirt/qemu/centos7-server.qcow2
Snapshot list:
ID        TAG                 VM SIZE                DATE       VM CLOCK
1         your-snapshot             0 2019-09-02 22:15:58   00:00:00.000

ここのタグは、nameスナップショットXMLファイルの名前とXML自体内のエントリと一致する必要があり、イメージのどのスナップlibvirtショットを復元する必要があるかを知ることができます。qcow2

おすすめ記事