Virtualisierung

Aus Tuxfutter

Wechseln zu: Navigation, Suche

In Zeiten steigender Strompreise ist Virtualisierung, besonders in Rechenzentren, sehr wichtig geworden. Aber auch im Heimbereich lohnt es sich, sich mit Virtualisierung zu beschäftigen.

Im Folgenden werden Arten der Virtualisierung an Hand von verschiedenen, praktischen Beispielen vorgestellt, die zum Nachmachen und Ausprobieren empfohlen sind.

Für weitergehende Informationen zu einer Virtualisierungssoftware sei auf die jeweils verlinkten Artikel hingewiesen.

Inhaltsverzeichnis

[Bearbeiten] Arten der Virtualisierung

Bevor man etwas virtualisieren will, muss man zunächst einmal überlegen, was das Ziel ist:

  • Virtualisierung eines Computers
  • Virtualisierung einer (Linux) Distribution

[Bearbeiten] Virtualisierung eines Computers

Hierbei wird durch eine Software ein Computer emuliert. Das heisst, die Software stellt einen Computer mit BIOS, Festplatte(n), CD-ROM(s), Netzwerk und ggf. auch USB zur Verfügung. Dazu kann (teilweise) die Hardware des eigenen Computers (meistens Host genannt) durch den emulierten Computer (meistens Gast genannt) verwendet werden.

Festplatten können meistens auch durch Dateien, die auf dem Host liegen, emuliert werden. Werkzeuge der Virtualisierungssoftware helfen beim Einrichten der Festplatte.

[Bearbeiten] Virtualisierung einer Distribution

Hierbei wird auf dem Hostsystem ein Verzeichnis eingerichtet, in dem die Dateien einer Distribution liegen. Dazu gehören auch die Startskripte des Systems.

Die Virtualisierungssoftware bootet den Gast, der die Hardware und den Betriebssystemkern des Hostcomputers verwendet. Nach dem Systemstart steht auch in solchen Gastsystemen ein komplettes System zur Verfügung; der Nutzer merkt kaum, dass er in einer virtualisierten Umgebung arbeitet.

[Bearbeiten] Virtualisierung unter Linux

Heutige Linux-Distributionen bringen bereits von Haus aus Virtualisierungslösungen mit.

Dabei handelt es sich überwiegend um die Emulation eines Computers, zum Beispiel eines IBM kompatiblen Gerätes, aber auch nicht mehr im Handel erhältliche Geräte, wie zum Beispiel dem VC 20 oder CBM 8032 von Commodore.

Normalerweise - und da soll auch der Schwerpunkt dieses Artikels liegen - wird ein handelsüblicher PC emuliert.

[Bearbeiten] OpenVZ

OpenVZ ist eine Virtualisierungslösung, die auf dem kommerziellen Virtuozzo basiert.

Die Gastsysteme (virtuelle Server, oder vServer genannt) nutzen alle den Kernel des Hostsystemes. Für das Netzwerk wird ebenfalls eine im Hostsystem eingebaute Karte verwendet und durch Treiber virtualisiert.

Nach der Installation des angepassten Kernels, den man von der OpenVZ Webseite erhält, müssen noch verschiedene Programme installiert werden, die dazu nötig sind, die virtuellen Server zu steuern.

Die Server selbst werden unter OpenVZ aus sog. Templates (Schablonen) erstellt. Diese können von der Webseite von OpenVZ heruntergeladen, oder selbst erstellt werden. Die Templatedateien selbst sind mit gzip gepackte Tarballs.

[Bearbeiten] Installation unter Debian

Unter Debian erweitere man die /etc/apt/sources.list:

deb http://download.openvz.org/debian-systs/ etch openvz
deb-src http://download.openvz.org/debian-systs/ etch openvz

Danach wird per aptitude update die Datenbank von aptitude aktualisiert. Der neue Kernel kann per aptitude install linux-image-2.6.18-14-fza-686 (genauen Namen bitte per aptitude search fza ovz ermitteln) installiert werden.
Hinweis: Es gibt einen Kernel fza und ovz! Der Unterschied:

  • fza: Benutzt die originale Debiankonfiguration für den Kernel plus OpenVZ
  • ovz: Benutzt eine Kernelkonfiguration von OpenVZ.org

Sollte also ein Kernel Probleme bereiten, kann man diesen bequem austauschen.

Zusätzlich zum Kernel benötigt man noch die OpenVZ-Software:

  • vzctl (sehr wichtig!)
  • vzdump (optional)
  • vzprocps (optional)
  • vzquota (optional)

Nach einem Neustart sollte sich ein uname -r in etwa folgendes Bild ergeben:

2.6.18-14-fza-686

Damit ist die Installation abgeschlossen und es können vServer eingerichtet werden.

[Bearbeiten] Einrichten von virtuellen Servern

Ein vServer von OpenVZ läuft in einem Debian, das unter QEMU gestartet wurde
Ein vServer von OpenVZ läuft in einem Debian, das unter QEMU gestartet wurde

Zu Übungszwecken kann man sich von der OpenVZ Webseite vorgefertigte Templates herunterladen. Unter Debian kann dies auch per aptitude geschehen:

aptitude install vzctl-ostmpl-debian-5.0-i386-minimal

Das Template landet in /vz/template/cache/.

Ein Server wird nun per

vzctl create 1001 --ostemplate vzctl-ostmpl-debian-5.0-i386-minimal

erstellt. Die 1001 ist eine Server-ID, die vom Administrator individuell vergeben wird. Dieser vServer hat zur Zeit keine IP-Adresse und keinen Hostnamen. Gestartet wird der Server per

vzctl start 1001

Analog kann per

vzctl stop 1001

der vServer wieder beendet werden.

Da der Server zur Zeit kein Netzwerk hat, muss man den Hintereingang verwenden, um den vServer benutzen zu können. Natürlich ist dieser Eingang nur dem Benutzer root auf dem Hostsystem zugänglich:

vzctl enter 1001

Siehe auch das Bild.

[Bearbeiten] QEMU

QEMU ist ein PC-Emulator, der bei allen modernen Linux-Distributionen dabei sein sollte.

Mit Hilfe dieser Virtualisierungssoftware können auf einem Linuxrechner mehrere Computer unterschiedlicher Betriebssysteme laufen. Die Festplatte wird bei Qemu über eine vorher anzulegende Datei bereitgestellt.

Der Nachteil von QEMU ist die Erreichbarkeit von aussen. So ist zum Beispiel ein im Gastsystem laufender ssh-Dienst nur über Portweiterleitung erreichbar. Für den Heimgebrauch ist aber QEMU durchaus eine sehr nützliche Software, um zum Beispiel eine neue Linuxversion auszuprobieren, oder um sicher im WWW auch mit Windows surfen zu können.

Zunächst aber benötigt man eine Festplatte:

qemu-img create festplatte.disc 10G

erstellt eine 10 GB grosse Festplattendatei mit dem Namen festplatte.disc.

QEMU während Debian-Installation
QEMU während Debian-Installation

Um nun ein Linux auf dieser Festplatte zu installieren, genügt es, ein Image (ISO-Datei) herunterzuladen. Dieses Image wird als CD-ROM an qemu weitergegeben. Nehmen wir einmal an, das Image heisst RedHat.iso, dann wird qemu so gestartet, dass das System von der CD bootet, um RedHat Linux zu installieren (natürlich brauchen wir auch die oben erzeugte Festplatte):

qemu -hda festplatte.disc -cdrom RedHat.iso -boot d

-boot d bedeutet: "Boote von der CD". Analog bedeutet -boot c: "Boote von der ersten Festplatte".

Je nach CPU und vorhandenem RAM des Hostsystems dauert die Installation mehr oder weniger lang.

Benötigt man noch eine Netzwerkverbindung im Gastsystem, wird qemu per

qemu -net user -net nic -hda festplatte.disc -boot c

gestartet. Die IP-Adresse wird per internem DHCP-Server von QEMU bereitgestellt und über eine im Hostsystem vorhandene Netzwerkverbindung gebridget.

'Persönliche Werkzeuge