Die Snapshot-Grundlagen von KVM verstehen

Sie können sowohl mit Linux LVM (Logical Volume Manager) als auch libvirt KVM-Snapshots erstellen. Letzteres ermöglicht allerdings Live-Snapshots.

Einen Snapshot mit KVM zu erstellen, war lange Zeit eine Herausforderung. Es gab jahrelang keine native Lösung dafür. Snapshots waren nur möglich, indem man die Snapshot-Funktion von Linux LVM (Logical Volume Manager) nutzte. Diese Methode funktioniert natürlich immer noch sehr gut. Die bessere Alternative ist allerdings libvirt.

LVM-Snapshots

Das Ziel von LVM-Snapshots ist, dass man auf einfache Weise eine frühere Version einer auf einem Logical Volume gespeicherten Datei wiederherstellen kann. LVM-Volumes erstellt man mithilfe einer Volume-Gruppe. Diese repräsentiert die gesamte Menge des verfügbaren Storage. 

Bevor Sie einen LVM-Snapshot erstellen, müssen Sie sicherstellen, dass die Volume-Gruppe genügend Speicherplatz vorhält. Einen Snapshot zu erstellen ist eine einfache Prozedur. Dafür müssen Sie lediglich den nachfolgenden Befehl ausführen: lvcreate -s -n meinvolume_snap -L 10G myoriginalvolume. Stellen Sie sicher, dass die virtuelle Maschine (VM) ausgeschaltet ist, um einen zuverlässigen Snapshot zu erstellen.

Der Vorteil von libvirt

Seit einigen Jahren bietet KVM eine alternative Methode an, um Snapshots zu erstellen. Sie können libvirt verwenden. Es handelt sich dabei um die Management-Schnittstelle, die man für KVM verwendet. Das Erstellen von Snapshots mithilfe von libvirt ist eine bessere Herangehensweise, da es eine native Lösung für KVM ist. Weiterhin erstellt es einen Snapshot der gesamten virtuellen Maschine. LVM-Snapshots sichern in der Regel lediglich eine individuelle Festplatte.

Um einen Snapshot mit libvirt zu erstellen, können Sie den Befehl virsh snapshot-create verwenden. Der Befehl basiert auf einer XML-Datei, die die Definition der Orginal-VM enthält. Der Befehl virsh liest die Inhalte dieser Datei, um Informationen über die Original-VM herauszufinden und welche Festplatte verwendet werden soll. Dies ist in der <name>-Sektion der XML-Datei spezifiziert.

Die XML-Datei ist in der Lage, die Original-VM zu definieren. Es kann sich dabei auch um einen maßgeschneiderte XML-Datei handeln, die nur einen Teil der Konfiguration einer virtuellen Maschine enthält. Sie können zum Beispiel eine XML-Datei erstellen, die nicht alle von der VM benutzten Festplatten enthält. Mithilfe des Befehls virsh snapshot-create mydomain-snap mydomain.xml erstellen Sie einen Snapshot mit Namen mydomain, der auf der Konfigurations-Datei mydomain.xml basiert.

Der eigentliche Vorteil der Benutzung von virsh> für die Erstellung eines KVM-Snapshots ist die Befehls-Option --live. Mit dieser Option können Sie einen Snapshot einer laufenden virtuellen Maschine erstellen. Verwenden Sie diese Möglichkeit, sollten Sie Ihren Snapshot immer testen. Einige Workloads unterstützen Live-Snapshots nicht. Behalten Sie außerdem im Hinterkopf, dass Live-KVM-Snapshots größer sind, da diese das Memory-Image ebenfalls enthalten.

Nachdem Sie einen KVM-Snapshot mithilfe des Befehls virsh erstellt haben, können Sie später auf diesen zurückgreifen und den alten Zustand wiederherstellen. Verwenden Sie dafür den Befehl snapshot-revert ihrVMName. Zum Beispiel würde der Befehl snapshot-revert meineVM --current die virtuelle Maschine in Bezug auf den letzten gespeicherten Snapshot wiederherstellen. Sie können auch den Namen eines spezifischen Snapshots verwenden, um zum alten Zustand zurückzukehren. Dazu verwenden Sie zum Beispiel virsh snapshot-revert meineVM meinVM-Snapshot.

Die alte Methode mit LVM klappt immer noch. Allerdings muss eine virtuelle Maschine dafür heruntergefahren sein, wenn der Snapshot getätigt wird. Metadaten der virtuellen Maschine werden nicht berücksichtigt. Zwar funktioniert LVM in modernen KVM-Umgebungen nach wie vor; um einen KVM-Snapshot zu erstellen, ist die elegantere Methode mit Sicherheit virsh und libvirt.

Folgen Sie SearchStorage.de auch auf Facebook, Twitter und Google+!

Erfahren Sie mehr über Software-defined Storage