Wechseln zu: Navigation, Inhalt, Suche

Permalink

1

HowTo: JeOS (Ubuntu-Server) in QEMU mit TUN/TAP-Network-Interface installieren und automatisch starten

QEMU ist ein freier Emulator und Virtualisierer, der das parallele Betreiben anderer Betriebssysteme ohne Neustart erlaubt. Dies ist vorallem sinnvoll, um Testumgebungen für andere Betriebssysteme einzurichten oder um die Hardware des Hosts besser auszunutzen.

Ubuntu Home-Server

Als Erstes installieren wir das qemu-Paket

KQEMU

Zum Virtualisierer wird QEMU allerdings erst mit dem Beschleuniger KQEMU. Dadurch wird der Prozessor nicht emuliert, stattdessen werden die Befehle des Gasts direkt auf dem Prozessor des Hosts ausgeführt (wie bei VMware). Der Gast läuft dadurch schneller.

Die kqemu-Pakete installieren

Berechtigungen setzen

KVM

Unterstützt der Prozessor des Hosts Hardwarevirtualisierung, kann das Kernelmodul kvm genutzt werden. Eine Installation von kqemu ist dann nicht notwendig. Die virtuelle Maschine läuft dann fast mit der Geschwindigkeit des Hosts.
Um herauszufinden, ob der Prozessor Hardwarevirtualisierung unterstützt, muss man in der Datei /proc/cpuinfo schauen, ob dort unter flags entweder der Eintrag vmx oder svm vorhanden ist. Schneller geht dies mit folgendem Befehl

Wenn der Prozessor Hardwarevirtualisierung unterstützt, werden die beiden benötigten Kernel-Module normalerweise automatisch geladen. Dies kann man mit folgendem Befehl prüfen

Die Ausgabe sollte dann so aussehen

Sollten die Module nicht geladen sein, so muss man dies von Hand nachholen.

Wichtig: Manchmal muss man die Hardwarevirtualisierung im BIOS erst aktivieren. Außerdem muss der aktuelle Benutzer Mitglied der Gruppe „kvm“ sein.

Festplatten-Images

Im Home-Verzeichnis einen Ordner für die Festplatten-Images anlegen

Ein dynamisch wachsendes Image erstellen

Wichtig: Wenn KVM verwendet wird muss statt qemu [options] [disk_image] einfach nur kvm [options] [disk_image] benutzt werden.

Den Gast das erste Mal starten und dabei das Festplatten-Image Ubuntu-Server.img und das CD-Image ubuntu-8.10-server-i386.iso einbinden, von CD starten und den Bildschirm per VNC bereitstellen

Die virtuelle Maschine ist danach über einen VNC-Client via Port 5901 (5900 + Displaynummer) erreichbar.

Da die IP-Adresse des Rechners, auf dem der Gast läuft bei mir 192.168.178.150 ist, lautet der Befehl wiefolgt

JeOS (Ubuntu-Server)-Installation

JeOS Installation (01): Language

JeOS Installation (01): Language

JeOS ist eine Ubuntu-Variante, die für den Einsatz in virtuellen Maschinen optimiert ist.
Im Boot-Menü F4 drücken und die Option „Eine minimale virtuelle Maschine installieren“ auswählen.

JeOS Installation (02): Optionen

JeOS Installation (02): Optionen

Danach wie gewohnt installieren und beim Punkt „Software auswählen und installieren„, Automatische Updates aktivieren

JeOS Installation (03): Automatische Updates

JeOS Installation (03): Automatische Updates

Bei „Softwareauswahl“ habe ich „Basic Ubuntu server„, „LAMP server“ und „OpenSSH server“ installiert

JeOS Installation (04): Software Auswahl

JeOS Installation (04): Software Auswahl

Das MySQL-Passwort setzen

JeOS Installation (05): MySQL-Passwort

JeOS Installation (05): MySQL-Passwort

Nachdem die Installation abgeschlossen ist, muss die Maschine neugestartet werden, was allerdings zunächst nicht klappt. Deswegen muss man an der Konsole, an der man den Gast gestartet hat, den Prozess mit Strg+C schließen.

Danach startet man die virtuelle Maschine neu, allerdings diesmal ohne CD-Image

Man sollte sich nachdem der Gast hochgefahren ist anmelden und erstmal die aktuellen Updates installieren

Bridging

Bridging ist eine Technik, mit der man zwei Netzwerken zusammenschließen kann. Diese Technik wird hier genutzt, um dem Gast einen uneingeschränkten Netzwerkzugang zur Verfügung zu stellen. Auf die virtuellen Maschinen kann so auch von ausserhalb des Hosts zugeriffen werden.

Dazu wird als erstes auf dem Host das Paket bridge-utils mit dem Virtuelle Bridges erzeugt werden können.

Mit dem Programm brctl prüfen, ob schon Bridges existieren

Sollte eine Bridge vorhanden sein, kann diese mit folgendem Befehl gelöscht werden.

Als Nächstes legen wir eine neue Bridge an

Prüfen, ob die Bridge angelegt wurde

Im diesem Beispiel sollen die TUN/TAP-Network-Interfaces zweier virtueller Maschinen an die angelegte Bridge angeschlossen werden. Damit können die virtuellen Maschinen an das Netzwerk Host-Rechners verbunden werden. Die Adresse dieses Netzwerkes ist hier 192.168.1.0.

Zuerst wird der noch laufende Gast per VNC heruntergefahren

Als nächstes wird er mit TUN/TAP-Network-Interface auf dem Host neugestartet
qemu /home/benutzername/qemu-images/Ubuntu-Server.img -net nic -net tap -vnc :1

Dabei wird im Host-System die virtuelle Netzwerk-Schnittstelle tap0 angelegt. Dies kann mit dem Befehl ifconfig auf dem Host überprüft werden.

Die IP-Adresse der virtuellen Netzwerk-Schnittstelle muss auf dem Host gelöscht werden

Als Nächstes wir die virtuelle Netzwerk-Schnittstelle der Bridge bri0 zugeordnet

Die Zuordnung überprüfen

Die Bridge erhält nun eine freie IP-Adresse im Netzwerk des Hosts

Nun kann im Gast per VNC eine freie IP-Adressen des Host-Netzwerkes zugeordnet werden

Anschließend wird der Netzwerkdienst des Gasts neugestartet

Damit auch die Netzwerkkarte des Host-Systems an die Bridge angeschlossen ist, wird die alte IP-Adresse gelöscht und anschließend das Netzwerk-Interface des Hosts der Bridge zugeordnet

Damit die Bridge auch nach einem Neustart zur Verfügung steht, wird die Netzwerk-Konfiguration des Hosts angepasst

Falls keine statische IP-Adresse sondern eine des DHCP-Servers zugewiesen werden soll, muss diese Konfiguration verwendet werden:

Anschließend wird der Netzwerkdienst neugestartet

SSH-Zugang konfigurieren

Man sollte sich nun mit der dem Gast zugewiesenen IP-Adresse 192.168.178.151 dort anmelden können

Zunächst fahren wir den Gast aber per SSH herunter

Der Server kann nun ohne grafische Ausgabe gestartet werden, da er per SSH erreichbar ist, zusätzlich wir der Arbeitsspeicher des Gastes auf 192 MB erhöht (Voreinstellung: 128 MB)

Nach dem Startvorgang erneut am Gast anmelden

Es empfiehlt sich den OpenSSH-Server noch weiter abzusichern (mit Authentifizierung über öffentliche Schlüssel), wie hier beschrieben.

QEMU in den Systemstart einbinden

Um die virtuellen Maschinen nicht jedes mal von Hand starten zu müssen, empfiehlt es sich ein Start-Skript zu verwenden. Normalerweise reicht es aus folgende Zeilen der Datei /etc/rc.local vor dem Eintrag exit 0 hinzuzufügen.

Dies startet 2 virtuelle Maschinen mit einem Abstand von 2 Sekunden. Das & bewirkt, dass der Prozess im Hintergrund abläuft und nicht die Konsole blockiert.

Links

1 Kommentar

  1. Pingback: Getrennte IPs pro VM - Linux: Linux-Forum

Schreibe einen Kommentar

Pflichtfelder sind mit * markiert. Bitte beachten Sie meine Datenschutzerklärung.