Kernel-based Virtual Machine (KVM)#

KVM ist eine Virtualisierungs-Lösung, die vor etwa drei Jahren (Oktober 2006) in den Linux-Kernel (Version 2.6.20) integriert wurde.

Ich habe heute meine ersten Versuche damit gemacht: Es sieht sehr vielversprechend und unkompliziert aus.

Voraussetzung ist allerdings ein Prozessor, der die Virtualisierung durch Hardware unterstützt.

Installation unter Debian Squeeze#

Die erste Installation habe ich mit Debian Lenny nach einem Artikel auf Howto-Forge vorgenommen.

Die Schritte im Einzelnen:

Installation #

Host-System#

Installation eines minimalen Debian-System auf dem Server. Ich nutze den Logical Volume Manager, um später Volumes als Festplatten für die virtuellen Server anlegen zu können.

Hardware-Unterstützung#

Dann prüfe, ob der Prozessor wirklich KVM unterstützt:

# egrep '(vmx|svm)' --color=always /proc/cpuinfo

Wenn die Ausgabe leer bleibt, unterstützt der Prozessor die Virtualisierung nicht. Dann hilft nur eine andere Virtualisierungs-Lösung.

KVM Pakete installieren#

# aptitude install kvm-qemu libvirt-bin virtinst bridge-utils

Einen ersten Test kann man durchführen mit:

# virsh list

 Id Name                 State
----------------------------------

Wenn nicht die leere Liste mit virtuellen System angezeigt wird, stimmt irgendetwas nicht.

Bridge einrichten#

Damit die virtuellen Server später ans Netzwerk kommen, wird an dieser Stelle eine (Netzwerk-) Bridge eingerichtet.

Dazu die Konfiguration in /etc/network/interfaces:

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet manual

# bridge
auto br0
iface br0 inet static
        address 192.168.1.10
        network 192.168.1.0
        netmask 255.255.255.0
        broadcast 192.168.1.255
        gateway 192.168.1.1
        bridge_ports eth0
        bridge_fd 9
        bridge_hello 2
        bridge_maxage 12
        bridge_stp off

Die Netzwerkadressen müssen natürlich den Gegebenheiten des lokalen Netzwerks angepasst werden.

Nach einem Neustart des Netzwerks (/etc/init.d/networking restart) sollte die Ausgabe von ifconfig etwa so aussehen:

# ifconfig
br0       Link encap:Ethernet  Hardware Adresse 00:1d:92:70:66:20  
          inet Adresse:192.168.1.10  Bcast:192.168.1.255  Maske:255.255.255.0
          inet6-Adresse: fe80::21d:92ff:fe70:6620/64 Gültigkeitsbereich:Verbindung
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metrik:1
          RX packets:475 errors:0 dropped:0 overruns:0 frame:0
          TX packets:266 errors:0 dropped:0 overruns:0 carrier:0
          Kollisionen:0 Sendewarteschlangenlänge:0 
          RX bytes:35080 (34.2 KiB)  TX bytes:36790 (35.9 KiB)

eth0      Link encap:Ethernet  Hardware Adresse 00:1d:92:70:66:20  
          inet6-Adresse: fe80::21d:92ff:fe70:6620/64 Gültigkeitsbereich:Verbindung
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metrik:1
          RX packets:475 errors:0 dropped:0 overruns:0 frame:0
          TX packets:272 errors:0 dropped:0 overruns:0 carrier:0
          Kollisionen:0 Sendewarteschlangenlänge:100 
          RX bytes:41730 (40.7 KiB)  TX bytes:37258 (36.3 KiB)
          Speicher:fdde0000-fde00000 

lo        Link encap:Lokale Schleife  
          inet Adresse:127.0.0.1  Maske:255.0.0.0
          inet6-Adresse: ::1/128 Gültigkeitsbereich:Maschine
          UP LOOPBACK RUNNING  MTU:16436  Metrik:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          Kollisionen:0 Sendewarteschlangenlänge:0 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

Virtuellen Server einrichten#

Dateisystem anlegen#

Zuerst lege ich eine Logical Volume an, die meinem virtuellen Server als Festplatte dienen soll.

Das folgende Kommando legt eine Volume vserv01 in der Volume Group vgroup an. Die Größe ist 20 GByte.

# lvcreate -n vserv01 -L 20G vgroup

Debian installieren#

Das Schöne ist, dass man das neue System einfach so von CD installieren kann. Ich lege eine Debian-Netzinstallations-CD in das CD Laufwerk des Servers ein und rufe auf:

virt-install -n vserv01 -r 512 --vcpus=2  \
  --disk path=/dev/mapper/vgroup-vserv01 -c /dev/cdrom --vnc --noautoconsole \
  --os-type linux --os-variant debianSqueeze --accelerate --network=bridge:br0 \
  --hvm

Das Kommando startet einen VNC-Server, über den der grafische Debian-Installer zur Installation des Gastes genutzt werden kann. Der VNC-Server lauscht allerdings nur am localhost-Interface, so dass man z.B. einen ssh-Tunnel braucht, um von einem anderen Rechner heranzukommen:

# ssh -L 192.168.1.10:5900:localhost:5900 localhost

Tags:  Virtualisierung

Add new attachment

Only authorized users are allowed to upload new attachments.
« This page (revision-9) was last changed on 09-Aug-2012 10:05 by Peter Hormanns