Siduction virtualisieren mit KVM

Aus Siduction Wiki DE
Wechseln zu: Navigation, Suche

Begriffserklärung

KVM ist eine im Kernel integrierte Virtualisierungslösung ähnlich Virtualbox die reale Hardware emuliert und damit letztendlich ein komplettes PC-System in Software nachbilden kann. Deshalb können, soplange es die Ressourcen (RAM, Disk usw.) des Wirtsystems erlauben auch mehrere virtuelle Maschinen (Gäste) parallel gestartet werden. Es ist u.a. möglich komplette Netzwerke nachzubilden in denen die virtualisierten Gäste laufen. Standardmäßig besteht zwischen dem Wirt- und Gastsystem netzwerktechnisch oder über das Dateisystem keine Verbindung.

In diesem Artikel werden die ersten Schritte beschrieben wie man eine virtuelle Maschine (VM) erzeugt,installiert und startet.


Installation

Um den die Virtualisierungssoftware Qemu-KVM nutzen zu können müssen folgende Pakete installiert sein.

  • qemu-kvm
  • qemu-utils
# apt-get install qemu-kvm qemu-utils


Danach sollten die Kernelmodule von KVM laufen.

# lsmod | grep -i kvm
kvm_intel              44232  0 
kvm                   185259  1 kvm_intel


Image erzeugen

Um eine virtuelle Maschine aufzusetzen braucht man keine GUI, man kann alles via Kommandozeile erledigen. Im ersten Schritt erzeugt man eine sogenanntes Image, in dem später alle Informationen der virtuellen Maschine gespeichert werden. Diese ist anfänglich nur wenige Kilobyte groß. Sie wird mit Zeit natürlich größer bis zu einer Maximalgröße, die man bei der Erzeugung angegeben hat.

Syntax: qemu-img create -f qcow2 $DISKIMAGE $DISKSIZE

oder

Syntax: kvm-img create -f qcow2 $DISKIMAGE $DISKSIZE

  • -f qcow2 definiert das Format für das Image (hier das neue dynamische qcow2 Format)
  • $DISKIMAGE definiert den Name des zu erzeugenden Images
  • $DISKSIZE legt dir Größe des Images in MB oder GB fest

Beispiel:

$ qemu-img create -f qcow2 siduction.img 10G
$ kvm-img create -f qcow2 siduction.img 10G

funktioniert demzufolge auch.

ISO-Image starten

Im zweiten Schritt wird eine virtuelle Maschine mit dem Kommando kvm wie eine Live-CD, über das ISO-File, gestartet und hochgefahren, dabei wird das im ersten Schritt erzeuge Image quasi als leere Festplatte eingebunden.

Syntax:

kvm -hda $DISKIMGAGE -cdrom $ISOPATH/$ISOFILE -boot d -m $RAMSIZE

  • -hda $DISKIMGAGE definiert den Namen der Image-Datei
  • -cdrom $ISOPATH/$ISOFILE gibt Pfad und Name des ISO-Files an, für das eine virtuelle Maschine erzeugt werden soll
  • -boot d -diese Option definiert von welchen Device bzw. Image das Betriebssystem gestartet wird ("d" von CDROM)
  • -m $RAMSIZE legt die Hauptspeichergröße in MB fest

Beispiel:

$ kvm -hda siduction.img -cdrom ./siduction-12.2.0-ridersonthestorm-kde-amd64-201212092131.iso -boot d -m 1024

Anschließend wird wie bei einer realen Installation von dem als virtuelles CDROM eingebundenen ISO-File in die leere virtuelle Festplatte installiert. D.h. man installiert ganz normal mit dem siduction-Installer das System. Am Ende der Installation fährt man die VM herunter.

Virtuelle Maschine starten

Um das installierte virtualisierte siduction zu starten gibt auf der Kommandozeile folgendes Kommando ein.

Beispiel:

$ kvm -hda siduction.img -usb -rtc base=utc,clock=host -soundhw es1370 -m 1024
  • -hda $DISKIMAGE: Name der Imagedatei
  • -usb aktiviert die USB-Unterstützung
  • -rtc base=utc,clock=host übernimmt die Zeit (UTC) wird vom Wirtsystem
  • -soundhw es1370 emuliert eine es1370 als Soundhardware
  • -m $RAMSIZE definiert die Hauptspeichergröße in MB. Fehlt diese Angabe werden nur 128MB und damit zu wenig Speicher zugewiesen, was die virtuelle Maschine stark verlangsamt!

Nun wollen wir aber etwas mehr Performance aus der VM kitzeln, dazu benutzen wir virtio für Disk und Netz. Um das zu erreichen, hier ein Beispielaufruf:

$ QEMU_AUDIO_DRV=alsa kvm -name siduction \ 
-k de \
-drive if=virtio,boot=on,file=siduction.img,media=disk \
-net user,model=virtio \
-soundhw ac97 \
-usbdevice tablet \
-cpu host \
-m 1024

Die Erklärung:

  • -drive ist die bessere Variante anstatt -hda, da hier mehr Optionen mitgegeben werden können, zum Beispiel an welchem virtuellen Controller die Platte hängt, ob es eine Festplatte, Floppy oder ein optisches Laufwerk ist.
  • -k de lädt die deutsche Tastatur
  • -name siduction legt das Fenster auf den Namen siduction fest
  • -cpu host übernimmt als CPU dann die Kennung der Host-CPU
  • -usbdevice tablet aktiviert das absolute Zeigegerät, will heißen, die Maus wird nicht mehr vom Fenster der VM "gefangen".
  • -net user aktiviert den User Netzwerkstack, vergleichbar mit NAT von Virtualbox.
  • -soundhw ac97 emuliert einen Intel 82801AA AC'97 Soundchip als Soundhardware


QEMU_AUDIO_DRV=alsa: Sollte man immer dann machen, wenn man Probleme mit dem Sound im Gast hat.

Für Linux als Gast braucht man nichts weiter zu beachten, da virtio in allen aktuellen Linux Versionen im Kernel ist. Für Windows ist es nötig entspr. Treiber für virtio-blk und virtio-net herunterzuladen und zu installieren.

Am Einfachsten macht man sich das Arbeiten mit KVM, indem man sich ein Bash-Script für die jeweilige VM anlegt.

Fehlerbehebung

KVM kontra VBox

Ggf. kommt es bei einer unter VirtualBox laufenden VM und einer ebenfalls parallel gestarteten KVM VM zu Fehlern (selbst noch nicht getestet). Wenn dieser Fall eintritt bitte eine der beiden Virtualisierungumgebung stoppen.

Stop von Qemu-KVM

# /etc/init.d/qemu-kvm stop

Stop von VirtualBox

# /etc/init.d/vboxdrv stop


Meldungen beim Einhängen der Dateisysteme

Wenn beim Booten einer virtuellen Maschine (hier: siduction unter Qemu/KVM) eine Fehlermeldung während des Einhängen der Dateisysteme am Bildschirm erscheint.

Superblock last write time is in the future


Man kann feststellen das die Mountzeiten der Dateisysteme der realen Zeit hinterher hinken. Abhilfe schafft hier eine Einstellung in der Datei /etc/default/rcS. Die Variable UTC muss von NO auf YES gesetzt werden.

UTC=yes


Beim nächsten Bootvorgang ist die Fehlermeldung nicht mehr existent.

KVM per GUI

Es ist auch möglich KVM per GUI zu steuern. Erwähnt seien hier aqemu (ähnlich virtualbox) und virt-manager

Weiterführende Informationen

QEMU-KVM & LIBVIRT Qemu-Buch

linuxforen.de Qemu/KVM

Offizielles siduction-Handbuch [1]