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 lara) und
folgende Systemaenderungen durchgefuehrt habe:

  • software raid1 (md)
  • lokale ISO libary einbinden

Inhaltsverzeichnis

Installation

1. Image besorgen (no na)

2. 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

3. 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_url/xenserver</source>
 <!-- No Post install scripts configured -->
 <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

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

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

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

6. 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 AG - 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!

7. 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 Commands (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 > /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
grubinstall /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

1. 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

2. Neues LVM anlegen create new lvm

(bsp mit 12 GB)

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

3. Filesystem anlegen

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

4. /etc/exports anpassen

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

5. NFS und Portmappen starten und rebootfest aktivieren

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

6. Mount beim boot

Am Ende des Files folgendes hinzufuegen:

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

7. ISO Libaray in XenCenter eintragen

Als nfs mountpoint "localhost:/ISO" angeben


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



© 2019. Hetzner Online GmbH. Alle Rechte vorbehalten.