Nmedia - Fotolia
Workstation, KVM und VirtualBox: Mit OVF-Dateien Hypervisor-Grenzen überwinden
Bei der VM-Nutzung über Hypervisor-Grenzen hinweg kommt man an OVF-Dateien kaum vorbei. Ein Beispiel für Workstation, KVM und VirtualBox.
virtuelle Maschinen werden oftmals nur für eine einzige Art Hypervisor erstellt und auch danach nicht mehr auf anderen Plattformen eingesetzt. Manchmal sollen virtuelle Maschinen aber auch auf unterschiedlichen Hypervisoren funktionieren. Der Schlüssel zum Anlegen einer solchen virtuellen Maschine ist das Finden des perfekten Dateiformats für die VM – allerdings ist das nicht immer eine triviale Aufgabe.
In diesem Artikel geben wir einige Tipps, wie eine VM-Datei so kompatibel wie möglich gestaltet werden kann, damit sie zwischen VMware Workstation, Oracle VirtualBox und Linux KVM austauschbar wird. Entscheidend dabei ist die Kompatibilität der virtuellen Laufwerksdatei und die Auswahl des virtuellen Laufwerkstyps innerhalb der VM.
SCSI statt VirtIO
Wenn eine Linux-VM für den KVM Hypervisor erstellt wird, so wird der standardmäßige Laufwerkstyp auf VirtIO festgesetzt. VirtIO wurde für KVM entwickelt, um schnellen und direkten Zugriff auf das virtuelle Laufwerk zu gewähren, ohne vor dem Schreiben von Blöcken auf das Laufwerk eine I/O-Emulation vornehmen zu müssen. Ein VirtIO-Gerät erzeugt eine spezifische Geräteart, die nicht auf anderen Linux-Virtualisierungs-Plattformen läuft. Somit wird es unmöglich, ein VirtIO-Laufwerk mit Software wie VMware Workstation oder VirtualBox auszulesen. Ein emulierter SCSI-Treiber hingegen versorgt Nutzer mit einem /dev/sda-Gerät, das kompatibel zu allen Virtualisierungs-Plattformen ist.
Das richtige Laufwerksformat
Die nächste Herausforderung ist die Auswahl des richtigen Laufwerksformats. Es gibt eine Menge an Formaten zur Auswahl, jedes davon hat einzigartige Features, die die Arbeit mit spezifischen VM-Typen innerhalb der Virtualisierungs-Plattform so einfach wie möglich gestalten. Unglücklicherweise erwächst aus diesem Grad an Spezialisierung auch ein gewisser Grad an Inkompatibilität.
VMware Workstation zum Beispiel nutzt standardmäßig eine VMDK-Datei (Virtual Machine Disk). Diese VMDK-Datei kann in den benötigten KVM-Laufwerksdateityp umgewandelt werden, ist jedoch in VirtualBox nur schwer auslesbar. Die beste Möglichkeit ist in diesem Fall die Nutzung eines VM-Dateityps namens Open Virtualization Format (OVF). OVF ist ein offener Virtualisierungs-Standard, der virtuelle Laufwerksdateien zwischen unterschiedlichen Hypervisoren austauschbar machen soll.
Am einfachsten wird eine OVF-Datei erstellt, indem sie mit VMware Workstation als OVF exportiert wird. Dabei sollte man beachten, dass diese Option in anderen VMware-Produkten, beispielsweise in VMware Fusion, nicht zur Verfügung steht. Aber auch wenn OVF-Dateien das Admin-Leben fraglos einfacher machen, gibt es doch noch immer einige zusätzliche Arbeit, bis die volle Kompatibilität über alle Virtualisierungs-Plattformen hinweg hergestellt ist.
Volle Kompatibilität für OVF-Dateien
Um eine OVF-Datei in VirtualBox nutzen zu können, muss diese Datei zunächst in einem Editor geöffnet und jeder Begriff ElementName durch Caption ersetzt werden. Genauso muss jeder Laufwerkstyp vmware.sata.ahci durch das Advanced Host Controller Interface ersetzt werden.
Anschließend muss aus den VM-Dateien ein Hashwert mit dem Secure Hash Algorithm (SHA) erzeugt werden, was durch Ausführen von sha1sum <FILENAME>.ovf für jede einzelne VM-Datei möglich ist. Ohne diese Änderungen an der OVF-Datei wird man unweigerlich eine Fehlermeldung erhalten, wenn die Datei in VirtualBox importiert werden soll.
Die Nutzung von OVF-Dateien in KVM ist wiederum eine ganz andere Geschichte. Bevor die Datei importiert werden kann muss sichergestellt werden, dass jede VM-Datei im korrekten Format vorliegt. Durchgeführt wird dies über den Befehl qemu-img convert, der die Ursprungsdatei (OVF oder VMDK) einliest und diese dann in das Ausgabeformat QEMU Copy-on-Write (qcow2) umwandelt.
Das qcow2-Dateiformat ist das Format der Wahl für KVM und andere Open-Source-Virtualisierungsplattformen. Außerdem kann es auf einfache Weise in eine OpenStack-Cloud integriert werden. Der konkrete Befehl sieht wie folgt aus:
qemu-img convert -O qcow2 <DATEINAME>.vmdk <DATEINAME>.qcow2
Sogar nach der Konvertierung der KVM-Datei zu qcow2 gibt es aber keine Funktionsgarantie. Als nächstes wird die Datei mit einem Management-Tool wie dem Linux Virtual Machine Manager in die KVM-Umgebung importiert, hierfür kann die Option New > Import Existing Disk Image genutzt werden. Ist dies abgeschlossen, muss die virtuelle Maschine dem Linux-Betriebssystem zugeordnet werden, das eingesetzt werden soll.
Hierbei sollte man vorsichtig vorgehen, denn wenn hier irgendetwas anderes als der generische Linux OS-Typ ausgewählt wird, riskiert man, am Ende eine VM-Konfigurationsdatei zu erhalten, die ein VirtIO-Laufwerk erwartet – was natürlich nicht funktionieren wird, wenn der generische SCSI-Treiber für den Zugriff auf das virtuelle Laufwerk verwendet wird.
Das Aufsetzen einer virtuellen Maschine, die über mehrere Hypervisoren und Virtualisierungs-Plattformen hinweg kompatibel ist, ist sicher kein Spaziergang im Park. Wenn aber sichergestellt wird, dass nicht der Laufwerkstyp VirtIO verwendet wird und die Laufwerksdatei in eine OVF-Datei geschrieben wird, dann ist es durchaus möglich.
Folgen Sie SearchDataCenter.de auch auf Twitter, Google+ und Facebook!