Dieser Artikel beschreibt die Schritte, die nötig sind, um Ubuntu 7.10 auf einem Hetzner Root Server zu installieren. Dabei möchte ich nur auf die Punkte eingehen, die bei meiner Installation problematisch waren. Im Netz gibt es bereits eine gute Installationsanleitung von Falko Timme, die die nötigen Schritte gut zusammenfasst. Hetzner unterstützt für die Netzwerkkonfiguration leider nicht das bridged Setup, so daß man sich mit den Alternativen auseinandersetzen sollte. Eine Einführung gibt es z.B. hier.
Bevor man mit der Installation beginnt muß man über die Support Seiten die IPs für das zusätzliche Subnetz beantragen. Die nötigen Daten werden dann innerhalb kurzer Zeit per Mail zugeschickt. Dabei sollte man natürlich die mitgelieferten Hinweise beachten. Entgegen der Anleitung habe ich das bei mir jedoch umgesetzt, indem ich ein zusätzliches Netzwerkinterface (eth0:1
) mit einer IP aus dem Subnetz angelegt habe. Diese IP wird von den domU Instanzen später als Gateway vewendet.
Im Gegensatz zu Falko verwende ich LVM für die XEN Images. Die Schritte, die nötig waren, um die Grundinstallation vorzunehmen unterscheiden sich nur minimal von denen in der Anleitung.
xen-create-image
--hostname=<hostname>
--size=10Gb --swap=2048Mb --memory=1024Mb
--ip=<ip>
--netmask=<Maske>
--gateway=<gw ip>
--force --lvm=images --fs=xfs
--arch=i386
--kernel=/boot/vmlinuz-2.6.22-14-xen
--initrd=/boot/initrd.img-2.6.22-14-xen
--debootstrap
--dist=gutsy
--mirror=http://de.archive.ubuntu.com/ubuntu/
--passwd
Im Aufruf ersetzt man hostname
durch den späteren Hostnamen des Rechners, ip
durch die IP (also eine IP aus dem zusätzlichen Subnetz), Maske
durch die Netzmaske (vermutlich 255.255.255.248) und gw
durch das Gateway (also der IP aus dem Subnetz, die man in dom0 für eth0:1
konfiguriert hat). Die Anweisung--ide
war bei meiner Installation nicht nötig.
Nachdem die Konfiguration erstellt wurde, editiert man diese in einem Texteditor. Damit das System überhaupt bootet, muß folgende Zeile eingefügt werden:
extra = ‚xencons=tty1‘
Zusätzlich habe ich für den ersten Start das virtuelle Netzwerkinterface auskommentiert:
vif=[]
In der Datei /etc/xen/xend-config.sxp
muss folgende Netzwerkkonfiguration gewählt sein:
(network-script ’network-route netdev=eth0:1′)
(vif-script vif-route)
War zuvor eine andere Netzwerkkonfiguration aktiv, muß xend
neu gestartet werden.
Vermutlich wurde xen-create-image
nie mit Gutsy in der Praxis getestet. Die erzeugte Linux Installation hängt nämlich auch nach obigen Änderungen schon beim Booten an zwei Stellen. Beide haben anscheinend mit dem Stellen der Hardware Systemuhr zu tun. Um die Probleme zu beseitigen, mountet man das Root Filesystem der domU nach /mnt
und löscht folgende Dateien:
/mnt/etc/init.d/hwclockfirst.sh
/mnt/etc/init.d/hwclock.sh
/mnt/lib/udev/set_hwclock
Danach sollte die domU Instanz so weit hochfahren, daß man sich einloggen kann. Ist dies geschafft, muß nur noch das Netzwerk aktiviert werden. Dafür fährt man die virtuelle Installation wieder herunter und paßt die Konfiguration an.
Dazu erweitert man die Zeile für das virtuelle Interface wie folgt (natürlich mit der eigenen IP):
vif=[‚ip=<ip>]
Danach kann man die virtuelle Maschine wieder hochfahren. XEN wird dabei eine MAC Adresse automatisch generieren und dem Interface zuweisen. Damit dies nicht bei jedem Start passiert, sollte man diese nach dem ersten Start in der Konfigurationsdatei eintragen:
vif=[‚mac=<mac>,ip=<ip>]
Man beachte dabei, daß mac
durch die automatisch generierte MAC Adresse und ip
wieder durch die IP Adresse der domU Instanz ersetzt werden muss. Wichtig dabei ist auch das Komma als Trennzeichen der Parameter. XEN gibt keine Fehlermeldungen aus, wenn man hier einen Fehler macht!
Ubuntu 7.10 weist die Namen der Netzwerkkarten automatisch anhand der MAC Adresse zu. Dabei wird die erste Karte mit eth0
bezeichnet, die zweite mit eth1
, usw. Da XEN die MAC Adressen jedoch automatisch generiert, erscheint dies für die domU Intanz so, als ob bei jedem Start eine neue Netzwerkkarte eingebaut ist. Dadurch paßt dann die Konfiguration in /etc/network/interfaces
für eth0
nicht mehr zum aktuellen Interface-Namen. Um diese Probleme zu vermeiden, sollte man sicherstellen, daß in der Datei /etc/udev/rules.d/70-persistent-net.rules
nur ein Eintrag der Form
SUBSYSTEM==“net“, DRIVERS==“?*“, ATTRS{address}==“<mac>“, NAME=“eth0
existiert. Die dort aufgeführte MAC Adresse muß mit der in der Konfigurationsdatei für die Instanz festgelegten MAC Adresse übereinstimmen.
Ich hoffe, daß ich mit diesem Artikel weiterhelfen konnte. Mich haben diese Schritte, die nötig sind um XEN zum Laufen zu bringen insgesamt mehrere Tage gekostet. Nachdem zumindest die Probleme mit dem Skript für die Systemuhr und der Konsole schon seit längerem bekannt sind, läßt mich das doch etwas am Qualitätsmanagement von Ubuntu zweifeln…
Update 03.03.2008
In der Zwischenzeit hat sich gezeigt, daß die Netzwerk-Performance der XEN domU absolut unbrauchbar ist. Betroffen ist anscheinend nur die Senderichtung: es werden durchschnittlich nur ca. 10KByte/sec übertragen.
Um einen normalen Netzwerkdurchsatz zu erreichen, muß man das „TX Checksumming“ in der domU abschalten:
ethtool -K eth0 tx off
Die aktuellen Einstellungen kann man übrigens mit
ethtool -k eth0
in Erfahrung bringen.
nitpick: 7.10 ist Gutsy, nicht Edgy. 😉
Danke für den Hinweis. Ich habe den Artikel korrigiert.