===== 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-Snap­shot 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.