Benutzer:Asklepios/Xen Remus: Unterschied zwischen den Versionen
(→setup) |
K (→make.conf) |
||
(19 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 24: | Zeile 24: | ||
die sourcen von xen gibts via mercurial: | die sourcen von xen gibts via mercurial: | ||
dev-vcs/mercurial-1.5 USE="-bash-completion -bugzilla -emacs -gpg -test -tk -zsh-completion" | 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): | erste tests habe ich mit live-migration gemacht (storage backend eben): | ||
sys-block/aoetools-27 | sys-block/aoetools-27 | ||
Zeile 38: | Zeile 40: | ||
sys-apps/hal-0.5.14-r2 USE="acpi apm crypt dell disk-partition -X -consolekit -debug -doc -laptop -policykit (-selinux)" | 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)" | sys-fs/udev-141 USE="(-selinux)" | ||
== storage == | == storage == | ||
hierfuer wurde einfach ein lvm aufgesetzt. Die syncronisation der platten laeuft ueber Remus. | hierfuer wurde einfach ein lvm aufgesetzt. Die syncronisation der platten laeuft ueber Remus. | ||
Zeile 44: | Zeile 47: | ||
lvcreate -n firstbase -L10G vg | 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 [http://www.drbd.org drbd ] an | 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 [http://www.drbd.org 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 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 = | = firstbase DomU = | ||
Zeile 75: | Zeile 129: | ||
= files = | = files = | ||
Xen0 Kernel-Config: [[Datei:Config-xen-remus-2.6.32.gz | |||
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]] |
Aktuelle Version vom 7. Januar 2011, 16:05 Uhr
Xen mit Remus[Bearbeiten | Quelltext bearbeiten]
Ziel dieser Seite[Bearbeiten | Quelltext bearbeiten]
Einfach mal ein Setup aufsetzen fuer xen-remus
Was ist Remus[Bearbeiten | Quelltext bearbeiten]
Dazu sei mal ganz einfach auf die Projektseite http://dsg.cs.ubc.ca/remus/doc.html verwiesen.
Hardware[Bearbeiten | Quelltext bearbeiten]
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[Bearbeiten | Quelltext bearbeiten]
Host OS[Bearbeiten | Quelltext bearbeiten]
Das HostOS ist ein Gentoo. mit folgenden relevanten tools neben dem basis-system installiert:
Pakete[Bearbeiten | Quelltext bearbeiten]
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[Bearbeiten | Quelltext bearbeiten]
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[Bearbeiten | Quelltext bearbeiten]
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[Bearbeiten | Quelltext bearbeiten]
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[Bearbeiten | Quelltext bearbeiten]
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 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[Bearbeiten | Quelltext bearbeiten]
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[Bearbeiten | Quelltext bearbeiten]
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[Bearbeiten | Quelltext bearbeiten]
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