OpenVZ
Archivierte Anleitung
Dieser Artikel wurde archiviert. Das bedeutet, dass er nicht mehr auf Richtigkeit überprüft oder anderweitig gepflegt wird. Der Inhalt wurde für keine aktuell unterstützte Ubuntu-Version getestet. Wenn du Gründe für eine Wiederherstellung siehst, melde dich bitte in der Diskussion zum Artikel. Bis dahin bleibt die Seite für weitere Änderungen gesperrt.
Artikel für fortgeschrittene Anwender
Dieser Artikel erfordert mehr Erfahrung im Umgang mit Linux und ist daher nur für fortgeschrittene Benutzer gedacht.
Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:
OpenVZ ist eine Virtualisierungslösung auf Kernel-Ebene. Das heißt, statt eines kompletten Systems samt Hardware wird lediglich das Betriebssystem virtualisiert. Dieser Artikel geht auf die Installation und grundsätzliche Konfiguration einer virtuellen Maschine (VE = Virtual Enviroment) mit OpenVZ unter Ubuntu 8.04 Hardy Heron ein. Sowohl frühere als auch neuere Ubuntu Versionen werden nicht behandelt, da der OpenVZ-Kernel lediglich bei Hardy in den Quellen ist.
Vor- und Nachteile von OpenVZ¶
Im Vergleich zu den hardwarebasierenden Virtualisierungslösungen wie z.B. VirtualBox, KVM/QEMU oder XEN wird dem virtualisierten System bei OpenVZ keine Hardware vorgegaukelt, sondern nur ein Betriebssystem emuliert, was den gleichen Kernel wie das Hostsystem verwendet. Die Vorteile dieser Lösung sind:
Einfachere (und schnellere) Installation
Einfachere Wartbarkeit
höhere Geschwindigkeit
weniger Overhead
Der größte Nachteil ist die geringere Flexibilität, da die Gastsysteme den gleichen Kernel verwenden müssen wie das Hostsystem. Außerdem ist das Aufsetzen eines graphischen Systems nicht ohne weiteres möglich. Der Zugriff vom Hostsystem aus erfolgt in erster Linie über die Kommandozeile, es können aber natürlich Funktionen wie SSH oder VNC verwendet werden um doch grafischen Zugriff zu bekommen.
Kein wirklicher Nachteil aber in gewisser Hinsicht eine Einschränkung ist, dass OpenVZ über die Quellen nur für Ubuntu 8.04 LTS verfügbar ist.
Installation¶
Folgende Pakete werden zum Betrieb von OpenVZ benötigt [1]:
linux-openvz - Metapaket, installiert automatisch den neusten freigegebenen OpenVZ-Kernel (multiverse [2])
linux-image-openvz (universe)
vzctl (universe)
Je nachdem welche Kernel-Module verwendet werden oder ob die Header zum Kompilieren von Modulen erforderlich sind, müssen auch noch diese Pakete installiert werden:
linux-headers-openvz
linux-restricted-modules-openvz (multiverse)
linux-backport-modules-hardy-openvz (universe)
Dadurch wird der OpenVZ-Kernel installiert und in Archiv/GRUB eingetragen, standardmäßig an der Stelle über dem generic-Kernel. Nun muss das System neu gestartet werden und beim Neustart in Grub der OpenVZ-Kernel ausgewählt werden (falls das nicht schon der Fall ist).
Achtung!
Werden Grafiktreiber verwendet, die nicht in den Modulen enthalten sind (z.B. fglxr oder nvidia), funktioniert die Grafikausgabe möglicherweise beim Neustart nicht oder nur eingeschränkt. Daher VOR dem Neustart in der xorg.conf einen sicheren Grafiktreiber einstellen (notfalls MESA) und den Grafiktreiber nach dem Neustart für diesen Kernel installieren.
Konfiguration¶
Damit die VEs am Ende Netzwerkzugang haben, müssen ein paar Einstellungen in der Systemkonfiguration vorgenommen werden. Hierfür bitte mit einem Editor [4] die Datei /etc/sysctl.conf öffnen und folgende Variablen ändern bzw. einfügen:
# Aktiviert im Hostsystem Paketweiterleitung für IPv4 um die VEs ans Netz anzubinden net.ipv4.conf.default.forwarding=1 net.ipv4.conf.default.proxy_arp = 0 net.ipv4.ip_forward=1 # Aktiviert eine Überprüfung der Quelle net.ipv4.conf.all.rp_filter = 1 # Aktiviert den ''magic-sysrq key'' kernel.sysrq = 1 # TCP Explict Congestion Notification #net.ipv4.tcp_ecn = 0 # Damit nicht alle Interfaces Weiterleitungen senden net.ipv4.conf.default.send_redirects = 1 net.ipv4.conf.all.send_redirects = 0
Jetzt die sysctl.conf noch neu laden:
sudo sysctl -p
Template herunterladen und installieren¶
Da OpenVZ kein komplettes System emuliert muss auch kein System im klassischen Sinne installiert werden. Stattdessen werden Templates verwendet, die entweder selbst erstellt werden oder einfach vorgefertigt heruntergeladen werden können. Auf die Erstellung eines eigenen Templates wird in diesem Artikel nicht eingegangen, mehr Informationen dazu gibt es z.B. hier 🇬🇧.
Vorgefertigte Templates (unter anderem auch mit der aktuellen Ubuntu Version) gibt es auf dieser Seite ⮷. Von dort einfach das gewünschte System-Template herunterladen und dann per
sudo cp /Pfad/zum/Template /var/lib/vz/template/cache
in den OpenVZ Template-Ordner kopieren (oder wahlweise verschieben).
VE installieren und starten¶
Jetzt kann die VE mit einem einfachen
sudo vzctl create <VEID> --ostemplate <Name des heruntergeladenen Templates OHNE Pfad und ''tar.gz''>
erstellt werden.
Die VEID ist eine eindeutige Zahl zur Identifizierung der VE, die größer als 100 sein sollte (also 101, 102 usw...).
Nun mit
sudo vzctl start <VEID>
die VE starten. Beendet wird über
sudo vzctl stop <VEID>
Betreten und verlassen¶
Ab jetzt kann die VE im Prinzip schon mit
sudo vzctl enter <VEID>
betreten und mit
exit
wieder verlassen werden. Allerdings ist ohne Netzwerkzugriff (und damit Internet) ein vernünftiges Arbeiten mit einem derart minimalen System kaum sinnvoll.
Netzwerkkonfiguration¶
OpenVZ erstellt auf dem Hostsystem automatisch ein virtuelles Interface das von den VEs genutzt wird. Die einfachste (und hier beschriebene Möglichkeit) ist den VEs einfach eine IP im lokalen (oder wahlweise auch einem Sub-) Netz und einen DNS-Server zuzuweisen. Exotischere Konfigurationen wie das Bridging und die IP-Zuweisung per DHCP werden hier 🇬🇧 beschrieben.
Der simple Weg geht folgendermaßen (alle Kommandos werden im Hostsystem ausgeführt):
Zuerst muss die VE gestoppt werden (siehe oben). Danach werden die grundlegenden Parameter der VE eingestellt.
Setzen eines Hostnamens in der VE
sudo vzctl set <VEID> --hostname <gewünscher Hostname> --save
Einstellen der IP-Adresse (sinnvollerweise die VEID der VE)
sudo vzctl set <VEID> --ipadd <gewünsche IP> --save
Einstellen des DNS-Servers (in einem lokalen Netz mit Router meist die IP des Routers
sudo vzctl set <VEID> --nameserver <IP des DNS-Servers> --save
Vergeben eines Namens zur einfacheren Verwaltung und zum Ansprechen der VE (z.B. email oder webserver)
sudo vzctl set <VEID> --name <gewünscher Name/NAME> --save
Wenn man jetzt die VE startet (vzctl enter <VEID|NAME>) und betritt sollte ein
ping www.ubuntuusers.de
eine bestehende Verbindung bezeugen.
Achtung!
Ab jetzt wird die VE bzw. die VEs bei jedem Start des Rechners hochgefahren. Wer das nicht möchte unterbindet es mit
sudo vzctl set <VEID|NAME> --onboot no --save
. Logischerweise führt ein --onboot yes
wieder zum automatischen Starten
Wartung¶
Einer der größten Vorteile von OpenVZ ist die einfache Wartung der VEs. Eine VE kann über Befehle vom Hostsystem gesteuert werden. Das ermöglicht ein einfaches Verwalten der VEs über Skripte, die vom Hostsystem ausgeführt werden. Hierfür genügt ein
sudo vzctl exec <auszuführender Befehl>
Snapshot¶
Ein Snapshot des aktuellen Stands der VE wird mit
sudo vzctl chkpnt <VEID|NAME> [--dumpfile <PFAD>]
erzeugt. Die Angabe von --dumpfile <PFAD>
ist optional. Wird es weggelassen, wird der Snapshot unter /var/lib/vz/dump/dump.<VEID> gespeichert.
Achtung!
Wird das Template von Hardy Heron verwendet kann es beim Snapshot zu einem Fehler ("Error: iptables-save exited with 255") kommen. Das hängt damit zusammen dass das minimale Ubuntu in diesem Template keine iptables verwendet, die Regeln aber vom Snapshot gespeichert werden sollen.
Der einfachste Weg den Fehler loszuwerden ist das Ausführen dieser Kommandos innerhalb der VE:
ln -sf /bin/true /sbin/iptables-save ln -sf /bin/true /sbin/iptables-restore
Snapshot wiederherstellen¶
Ein solcher Snapshot kann natürlich auch wiederhergestellt werden
sudo vzctl restore <VEID|NAME> [--dumpfile <PFAD>]
Löschen einer VE¶
sudo vzctl destroy [VEID|VENAME]
Überwachung¶
Das Auflisten der laufenden VEs geschieht mit
sudo vzlist
Ein angehängtes -a
listet alle VEs auf, auch die die nicht laufen.
Links¶
http://de.wikipedia.org/wiki/OpenVZ 🇩🇪 Wikipedia Artikel zum Thema
http://openvz.org/ 🇬🇧 Projektseite/-wiki
https://help.ubuntu.com/community/OpenVZ 🇬🇧 Englisches Ubuntu HowTo zu OpenVZ