Hetzner - DokuWiki

XenServer 5.5

Hier ein kleines Howto, wie ich meinen neuen Server (EQ6) mit Xenserver 5.5 automatisch installiert habe (spricht: kein cdrom, keine KVM-Konsole) und folgende Systemaenderungen durchgefuehrt habe:

  • software raid1 (md)
  • lokale ISO libary einbinden

Inhaltsverzeichnis

Installation

Image besorgen (no na)

Image mounten und per http zur Verfuegung stellen

# mount -o loop FREE_XenServer-5.5.0-install-cd.iso /mnt
# mkdir /var/www/xenserver
# cp -a /mnt/* /var/www/xenserver

Answerfile generieren und nach /var/www/xenserver kopieren

Beispielfile:

<installation mode="fresh" srtype="lvm">
<bootloader>grub</bootloader>
<primary-disk gueststorage="yes">sda</primary-disk>
<keymap>de</keymap>
<hostname>xen</hostname>
<root-password>my_password</root-password>
<source type ="url">http://my_webserver_ip/xenserver</source>
<admin-interface name="eth0" proto="static">
<ip>xxx.xxx.xxx.xxx</ip>
<subnet-mask>255.255.255.192</subnet-mask>
<gateway>xxx.xxx.xxx.xxx</gateway>
</admin-interface>
<nameserver>213.133.99.99</nameserver>
<nameserver>213.133.100.100</nameserver>
<timezone>Europe/Berlin</timezone>
<time-config-method>ntp</time-config-method>
<ntp-servers>ntp</ntp-servers>
<ntpservers>83.246.120.75</ntpservers>
<ntpservers>213.9.73.106</ntpservers>
<ntpservers>188.40.34.195</ntpservers>
</installation>

Das answerfile kann man bequem mit einer schoenen GUI von Thomas
Krampe erstellen: http://wiki.xenmaster.de/doku.php/tools/xstools

Achtung: Fuer die URL bitte die IP Adresse und nicht den Hostnamen eintragen!

Neuen Server mit default image (z.b. CentOS) versorgen

Einloggen und folgende Files aus dem Xenserver Image nach /boot kopieren

# /mnt/boot/vmlinuz
# /mnt/boot/xen.gz
# /mnt/boot/install.img

Grub Eintrag veraendern

Grub muss nun die neu kopierten Files booten, also einen neuen Eintrag hinzufuegen. Hier eine komplette menu.lst des default CentOS Images:

#
# Hetzner Online GmbH - installimage
# GRUB bootloader configuration file
#
timeout 5
default 1
title CentOS Linux (2.6.18-128.1.16.el5)
root (hd0,1)
kernel /boot/vmlinuz-2.6.18-128.1.16.el5 ro root=/dev/md2 vga=0x317
initrd /boot/initrd-2.6.18-128.1.16.el5.img
title Install Xenserver
root (hd0,1)
kernel /xen.gz dom0_mem=752M acpi=off nosmp noapic noirqbalance
module /vmlinuz answerfile=http://my_webserver_ip/xenserver/xenserver.xml install
module /install.img

Achtung: Die URL vom answerfile muss mit der IP des Servers angegeben werden, nicht mit dem Hostnamen. Daher aufpassen, wenn
man NameVirtualHosts o.ae. einsetzt!

Reboot

Nun sollte die Installation starten, was man leicht per tail -f auf das apache access_log pruefen kann.

Erweiterung 1: RAID1

Hierbei gibt es bereits eine sehr gute Doku, auf die im Hetzner Wiki bereits verlinkt wird:

http://www.toddsmith.org/wordpress/uncategorized/configure-xenserver-50-free-for-software-raid-1

Hier die zusammengefassten Befehle (die Mutige mit cut'n'paste ausfuehren koennen):

dd if=/dev/sda of=/dev/sdb bs=512 count=1
echo -e "\nt\n1\nfd\nt\n3\nfd\nw\nx" | fdisk /dev/sdb
[ -e /dev/md0 ] || mknod /dev/md0 b 9 0
[ -e /dev/md1 ] || mknod /dev/md1 b 9 1
mdadm --create /dev/md0 --level=1 --raid-devices=2 missing /dev/sdb1
mdadm --create /dev/md1 --level=1 --raid-devices=2 missing /dev/sdb3
pvcreate /dev/md1
volume_group=`vgscan | grep VG | awk -F \" '{print $2}'`
vgextend $volume_group /dev/md1
pvmove /dev/sda3 /dev/md1
vgreduce $volume_group /dev/sda3
mkfs.ext3 /dev/md0
cd / && mount /dev/md0 /mnt && rsync -a --progress --exclude=/sys --exclude=/proc --exclude=/dev/shm --exclude=/dev/pts / /mnt
mkdir /mnt/sys
mkdir /mnt/proc
sed -r -i 's,LABEL=root-\w+ ,/dev/md0 ,g' /mnt/etc/fstab
mkdir /root/initrd && cd /root/initrd
zcat /boot/initrd-`uname -r`.img | cpio -i && \ cp /lib/modules/`uname -r`/kernel/drivers/md/raid1.ko lib
q="echo Waiting for driver initialization."
sed -r -i "s,^${q}$,\n\necho Loading raid1.ko module\ninsmod /lib/raid1.ko\n${q}\n,g" init
q="resume /var/swap/swap.001"
sed -r -i "s,^${q}$,${q}\necho Running raidautorun\nraidautorun /dev/md0\nraidautorun /dev/md1,g" init
r=`grep mkroot /root/initrd/init`
sed -r -i "s|^${r}$|${r/sda1/md0}|g" init
find . -print | cpio -o -c | gzip -c > /mnt/boot/initrd-`uname -r`.img
sed -r -i 's,LABEL=root-\w+ ,/dev/md0 ,g' /mnt/etc/fstab
sed -r -i 's,LABEL=root-\w+ ,/dev/md0 ,g' /etc/fstab

Fuer den grub bootloader werden noch folgende cmds benoetigt:

sed -r -i 's,root=LABEL=root-\w+ ,root=/dev/md0 ,g' /mnt/boot/grub/grub.conf
sed -r -i 's,root=LABEL=root-\w+ ,root=/dev/md0 ,g' /boot/grub/grub.conf
grub-install /dev/sdb

Und fuer das stdmaessige extlinux:

sed -r -i 's,root=LABEL=root-\w+ ,root=/dev/md0 ,g' /mnt/boot/extlinux.conf
sed -r -i 's,root=LABEL=root-\w+ ,root=/dev/md0 ,g' /boot/extlinux.conf
cat /usr/lib/syslinux/mbr.bin > /dev/sdb
cd /mnt && extlinux -i boot/
extlinux -i boot/
cp /mnt/boot/extlinux.conf /boot/
cp /mnt/boot/initrd-`uname -r`.img /boot

Nach dem naechsten Reboot noch die MD devices vervollstaendigen:

echo -e "\nt\n1\nfd\nt\n3\nfd\nw\nx" | fdisk /dev/sda
mdadm -a /dev/md0 /dev/sda1
mdadm -a /dev/md1 /dev/sda3

Lokale ISO Libary einbinden

Xenserver 5.5 bietet keine Moeglichkeit ISO Images im lokalen Storage anzubieten. Um dies dennoch zu ermoeglichen, wird im LVM des Datenbereiches ein neues LV angelegt und per lokalem NFS Server durchgereicht. Es ist nicht performant, aber es erfuellt seinen Zweck (Installation) und wird die root Partition auch nicht zumuellen.

Quelle: http://forums.citrix.com/thread.jspa?messageID=1393861&tstart=0

Eigene VG finden

# vgscan

Reading all physical volumes. This may take a while...
Found volume group "VG_XenStorage-709d46ed-8193-d470-4ab8-21953af4f863" using metadata type lvm2

Neues LVM anlegen (create new lvm)

(bsp mit 12 GB)

# lvcreate -L 12G -n ISO VG_XenStorage-<meineid>
Logical volume "ISO" created

Filesystem anlegen

# mkfs.ext3 /dev/VG_XenStorage-<meineid>/ISO

/etc/exports anpassen

mkdir /ISO
echo "/ISO *(rw,no_root_squash,sync)" >> /etc/exports

NFS und Portmappen starten und reboot fest aktivieren

# chkconfig --level 345 nfs on
# chkconfig --level 345 portmap on
# service nfs start
# service portmap start

Mount beim boot

Am Ende des Files folgendes hinzufuegen:

lvchange -a y /dev/VG_XenStorage-<meineid>/ISO
mount /dev/VG_XenStorage-<meineid>/ISO /ISO

ISO Libaray in XenCenter eintragen

Als nfs mountpoint "localhost:/ISO" angeben

Netzwerk

Mitglieferte IPs in RZ10

Die 3 mitgelieferten IPs fuer die EQ Reihe der Hetzner Server (muessen explizit ueber den Robot beantragt werden) sind im selben Subnetz wie die IP des Hauptservers). Als default GW wird die IP der xenbr0 verwendet.

Übernommen aus dem Hetznerforum 5.5: Automatische Installation, sw raid1, lokale ISO library geschrieben von angrox



© 2018. Hetzner Online GmbH. Alle Rechte vorbehalten.