Autor: sledge0303
Version: 1.1
Stand: 29.12.2007 22:00 Uhr
Bei der Installation muss sehr vorsichtig vorgegangen werden und keiner der folgend genannten Schritte ausgelassen werden. Es kann sonst passieren, dass das System entweder nicht gestartet wird oder der Server vom Switch gesperrt wird. Gerade jetzt sind Fähigkeiten wie lesen, verstehen und nachdenken erforderlich!
Ziel dieser Installation ist eine Paravirtualisierung des Servers. Wer mehr über XeN erfahren möchte, sollte sich vor Beginn der Installation darüber informieren. Dahingehend wird als Beispiel Etch als Gastsystem eingerichtet. Man kann auch andere Betriebssysteme wie Windows, andere Linuxsysteme sowie BSD als Gast erstellen. Windows wird aufgrund nicht aktivierter VT Unterstützung im BIOS nicht installierbar sein, auch wenn man mindestens 2 Prozessoren unter der Haube hat…
Bedingung für eine erfolgreiche Installation:
«< 60% round blue|WICHTIG WICHTIG WICHTIG WICHTIG WICHTIG ::: Solltest du das Monitoring bei OVH deaktiviert haben, reaktiviere es wieder - zumindest bis der Server mit XeN und deinen Netzwerkeinstellungen funktioniert. Solltest du das wichtigste, die Umstellung von Bridge auf NAT vergessen haben, der Server vom Switch gesperrt, wird kein Techniker eingreifen um den Server wieder zu entsperren. Wenn das am Wochenende oder vor einem Feiertag passieren sollte, kann es ein paar Tage dauern bis der OVH Kundendienst anhand deiner Mail die Entsperrung deines Servers veranlasst. ::: »>
Nachdem wir Etch from scratch mit GRUB Bootloader bereits installiert haben, die entsprechende Partition für die LVM Devices bereitsteht, können wir mit der Installation beginnen. Wir lösen erstmal die Abhängigkeiten auf. Vorher schauen wir nach, ob sich eventuelle 'Störenfriede' im OS befinden und deinstallieren diese gegebenenfalls:
apt-get remove exim4 exim4-base lpr nfs-common portmap pidentd pcmcia-cs \ pppoe pppoeconf ppp pppconfig
Installation der Abhängigkeiten
apt-get -y install screen debootstrap python python-twisted iproute \ bridge-utils libcurl3-dev libssl0.9.7 yaird xen-tools
Gerade bei Server mit mehr als 3GB RAM Speicher kommt es vor, dass das System nicht den kompletten Speicher initialisiert. Das liegt nicht an Xen, sondern am GRUB Bootloader. Der muss gepatcht werden. Hier kannst du das Paket runterladen und installieren:
http://download.nixhelp.de/patched/grub_0.97-27_i386.deb
Anschließend wie gewohnt installieren mit
dpkg -i grub_0.97-27_i386.deb
Nach dem nächsten reboot sollte der komplette Speicher erscheinen.
Wir laden uns die Quellpakete auf unseren Server, entpacken und installieren XeN. Das ganze funktioniert relativ kurz und schmerzlos:
cd /usr/src wget http://bits.xensource.com/oss-xen/release/3.1.0/bin.tgz/xen-3.1.0-install-x86_32.tgz tar zxf xen-3.1.0-install-x86_32.tgz cd dist/ ./install.sh mv /lib/tls /lib/tls.disabled update-rc.d xend defaults 20 21 update-rc.d xendomains defaults 21 20
Zum Abschluss noch der Kernel. Da es sich hier um einen vorkonfigurierten Kernel nach Vorbild des originalen Etch 2.6.18-5 Kernel handelt, müssen wir zusätzlich eine initiale Ramdisk, initrd, erstellen. Auch das geht relativ kurz und schmerzlos über die Bühne
depmod 2.6.18-xen mkinitrd.yaird -o /boot/initrd.img-2.6.18-xen 2.6.18-xen update-grub
Eine Fehlermeldung oder ähnliches dürfte in keinem Fall erscheinen.
Wichtig ist nun, dass Netzwerk muss auf NAT umgestellt werden, zuerst sichern wir die alte Konfiguration
mv /etc/xen/xend-config.sxp /etc/xen/xend-config.OLD
Was den zugewiesenen Speicher angeht, kann man diesen je nach Verfügbarkeit erweitern oder verringern. Jedenfalls sollten 128MB Ram ausreichen.
cat > /etc/xen/xend-config.sxp << "EOF" # -*- sh -*- # # Xend configuration file. # (xend-relocation-server yes) (xend-relocation-hosts-allow '^localhost$ ^localhost\\.localdomain$') (network-script network-nat) (vif-script vif-nat) # Die nächsten beiden Werte anpassen. (dom0-min-mem 128) (dom0-cpus 0) (vncpasswd '') EOF
Wir müssen kleinere Änderungen am Bootloader Grub vornehmen:
nano /boot/grub/menu.lst
Der entsprechende Eintrag sollte nach dem Editieren in etwa so aussehen:
title Xen 3.1 / XenLinux 2.6 root (hd0,0) kernel /boot/xen-3.1.0.gz dom0_mem=128000 module /boot/vmlinuz-2.6.18-xen root=/dev/sda1 ro max_loop=255
Wichtig sind die Einträge dom0_mem und max_loop. Sollten Abweichungen bei der Kernelbezeichnung sein, diese natürlich nicht anpassen
Wenn alles erledigt wurde, können wir den Server mit dem neuen XeN System rebooten.
reboot
Damit dein VServer eine Verbindung aufbauen kann, muss das entsprechende Routing erstellt werden. Da du höchstwahrscheinlich nur eine einzige IP zur Verfügung hast, danke OVH , dürfen die Ports selbstverständlich nicht doppelt belegt werden durch Dienste. Klingt eigentlich logisch, sollte nicht extra erwähnt werden müssen, doch es gibt leider einzelne Blitzbirnen die es dennoch versuchen würden…
Das Netzwerk für die VServer liegt im Klasse A Bereich, fängt mit 10.0.0.1 als Nutz-IP an und der Gateway wird immer die 10.0.0.254 sein, Broadcast dementsprechend 255.0.0.0
Solltest du 172.x.y.z oder 192.x.y.z vorziehen, ist dieses entsprechend der Grund-/ sowie VServerkonfiguration anzupassen. Wer keine Grundlagen zum Thema Netzwerkaufbau hat, sollte sich bei Wikipedia vorher erkundigen wie so etwas funktioniert.
Hier findest du nun ein Beispielskript, es beschreibt den SSH Zugang für den VServer 'Test' mit der IP 10.0.0.1. Auf Port 50122 lauscht der SSHd Dienst . Erstellst du einen 2. VServer, 10.0.0.2, dann konfigurierst du z.B. Port 50123 als dessen Zugang per SSH. Das selbe machst du mit all deinen anderen Diensten wie HTTP, FTP, SMTP… usw usw usw…
cat > /etc/network/if-up.d/routing << "EOF" #!/bin/sh IPTABLES="/sbin/iptables" #loesche alle Regeln $IPTABLES -t nat --flush # Routing fuer XenU's # 10.0.0.1 # damit der VServer nach aussen kommunizieren kann: $IPTABLES -t nat -A POSTROUTING -s 10.0.0.1 -o eth0 -j SNAT --to $deine_externe_ip # 10.0.0.1:50122 frei schalten fuer SSH Kommunikation $IPTABLES -t nat -A PREROUTING -p tcp -d $deine_externe_ip --dport 50122 -i eth0 -j DNAT --to-destination 10.0.0.1:50122 EOF
Anschliessend vergeben wir dem Skript die entsprechenden Rechte
chmod 700 /etc/network/if-up.d/routing
Der erste $IPTABLES Befehl muss für jeden VServer erstellt werden, sonst sagt der keinen Ton. Natürlich jedes mal die lokale IP anpassen
Nach jeder Änderung muss es erneut ausgeführt werden:
sh /etc/network/if-up.d/routing
Als erstes prüfen wir welcher Kernel hochgefahren wurde
uname -a
Erscheint 2.6.18-xen –> alles OK
Ist alles in Ordnung, prüfen wir ob der XeN Dienst ohne Fehler hochgefahren wurde
xm dmesg | egrep 'seg|fail'
Hier sollte keine Meldung erscheinen.
Wir installieren das Paket LVM und anschliessend wird das Device für die XeN-Vserver erstellt
apt-get install lvm2 pvcreate /dev/sdaX vgcreate lvmxen /dev/sdaX
X steht für die Devicenummer.
Auch dieses dürfte problemlos über die Bühne gehen wenn man dieses Howto gelesen und verstanden hat.
Wieder sichern wir die alten Einstellungen
mv /etc/xen-tools/xen-tools.conf /etc/xen-tools/xen-tools.OLD
…und ersetzen diese durch eine neue Konfiguration
cat > /etc/xen-tools/xen-tools.conf << "EOF" lvm = lvmxen size = 10Gb # Disk image size. memory = 128Mb # Memory size swap = 128Mb # Swap size fs = ext3 # use the EXT3 filesystem for the disk image. dist = etch # Default distribution to install. image = sparse # Specify sparse vs. full disk images. # # Currently supported and tested distributions include: # # sid - Debian # sarge - Debian # etch - Debian # dapper - Ubuntu # centos4 - CentOS 4 # fedora-core4 - Fedora Core 4 (codname stentz) # gateway = 10.0.0.254 netmask = 255.0.0.0 kernel = /boot/vmlinuz-2.6.18-xen mirror = http://ftp2.de.debian.org/debian/ # mirror = http://gb.archive.ubuntu.com/ubuntu/ EOF
Mit diesem String wird der VServer erstellt. Bitte nehmt ggf. Anpassungen am zugewiesenen HDD Speicher sowie RAM vor:
xen-create-image --hostname=test --size=100Gb --swap=256Mb \ --ip=10.0.0.1 --netmask=255.255.255.0 --gateway=10.0.0.254 --force \ --lvm=lvmxen --memory=96Mb --arch=i386 --kernel=/boot/vmlinuz-2.6.18-xen \ --debootstrap --dist=etch --mirror=http://ftp2.de.debian.org/debian/ --passwd
Der Vorgang dauert ein paar Minuten. Zum Abschluss der Installation wirst du aufgefordert ein Rootpasswort zu vergeben. Danach ist die Installation abgeschlossen!
Bevor der VSerer in Betrieb genommen werden kann, müssen noch kleine Änderungen sowie Installationen vorgenommen werden
Wir mounten das frisch erstellte Device des VServers. Danach installieren wir die deutsche Sprachumgebung.
mount /dev/lvmxen/test-disk /mnt chroot /mnt apt-get install locales && dpkg-reconfigure locales
Damit wir nun den SSHd Dienst für unseren VServer nutzen können, muss der Port angepasst werden. Beispiel:
nano /etc/ssh/sshd_config Port 50122
Anschliessend loggen wir uns aus dem chroot aus und führen ein umount durch
exit umount /mnt
xm create -c /etc/xen/test.cfg
Jetzt kann man nach herzenslust seinen Dienst in diesem VServer installieren.
: links mit Dokumentation zum Thema XeN/VServer werden noch hinzugefügt
: Troubleshooting / Tipps / Tricks
zurück zum Seitenindex