OpenVZ und der geteilte Kernel
Es ist keineswegs zwingend notwendig, einen kompletten PC zu virtualisieren, wenn mehrere virtuelle Debian-Rechner den gleichen Kernel wie das Gastsystem verwenden sollen. In diesem Fall können Sie OpenVZ einsetzen. Es verwendet eine gepatchte Version des Kernels. Dieser ist darauf vorbereitet, von mehreren Hosts genutzt zu werden. Für die Steuerung der virtuellen Maschinen wird das Programmpaket vzctl verwendet:# apt-get install vzctl
Kernelvorbereitungen
Bevor Sie OpenVZ einsetzen, müssen Sie zunächst einen Kernel installieren, der darauf vorbereitet ist. Je nachdem, ob Sie ein 64- oder 32-Bit-System verwenden, lautet der Befehl zur Installation:# apt-get install linux-image-openvz-amd64 # apt-get install linux-image-openvz-686Wie immer nach der Installation eines neuen Kernels empfiehlt es sich, den Rechner neu zu starten. Nach dem Neustart testen Sie mit ps, ob OpenVZ läuft, und mit ifconfig, ob die virtuelle Netzwerkschnittstelle venet0 exisitiert:
# ps -ef | grep vz root 2592 2 0 17:10 ? 00:00:00 [vzmond] # ifconfig venet0 venet0 Link encap:UNSPEC Hardware Adresse 00-00-00-0...
Templates und debootstrap
Für den Start benötigt die virtuelle Maschine ein Template. Sie finden vorbereitete Templates auf der OpenVZ-Website unter der folgenden URL zum Download: http://wiki.openvz.org/Download/template/precreated Alternativ können Sie sich ein eigenes Template erstellen. Das Vorgehen wird in der dem Paket beiliegenden Dokumentation in der Datei /usr/share/doc/vzctl/README.Debian.gz beschrieben. Dazu benötigen Sie das Programm debootstrap, das mit dem folgenden Befehl installiert wird:# apt-get install debootstrapDas Programm baut über das Internet eine startbare Linux-Installation zusammen. Der folgende Befehl erstellt für die 64-Bit-Architektur eine Debian-Version im Verzeichnis /var/lib/vz/private/100 aus den Ressourcen, die das Programm auf der Website http://ftp.uk.debian.org/debian findet. Je nach Geschwindigkeit Ihres Internetanschlusses dauert dieser Vorgang ein Weilchen. Der folgende Befehl wird normalerweise in einer Zeile gesetzt, wird hier allerdings aus drucktechnischen Gründen durch den Einsatz eines Backslashs umbrochen.
# debootstrap --arch amd64 linuxsrv \ /var/lib/vz/private/100 \ http://ftp.de.debian.org/debianDie Zahl 100 im Pfad ist die Nummer der virtuellen Gastmaschine. Sie wird im Folgenden immer wieder benutzt, um die virtuelle Maschine zu konfigurieren, zu starten, zu betreten und zu stoppen. Wenn Sie mehrere Maschinen einrichten, muss jede eine eindeutige Nummer über 100 haben.
Basiskonfiguration
Der folgende Befehl richtet eine Basiskonfiguration für den Container ein. Der Befehl echo sorgt dafür, dass als Template ein Debian in die Konfigurationsdatei geschrieben wird. Sie könnten dies natürlich auch mit einem Editor tun.# vzctl set 100 --applyconfig basic --save # echo "OSTEMPLATE=debian" >> /etc/vz/conf/100.confDer Container soll den Hostnamen vzlinuxsrv erhalten. Die Domäne ist wie hier im Buch üblich willemer.edu. Ich bin sicher, Sie finden passendere Namen für Ihre Umgebung.
# vzctl set 100 --hostname vzlinuxsrv --save # echo vzlinuxsrv.willemer.edu \ > /var/lib/vz/private/100/etc/mailnameAuf die gleiche Weise können dem Container eine IP-Adresse und der zuständige DNS-Server mitgeteilt werden:
# vzctl set 100 --ipadd 192.168.109.191 --save # vzctl set 100 --nameserver 192.168.109.199 --save
Durchstarten
Nun sollte alles bereit sein, um die Maschine zu starten.# vzctl start 100 Starting container ... Initializing quota ... Container is mounted Adding IP address(es): 192.168.109.191 Setting CPU units: 1000 Set hostname: vzlinuxsrv File resolv.conf was modified Container start in progress... #Mit dem Befehl vzctl enter können Sie einen Container betreten. Die folgende Abfolge von Befehlen zeigt dies. Mit den Befehlen df und free wird gezeigt, wie der Container von innen aussieht. Sie können ihn durch einen normalen Logout verlassen. Mit dem Befehl vzctl stop wird der Container 100 wieder heruntergefahren.
# vzctl enter 100 entered into CT 100 root@vzlinuxsrv:/# df Filesystem 1K-blocks Used Available Use% Mounted on /dev/simfs 1048576 219952 828624 21% / tmpfs 131072 0 131072 0% /lib/init/rw tmpfs 131072 0 131072 0% /dev/shm root@vzlinuxsrv:/# free total used free shared buffers cached Mem: 262144 29668 232476 0 0 0 -/+ buffers/cache: 29668 232476 Swap: 0 0 0 root@vzlinuxsrv:/# logout exited from CT 100 # vzctl stop 100 Stopping container ... Container was stopped Container is unmountedWie Sie bereits zuvor gesehen haben, verwendet die Maschine 100 die Konfigurationsdatei /etc/vz/conf/100.conf. Jede Maschine besitzt also ihre eigene Konfiguration.