Xen kasutamine Debian Lenniga
Xen tarkvara paigaldamine
Kaasaegsete Linuxi distributsioonide paketihaldusest on reeglina võimalik Xen tarkvara paigaldada. Nt Debian GNU/Linux v 5.0 puhul AMD64 arhitektuuri jaoks tuleb paigaldada paketid
- Xen hüperviisor - xen-hypervisor-3.2-1-amd64
- Xen tuum - linux-image-2.6.26-2-xen-amd64 (millegipärast nimetatakse seda paketti 'oldstyle Xen support')
- Xen programmid jms - xen-docs-3.2 xen-tools xen-utils-3.2-1 xen-utils-common bridge-utils jt
Praktiliselt sobib Xen tarkvara paigaldamiseks öelda
# apt-get install xen-linux-system-2.6.26-2-xen-amd64 xen-tools
Peale tarkvara paigaldamist tuleb arvuti bootida kasutades hüperviisorit ning Xeni tuuma, selleks sobib kasutada nt sellise sisuga GRUB menüü faili menu.lst
default 0 timeout 15 color cyan/blue white/blue title Xen root (hd0,0) kernel /boot/xen-3.2-1-amd64.gz dom0_mem=393216 module /boot/vmlinuz-2.6.26-2-xen-amd64 root=/dev/sda1 ro max_loop=255 module /boot/initrd.img-2.6.26-2-xen-amd64
Pange tähele, et privilegeerimata domeeni tuum paikneb väljaspoole privilegeerimata domeeni failisüsteemi ning see asjaolu on iseloomulik paravirtualiseerimisele. Lisaks on piiratud dom0 mälu mahuga 384 MB. Tõsi, on olemas py-grub initsiatiiv, mis võimaldab kasutada domU'ga domU sees paiknevat tuuma.
Peale bootimist saab küsida hüpervisori dmesg'i käsuga
bash# xm dmesg
Xen tarkvara seadistamine
Xen'i tarkvara koosneb kahest osast
- dom0 sees töötab serveri pool, mida kontrollib seadistusfail /etc/xen/xend-config.sxp
- Iga domU omadused on kirjas vastava domU seadistusfailis, /etc/xen/domU-nimi.cfg
Kuigi tundub, et xend-config.sxp failis tehtud muudatuste kehtestamiseks tihti piisab xend doeemoni peatamisest ja startimisest
bash# /etc/init.d/xend stop|start
osutub, et vahel on kõige otsekohesem segaduste vältimiseks peale selle faili muutmist arvuti alglaadida. Pealegi, xend-config.sxp failis tehakse vajalikud muudatused Xeni juurutamise ajal ära ning edaspidi muudetakse seda Xeni kasutamise ajal harva. xend-config.sxp faili muutmise teel saab teha järgmisi otsustusi
- millises režiimis töötab domU'de võrk (bridge, routing, nat)
- kui palju on dom0 sees kasutusel protsessoreid, soovitav on valida kõik, muidu mõnel platvormil süsteem ei tööta stabiilselt (dom0-cpus 0)
- kui palju mälu on tagatud dom0 jaoks, soovitav 196 MB (dom0-min-mem 196)
Xen võimaldab kasutada domU'sid võrgu mõttes kolmel erineval moel, tavaliselt kasutatakse kõiki domU'sid samaagselt ühes ja samas režiimis
- routing - dom0 on võrgu sõlmpunktiks iga domU ja dom0'ga samas subnetis olevate teiste arvutite vahel
- nat - dom0 on võrgu sõlmpunktiks iga domU ja dom0'ga samas subnetis olevate teiste arvutite vahel kusjuures, dom0 teeb NAT teisendusi domU'de jaoks
- bridge - dom0 ja kõik domU'de võrguseadmed asuvad ühes ja samas võrgus etherneti mõttes, kasutatakse sama ip subneti aadresse
Järgnevates punktides käsitletakse eraldi domU'le vastava seadistusfaili kõiki muid omadusi ning kuidas seadistada käima erinevaid võrgus töötamise režiime, alustuseks võiks Debian GNU/Linux 5.0 puhul vaadata üle mainitud dom0-cpus ja dom0-min-mem parameetrite väärtused ning dom0 operatsioonisüsteem alglaadida.
Xen domU moodustamine
domU operatsioonisüsteemi eksemplarile vastava plokkseadmena saab kasutada
- tõmmisfaili dom0 arvuti failisüsteemis
- fdisk partitsiooni
- LVM volume'i
- üle iSCSI (või muul analoogsel moel, nt AOE) dom0 arvutisse ühendatud plokkseadet
- üle FC dom0 arvutisse ühendatud plokkseadet
- üle NFS'i kättesaadavat failisüsteemi
Debian Lenny sisaldab paketti xen-tools, mis hõlbustab Guest domeeni operatsioonisüsteemile vastava failisüsteemi tekitamist, nt võiks sobida kasutada selline seadistusfail /etc/xen-tools/xen-tools.conf
dir = /data debootstrap = 1 size = 4Gb # Disk image size. memory = 512Mb # Memory size swap = 1024Mb # Swap size fs = ext3 # use the EXT3 filesystem for the disk image. dist = lenny # Default distribution to install. image = full # Specify sparse vs. full disk images. passwd = 1 kernel = /boot/vmlinuz-2.6.26-2-xen-amd64 mirror = http://ftp.aso.ee/debian/
ning öelda
# xen-create-image --hostname=xen.loomaaed.tartu.ee --ip=172.16.92.2 \ --gateway=172.16.92.128 --netmask=255.255.255.0
Tulemusena moodustatakse domU seadistusfail
/etc/xen/xen.loomaaed.tartu.ee.cfg
ning juurfailisüseemi ja saaleala tõmmised kataloogi /data/domains/xen.loomaaed.tartu.ee
/data/domains/xen.loomaaed.tartu.ee/disk.img /data/domains/xen.loomaaed.tartu.ee/swap.img
Parameetri dir asemel saab kasutada parameetrit lvm, nt 'lvm=data_xen' puhul oleks moodustatud vastavad LVM voluumid gruppi data_xen
/dev/data_xen/xen.loomaaed.tartu.ee-swap /dev/data_xen/xen.loomaaed.tartu.ee-disk
Seadistusfaili võiks kohendada ülevaatlikuse mõttes nt selliseks
name = 'xen.loomaaed.tartu.ee' kernel = '/boot/vmlinuz-2.6.26-2-xen-amd64' ramdisk = '/boot/initrd.img-2.6.26-2-xen-amd64' root = '/dev/xvda1' memory = '1024' disk = [ 'file:/data/domains/xen.loomaaed.tartu.ee/disk.img,sda1,w', 'file:/data/domains/xen.loomaaed.tartu.ee/swap.img,sda2,w' ] vif = [ 'mac=70:01:68:00:20:13' ] vcpus="1" extra='xencons=tty'
Toodud domU seadistamiseks kasutatud parameetrid on isenesest mõistetava tähendusega, kõikvõimalike parameetrite loetelu saab küsida käsuga
# xm create --help_config
domU'de arvu suurenemisel lihtsustab süsteemi haldamist kui mac aadressid on tekitatud mingi süsteemi alusel, näiteks võiks kasutada sarnast skeemi kümend süsteemist kuueteistkümned süsteemi teisendamisel
- ip aadress 192.168.2.13 - 70:01:68:00:20:13 ehk kasutades sulge 70:0(1:68):(00:2)(0:13)