Gentoo Linux-VServer Howto
1.
Einführung
Das Linux-VServer-Konzept
Das grundlegende Konzept der Linux-VServer-Lösung ist es, die Umgebung des
User-Space in verschiedene Einheiten aufzuteilen (manchmal auch Virtuelle
Private Server genannt), und zwar in einer Art und Weise, dass jeder VPS
für die darin enthaltenen Prozesse so aussieht und sich so anfühlt wie ein
realer Server.
Begriffe, die in diesem Howto verwendet werden
| Begriff |
Beschreibung |
| Linux-VServer, VServer |
Linux-VServer ist der offizielle Name des Projekts und wird in diesem
Howto so genutzt
|
| virtueller Server, vserver, Gastsystem |
Alle diese Begriffe sind austauschbar und beziehen sich auf eine Instanz
eines Servers (d.h. ein virtueller Server)
|
| Hostsystem, Host |
Die physische Maschine, die Ihr Gentoo Linux ausführt, wird alle virtuellen
Server hosten.
|
| util-vserver, vserver-Dienstprogramme |
Das util-vserver-Paket beinhaltet alle nötigen Programme, um Ihre
virtuellen Server zu warten.
|
2.
Konfiguration des Hosts
Einen VServer-Kernel installieren
Befehlsauflistung 2.1: Installieren der vserver-sources |
# emerge vserver-sources
|
Nach der Installation der vserver-sources, konfigurieren Sie diese mit Hilfe von
make menuconfig:
Befehlsauflistung 2.2: Konfigurieren der vserver-sources |
# cd /usr/src/linux-<KERNELVERSION>-vserver-<VSERVERVERSION>
# make menuconfig
Linux VServer --->
[] Enable Legacy Kernel API
[ ] Disable Legacy Networking Kernel API
[*] Enable Proc Security
[*] Enable Hard CPU Limits
Persistent Inode Context Tagging (UID24/GID24) --->
[ ] Tag NFSD User Auth and Files
[ ] Compile Debugging Code
|
Notiz:
Wenn sie als Dateisystem reiserfs einsetzen müssen sie die erweiterten
Attribute für reiserfs in ihrem Kernelkonfiguration aktivieren.
|
Befehlsauflistung 2.3: Reiserfs Optionen konfigurieren |
File systems -->
<*> Reiserfs support
[*] ReiserFS extended attributes
|
Zusätzlich müssen Sie die attrs Option für ihre VServer Partition in
ihrer /etc/fstab einstellen:
Befehlsauflistung 2.4: Beispiel fstab mit erweiterten Attributen |
/dev/hdb /vserver reiserfs noatime,attrs 0 0
|
Nachdem Sie den Kernel erstellt und installiert haben, aktualisieren Sie Ihren
Bootloader und rebooten letztlich, um zu sehen, ob der Kernel korrekt
startet.
Befehlsauflistung 2.5: Installieren des Kernels |
# make
# make modules_install
# cp arch/i386/boot/bzImage /boot/kernel-<KERNELVERSION>-vserver-<VSERVERVERSION>
# reboot
|
Einrichten der Host-Umgebung
Um Ihre virtuellen Server zu warten benötigen Sie das util-vserver-Paket,
welches alle nötigen Programme und viele nützliche Features beinhaltet.
Notiz:
Die Hilfsprogramme und Funktionen die in diesem Leitfaden verwendet werden
erfordern >=sys-apps/util-vserver-0.30.208-r3. Sie müssen dies unter
Umständen per Keyword erlauben.
|
Befehlsauflistung 2.6: Installieren der vserver-Dienstprogramme |
# emerge util-vserver
|
Sie müssen den vprocunhide Befehl nach jeden Neustart ausführen, damit
die /proc Berechtigungen korrekt für vserver gesetzt sind. Ein
Init-Skript wurde dafür von util-vserver installiert. Um es zu verwenden,
sollten Sie es zu einem Runlevel hinzufügen:
Befehlsauflistung 2.7: vprocunhide Init-Skript |
# rc-update add vservers default
# /etc/init.d/vservs start
|
Das vshelper-Skript wird benötigt, um virtuelle Server korrekt zu stoppen und
neu zu starten. Sie müssen dem Kernel mitteilen, wo das vshelper-Skript zu
finden ist:
Befehlsauflistung 2.8: vshelper-Einrichtung |
# echo 'kernel.vshelper = /usr/lib/util-vserver/vshelper' >> /etc/sysctl.conf
# sysctl -p
|
3.
Eine Gast-Template erstellen
Einen stage3 vserver installieren
Sie müssen ein als stage3 preparierten VServer von einem unserer
Mirrors
herunterladen. Diese Stages finden sie unter
experimental/<Arch>/vserver/. Benutzen sie dann das
vserver-new Skript um einen ersten Gast zu erstellen.
Sie müssen eine Context-ID für Ihren VServer wählen (von dynamische Context-IDs
wird abgeraten), ebenso wie die notwendigen Netzwerk-Informationen (in diesem
Beispiel ist eth0 auf 192.168.1.253/24 konfiguriert und die Context-ID ist
äquivalent zu den letzten beiden Teilen der IP des virtuellen Servers).
Befehlsauflistung 3.1: Starten der stage3 Installation |
# vserver-new gentoo-template \
--hostname gentoo \
--context 1253
--interface eth0:192.168.1.253/24 \
stage3 /path/to/stage3-tarball.tar.bz2
|
Notiz:
Um Ihre Netzwerkeinstellungen widerzuspiegeln sollten Sie
/etc/conf.d/hostname, /etc/conf.d/domainname und
/etc/hosts innerhalb des Gasts nach Ihren Bedürfnissen anpassen.
Siehe Kapitel
8.b.1 und Kapitel
8.b.4. Der Rest des Netzwerksetups Ihres virtuellen Servers wird auf dem
Host gemacht.
|
Erstellen des Template-Tarballs
Sie müssen nicht einen stage3-Tarball für jeden Benutzer erstellen. Das
vserver-new Skript unterstützt Templates. Um diese verwenden zu können,
müssen Sie einen Tarball von Ihrer vserver-Konfiguration erstellen.
Befehlsauflistung 3.2: Erstellen des Template-Tarballs |
# cd /vservers/gentoo-template
# tar cjvpf ../gentoo-template.tar.bz2 ./
|
Um einen neuen Gast unter Verwendung dieses Tarballs zu erstellen, verwenden
Sie einfach vserver-new:
Befehlsauflistung 3.3: Template-Tarball verwenden |
# cd /vservers
# vserver-new myguest \
--hostname myguest \
--context 1252 \
--interface eth0:192.168.1.252/24 \
template ./gentoo-template.tar.bz2
|
Notiz:
Sie sollten auch einen gemeinsamen Portagebaum für Ihren Gast verwenden um
die Größe der Gäste in Grenzen zu halten. Editieren Sie
/etc/vservers/myguest/fstab und entkommentieren Sie die Einträge
für /usr/portage und /usr/portage/distfiles. Gäste
werden nur-lesen Zugriff auf /usr/portage und lesen-und-schreiben
Zugriff auf /usr/portage/distfiles.
|
Testen des virtuellen Servers
Sie sollten nun durch die untenstehenden Befehle den VServer starten und
benutzen können. Sollten Sie Befehle wie mount oder dmesg
vermissen, sollten sie emerge util-linux im virtuellen Server ausführen,
da das VServer-Profil dieses Paket standardmäßig nicht beinhaltet.
Befehlsauflistung 3.4: Testen des virtuellen Servers |
# vserver myguest start
# vserver-stat
CTX PROC VSZ RSS userTIME sysTIME UPTIME NAME
0 90 1.4G 153.4K 14m00s11 6m45s17 2h59m59 root server
1252 2 3M 286 0m00s45 0m00s42 0m02s91 myguest
# vserver myguest enter
# ps ax
PID TTY STAT TIME COMMAND
1 ? S 0:00 init [3]
22887 ? Ss 0:00 /usr/sbin/syslog-ng
20496 pts/0 S 0:00 /bin/bash -login
20508 pts/0 R+ 0:00 ps ax
# logout
|
Kontakt
Im Falle von Problemen können Sie gerne den Autor kontaktieren, oder einen
Bug in Bugzilla eintragen.
Die Inhalte dieses Dokuments sind, sofern nicht explizit
anders genannt, unter der Creative Commons -
Namensnennung / Weitergabe Lizenz lizenziert. Die Gentoo Name and Logo
Usage Guidelines treffen zu.
|