VM-Snapshots
VM-Snapshots speichern die Zustände der gesamten virtuellen Maschine (CPU, Speicher, Devices und beschreibbare Disks). Auf diese Weise können Änderungen am System rückgängig gemacht werden. Ältere QEMU-Versionen speichern VM-Snapshots in separate Dateien. Ab der QEMU Version 0.9.0 erfolgt die Speicherung der VM-Snapshots direkt auf die virtuellen Festplatten. Voraussetzung dazu ist, dass zumindest eines der eingebundenen Festplatten-Images im Format qcow2 vorliegt.
Host ~$ qemu-img info Platte.img
image: Platte.img
file format: qcow
In diesem Beispiel liegt das Image im qcow-Format vor. Daher muss es in das qcow2-Format konvertiert werden.
Host ~$ qemu-img convert -O qcow2 Platte.img Platte-qcow2.img
Die Informationen über die VM-Snapshots werden auf die erste virtuelle Festplatte geschrieben. Die VM-Snapshots selber werden auf alle Images gespeichert, die im qcow2-Format vorliegen. Bei Verwendung der Option -snapshot können zwar VM-Snapshots erzeugt werden, diese gehen aber nach dem Beenden der virtuellen Maschine verloren. Die Option -snapshot hat nichts mit den hier beschriebenen VM-Snapshots zu tun. Man startet QEMU mit diesem Image.
Host ~$ qemu -hda Platte-qcow2.img
Zum Erzeugen eines VM-Snapshots dient im QEMU-Monitor der Befehl savevm. Ein VM-Snapshot sollte mit einem Namen (tag) versehen werden, um diesen später identifizieren zu können. Darüber hinaus erhält jeder VM-Snapshot automatisch eine aufsteigende Nummer (ID). Der Zugriff auf VM-Snapshots ist sowohl über diese ID, als auch über seinen Namen möglich. Gibt es bereits einen VM-Snapshot mit dem gleichen Namen oder mit der gleichen Nummer, wird dieser überschrieben.
(qemu) savevm vor_PatchDay
Nach dem Anlegen des VM-Snapshots können Änderungen am System durchgeführt werden. Danach kann ein weiterer VM-Snapshot angelegt werden.
(qemu) savevm nach_PatchDay
Falls es zu ungewollten Veränderungen gekommen ist können diese mit dem Befehl loadvm rückgängig gemacht werden. Es wird der Zustand des angegebenen VM-Snapshots wiederhergestellt.
(qemu) loadvm vor_PatchDay
Nicht mehr benötigte VM-Snapshots sollten gelöscht werden, da sie Speicherplatz belegen.
(qemu) delvm vor_PatchDay
Informationen zu vorhandenen VM-Snapshots zeigt im QEMU-Monitor der Befehl info snapshots.
(qemu) info snapshots
Snapshot devices: hda
Snapshot list (from hda):
ID TAG VM SIZE DATE VM CLOCK
1 vor_PatchDay 41M 2006-08-06 12:38:02 00:00:14.954
2 nach_PatchDay 40M 2006-08-06 12:43:29 00:00:18.633
Es ist möglich eine virtuelle Maschine mit dem Zustand eines VM-Snapshots zu starten.
Host ~$ qemu -hda Platte.img -loadvm nach_PatchDay
Mit dem Tool qemu-img lassen sich VM-Snapshots für inaktive virtuelle Maschinen verwalten. Folgender Befehl speichert einen VM-Snapshot mit dem Namen vor_update auf das qcow2-Image.
Host ~$ qemu-img snapshot -c vor_update Platte-qcow2.img
Mit dem Befehl qemu-img info lässt man sich Informationen über die im Image gespeicherten VM-Snapshots anzeigen.
Host ~$ qemu-img info Platte-qcow2.img
image: Platte-qcow2.img
file format: qcow2
virtual size: 230M (241172480 bytes)
disk size: 98M
cluster_size: 4096
Snapshot list:
ID TAG VM SIZE DATE VM CLOCK
1 vor_update 0 2009-05-19 18:58:33 00:00:00.000
Den Zustand des angegebenen VM-Snapshot stellt man mit qemu-img snapshot -a wieder her. Mit dem Befehl qemu-img snapshot -d löscht man einen VM-Snapshot.
