Benutzer:Asklepios/Xen Remus: Unterschied zwischen den Versionen
K (→files) |
(→files) |
||
Zeile 136: | Zeile 136: | ||
DomU (firstbase) packageselection: [[Datei:Package selection.gz]] | DomU (firstbase) packageselection: [[Datei:Package selection.gz]] | ||
xend config: [[Datei:Xend-config.sxp.gz]] |
Version vom 6. Januar 2011, 18:06 Uhr
Xen mit Remus
Ziel dieser Seite
Einfach mal ein Setup aufsetzen fuer xen-remus
Was ist Remus
Dazu sei mal ganz einfach auf die Projektseite http://dsg.cs.ubc.ca/remus/doc.html verwiesen.
Hardware
Als xenserver sind ein paar alte Intel Celeron zum einsatz gekommen, weil ich sie recht preiswert bei ebay erlangen konnte (thx Dieter fuer den Tip). Weiter sinnvolle Daten des PowerEdge 750 sind:
- 2GB Ram
- 2x Intel Corporation 82547GI Gigabit Ethernet Controller
- 320GB HDD (thx Benutzer:Siro)
setup
Host OS
Das HostOS ist ein Gentoo. mit folgenden relevanten tools neben dem basis-system installiert:
Pakete
um die deps ins system zu ziehen (der einfachste weg eben ;):
app-emulation/xen-tools-4.0.0 USE="acm api flask ioemu screen -custom-cflags -debug -doc -hvm -pygrub"
um logical volumes und snap-shots zu haben (snapshots weil tests):
sys-fs/lvm2-2.02.73-r1 USE="lvm1 readline static -clvm (-cman) (-selinux)"
irgendwie muessen wir routen und ips vergeben (ifconfig steht fuer INTERFACECONFIG!):
sys-apps/iproute2-2.6.31 USE="berkdb -atm -minimal"
die sourcen von xen gibts via mercurial:
dev-vcs/mercurial-1.5 USE="-bash-completion -bugzilla -emacs -gpg -test -tk -zsh-completion"
die pvopts-sources des kernels gibts via git:
dev-vcs/git-1.7.2.2 USE="bash-completion blksha1 curl iconv threads webdav -cgi -cvs -doc -emacs -gtk -perl (-ppcsha1) -subversion -tk -xinetd"
erste tests habe ich mit live-migration gemacht (storage backend eben):
sys-block/aoetools-27 sys-block/vblade-14
Die DomU ist ein debian lenny:
dev-util/debootstrap-1.0.25
netzwerkkonfig fuer die Dom0/U:
net-misc/bridge-utils-1.4
zum bauen von xen aus den sourcen brauchte ich noch:
sys-power/iasl-20090123 USE="-test" sys-devel/dev86-0.16.17-r6 sys-devel/bin86-0.16.17
dies waren fuer den 2.6.32-xen0 kernel notwendig
sys-apps/hal-0.5.14-r2 USE="acpi apm crypt dell disk-partition -X -consolekit -debug -doc -laptop -policykit (-selinux)" sys-fs/udev-141 USE="(-selinux)"
storage
hierfuer wurde einfach ein lvm aufgesetzt. Die syncronisation der platten laeuft ueber Remus.
pvcreate /dev/sda3 vgcreate vg /dev/sda3 lvcreate -n firstbase -L10G vg
Es gibt hier alledings schon einen nachteil. Der Fallback, abgesichert durch Remus funktioniert ohne Probleme, allerdings kommt man nur mit ausfallzeiten zurueck auf den Master. Hier bietet sich dann eher sowas wie drbd an
image
mount /dev/vg/firstbase /mnt/tmp mkfs.ext3 /dev/vg/firstbase debootstrap lenny /mnt/tmp cd /mnt/tmp/ mount --bind /dev dev/ mount -t proc as proc mount -t sysfs as sys mount --bind /dev/pts dev/pts/ chroot . dpkg --set-selections < package_selection apt-get -u dselect-upgrade
grub1 eintrag
title=xen 4.0.2-rc2-pre (2.6.32.26) root (hd0,0) kernel /xen.gz module /vmlinuz-2.6.32.26 root=/dev/sda1 console=tty1 ro loglevel=0 apm=off acpi=on
make.conf
CFLAGS="-O2 -march=i686 -pipe -mno-tls-direct-seg-refs" CXXFLAGS="${CFLAGS}" CHOST="i686-pc-linux-gnu" USE="ipv6 ssl tls xen aio ssh mmx sse mmxext bash-completion openssh gpg gnutls strong-optimization optimization sse2 minimal gmp xattr acl sqlite" EMERGE_DEFAULT_OPTS="-v --jobs 2" FEATURES="collision-protect nodoc noinfo parallel-fetch sandbox usersync userfetch usersandbox" LINGUAS="de en" ACCEPT_LICENSE="*" MAKEOPTS="-j 1"
getting xen
wir brauchen auch noch nen patch von http://www.linuximq.net/ fuer den 2.6.32 kernel (siehe Remus projekt) man sollte an dieser stelle ein paar grundlegende features nicht vergessen. Primaer support fuer netfilter, lvm (dm + dm_snampshot), ipv6, imq ...
cd /usr/src hg clone http://xenbits.xensource.com/xen-4.0-testing.hg cd xen-4.0-testing.hg source /etc/make.conf KERNELS="linux-2.6-xenU linux-2.6-pvops" make dist cd linux-2.6-pvops.git wget http://www.linuximq.net/patchs/linux-2.6.32-imq-test2.diff patch -p1 < linux-2.6.32-imq-test2.diff cd .. # configure domU kernels make linux-2.6-xenU-config CONFIGMODE=menuconfig # configure dom0 kernel - make linux-2.6-pvops-config CONFIGMODE=menuconfig # build kernels make linux-2.6-xenU-build make linux-2.6-pvops-build # and install everything in ./dist KERNELS="linux-2.6-xenU linux-2.6-pvops" make dist
firstbase DomU
So habe ich meine virtuelle Instanz genannt. Da mir leider kein HVM zur Verfuegung lief das ganze mit nem 2.6.18 Kernel und folgender config
#/etc/xen/firstbase kernel = "/boot/vmlinuz-2.6.18.8-xenU" memory = 512 name = "firstbase" vif = [ 'mac=00:16:3e:01:00:01','bridge=eth0' ] acpi = 1 apic = 1 vnc=0 sdl=0 opengl=0 disk = [ 'tap2:tapdisk:remus:192.168.23.100:9000|aio:/dev/vg/firstbase_snap,xvda1,w' ] root = "/dev/xvda1 ro" extra = "2 xencons=tty console=xvc0 barrier=0 clocksource=jiffies" on_poweroff = 'destroy' on_reboot = 'restart' on_crash = 'restart'
Diese domain zu starten war dann ganz einfach
xm create firstbase
den sync zum master habe ich dann einfach mit
remus firstbase 192.168.23.100
Die DomU meldet sich also als
firstbase:~# uname -a Linux firstbase 2.6.18.8-xenU #1 SMP Fri Nov 19 00:35:06 Local time zone must be set--see zic i686 GNU/Linux
files
Xen0 Kernel-Config: Datei:Config-xen-remus-2.6.32.gz
XenU Kernel-Config: Datei:Config-2.6.18.8-xenU.gz
DomU (firstbase) packageselection: Datei:Package selection.gz
xend config: Datei:Xend-config.sxp.gz