Unter Linux bietet sich die Möglichkeit, als Virtualisierungsplattform KVM/qemu/libvirt zu verwenden. Diese Form der Virtualisierung – hier einfach nur kurz KVM genannt – ist äußerst performant und bietet hohe Flixibilität gerade im Rahmen von Software-Entwickungsumgebungen.
Grundinstallation
Zuerst muss getestet werden, ob die CPU die benötigten Virtualisierungsfeatures unterstützt:
egrep -c '(vmx|svm)' /proc/cpuinfo
Zeigt sich ein Wert größer 0, wird KVM unterstützt.
Installation der benötigten Server-Software:
apt-get install qemu-kvm libvirt-bin bridge-utils bc pbzip2
Nach der Installation sollte das Bridging eingerichtet werden, da alle Gäste im Bridging Modus in diese Bridge eingehängt werden. Dazu muss die Datei /etc/network/interfaces angepasst werden. Ein einfaches Beispiel sieht so aus:
auto lo iface lo inet loopback auto eth0 iface eth0 inet manual auto br0 iface br0 inet dhcp bridge_ports eth0 bridge_fd 0.5 bridge_hello 0.5
Aus Performance-Gründen empfiehlt sich der Einsatz von LVM für die Disk Images. Trotzdem ist es möglich, Disk Images in gewöhnliche Dateien anzulegen. Es ist sinnvoll auf dem eigenen PC die grafische Management Software „Virt-Manager“ zu installieren:
apt-get install virt-manager
Hiermit werden Image Pools sowohl für CD/DVD-Images, als auch Disk Images angelegt.
Installation von KVM-Gästen
Das Neuanlegen von Gästen empfiehlt sich im virt-manager. Dort gibt es den Menüpunkt New.
Step 1
- Angabe des Hostnamens
- Local install media (ISO image or CDROM)
Step 2
- ISO-Image auswählen
- Ubuntu Livesystem für Migration
- Install-ISO-Image für Neuinstallation
- OS auswählen
- OS-Version auswählen
Abhängig von der OS-Auswahl wird der Disk- und NIC-Treiber ausgewählt. Bei älteren Betriebssystemen und Windows wird der IDE-Treiber und e1000-Treiber ausgewählt, ansonsten wird die !VirtIO-Variante gewählt.
Step 3
Auswahl der CPU-Kerne und Speichergröße
Step 4
Auswahl für Storage
- Select managed or other existing storage (LVM)
In Browse kann man ein bestehendes LVM-Volume auswählen oder eins anlegen. Der Name der LV muss dem Schema <hostname>-disk<no> entsprechen. Die <no> entspricht einer laufenden Durchnummerierung der VM-Disks, angefangen bei 01. Dies ist wichtig für das Backup!
Step 5
- Häkchen bei Customize configuration before install setzen
- Combobox auf Specify shared device name ändern und das entsprechende Brdige-Device angeben.
- Set a fixed MAC address ist schon gesetzt. Hier kann man die MAC-Adresse z.B. für MDSC2 schon rauskopieren.
Step 6, Hardware Konfiguration
- Processor
- Copy host CPU configuration
- Apply anklicken
- Display VNC
- Keymap du de stellen.
- Video
- Model auf vmvga umstellen.
- Apply anklicken
Die Installation bzw. der VM-Gast startet, wenn man Begin installation anklickt.
Konvertierung von VMware Images
Derzeit können nur neuere Images direkt konvertiert werden. Dabei können VMs und native Systeme migriert werden, die eine Vollinstallation beinhalten (also VMware, nicht aber VServer und Xen). Hier empfiehlt sich, zuerst unter KVM ein LV (s.o.) anzulegen. Die Platte im alten System sollte kleiner als die neue LV sein. Dazu bootet man die alte Instanz in einem Livesystem. Hier muss man evtl. das alte System klein machen. Es empfiehlt sich im Gast grundsätzlich kein LVM einzusetzen. Wird auf dem alten System kein LVM eingesetzt, kann man per dd
einen Abzug ziehen. Wird von LVM wegmigriert, muss das Dateisystem in ein Archiv gepackt werden und auf dem Zielsystem boot-fähig gemacht werden. Auf dem Zielsystem kann ein dd
-Image direkt im Wirt in die neue LV reingeschrieben werden und dort die Partitionen angepasst werden.
Da sich die MAC-Adresse ändert, muss im neuen Zielsystem die Datei /etc/udev/rules.d/70-persistent-net.rules gelöscht werden. Diese wird nach dem ersten Booten automatisch mit den neuen MAC-Adresse neu angelegt. Um die VMs verwalten zu können, muss in den VMs unter Linux der acpid
installiert sein. Unter Windows ist ACPI automatisch mit installiert.
Beschränkung von CPU und Speicher
Jeder KVM-Gast erhält unter /etc/libvirt/qemu/ eine Konfigurationsdatei, über die sich auch die Zuteilung der CPUs und des Speichers steuern lässt. Folgendes Beispiel enthält die gekürzte Konfiguration einer VM mit einer CPU und einem GB Arbeitsspeicher:
<domain type='kvm'> <memory> 1048576 </memory> <vcpu> 1 </vcpu> </domain>
Die Parameter lassen sich auch im virt-manager ändern.
Verwaltung einer VM
Um die VMs verwalten zu können, muss in den VMs unter Linux der acpid
installiert sein. Unter Windows ist ACPI automatisch mit installiert.
Start einer VM
virsh start <Domain>
Stoppen einer VM
virsh shutdown <Domain>
Neustarten einer VM
virsh restart <Domain>
Suspendieren einer VM
virsh suspend <Domain>
Ruhezustand einer VM beenden
virsh resume <Domain>