KVM Virtualisierungsumgebung unter Debian Wheezy
Dienste direkt auf Servern laufen zu lassen war gestern. Zur besseren Skalierbarkeit eines Rechenzentrums wird in Zukunft immer mehr auf Virtualisierung umgestellt. Die bekanntesten Virtualisierungslösungen stammen von Herstellern wie VMware, Parallels, Citrix, Microsoft etc. Eine bestimmte Open Source Virtualisierungssoftware ist aber besonders interessant: KVM.
KVM steht nicht für KVM-Switches (Keyboard, Video, Mouse), sondern für Kernel-based Virtual Machine. Dies ist ein Linux-Kernel-Modul für die Virtualisierung von Betriebssystemen. Die Software arbeitet dabei mit Hardware-Virtualisierungstechniken von Intel und AMD. Bei der Auswahl des Servers ist also auf die Kompatibilität zu achten. Obwohl glücklicherweise fast alle moderneren Rechner über diese Features verfügen, sollte man dies trotzdem im Hinterkopf behalten.
1. Grundkonfiguration des Host-Systems
Das Host-System für unsere KVM-Installation bildet Debian. In dieser Anleitung möchte ich nicht weiter auf die Grundinstallation eingehen. Eine grafische Oberfläche wird für das Host-System nicht benötigt und nicht empfohlen.
1.1.Voraussetzungen überprüfen
KVM setzt Hardware-Virtualisierung voraus. Mit folgendem Befehl kann getestet werden, ob die CPU dies unterstützt:
egrep '(vmx|svm)' --color=always /proc/cpuinfo
Erscheint gar keine Ausgabe, so wird Hardwarevirtualisierung nicht unterstützt!
1.2. Sudo konfigurieren
Damit man nicht als Root alle Arbeiten erledigen muss, kann sudo installiert werden.
apt-get install sudo
User als Sudoer hinzufügen:
EDITOR=nano visudo
1.3. SSH installieren
sudo apt-get install openssh-server
2. KVM installieren und konfigurieren
Als nächster Schritt, installieren wir die für KVM benötigten Pakete:
sudp apt-get install kvm qemu-kvm libvirt-bin virtinst
2.1. Benutzer als KVM User definieren
Root und non-root User den KVM gruppen zuordnen:
sudo usermod -a -G libvirt,kvm user
sudo usermod -a -G libvirt,kvm root
Damit diese Änderung übernommen wird, muss der aktuell angemeldete User neu eingeloggt werden.
2.2. Installation von KVM testen
Zum Testen der KVM Installation kann per Kommandozeilentool virsh eine Verbindung mit dem Virtualisierungsdienst aufgebaut werden.
virsh -c qemu:///system list
3. Netzwerkanbindung für Guestsysteme (Bridge erstellen)
Damit sich später auch die Gastsysteme mit dem Netzwerk Verbinden können, müssen die bridge-utils und eine Bridge konfiguriert sein.
Die bridge-utils lassen sich bequem per Paketmanager installieren:
apt-get install bridge-utils
Die Netzwerkkonfiguration des Host-Systems muss wie folgt angepasst werden:
sudo nano /etc/network/interfaces
Alte Konfiguration (normalerweise noch für DHCP konfiguriert):
# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # The primary network interface #allow-hotplug eth0 #iface eth0 inet dhcp auto eth0 iface eth0 inet dhcp
Neue Konfiguration (Statische Konfiguration + Bridgeinterface):
# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # The primary network interface #allow-hotplug eth0 #iface eth0 inet dhcp auto eth0 iface eth0 inet manual auto br0 iface br0 inet static address 192.168.0.100 network 192.168.0.0 netmask 255.255.255.0 broadcast 192.168.0.255 gateway 192.168.0.1 bridge_ports eth0 bridge_fd 9 bridge_hello 2 bridge_maxage 12 bridge_stp off
Damit diese Änderung übernommen wird, müssen die Netzwerkdienste neu gestartet werden:
sudo service networking stop && sudo service networking start
Die neue Konfiguration kann per Befehl ip addr angezeigt werden.
4. Erste Gast-VM erstellen
4.1. Download eines Installationsimages
Zur vorbereitung kopieren wir das ISO-Image des zu installierenden Betriebssystems nach /var/lib/libvirt/images/. Dieser Ordner beinhaltet auch später die virtuellen Festplatten.
sudo wget http://cdimage.debian.org/debian-cd/7.6.0/amd64/iso-cd/debian-7.6.0-amd64-netinst.iso -P /var/lib/libvirt/images/
4.2. Erzeugung der ersten virtuellen Maschine
Der Befehl zur Erstellung einer virtuellen Maschine ist relativ lang und sollte auf die eigenen Bedürfnisse angepasst werden. Weitere Informationen zu diesem Befehl entnimmt man am besten man virt-install.
sudo virt-install --connect qemu:///system -n vm01 -r 4096 --vcpus=2 --disk path=/var/lib/libvirt/images/vm01.img,size=12 -c /var/lib/libvirt/images/debian-7.6.0-amd64-netinst.iso --vnc --noautoconsole --os-type linux --os-variant debianwheezy --accelerate --network=bridge:br0 --hvm
Wie die Installation des Gastsystems gestartet wird, folgt in einem nächsten Beitrag.