Nachdem ich im letzten Blogeintrag die Vorteile der Virtualisierung für mich und die Entscheidungsgründe für vServer beschrieben habe, geht es in diesem Blogeintrag um die Installation, Einrichtung und Inbetriebnahme von vServer.
Installation
Es gibt zwei Möglichkeiten, vServer zu installieren:
- Einspielen der Debian vServer-Pakete mit apt-get oder aptitude
- Kompilieren eines eigenen Kernels mit vServer-Unterstützung
Standard Debian-vServer-Kernel
Die 1. Variante ist in wenigen Schritten erledigt:
# Installation des aktuellen Kernels
# mit vServer-Unterstützung und der
# Userspace-Verwaltungsprogramme
apt-get install linux-image-vserver-686 util-vserver \
vserver-debiantools
Wenn der vServer-Kernel standardmäßig beim Booten gestartet werden soll, dann muss in der GRUB-Konfigurationsdatei /etc/grub/menu.lst noch der Standardkernel geändert werden.
Kompilieren eines Vanilla-Kernels mit vServer-Unterstützung
Diese Vorgehensweise empfehle ich nur Linux-Anwendern, die sich die Übersetzung eines eigenen Kernels zutrauen und sich auf der Shell einigermaßen gut auskennen.
Zuerst muss der aktuellste Kernel von der Seite http://www.de.kernel.org/pub/linux/kernel/v2.6/ heruntergeladen werden.
Zum jetzigen Zeitpunkt ist dort die Version 2.6.22.1 aktuell.
Passend zum aktuellen Kernel muss von http://linux-vserver.org/Welcome_to_Linux-VServer.org ein passender vServer-Patch heruntergeladen werden.
Von der Bezeichnung "Latest Prepatch" sollte man sich übrigens nicht verunsichern lassen. Die zur Verfügung gestellten Patche sind stabil und machen im Normalfall keine Probleme. Der momentan aktuelle Patch für den Kernel 2.6.22.1 steht in der Version vs2.2.0.1-rc1 zur Verfügung.
Zur Konfigurierung des Kernels schreibe ich später einen eigenen Blogeintrag.
Die Datei mit den Kernel-Sourcen muss nun in das Verzeichnis /usr/src kopiert und dort wie folgt entpackt werden
# Bzip2-Archiv entpacken
bunzip2 linux-2.6.22.1.tar.bz2# Tar-Archiv mit Unterverzeichnissen und Dateien entpacken
tar xvf linux-2.6.22.1.tar
apt-get install bzip2
Hinweis:
bzip2 ist bei einer minimalen Debian-Netzinstallation nicht installiert. Es muss mit apt-get install bzip2 zuerst in stalliert werden.
apt-get install bzip2
Ich persönlich benenne jetzt den Kernel-Source-Ordner noch nach linux um.
Nun muss der vServer-Patch noch eingespielt werden. Dazu muss die Datei patch-2.6.22.1-vs2.2.0.1-rc1.diff in das Verzeichnis /usr/src kopiert werden. Nun wechselt man in das Kernel-Source-Verzeichnis und ruft folgendes Kommando auf:
# Patcht die vServer-Erweiterung in den Kernel
cat ../patch-2.6.17.13-vs2.0.2.1.diff | patch -p1
Hinweis:
Das Kommando zcat oder ein Packprogramm muss in diesem Fall nicht verwendet werden, da die Patchdatei unkomprimiert vorliegt.
Jetzt kann der Kernel entweder mittels einer alten Konfigurationsdatei kompiliert werden – dazu muss die alte Konfigurationsdatei .config in das Kernel-Source-Verzeichnis kopiert und make oldconfig aufgerufen werden. Für eine neue Kernelkonfiguration sind die vServer-Module bereits sinnvoll vorkonfiguriert. Ich habe an den Einstellungen nichts mehr verändert. Näheres zu den Einstellungsmöglichkeiten findet sich unter: http://linux-vserver.org/Installation_on_Linux_2.6
Nach dem Einrichten des neuen Kernels (initramdisk, Grub-Anpassung) sollte der neue Kernel mit der vServer-Unterstützung neugestartet werden.
Erzeugung einer vServer-Instanz
Eine neue vServer-Instanz ist neu eingerichtet. Mit folgendem Kommando wird eine neue Instanz mit dem Namen vserver-mld erzeugt. Die einzelnen Optionen werden im folgenden beschrieben.
newvserver –vsroot /var/lib/vservers/ –hostname vserver-mld –domain local –ip 192.168.178.188/24 –dist etch –mirror http://ftp.de.debian.org/debian –interface eth0
Mit dem Parameter –vsroot wird der Installationspfad für die Instanz festgelegt. Dort sollte je nach verwendeter Distribution genügend Platz verfügbar sein. Es bietet sich an, für das Verzeichnis /var eine eigene Partition einzurichten, da in einer vServer-Instanz ja auch meist Nutzdaten abgelegt werden.
–hostname gibt den Namen der Instanz an, unter der sie auch vom Wirtsrechner aus angesprochen werden kann.
–domain gibt den Domainnamen an. local ist für ein lokales Netz keine schlechte Idee.
Mit –ip wird die IP-Adresse und das Netz in der CIDR-Notation angegeben. Wie am Beispiel zu erkennen, bin ich ein FritzBox-Nutzer…
Mit –dist wird die Debian-Version festgelegt, die mittels debootstrap heruntergeladen und installiert wird. Für ein stabiles System bietet sich momentan Etch an.
–mirror gestattet es, einen beliebigen offiziellen Debian-Mirror anzugeben, der für den Download der Debian-Distribution verwendet wird. Es ist nicht verkehrt, hier den dt. Debian-Mirror-Server zu nehmen.
–interface legt schließlich fest, welche physikalisches Netzwerkinterface für die virtuelle IP-Adresse verwendet wird. In meinem Fall ist eth0 die Verbindung zum Switch der FritzBox. Somit hat die vServer-Instanz Zugriff auf das Internet, was für Updates sinnvoll ist. Für die FritzBox verhält sich die virtuelle IP-Adresse wie ein normaler PC. D.h. sollen Dienste auf dem vServer von außen zugreifbar sein, müssen für die virtuelle IP-Adresse die benötigten Ports auf dem Router an den vServer weitergeleitet werden.
Sicherheitskontext setzen:
Für jede vServer-Instanz muss ein sog. Sicherheitskontext gesetzt werden. Dies ist eine beliebige Ziffer, die bei jeder vServer-Instanz unterschiedlich sein muss. Im folgenden Beispielt wird der Sicherheitskontext 100 für den vServer vserver-mld gesetzt.
# Sicherheitskontext setzen
echo 100 > /etc/vservers/vserver-mld/context
Automatisches Starten beim Starten des Wirt-PCs:
Mit folgendem Kommando wird der vServer vserver-mld bei jedem Start des Wirt-PCs automatisch gestartet und beim Herunterfahren gestoppt:
# vServer beim Booten starten
echo "default" > /etc/vservers/vserver-mld/apps/init/mark
Manuelles Starten und "Betreten" einer vServer-Instanz:
Mit folgendem Kommando wird der vServer manuell gestartet und gleichzeitig die Konsole auf ihn umgeschaltet.
vserver verver-mld start; vserver vserver-mld enter
Mit exit kann die vServer-Konsole wieder verlassen werden.
Manuelles Stoppen einer vServer-Instanz:
vserver vserver-mld stop
Anpassen der Debian-Installation:
Nach dem Starten der vServer-Instanz müssen noch ein paar Dinge der jungfräulichen Debian-Installation angepasst werden.
Es sollten folgende Pakete nachinstalliert werden, sollten sie noch nicht installiert sein:
apt-get install ssh vim screen language-pack-de
Evtl. kann es notwendig sein, den Zeichensatz neu zu konfigurieren, wenn nach dem Login Probleme mit den Locales angezeigt werden.
# Zeichensatz rekonfigurieren
dpkg-reconfigure locales
Wird SSH eingesetzt, und soll sich root über das Netzwerk anmelden dürfen, so muss unbedingt für den Benutzer root ein neues Passwort vergeben werden, was mit folgendem Aufruf möglich ist:
# Root-Password vergeben
passwd root
Hinweis zum Schluss:
Auch bei mehreren vServer-Instanzen sollte jede einzelne Instanz regelmäßg mit apt-get update und apt-get-upgrade auf Updates überprüft werden!









