Springe zu: Hauptnavigation, Themennavigation, Seiteninhalt, Spezielle Seiten

Erste Schritte mit KVM unter Debian Lenny

In diesem Artikel zeige ich an einfachen Beispielen, wie schnell man den Einstieg in die Virtualisierung mit KVM schaffen kann.

Voraussetzungen und Installation

Bevor man KVM verwenden kann ist zu prüfen, ob der Prozessor die Virtualisierungstechnik überhaupt unterstützt. Ein Flag, das sich bei AMD und Intel unterscheidet, verrät die Unterstützung für die Hardwarevirtualisierung. Wenn der folgende Befehl keine Aussgabe ergibt, ist die Unterstützung nicht vorhanden. Erscheint eine Ausgabe, werden die von der CPU unterstützten Flags ausgegeben:

lenny:~# egrep '^flags.*(vmx|svm)' /proc/cpuinfo
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc arch_perfmon pebs bts pni monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr sse4_1 lahf_lm
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc arch_perfmon pebs bts pni monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr sse4_1 lahf_lm
lenny:~#

Nun kann kvm vom Administrator mit dem Befehl aptitude install kvm installiert werden.

Berechtigte Benutzer festlegen

Will ein Benutzer KVM verwenden, muss er auf die Gerätedatei /dev/kvm zugreifen können. Der Zugriff ist den Mitgliedern der gruppe kvm gestattet. Im folgenden Beispiel wird der Benutzer simon der Gruppe kvm hinzugefügt:

lenny:~# adduser simon kvm
Füge Benutzer »simon« der Gruppe »kvm« hinzu ...
Füge Benutzer simon zu Gruppe kvm hinzu
Fertig.
lenny:~#

Arbeiten mit KVM

Wurden diese systemweiten Vorbereitungen getroffen, kann der “normale” Benutzer mit KVM arbeiten.

Die Soundausgabe auf ALSA umstellen

Standardmäßig verwendet KVM das Open Sound System (OSS) für die Kommunikation mit der Soundkarte. Da dieses aber oft Probleme beim Mischwen von Klängen hat und nur ein Programm zur selben Zeit die Karte in Anspruch nehmen kann, ist stattdessen die modernere und eigentlich als Standard anzusehende Advanced Linux Sound Architecture (ALSA) einzustellen. Hierzu ist die Variable QEMU_AUDIO_DRV auf alsa zu setzen:
export QEMU_AUDIO_DRV=alsa

Wer diese Variable vor der Verwendung einer virtuellen Maschine nicht ständig manuell setzen will, trägt die Zeile besser an das Ende der Datei ~/.profile ein.

Eine virtuelle Festplatte mit kvm-img erstellen

Wenn man eine virtuelle Maschine betreiben möchte, wird in den meisten Fällen auch eine Festplatte benötigt. Man will ja oft ein Betriebssystem installieren und nicht nur eine Live-CD verwenden. Im folgenden Beispiel wird eine virtuelle Festplatte mit einer Größe von 10 GB angelegt und unter dem Namen hd.img gespeichert. Das besondere am verwendeten Dateityp QCOW2 ist, dass ihre auf der Festplatte belegte Größe vom Inhalt der virtuellen Festplatte abhängt und sich dynamisch ändert. Außerdem können in einer solchen Datei auch verschiedene Zustände einer Festplatte als Snapshots gespeichert werden. Die beschriebene Festplatte wird mit folgender Eingabe angelegt:

simon@lenny:~$ kvm-img create -f qcow2 hd.img 10G
Formatting 'hd.img', fmt=qcow2, size=10485760 kB
simon@lenny:~$

Nun haben wir eine frische Festplatte mit einer Speicherkapazität von 10 GB. Damit die Datei von KVM gelesen und mit Daten gefüllt werden kann, sind die Zugriffsrechte anzupassen. Am schnellsten geht das, wenn man allen Benutzern den Lese- und Schreibzugriff gestattet:
chmod o=rw hd.img

Der Datei sieht man nicht an, dass sie maximal 10 GB Daten aufnehmen kann. Informationen über ein vorliegendes Festplatten-Image kann man mit dem folgenden Befehl abrufen:

simon@lenny:~$ kvm-img info hd.img
image: hd.img
file format: qcow2
virtual size: 10G (10737418240 bytes)
disk size: 56K
cluster_size: 4096
simon@lenny:~$

Eine virtuelle Maschine unter GNOME starten

Normalerweise startet man KVM unter einer grafischen Benutzeroberfläche, wie zum Beispiel GNOME. Der virtuelle Computer läuft dann in einem eigenen Fenster. Im folgenden Beispiel gehe ich davon aus, dass man sich im GNOME-Terminal in seinem Heimatverzeichnis befindet. Hier liegt neben dem erstellten Festplatten-Image auch eine ISO-Datei mit der zu bootenden CD. Unsere virtuelle Maschine soll neben einer Festplatte und einem CD-Laufwerk über 512 MB RAM und einer Soundkarte verfügen. Außerdem legen wir fest, dass von CD gebootet werden soll:
simon@lenny:~$ kvm -hda hd.img -cdrom cd.iso -boot d -soundhw all -m 512 -full-screen

Die Option -full-screen legt fest, dass das Fenster gleich im Vollbildmodus angezeigt wird. So wird zum Beispiel der Druck auf eine der pfeiltasten gleich an die virtuelle Maschine weitergereicht und nicht vom KVM-Fenster abgefangen.

In der gestarteten Maschine kann man übrigens eine Verbindung mit dem Netzwerk des echten PCs herstellen, da KVM einen DHCP-Server mitbringt und eine grundlegende Netzwerkverbindung herstellt, die allerdings keine eingehenden Verbindungen erlaubt. Für erste Tests einer Distribution sollte das aber genügen. Speziellere Konfigurationen lassen sich aber auch realisieren.

Der QEMU Monitor

Der QEMU Monitor stellt eine Kommandozeile zur Verfügung, mit der man seine virtuelle Maschine im laufenden Betrieb beeinflussen kann. Mit der Tastenkombination Strg+Alt+2 ruft man den QEMU Monitor auf und mit Strg+Alt+1 wechselt man zurück in die laufende Maschine.

Nicht alle Tastenkombinationen werden an die virtuelle Maschine weitergereicht. Zum Beispiel wechselt man mit Strg+Alt+F1 auf die erste Konsole des Wirtsystems. Um aber in der virtuellen Maschine diese Tastenkombination auszulösen, steht der Monitorbefehl sendkey zur Verfügung: Wechselt man mit Strg+Alt+2 in den Monitor und gibt den Befehl
sendkey ctrl-alt+-f1 ein und bestätigt ihn mit Enter, wechselt man in der virtuellen Maschine zur Konsole.

Eine virtuelle Maschine herunterfahren

Will man seine virtuelle Maschine herunterfahren und KVM beenden, kann man das gestartete Betriebssystem wie bei einem echten PC herunterfahren. Funktioniert das nicht, steht im QEMU Monitor der Befehl quit oder nur q zur Vwerfügung. Dieser entspricht aber dem Ziehen des Netzsteckers und fährt das System also nicht sauber herunter – eine Notlösung ist es aber allemal :-).

Mit diesem Artikel habe ich dir hoffentlich den Einstieg in die spannende Welt der Virtualisierung mit KVM erleichtert. Informationen über weitere Themen, wie das Einbinden einer Braillezeile, der Start aus der echten Konsole oder umfangreichere Netzwerkkonfigurationen, werden in folgenden Artikeln behandelt.

Datum der Veröffentlichung: Donnerstag, 23.04.2009

Nach oben

Diese Seite drucken