Native Linux KVM Tool
(Link zu dieser Seite als [[QEMU-KVM-Buch/ KVM Tool]])
Inhaltsverzeichnis |
[bearbeiten] Native Linux KVM Tool
Quellen: git://github.com/penberg/linux-kvm.git
Das Native Linux KVM Tool wird als schlanke Alternative zu QEMU entwickelt. Ziel ist eine möglichst einfache Konfiguration. Es verwendet die KVM hardware-unterstützte Virtualisierung und emuliert die wichtigsten Hardware-Komponenten (para-virtualized device model). Das Native Linux KVM Tool soll in den Quellen des Linux-Kernels 3.1 aufgenommen werden.
[bearbeiten] Installation
Das Native Linux KVM Tool benötigt die KVM-Kernel-Module. Die Installation wird unter der URL http://qemu-buch.de/d/QEMU+KVM_unter_Linux beschrieben.
Das Native Linux KVM Tool muß kompiliert werden. Zum Kompilieren sind folgende Pakete notwendig. Beispiel Ubuntu (64-Bit):
Host ~$ sudo apt-get install build-essential libc6-dev-i386 git-core
Beispiel RPM-basierte 64-Bit-Systeme (Red Hat, CentOS, Fedora):
Host ~# yum install glibc-devel glibc-devel.i386
Mit einem Git-Client (http://git-scm.com) werden die neuesten Quellen heruntergeladen. Anschließend werden die Quellen kompiliert und das Binary installiert.
Host ~$ mkdir -p ~/source/KVM-Tool Host ~$ cd ~/source/KVM-Tool Host ~$ git clone git://github.com/penberg/linux-kvm.git Host ~$ cd linux-kvm/tools/kvm Host ~$ make Host ~$ sudo cp kvm /usr/local/bin
Für ein späteres Update sind diese Schritte notwendig.
Host ~$ cd ~/source/KVM-Tool/linux-kvm/tools/kvm Host ~$ make clean Host ~$ git pull Host ~$ make Host ~$ sudo cp kvm /usr/local/bin
Man testet die Installation. Aufgerufen wird das Native Linux KVM Tool mit kvm.
Host ~$ kvm
usage: kvm COMMAND [ARGS] The most commonly used kvm commands are: run Start the virtual machine pause Pause the virtual machine resume Resume the virtual machine version Print the version of the kernel tree kvm tools list Print a list of running instances on the host. debug Print debug information from a running instance balloon Inflate or deflate the virtio balloon stop Stop a running instance stat Print statistics about a running instance See 'kvm help COMMAND' for more information on a specific command.
[bearbeiten] Anlegen von virtuellen Maschinen
Zur Zeit unterstützt das Native Linux KVM Tool nur Linux als Gast-System. Das Native Linux KVM Tool unterstützt Images in den Formaten raw und qcow2. Es lässt sich auch ein Verzeichnis im Host-System als root-Datei-System verwenden.
[bearbeiten] Mini-Linux
Man benötigt man ein Image mit installierten Mini-Linux.
Host ~$ wget http://wiki.qemu.org/download/linux-0.2.img.bz2 Host ~$ bunzip2 linux-0.2.img.bz2
Mit dem Befehl kvm run und der Angabeder Image-Datei wird das Native Linux KVM Tool gestartet. Optional aktiviert man mit --sdl Simple DirectMedia Layer (SDL) und gibt der virtuellen Maschine einen Namen.
Host ~$ kvm run --disk linux-0.2.img --sdl --name vm01
Auf einer anderen Konsole lässt man sich die virtuellen Maschinen mit dem Befehl kvm list auflisten.
Host ~$ kvm list PID GUEST 29555 vm01
Mit kvm stop und Angabe des Namens der virtuellen Maschine wird diese gestoppt.
Host ~$ kvm stop --name vm01
[bearbeiten] Befehlsübersicht
Host ~$ kvm COMMAND [ARGS]
[bearbeiten] run
Startet eine virtuelle Maschine.
Host ~$ kvm run [<Optionen] [<kernel image]
Allgemeine Optionen
--name guest name
Definiert einen Namen für die Instanz.
-c, --cpus n
Legt die Anzahl (n) der emulierten CPUs fest.
-m, --mem n
Definiert die Größe des Arbeitsspeichers in MByte (n).
-d, --disk image|rootfs_dir
Die angegebene Datei image wird als Festplatten-Image für das root-Datei-System verwendet. Alternative kann ein Verzeichnis (rootfs_dir) im Host-System als root-Datei-System verwendet werden.
--balloon
Aktiviert virtio-Ballooning-Device.
--vnc
Startet die Instanz mit einem VNC-Server.
--sdl
Aktiviert den Simple DirectMedia Layer (SDL) für die VGA-Ausgabe.
--rng
Aktiviert den virtio-Zufallsgenerator.
--9p dir_to_share,tag_name
Aktiviert ein Austausch-Verzeichnis über das (Plan-9-Dateisystem-Protokoll) zwischen Host- und Gast-System.
--console serial or virtio
Legt die zu verwendene Konsole fest.
--dev device_file
Passt den Pfad zum KVM-Device an. Der Default-Pfad ist /dev/kvm.
Kernel-Optionen
-k, --kernel kernel
Verwendet die Datei kernel als Kernel-Image.
-i, --initrd initrd
Verwendet die Datei initrd als Initial-RAM-Disk.
-p, --params params
Verwendet params als Kernel-Boot-Optionen.
Networking Optionen
-n, --network user|tap|none
Legt die Art des Netzwerkes fest.
--host-ip a.b.c.d
Weist die IP-Adresse der virtuellen Netzwerkkarte auf der Host-Seite zu.
--guest-ip a.b.c.d
Weist die IP-Adresse der virtuellen Netzwerkkarte auf der Gast-Seite zu.
--host-mac aa:bb:cc:dd:ee:ff
Weist die Mac-Adresse der virtuellen Netzwerkkarte auf der Host-Seite zu.
--guest-mac aa:bb:cc:dd:ee:ff
Weist die Mac-Adresse der virtuellen Netzwerkkarte auf der Gast-Seite zu.
--tapscript Script path
Definiert ein Skript zum Anlegen des Tap-Devices.
BIOS-Optionen
--vidmode n
Definiert den Video-Mode.
Debug-Optionen
--debug
Aktiviert Debug-Meldungen.
--debug-single-step
Aktiviert Single-Stepping.
--debug-ioport
Aktiviert IOPORT-Debugging.
--debug-iodelay n
Verzögert IO um n Millisekunden.
[bearbeiten] pause
Lässt eine laufende Instanz pausieren.
Host ~$ kvm pause [--all] [-n name] [-p pid]
Allgemeine Optionen
-a, --all
Lässt alle laufenden Instanzen pausieren.
-n, --name name
Name der Instanz.
-p, --pid n
PID der Instanz.
[bearbeiten] resume
Beendet den eingefrorenen Zustand der Instanz.
Host ~$ kvm resume [--all] [-n name] [-p pid]
Allgemeine Optionen
-a, --all
Beendet den eingefrorenen Zustand aller Instanzen.
-n, --name name
Name der Instanz.
-p, --pid n
PID der Instanz.
[bearbeiten] version
Ausgabe der Version.
Host ~$ kvm version
[bearbeiten] list
Auflisten aller laufenden Instanzen.
Host ~$ kvm list
[bearbeiten] debug
Ausgabe von Debugging-Informationen einer laufenden Instanz.
Host ~$ kvm debug [--all] [-n name] [-p pid]
Allgemeine Optionen
-a, --all
Debuggen aller Instanzen.
-n, --name name
Name der Instanz.
-p, --pid n
PID der Instanz.
[bearbeiten] balloon
Vergrößert oder verkleinert das virtio-Ballooning.
Host ~$ kvm balloon [-n name] [-p pid] [-i amount] [-d amount]
Instanz-Optionen
-n, --name name
Name der Instanz
-p, --pid n
PID der Instanz
Balloon Optionen
-i, --inflate n
Vergrößerungsbetrag.
-d, --deflate n
Verkleinerungsbetrag.
[bearbeiten] stop
Stoppt eine laufende Instanz.
Host ~$ kvm stop [--all] [-n name] [-p pid]
Allgemeine Optionen
-a, --all
Stoppen aller Instanzen.
-n, --name name
Name der Instanz.
-p, --pid n
PID der Instanz.
[bearbeiten] stat
Anzeige von Statistiken einer laufenden Instanz.
Host ~$ kvm stat [command] [--all] [-n name] [-p pid]
Befehlsoptionen
-m, --memory
Anzeige der Speicher-Statistiken.
Instanz-Optionen
-a, --all
Alle Instanzen.
-n, --name name
Name der Instanz.
-p, --pid n
PID der Instanz.