XEN server

From TD-er's Wiki
Jump to: navigation, search

Overzicht

We hebben 2 XEN-express servers met de volgende hardware configuratie:

Hardware

Asus RS120-E5/PA4

  • Barebone: Asus RS120-E5/PA4
    • 1U server kast
    • Intel 3200 chipset
    • socket 775
    • 4x hotswap-SATA
    • 36 maand garantie (s/n: xxxx)
  • Kingston DDR2-667 ECC 2GB CL5 (4 GB per server, nog ruimte voor 4 GB)
    • 60 maand garantie
  • Western Digital 750 GB RE-2 16MB cache (2 stuks per server)
    • 60 maand garantie (s/n: xxx)
  • Intel Q6600 Quad-core processor
    • 36 maand garantie (s/n: xxx)

XENserver-1

XENserver-2

Installatie XEN-servers

Dit zijn de stappen om een standaard installatie van Xen-Express om te zetten naar het gewenste formaat.

Installatie vanaf cdrom

  • Opgeven vaste IP-adressen voor eth0
  • Geen Storage-Repository (SR) toewijzen. (indien wel gedaan, staat hier hoe ze weer weg te krijgen)
  • XenCenter-toegang op eth0
  • XenCenter installeren op Windows-werkstation
  • XEN Linux-tools-CD installeren
  • Instellen NTP als cronjob op de servers.
11 4 * * * root ntpdate 194.109.22.18 > /dev/null

Inrichten Storage Repository

Aanmaken virtual machines

NFS

Onder Debian zijn de volgende packages nodig:

nfs-common - NFS support files common to client and server
nfs-kernel-server - Kernel NFS server support
portmap - The RPC portmapper

Uiteraard is de kernel-server niet nodig op de clients.

NFSv4 exporteren

NFSv4 heeft een paar nieuwe dingen, waaronder het kunnen exporteren van losse filesystemen in 1 path, zodat je op een machine eigenlijk alleen maar 1 mount hoeft te doen om alle onderliggende exports te mounten.

Voorbeeld /etc/exports :

/nfs4exports 192.168.1.0/24(ro,sync,insecure,root_squash,no_subtree_check,fsid=0)
/nfs4exports/data   192.168.1.0/24(rw,nohide,sync,insecure,root_squash,no_subtree_check)
/nfs4exports/home   192.168.1.0/24(rw,nohide,sync,insecure,no_root_squash,no_subtree_check)
/nfs4exports/ftp   192.168.1.0/24(rw,nohide,sync,insecure,root_squash,no_subtree_check)
/nfs4exports/www   192.168.1.0/24(rw,nohide,sync,insecure,root_squash,no_subtree_check)

NFSv4 mounten

Een voorbeeld voor het definieren van mounts in de fstab:

# /etc/fstab: static file system information.
#
# <file system> <mount point>   <type>  <options>         <dump>  <pass>
/dev/xvda1        /             ext3    rw,noatime        0       1
/dev/xvdb1        none          swap    defaults          0       0
192.168.1.5:/ftp  /FTPmap       nfs4    rw,_netdev,noauto 0       0
192.168.1.5:/home /home         nfs4    rw,_netdev,noauto 0       0
192.168.1.5:/www  /www          nfs4    rw,_netdev,noauto 0       0

Snelheid NFSv4

De metingen met bonnie++ (filesystembenchmark) zijn gedaan op een NFSv4 mount naar de fileserver.

Version  1.03       ------Sequential Output------ --Sequential Input- --Random-
                    -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
mailserver    2560M 51158  82 45530   5 26788   3 45326  73 60513   2 283.8   0
                    ------Sequential Create------ --------Random Create--------
                    -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
              files  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP
                 16   253   0 11048   2   666   0   295   0 12370   0   697   0
mailserver,2560M,51158,82,45530,5,26788,3,45326,73,60513,2,283.8,0,16,253,0,11048,2,666,0,295,0,12370,0,697,0

Problemen onder Debian

Het mounten onder Debian gaat fout tijdens het booten, dus als omweg kun je dit proberen: Een file (executable) /etc/init.d/mymount

#!/bin/bash
mount /FTPmap
mount /home
mount /www

En een symlink vanuit het gewenste runlevel naar dat scriptje:

webserver:~# ls -l /etc/rc2.d/ |grep mymount
lrwxrwxrwx 1 root root  17 Mar 17 10:30 S99mymount -> ../init.d/mymount

Omdat het mounten het booten heel erg vertraagd en uiteindelijk alsnog faalt, is de optie noauto nodig in de fstab.

Netwerkconfiguratie

De configuratie van de netwerkadapters gaat als volgt: In /etc/network/interfaces :

auto eth0 eth1 lo
allow-hotplug eth0
iface eth0 inet static
       address 192.168.2.34
       netmask 255.255.255.0
       broadcast 192.168.2.255
       network 192.168.2.0
       gateway 192.168.2.254
iface eth1 inet static
       address 192.168.1.34
       netmask 255.255.255.0
       broadcast 192.168.1.255
       network 192.168.1.0
iface lo inet loopback

Op die manier heb je een subnet 192.168.2.x op eth0, wat ook met de rest van het netwerk verbonden is en ook naar buiten kan communiceren via de router (gateway) Het subnet 192.168.1.x is via eth1 verbonden met de andere XEN-server. Hierover worden backups en NFS-mounts gestuurd en dit is dus ook niet te benaderen vanaf het netwerk, tenzij mensen fysiek toegang hebben tot de servers.

Om het backuppen iets duidelijker te maken, plaats je in de file /etc/hosts het volgende:

127.0.0.1 localhost localhost.localdomain
192.168.1.31  backup
192.168.1.11  fileserver
192.168.1.34  remote

Instellen APC-UPS

Zorg ervoor dat de serial console niet gestart wordt tijdens booten. Dat doe je door in de grub-configuratie in /boot/grub/menu.lst aan het eind van de module-regel xencons=off toe te voegen.

title XenServer
  root (hd0,0)
  kernel /boot/xen.gz dom0_mem=752M lowmem_emergency_pool=16M crashkernel=64M@32M
  module /boot/vmlinuz-2.6-xen root=LABEL=root-atsjrzvu ro xencons=off
  module /boot/initrd-2.6-xen.img

In de file /etc/inittab moet ook nog 1 regel uitgezet worden (bijna aan het eind van de file een "#" aan het begin van de regel zetten):

#s0:2345:respawn:/sbin/agetty ttyS0 115200,9600 linux

Alles wat niet uitgecommentarieerd staat in /etc/apcupsd/apcupsd.conf (alleen eerste 4 regels zijn niet default):

UPSNAME UPS1
UPSCABLE 940-1524C
UPSTYPE apcsmart
DEVICE /dev/ttyS0
LOCKFILE /var/lock
SCRIPTDIR /etc/apcupsd
PWRFAILDIR /etc/apcupsd
NOLOGINDIR /etc
ONBATTERYDELAY 6
BATTERYLEVEL 5
MINUTES 3
TIMEOUT 0
ANNOY 300
ANNOYDELAY 60
NOLOGON disable
KILLDELAY 0
NETSERVER on
NISIP 0.0.0.0
NISPORT 3551
EVENTSFILE /var/log/apcupsd.events
EVENTSFILEMAX 10
UPSCLASS standalone
UPSMODE disable
STATTIME 0
STATFILE /var/log/apcupsd.status
LOGSTATS off
DATATIME 0 

De RPM van apcupsd staat hier Deze is te installeren op de hypervisor.

Meer info is hier te vinden