Benutzer:Asklepios/Xen Remus: Unterschied zwischen den Versionen

Aus LaborWiki
Wechseln zu: Navigation, Suche
Zeile 82: Zeile 82:
  cd xen-4.0-testing.hg
  cd xen-4.0-testing.hg
  source /etc/make.conf
  source /etc/make.conf
  make dist
  KERNELS="linux-2.6-xenU linux-2.6-pvops" make dist
cp Config-xen-remus-2.6.32 build-linux-2.6-pvops_x86_32/.config
# configure domU kernels
  KERNELS="linux-2.6-xenU" make dist
make linux-2.6-xenU-config CONFIGMODE=menuconfig
  cp Config-xen-remus-2.6.18 build-linux-2.6.18-xenU_x86_32/.config
# configure dom0 kernel -
  rm -rf dist
  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
  KERNELS="linux-2.6-xenU linux-2.6-pvops" make dist



Version vom 5. Januar 2011, 21:10 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

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
# 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

Xen_dmesg

Xen0 Kernel-Config: Datei:Config-xen-remus-2.6.32.gz

DomU (firstbase) packageselection: Datei:Package selection.gz