Erstellung einer Xen-DomU
Diese Anleitung enthält die Konfiguration für ein echtes System, mit allergrößter Wahrscheinlichkeit müssen einige bis alle Daten angepasst werden.
Es ist empfehlenswert, vor der Benutzung dieser Anleitung diese einmal vollständig zu lesen.
Diese Anleitung wurde für Debian etch geschrieben und auf Debian lenny angepasst.
vorbereitende Schritte
Diese Anleitung benötigt das Paket xen-tools, dieses ist zu installieren, falls nicht bereits geschehen.
In der Dom0 müssen folgende Einstellungen vorgenommen werden:
- /etc/xen/xend-config.sxp
- (network-script network-dummy)
- (vif-script 'vif-bridge bridge=br1')
Die erste Zeile (network-script) sorgt dafür, daß beim Start keine Bridges erzeugt werden, stattdessen kann die Debian-eigene Konfiguration in /etc/network/interfaces verwendet werden. Ein Beispiel für eine derart konfigurierte Bridge (von al.prima.de):
auto br0
iface br0 inet manual
bridge_ports eth0
bridge_stp off
bridge_fd 0
auto br1
iface br1 inet static
address 83.97.48.6
gateway 83.97.48.30
netmask 255.255.255.192
bridge_ports eth1
bridge_stp off
bridge_fd 0In diesem Beispiel existieren zwei Bridges, die erste (br0) wird nur zur Verbindung von eth0 und einer DomU (seven.prima.de) verwenden, die zweite dient der Kommunikation mit der Dom0 selbst und allen anderen DomUs.
Die zweite Zeile gibt den Namen der zu verwendenden Bridge an (Default, kann in der Konfiguration der DomU überschrieben werden, siehe weiter unten.), die Angabe des Namens kann entfallen, wenn nur eine Bridge im System existiert.
- /etc/xen-tools/xen-tools.conf
- dist = lenny
mirror = http://lou.ping.de/debian/
- serial_device = hvc0
Die ersten beiden Zeilen sind selbsterklärend, die dritte Zeile (serial_device) sorgt dafür, dass in der DomU ein getty auf hvc0 eingetragen wird statt auf tty1 oder ttyS0.
Erzeugen der DomU
Im nächsten Schritt wird jetzt die DomU erzeugt:
xen-create-image --memory=1024 --size=2Gb --swap=1Gb --ip=83.97.48.10 --netmask=255.255.255.192 --gateway=83.97.48.30 --lvm=VSERVER --hostname=griff.prima.de --passwd --role=udev
Anmerkungen zu den Optionen:
Die Angabe des Speichers (memory) erfolgt in kB, Zusätze wie Gb werden ignoriert.
In diesem Beispiel wird das Dateisystem und der Swapspace innerhalb der volume group VSERVER erzeugt, diese muss vorher via vgcreate erstellt worden sein.
Die Option --passwd erfragt das root-Passwort für die DomU interaktiv, ohne diese Option wird ein leeres root-Passwort gesetzt.
Die Option --role=udev sorgt dafür, dass bei der Erzeugung der DomU udev gleich mit installiert wird, dieses ist unverzichtbar, da sonst auch kein devpts verfügbar ist und somit kein Login möglich ist.
Wurde die DomU erfolgreich erstellt erhält man schließlich zwei logical volumes (VSERVER/griff.prima.de-disk und VSERVER/griff.prima.de-swap) und eine Konfigurationsdatei (/etc/xen/griff.prima.de.cfg). In dieser Konfigurationsdatei kann nun noch wie oben erwähnt eine andere Bridge konfiguriert werden. Dazu ist eine Zeile zu erweitern:
vif = [ 'ip=83.97.48.10,bridge=br1' ]
Zusätzlich ist es notwendig, der DomU mitzuteilen, wo ihre Konsole ist, da sie sonst nicht korrekt startet. Dazu ist eine weitere Zeile in o.g. Konfigurationsdatei zu ergänzen:
extra = 'xencons=tty'
Jetzt wird die DomU gestartet
xm create griff.prima.de.cfg -c
Die Option -c sorgt dafür, daß die DomU sofort mit der aktuellen Konsole verbunden wird, sodaß die Startmeldungen und evtl. Fehlermeldungen sichtbar sind, außerdem kann so gleich eine Anmeldung erfolgen.
Konfiguration der neuen DomU
Abschließend sind sinnvollerweise noch ein paar Pakete zu installieren und zu konfigurieren:
apt-get update
apt-get upgrade
apt-get install debsums
apt-get clean
debsums_init
apt-get install less vim vim-scripts nullmailer apticron apt-listchanges uptimed screen file logcheck logcheck-database bind9-host
update-alternatives --config editor
/usr/bin/vim.basic
vi /etc/nullmailer/adminaddr
griff@prima.de
update-locale
dpkg-reconfigure tzdata
/etc/init.d/rsyslog restart
/etc/init.d/cron restart
vi /etc/ssh/sshd_config
ListenAddress 83.97.48.10
Protocol 2,1
HostKey /etc/ssh/ssh_host_key
PermitRootLogin no
ssh-keygen -t rsa1 -f /etc/ssh/ssh_host_key -C '' -N ''
/etc/init.d/ssh restart
dpkg-reconfigure apt-listchanges
method: text
skip: yes
email: root
type: both
confirm: no
vi /etc/hosts.allow
sshd: kelly.prima.de seven.prima.de LOCAL
vi /etc/hosts.deny
ALL: ALL
apt-get install munin-node munin-plugins-extra
vi /etc/munin/munin-node.conf
allow ^83\.97\.48\.10$
allow ^83\.97\.42\.133$
cd /etc/munin/plugins/
rm if_e*
ln -s /usr/share/munin/plugins/uptime
ln -s /usr/share/munin/plugins/users
ln -s /usr/share/munin/plugins/netstat
rm iostat
cp /usr/share/munin/plugins/iostat iostat
vi iostat
# comment "Special case for devices like cXdXpX"
/etc/init.d/munin-node restart
adduser bb
apt-get cleanAnmerkungen:
- Das Neustarten von klogd, syslogd und crond ist notwendig, weil diese vor dem setzen der Zeitzone die lokale Zeit als UTC betrachten und dadurch hinterher "nach gehen".
Abhängig vom benutzten Kernel (Dom0-Kernel, Vanilla-Kernel, VServer-Kernel) ist es empfehlenswert, weitere Pakete zu installieren, um immer die aktuellen Kernel-Module zu verwenden:
Dom0-Kernel |
linux-modules-xen-686 |
Vanilla-Kernel |
linux-image-686-bigmem |
VServer-Kernel |
linux-image-vserver-686-bigmem |
Nur die -bigmem-Varianten haben DomU-Unterstützung.
Jetzt sind noch die Dateien
/etc/hosts /etc/resolv.conf
anzupassen. In ersterer wird unpraktischerweise der Name der Dom0 mit der IP 127.0.1.1 und die IPs der anderen DomUs eingetragen. Da dieses der Kommunikation mit der Dom0 abträglich ist, muss die Zeile entfernt oder auskommentiert werden, die IPs der anderen DomUs können theoretisch unverändert bleiben, es schadet allerdings auch nicht, diese zu entfernen. In der zweiten Datei werden Domain-Such-Pfad und Nameserver der Dom0 eingetragen, diese sind ggf. den Gegebenheiten anzupassen.
Außerdem wird die Datei
/etc/sudoers
aus der Dom0 in die DomU kopiert, diese ist ggf. anzupassen.
automatischer Start
Um die DomU beim Systemstart automatisch starten zu lassen sind folgende Schritte notwendig:
cd /etc/xen/auto/ ln -s ../griff.prima.de.cfg
shutdown vs. save
Bei lenny werden DomUs beim shutdown der Dom0 automatisch gesichert, beim Start der Dom0 werden sie in ihrem vorherigen Zustand wiederhergestellt. Wer möchte, dass die DomUs beim shutdown der Dom0 stattdessen ebenfalls herunter gefahren werden muss in der Datei
/etc/default/xendomains
Die Zeile
XENDOMAINS_SAVE=/var/lib/xen/save
durch
XENDOMAINS_SAVE=""
ersetzen.
