Wie kann ich Snapshots in QEMU erstellen und verwalten?
- Grundlagen von Snapshots in QEMU
- Snapshot-Typen und Auswirkungen auf das Disk-Format
- Erstellen von Snapshots
- Auflisten von Snapshots
- Zurücksetzen auf einen Snapshot
- Entfernen von Snapshots
- Snapshots direkt im QEMU-Monitor
- Verwendung von Snapshots in der Praxis
- Zusammenfassung
Grundlagen von Snapshots in QEMU
Snapshots sind Momentaufnahmen des Zustands einer virtuellen Maschine zu einem bestimmten Zeitpunkt. In QEMU ermöglichen Snapshots, den Zustand der virtuellen Festplatte oder auch des gesamten Systems zu speichern, sodass man später zu diesem Punkt zurückkehren kann. Dies ist besonders nützlich für Tests, Backup-Zwecke oder wenn man experimentelle Änderungen rückgängig machen möchte.
Snapshot-Typen und Auswirkungen auf das Disk-Format
QEMU unterstützt hauptsächlich zwei Arten von Snapshots: intern gespeicherte Snapshots und extern gespeicherte Snapshots. Intern gespeicherte Snapshots werden innerhalb der Disk-Image-Datei abgelegt, was hauptsächlich bei QCOW2-Dateien möglich ist. Extern gespeicherte Snapshots sind separate Dateien, die auf einem Basisimage aufbauen, sodass Veränderungen als Overlay in einer neuen Datei gespeichert werden.
Ein wichtiger Hinweis ist, dass das Disk-Image im QCOW2-Format vorliegen muss, damit interne Snapshots verwendet werden können. RAW-Images bieten keine eingebaute Unterstützung für Snapshots. Wenn Sie externe Snapshots verwenden möchten, benötigen Sie eine Basis-Image und darauf aufbauende Overlay-Images.
Erstellen von Snapshots
Um einen Snapshot in einer QCOW2-Datei zu erstellen, verwendet man das Kommando qemu-img snapshot. Dabei können Sie einen Snapshot mit einem eindeutigen Namen anlegen. Zum Beispiel:
qemu-img snapshot -c snapshotname vm-image.qcow2Dieser Befehl erstellt einen Snapshot mit dem Namen snapshotname in der Datei vm-image.qcow2. Sie können jederzeit mehrere Snapshots anlegen und ihnen individuelle Namen geben. Wichtig ist, dass das Disk-Image nicht eingebunden sein sollte, wenn Sie Snapshots mit qemu-img verwalten.
Auflisten von Snapshots
Um eine Übersicht über alle in einer QCOW2-Datei gespeicherten Snapshots zu bekommen, verwenden Sie:
qemu-img snapshot -l vm-image.qcow2Dieser Befehl zeigt alle Snapshots mit ihrem Namen, ihrer ID und dem Erstellungsdatum an. So behalten Sie den Überblick über verfügbare Wiederherstellungspunkte.
Zurücksetzen auf einen Snapshot
Falls Sie den Zustand einer VM auf einen bestimmten Snapshot zurücksetzen möchten, können Sie das ebenfalls mit qemu-img tun:
qemu-img snapshot -a snapshotname vm-image.qcow2Dieser Befehl aktiviert den angegebenen Snapshot als aktuellen Zustand. Anschließend verwendet QEMU diesen Zustand beim nächsten Start der VM. Außerdem ist es möglich, Snapshots während des laufenden Betriebs über QEMU Monitor zu verwenden, jedoch ist das eher fortgeschritten und erfordert das Steuern der VM über die Monitor-Konsole.
Entfernen von Snapshots
Um einen Snapshot zu löschen, der nicht mehr benötigt wird, verwenden Sie den Befehl:
qemu-img snapshot -d snapshotname vm-image.qcow2Dies entfernt den bezeichneten Snapshot aus der Image-Datei. Beachten Sie, dass das Löschen eines Snapshots die Basis für verschiedene Änderungen an der Datei sein kann und daher sorgfältig durchgeführt werden sollte, um Datenverlust zu vermeiden.
Snapshots direkt im QEMU-Monitor
QEMU verfügt über eine Monitor-Konsole, in der Sie Snapshots ebenfalls verwalten können. Durch das Öffnen des Monitors (meist per Tastenkombination Ctrl+Alt+2 oder über die Kommandozeile mit -monitor stdio) stehen Ihnen Befehle wie savevm, loadvm und delvm zur Verfügung.
Mit savevm name können Sie einen Snapshot des aktuellen VM-Zustands inklusive CPU-Register, RAM-Inhalt und laufender Geräte anlegen. Das ist anders als die Snapshot-Funktion via qemu-img, die sich nur auf die Festplattendaten bezieht. Das Speichern im Monitor bietet also eine umfassendere Momentaufnahme, eignet sich aber hauptsächlich für temporäre Sicherungen.
Diese Snapshot-Funktion ist nur mit QCOW2-Images möglich und muss von der VM selbst unterstützt werden (manchmal ist die Option -incoming oder ähnliche Startparameter erforderlich).
Verwendung von Snapshots in der Praxis
In der Praxis empfiehlt es sich, vor größeren Änderungen an einer VM einen Snapshot anzulegen, um jederzeit zurückkehren zu können, falls etwas schief geht. Beim produktiven Einsatz sollten Snapshots jedoch nicht zu lange aktiv bleiben, da die Performance beeinträchtigt werden kann und die Images mit der Zeit stark anwachsen. Regelmäßiges Zusammenführen (Commit) der Änderungen in das Basissystem ist empfehlenswert.
Zusammenfassung
Snapshots in QEMU sind leistungsstarke Werkzeuge, um virtuelle Maschinen flexibel zu verwalten. Die Basis bilden QCOW2-Disk-Images, auf denen Snapshots entweder intern (über qemu-img snapshot) oder im laufenden Betrieb (über den QEMU-Monitor mit savevm und loadvm) erstellt werden können. Dabei können Snapshots auf verschiedene Weisen verwaltet, aufgelistet, gelöscht und aktiviert werden. Für den produktiven Einsatz gilt es, Snapshots bewusst und mit Blick auf Performanzaspekte zu verwenden.
