Writing /home/www/cz/blackmouse/wiki/data/cache/0/0e5fcad12238f1a1e7d129556f02bead.i failed
Unable to save cache file. Hint: disk full; file permissions; safe_mode setting.
Writing /home/www/cz/blackmouse/wiki/data/cache/0/0e5fcad12238f1a1e7d129556f02bead.i failed
Unable to save cache file. Hint: disk full; file permissions; safe_mode setting.
Writing /home/www/cz/blackmouse/wiki/data/cache/0/0e5fcad12238f1a1e7d129556f02bead.xhtml failed

BlackMouse a Xen

BlackMouse jako domain0

Úvodem

Zda se ze funguje následující postup. Trochu sem se s tím pral a není to zrovna ideální ale co se dá dělat.

  • Celý xen je třeba kompilovat z jednoho zdrojového adresáře (xen, kernels i tools)
  • Jádra je vhodné kompilovat z hg repositáře, bude tedy třeba program hg (mercurial)
  • Komilace tools vyžaduje vše možné včetně x11, používal sem tyto balíčky:
    • gettext-tools
    • libXaw
    • xproto
    • openssl
    • py24-curses
    • py24-xml
    • py24-readline

A pro jistotu ještě:

  • randrproto

Stažení zdrojových kódů

cd /usr/src
ftp http://bits.xensource.com/oss-xen/release/3.2.1/xen-3.2.1.tar.gz
tar xzf xen-3.2.1.tar.gz
hg clone http://xenbits.xensource.com/linux-2.6.18-xen.hg
cd xen-3.2.1
make prep-kernels KERNELS="linux-2.6-xen0 linux-2.6-xenU"

K vytvoření config souborů je více možností, zkopírovat např. z již existujícího kernelu, nebo použít např. menuconfig:

cp boot/config-2.6.18-my build-linux-2.6.18-xen0_x86_32/.config
# resp.
cp boot/config-2.6.18-my build-linux-2.6.18-xenU_x86_32/.config
make -C /usr/src/linux-2.6.18-xen.hg O=/usr/src/xen-3.2.1/build-linux-2.6.18-xen0_x86_32 menuconfig
#resp.
make -C /usr/src/linux-2.6.18-xen.hg O=/usr/src/xen-3.2.1/build-linux-2.6.18-xenU_x86_32 menuconfig

Kompilace a instalace hypervisora a jader

Následně můžeme zkompilovat a nainstalovat hypervisor a jádra:

make xen
make kernels KERNELS="linux-2.6-xen0 linux-2.6-xenU"
make install-xen
make install-kernels KERNELS="linux-2.6-xen0 linux-2.6-xenU"

Kompilace a instalace nástrojů

Kompilace tools je krapet komplikovanější, neboť knihovny které používáme jsou instalované z pkgsrc. Navíc test knihoven přímo počítá s hlavičkovými soubory v /usr/include. Je tedy třeba vytvořit odkaz z /usr/include (to je nutné jen pro kompilaci, pro běh xenu nikoli). Dále xen počítají s přítomností binárky python (pkgsrc má např. python2.4. A kompilace může začít kompilovat, jen musíme počítat s tím že knihovny se musí linkovat proti /usr/pkg/lib:

ln -s /usr/pkg/include/openssl /usr/include/
ln -s /usr/pkg/include/X11 /usr/include
ln -s /usr/pkg/bin/python2.4 /usr/pkg/bin/python
CFLAGS="-L/usr/pkg/lib" make tools
CFLAGS="-L/usr/pkg/lib" make install-tools

Spuštění

V /etc/init.d/ jsou 2 scripty které je vhodné spouštět při startu automaticky, proto by se do /etc/rc.d/rc.local mohly přidat následující řádky:

/etc/init.d/xend start
/etc/init.d/xendomains start

Je samozřejmě vhodné zajistit i následné ukončování xenu, aby se virtuální korektně ukončovali.

Grub

BlackMouse jako domainU

root v souboru (loop)

Nejprve je třeba vytvořit image soubor, ten pak připojit k loop zařízení a s ním pak dále zacházet jako s blokovým zařízením:

dd if=/dev/zero of=/opt/xen/blackmouse-xenU-sda1 bs=4M count=1k
losetup /dev/loop0 blackmouse-xenU-sda1
mkfs.ext3 -j /dev/loop0
mount /dev/loop0 /mnt/image/

Instalace

K instalaci potřebujeme adresář base z BlackMouse CD nebo ftp serveru. Nebudeme potřebovat balíčky lilo a grub a budeme instalovat kernel-domainU. Můžeme také použít náš vytvořený kernel spolu s xenem.

cd /some/path/base
sys_add  -root /mnt/image *.tgz
mkdir /mnt/image/lib/modules
cp -a /usr/src/xen-3.2.1/dist/install/boot/vmlinuz-2.6.18.8-xenU /mnt/image/boot/
cp -a /root/xen-3.2.1/dist/install/lib/modules/2.6.18.8-xenU /mnt/image/lib/modules/
cat /etc/fstab > /mnt/image/etc/fstab

Je třeba upravit soubor fstab v doméně U aby odpovídal virtuálnímu stroji. A pokud nebudeme používat swap, je třeba ho vymazat, nebo zakomentovat, případně vytvořit další swap soubor. Image soubor virtuální instalace je vhodné před použitím odpojit.

umount /mnt/image

Ukázka konfiguračního souboru pro blackmouse-xenU-1:

kernel = "/boot/vmlinuz-2.6.18.8-xenU"
memory = 128
name = "blackmouse-xenU-1"
vif = [ '' ]
dhcp = "dhcp"
disk = ['file:/opt/xen/blackmouse-xenU-sda1,sda1,w']
root = "/dev/sda1 ro"
extra = 'xencons=tty'
 
blackmouse_a_xen.txt · Poslední úprava: 2008/11/08 13:25 autor: mcbig
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki