Mit libguestfs einfach und bequem auf Abbilder virtueller Maschinen zugreifen

Guestmount und libguestfs erlauben den direkten Zugriff auf VM-Images für Wartungs- und Sicherungsarbeiten – auch bei ausgeschalteter VM.

Die Bibliothek libguestfs stellt eine einfach Möglichkeit zur Verfügung, um auf Daten innerhalb von Festplatten-Abbilder virtueller Maschinen zuzugreifen. Dies funktioniert sogar auch dann, wenn Sie die virtuelle Maschine nicht einschalten können und erlaubt sowohl Modifikationen als auch die Sicherung von Daten.

Libguestfs ist deswegen so beliebt, weil die Bibliothek Unterstützung für jede virtuelle Maschine mit sich bringt, die von libvirt verwaltet wird. Somit haben Sie Zugriff auf KVM, Xen, QEMU und viele andere virtuelle Maschinen. Weiterhin ist der Zugriff auf eine ganze Reihe von Dateisystemen wie beispielsweise Linux-, Windows oder Mac-OS-X-Dateisysteme und auch auf viele RAW-Formate.

Libguestfs stellt sowohl Binar-Daten als auch eine Shell-Umgebung bereit

Nachdem Sie das Paket libguestfs auf Ihrer Linux-Distribution installiert haben, können Sie sich auf zwei Arten Zugriff auf eine virtuelle Maschine verschaffen. Zum einen steht guestfish zur Verfügung. Das ist eine Shell-Umgebung, die Befehle zur Modifikation von VM-Disk-Abbildern ermöglicht. Weiterhin werden Tools als Binär-Dateien auf dem Host-Betriebssystem installiert.

Fangen wir mit einem einfachen Beispiel an. Das Tool virt-df zeigt den verfügbaren Speicherplatz in einer virtuellen Maschine an. Sie können das Programm sowohl bei laufenden virtuellen Maschinen einsetzen als auch bei ausgeschalteten. Um Informationen bezüglich einer aktiven Domain zu erlangen, verwenden Sie den Befehl: virt-df -d-sles11 -h. Durch den Schalter -h (human readable) bekommen Sie eine für das menschliche Auge besser lesbare Ausgabe hinsichtlich der Informationen über die Domain sles11. Der Vorteil davon und von anderen libguestfs-Utilitites ist, dass Sie auf die VM-Dateien so Zugriff haben, als wären sie ein lokal eingebundenes Dateisystem.

Anstatt das Disk-Image über den Namen der virtuellen Maschine anzusprechen, können Sie die Image-Datei aber auch direkt adressieren. Allerdings erhöht sich damit natürlich auch das Fehlerrisiko. Verwendet die virtuelle Maschine aus dem vorigen Beispiel das Storage-Backend /dev/vgvms/lvsles11-1, dann würden Sie diesen Befehl für ein direktes Editieren der Datei /etc/hosts benutzen: virt-edit -a /dev/vgvms/lvsles11-1 /etc/hosts. Durch diese Zugriffs-Möglichkeit auf VM-Dateien erhalten Sie sehr viel Flexibilität. Somit lassen sich auch defekte virtuelle Maschinen reparieren.

In libguestfs dienen Dateien mit den Anfangs-Buchstaben virt- dem einfachen Zugriff auf virtuelle Maschinen. Sie sind immer für bestimmte Aufgaben ausgelegt. Wir haben das bereits bei den Tools virt-edit und  virt-df gesehen. Für den direkten Zugriff auf Dateien innerhalb eines virtuellen Festplatten-Abbilds können Sie alternativ auch guestfish oder guestmount verwenden.

Mit der interaktiven Shell von guestfish auf virtuelle Maschinen zugreifen

Mit guestfish öffnen Sie eine interaktive Shell auf dem Disk-Image der virtuellen Maschine und können somit die Dateien der VM direkt bearbeiten. Das gilt allerdings nur für Tools aus der libguestfs-Umgebung, Linux-Tools wie zum Beispiel ls für die Anzeige einer Datei-Liste stehen in einer guestfish-Umgebung also nicht zur Verfügung. Mithilfe von guestmount können Sie ein VM-Festplatten-Abbild  auf dem Computer einbinden, auf dem Sie gerade arbeiten. Das erleichtert Aufgaben wie zum Beispiel das Kopieren von Dateien zwischen Host- und Gast-System.

Sowohl mit guestfish als auch guestmount können Sie auf die gesamte VM zugreifen oder nur auf spezifische Festplatten-Abbilder. So funktioniert das zum Beispiel mit Dateien auf dem Image lvsles11-1: guestfish -i -a /dev/vgvms/lvsles11-1. Nachfolgender Befehl bindet den Inhalt des Abbilds unter /mnt ein: guestmount -i -a /dev/vgvms/lvsles11-1 /mnt. Sollte ein Hochfahren der virtuellen Maschine nicht möglich sein, dann können Sie auf diese Weise auch so Management-Aufgaben erledigen.

Ein weiteres interessantes Tool ist virt-rescue, mit dem Sie die Möglichkeit haben, auf einer VM eine Umgebung zur Datenrettung zu starten. Durch die Option -d arbeiten Sie direkt mit der Domain, Images sprechen Sie mit -a an. Nachdem Sie die Rescue Environment hochgefahren haben, müssen Sie die Partition zunächst mit dem mount-rootfs-and-do-chroot.sh. in der virtuellen Maschine mounten (einbinden). Sobald Sie das erledigt haben, sind alle Dateien dieser virtuellen Maschine in der Rescue-Shell verfügbar. Ab diesem Zeitpunkt können Sie die Analyse und die Reparatur starten.

Die libguestfs-Tools bieten Ihnen also eine einfache und bequeme Möglichkeit, um direkt auf Festplatten-Abbilder virtueller Maschinen zuzugreifen. Mithilfe dieser Tools können Sie häufig anfallende Aufgaben erledigen sowie virtuelle Maschinen reparieren, die nicht mehr starten.

Artikel wurde zuletzt im März 2014 aktualisiert

Erfahren Sie mehr über Server- und Desktop-Virtualisierung

- GOOGLE-ANZEIGEN

ComputerWeekly.de

Close