KVM etabliert sich als Standardlösung zur Virtualisierung unter Linux. Der ADMIN-Schwerpunkt hilft beim Bau virtueller Linux-Maschinen, stellt das ... (mehr)

Schnelleres Netzwerken

Auch die Netzwerkanbindung verwendet nicht Virtio, sondern einen RTL8139-Adapter. Schneller funktioniert das Netz, wenn Sie das Gerätemodell der Netzwerkkarte auf »virtio« umstellen. Es existiert leider keine entsprechende Option im Libvirt-Plugin von Boxgrinder.

ACPI und APIC sind standardmäßig nicht aktiv. ACPI ermöglicht es, die virtuelle Maschine durch ein ACPI-Shutdown-Kommando geordnet herunterzufahren beziehungsweise neu zu starten. APIC steht für Advanced Programmable Interrupt Controller und bezeichnet ein Schema, um Hardware-Interrupts an die CPUs weiterzuleiten. Sie sollten beide Optionen im Dialogblatt »Overview« des Virtual Maschine Managers (Unterpunkt Maschineneinstellungen) setzen.

In der virtuellen Maschine gilt das US-Tastaturlayout. Abhilfe: Sie müssen das Keyboard in der Datei »/etc/sysconfig/keyboard« richtig einstellen. In den virtuellen Maschinen gilt die Zeitzone EDT (Eastern Daylight Time, das ist die Zeit, die in New York gilt). Die Lösung hierbei ist: Kopieren Sie die geeignete Zeitzonendatei von »/usr/share/zoneinfo« nach »/etc/localtime« . Anschließend müssen Sie noch innerhalb der virtuellen Maschine die Netzwerkeinstellungen manuell anpassen.

Die Gefahr ist aber groß, dass derartig suboptimale Optionen übersehen werden und die virtuelle Maschine deswegen weniger effizient läuft, als es eigentlich möglich wäre. Es ist unverständlich, warum nicht von vorneherein zweckmäßigere Defaulteinstellungen zum Einsatz kommen. Mit der Notwendigkeit, diverse Einstellungen manuell richtig zu stellen, bleibt von der durch Boxgrinder eingesparte Zeit beim Einrichten von virtuellen Maschinen nicht mehr viel übrig. Abhilfe können Scripts schaffen, die die XML-Datei der neuen virtuellen Maschine auf dem KVM-Host korrigieren und die innerhalb der virtuellen Maschine diverse Grundeinstellungen verändern (Tastaturlayout, Zeitzone).

Künftig soll es zu Boxgrinder auch ein grafisches Frontend namens Boxgrinder Studio geben, das über eine REST-Schnittstelle mit den Build-Tools zusammenarbeitet ( Abbildung 2 ).

Abbildung 2: Das in Planung befindliche Boxgrinder Studio soll als grafisches Frontend die Erstellung virtueller Maschinen erleichtern.

VMBuilder

Das Ubuntu-spezifische Gegenstück zu Boxgrinder ist VMBuilder. Er hilft dabei, virtuelle Ubuntu-Maschinen mit minimalem Aufwand einzurichten. Neben KVM/Libvirt unterstützt es auch die Virtualisierungssysteme Amazon EC2, VirtualBox, VMware und Xen. VMBuilder ist als Python-Script realisiert, das sich im Paket »python-vm-builder« befindet:

apt-get install python-vm-builder

Die Manpage zum Kommando VMBuilder ist leider wenig hilfreich. Eine Liste aller Optionen liefert »vmbuilder kvm ubuntu --help« . Außerdem enthält der Ubuntu-Server-Guide ein VMBuilder-Kapitel [4] .

VMBuilder muss mit Root-Rechten beziehungswese mit »sudo« ausgeführt werden. In der Minimalvariante sieht die Syntax wie im folgenden Beispiel aus:

vmbuilder kvm ubuntu --suite precise --libvirt qemu:///system

Der erste Parameter gibt das gewünschte Virtualisierungssystem an, der zweite die Distribution. Die Option »--suite« bestimmt die Ubuntu-Version, wobei »precise« der Codename für Ubuntu 12.04 ist. Die Option »--libvirt uri« gibt schließlich an, auf welchem KVM-Host VMBuilder die virtuelle Maschine einrichten soll.

VMBuilder führt grundsätzlich eine Minimalinstallation durch, die etwa 190 Pakete umfasst und 500 MByte Speicherplatz auf der Festplatte belegt. Die Installation umfasst keinen grafischen Desktop.

VMBuilder erstellt die Image-Datei für die virtuelle Festplatte im Unterverzeichnis »ubuntu-kvm« relativ zum gerade aktuellen Verzeichnis. Wenn Sie die virtuelle Maschine an einem anderen Ort speichern möchten, sollten Sie vor der Ausführung von VMBuilder das Verzeichnis wechseln oder mit der Option »--dest« das Zielverzeichnis vorgeben. VMBuilder erzeugt das Zielverzeichnis selbst, es darf nicht existieren! Ist das doch der Fall, meldet sich VMBuilder mit einer Fehlermeldung – ärgerlicherweise aber erst am Ende des Build-Prozesses.

Für die von VMBuilder erzeugten virtuellen Maschinen gibt es eine Reihe von Standard-Einstellungen. So kommt dieselbe CPU-Architektur wie auf dem Rechner zum Einsatz, auf dem VMBuilder ausgeführt wird. Wenn Sie VMBuilder also auf einer 64-Bit-Installation von Ubuntu ausführen, wird auch in der virtuellen Maschine eine 64-Bit-Version von Ubuntu installiert. Der virtuellen Maschine steht dabei eine CPU (ein Core) sowie 128 MByte RAM zur Verfügung.

Das Dateisystem wird in einer QCOW2-Image-Datei mit 4 GByte abgelegt. Davon sind 3 GByte für die Systempartition und ein weiteres GByte für die Swap-Partition reserviert. Die Image-Datei wird im Verzeichnis »kvm-ubuntu« gespeichert und nicht in einen Libvirt-Speicherpool übertragen. Die Image-Datei wird über den IDE-Treiber an die virtuelle Maschine weitergegeben (also nicht über den effizienteren Virtio-Treiber). Der Netzwerkadapter verwendet dagegen den Virtio-Treiber. Die virtuelle Maschine befindet sich im Default-Netzwerk der Libvirt-Werkzeuge. In der virtuellen Maschine wird der Benutzer »ubuntu« mit dem Passwort »ubuntu« eingerichtet. »ubuntu« lautet auch der Hostname.

Wenn Sie von diesen Eckdaten abweichende Einstellungen wünschen, müssen Sie entsprechende Optionen angeben (siehe Tabelle 1 ). Das macht den Aufruf des VMBuilder-Kommandos leider recht unübersichtlich.

Tabelle 1

VMBuilder-Optionen

Option

Funktion

--addpkg Name

Installiert zusätzlich das angegebene Paket. Wenn Sie mehrere Pakete wünschen, müssen Sie die Option für jedes Paket anführen. Es ist also nicht zulässig, mehrere Paketnamen auf einmal zu nennen.

--arch i386|amd64

Gibt die gewünschte CPU-Architektur an – standardmäßig verwendet VMBuilder dieselbe Architektur wie jene des Hostrechners.

--bridge Name

Verwendet für den Netzwerkzugang die angegebene Netzwerk-Bridge.

--components Name1,Name2

Verwendet die angegebenen Paketquellen (zum Beispiel »main,universe,multiverse« ) statt nur »main« . Die Liste der Paketquellen muss ohne Leerzeichen angegeben werden!

--dest Name

Verwendet das angegebene Zielverzeichnis (standardmäßig »./ubuntu-kvm« relativ zum aktuellen Verzeichnis). Dieses Verzeichnis wird von VMBuilder erzeugt. Das Verzeichnis darf noch nicht existieren, es sei denn, Sie wollen den bisherigen Inhalt des Verzeichnisses überschreiben und führen VMBuilder mit der Option »-o« aus.

--firstboot Dateiname

Gibt den Dateinamen eines Shell-Skripts an. Es wird in das Dateisystem der virtuellen Maschine kopiert und beim ersten Bootprozess ausgeführt. Es darf keine interaktiven Elemente enthalten.

--firstlogin Dateiname

Gibt den Dateinamen eines Shell-Skripts an. Es wird in das Dateisystem der virtuellen Maschine kopiert und beim ersten Login automatisch ausgeführt. Das Skript darf interaktive Elemente enthalten. Es dient in der Regel dazu, eine Basiskonfiguration durchzuführen (beispielsweise die Veränderung des Login-Passworts, die Einstellung des Passworts des MySQL-Servers, falls dieser installiert wurde und so weiter).

--flavour Name

Gibt die gewünschte Kernel-Variante an. In der Regel ist »virtual« die richtige Wahl. Damit erhalten Sie einen für Virtualisierungssysteme optimierten Kernel.

--hostname Name

Gibt den gewünschten Hostnamen für die virtuelle Maschine an. Dieser Name wird gleichzeitig auch zur Bezeichnung der virtuellen Maschine für die Libvirt-Werkzeuge verwendet und darf noch nicht genutzt werden. Wenn diese Option nicht angegeben wird, verwendet VMBuilder sowohl als Hostnamen als auch als Libvirt-Namen »ubuntu« .

--ip n.n.n.n

Die IP-Adresse der virtuellen Maschine. Ohne diese und die folgenden Angaben erwartet VM einen DHCP-Server.

--mask n.n.n.n

Die Netzwerkmaske der virtuellen Maschine. Der Default-Wert ist 255.255.255.0.

--net n.n.n.n

Die Netzwerkadresse der virtuellen Maschine. Der Default-Wert lautet n.n.n.0.

--bcast n.n.n.n

Die Broadcast-Adresse der virtuellen Maschine mit dem Default-Wert n.n.n.255.

--gw n.n.n.n

Die Adresse des Default Gateway. Ohne diese Angabe verwendet die VM die Adresse n.n.n.1.

--dns n.n.n.n

Die Nameserver-Adresse, per Default n.n.n.1.

--libvirt qemu:///system

Installiert die virtuelle Maschine im Libvirt-System.

-m n

Weist der virtuellen Maschine n MByte Speicher zu (standardmäßig 128).

--mirror URL

Verwendet für den Download der Installationspakete den angegebenen Mirror-Server statt »http://archive.ubuntu.com/ubuntu« . Wenn Sie vorhaben, viele Installationen durchzuführen, sollten Sie einen eigenen Mirror-Server einrichten. Beachten Sie, dass die Mirror-Adresse auch in der Datei »/etc/apt/sources.list« der virtuellen Maschine eingetragen wird, sodass dann auch die virtuelle Maschine diesen Mirror verwendet. Wenn Sie das nicht möchten, verwenden Sie statt »--mirror« die Option »--install-mirror« .

--ppa Name

Verwendet außer den gewöhnlichen Paketquellen auch das angegebene Personal Package Archive (PPA).

--proxy URL

Verwendet den angegebenen Proxy-Server für den Download der Installationspakete.

-o / --overwrite

Löscht den Inhalt des Verzeichnisses »./ubuntu-kvm« beziehungsweise des mit »--dir« angegebenen Verzeichnisses.

--part Dateiname

Liest die gewünschte Partitionierung der Festplatte aus der angegebenen Datei. Jede Zeile dieser Datei gibt das mount-Verzeichnis (für die Root- und Swap-Partition ohne einleitendes /-Zeichen) und die gewünschte Größe in MByte an.

--raw Dateiname

Gibt den Namen einer RAW-Image-Datei an, in die das Dateisystem installiert werden soll.

--user Login

Der Login-Name für die neue VM. Per Default lauten Account und Passwort »ubuntu« , und es gibt kein Root-Passwort.

--name Fullname

Den vollständigen Name für den Benutzer-Account.

--pass Passwort

Das Passwort des Accounts.

--rootpass Passwort

Das Root-Passwort für die virtuelle Maschine.

--suite Name

Gibt den Namen der gewünschten Ubuntu-Version an (zum Beispiel »precise« für Ubuntu 12.04).

-v

Gibt während der Installation Feedback darüber, was gerade passiert.

Listing 4 zeigt eine reale Ubuntu-Server-Installation. Mit diesen Optionen (beachten Sie insbesondere --dest und --hostname) erzeugt »vmbuilder« die folgenden Dateien, wobei »xxxxxx« eine zufällige Zeichenkette ist:

Listing 4

Virtueller Ubuntu-Server mit VMBuilder

 

/etc/libvirt/qemu/firma-abc.de.xml
/var/lib/libvirt/images/firma-abc.de/xxxxxx.qcow2

Die erste Zeile ist die XML-Datei für Libvirt, die zweite gibt die Image-Datei an.

Ähnliche Artikel

comments powered by Disqus
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2023