Erinevus lehekülje "Xen kasutamine Debian Etchiga" redaktsioonide vahel

Allikas: Kuutõrvaja
(Võrgu kasutamine domU sees)
(Võrgu kasutamine domU seest)
138. rida: 138. rida:
 
Käesolevas palas kasutatakse esimest võimalust.
 
Käesolevas palas kasutatakse esimest võimalust.
  
Pikemalt teoorisse süvenemata olgu öeldud, et privilegeeritud ja privilegeerimata domeenide võrgukaardid on ühendatud virtuaalsete sildade abil kokku ning seda kaudu toimub andmevahetus. Ühe võrgukaardi puhul ei tohiks võrgu seadistamine vajada eriliste muudatuste tegemist Xen tarkvara seadistusfailidesse, domU kaardi ühendatakse sillaga tänu reale
+
Pikemalt teoorisse süvenemata olgu öeldud, et privilegeeritud ja privilegeerimata domeenide võrgukaardid on ühendatud virtuaalsete sildade abil kokku ning seda kaudu toimub andmevahetus. Ühe võrgukaardi puhul ei tohiks võrgu seadistamine vajada eriliste muudatuste tegemist Xen tarkvara seadistusfailidesse, domU virtuaalne võrguseade ühendatakse virtuaalse sillaga tänu reale
  
 
  vif = ['bridge=xenbr0']
 
  vif = ['bridge=xenbr0']

Redaktsioon: 8. juuni 2007, kell 20:47

Sissejuhatus

Xen võimaldab ühel füüsilisel arvutil kasutada mitmeid samaaegselt töötavaid operatsioonisüsteeme. Reeglina töötab selliselt käivitatud arvutil üks põhiline operatsioonisüsteem (Host), mis kontrollib teiste (Guest) operatsioonisüsteemide tegevust. Üldiselt eristatakse nelja tüüpi virtualiseerimise tehnikaid:

Riistvara emuleerimine - QEMU
Full virtualization - vmware (saab kasutada modifitseerimata Guest operatsioonisüsteeme)
Paravirtualization - Xen (saab kasutada vaid modifitseeritud Guest operatsioonisüsteeme)
Operating System level virtualization - UML (Guest operatsioonisüsteem töötab protsessina)

Modifitseerimine tähendab Xeni puhul seda, et Guest operatsioonisüsteem kasutab vastavalt paigatud tuuma.

Xeni puhul kasutatakse kõnealuselt käivitatud arvutis kahte tuuma

Host operatsioonisüsteem ehk privilegeeritud domeen ehk dom0
Guest operatsioonisüsteem ehk privilegeerimata domeen ehk domU 

Xen tarkvara paigaldamine

Debian Etch puhul tuleb paigaldada paketid

libc6-xen xen-docs-3.0 xen-hypervisor-3.0.3-1-i386 xen-tools xen-utils-3.0.3-1 xen-utils-common

Lisaks on tuumade kompileerimiseks vajalik kopeerida www.xensource.com veebikohast Xen lähtetekstid ning paigaldada

iproute bridge-utils python-twisted gcc-3.3 binutils make zlib1g-dev python-dev transfig 
bzip2 screen debootstrap libcurl3-dev libncurses5-dev x-dev

Privilegeeritud domeeni dom0 tuum

Lahtipakitud Xeni lähtetekstid kataloogis tuleb öelda

bash# make linux-2.6-xen0-config CONFIGMODE=menuconfig KERNELS="linux-2.6-xen0"
.. võib lisaks valida meelepäraseid seadeid
bash# make linux-2.6-xen0-build
bash# make linux-2.6-xen0-install

Tulemusena on paigaldatud arvutisse uus tuum, peale bootloaderi seadistuste ülevaatamist tuleb arvuti xen0 domeeni tuumaga rebootida. Seejärel näeb Xen teateid käsuga

xm dmesg

Grubi seadistamine

Esmalt laaditakse Xeni hüperviisor ja seejärel privilegeeritud domeeni (dom0) Linuxi tuum

default     0
timeout     15
color cyan/blue white/blue

title xen
root (hd0,1)
kernel /boot/xen-3.0.3-1-i386.gz  dom0_mem=384000
module /boot/vmlinuz-2.6.16.29-xen0 root=/dev/hda2 ro max_loop=255
savedefault
boot

Tuleb tähele panna, et privilegeerimata domeeni tuum paikneb väljaspoole privilegeerimata domeeni failisüsteemi ning see asjaolu on iseloomulik paravirtualiseerimisele.

Guest domeeni seadistamine

Guest domeene võib olla üks või mitu, iga domeeniga on seotud

  1. guest domeeni tuum (mitu guest domeeni võivad kasutada ühte ja sama domU tuuma)
  2. guest failisüsteemi immidz
  3. Xeni guest domeeni seadistusfail

Kusjuures oluline on tähele panna, et Guest operatsioonisüsteemi tuum paikneb tema immidzast väljaspool.

Guest domeeni domU tuum

Lahtipakitud Xeni lähtetekstid kataloogis tuleb öelda

bash# make linux-2.6-xenU-config CONFIGMODE=menuconfig KERNELS="linux-2.6-xenU"
.. võib lisaks valida meelepäraseid seadeid
bash# make linux-2.6-xenU-build
bash# make linux-2.6-xenU-install

Tulemusena on paigaldatud arvutisse xenU domeeni tuuma, mida kasutatakse guest domeenide bootimiseks.

Xen domU moodustamine

Debian Etch sisaldab paketti xen-tools, mis hõlbustab Guest domeenide immidza tekitamist. Koostage nt selline seadistusfail /etc/xen-tools/xen-tools.conf

dir = /mnt/xen
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   = sarge    # Default distribution to install.
image  = sparse   # Specify sparse vs. full disk images.
passwd = 1
kernel = /boot/vmlinuz-2.6.16.29-xenU
mirror = http://ftp.aso.ee/debian/

ning öelge

bash# xen-create-image --hostname=xen-sarge.auul --ip=172.16.92.2 \
--gateway=172.16.92.128 --netmask=255.255.255.0

Tulemusena moodustatakse domU seadistusfail

/etc/xen/xen-sarge.auul.cfg

immidzad /mnt/xen/domains/xen-sarge.auul immidzad

disk.img
swap.img

domU käivitamine

Privilegeerimata domU seadistusfaili sisu võiks olla näiteks selline

name    = 'xen-sarge.auul'
kernel  = '/boot/vmlinuz-2.6.16.29-xenU'
memory  = '256'
root    = '/dev/sda1 ro'
disk    = [ 'file:/data/xen/domains/xen-sarge.auul/disk.img,sda1,w', \
            'file:/data/xen/domains/xen-sarge.auul/swap.img,sda2,w' ]
vif = ['bridge=xenbr0']

Kusjuures, siin kasutatud sda1 ja sda2 seadmed peavad olema kooskõlas domU /etc/fstab faili sisuga. domU failisüsteemile pääseb juurde hõlpsasti, tuleb vastav image ühendada

bash# mount -o loop /data/xen/domains/xen-sarge.auul/disk.img /mnt

domU käivitamine koos konsooli teadete esitamisega toimub selliselt

bash# xm create -c /etc/xen/xen-sarge.auul.cfg

-c võti tähendab, et terminalile esitatakse domU konsool. Peale domU käivitamist võib sisse logida kas konsooli kaudu või üle võrgu. Konsoolilt pääseb välja Ctrl + ] kombinatsiooni abil.

Võrgu kasutamine domU seest

Eelnevates punktides on libisetud üle võrku puudutavatest küsimustest ja keskendutud domU enda käivitamisele kuigi just sobivate võrguomaduste seadistamisega on tavaliselt kõige rohkem probleeme. Võrgus saab domU paikneda kahel moel

  • bridge rezhiimis - domU kasutab sama alamvõrgu aadresse mida dom0
  • nat rezhiimis - domU kasutab privaatse võrgu aadresse ning on dom0 taha natitud

Käesolevas palas kasutatakse esimest võimalust.

Pikemalt teoorisse süvenemata olgu öeldud, et privilegeeritud ja privilegeerimata domeenide võrgukaardid on ühendatud virtuaalsete sildade abil kokku ning seda kaudu toimub andmevahetus. Ühe võrgukaardi puhul ei tohiks võrgu seadistamine vajada eriliste muudatuste tegemist Xen tarkvara seadistusfailidesse, domU virtuaalne võrguseade ühendatakse virtuaalse sillaga tänu reale

vif = ['bridge=xenbr0']

Kui on vajadus kasutada domU selliselt, et sealt saab pöörduda mitmesse, nt kahe dom0 arvuti füüsilise võrgukaardiga seotud võrgu poole, siis tuleb selleks tekitada üks skript, nt nimega /etc/xen/scripts/kaks-silda.sh ja sisuga

#!/bin/sh
dir=$(dirname "$0")
"$dir/network-bridge" "$@" vifnum=0 netdev=eth0 bridge=xenbr0
"$dir/network-bridge" "$@" vifnum=1 netdev=eth1 bridge=xenbr1

Lisaks tuleb seadistusfailis /etc/xen/xend-config.sxp kasutada rida

(network-script kaks-silda.sh)

Õigel juhul kasutab nüüd Xen kahte virtuaalselt silda (ingl. k. bridge)

bash # brctl show
bridge name     bridge id               STP enabled     interfaces
xenbr0          8000.feffffffffff       no              vif0.0
                                        peth0
                                        vif5.0
xenbr1          8000.feffffffffff       no              vif0.1
                                        peth1
                                        vif5.1

Tulemusena peab domU sisse tekkima kaks võrguseadet, eth0 ja eth1 ning sobivate aadresside kasutamisel saab nende abil pöörduda vastavatesse võrkudesse.

Probleemid

Mõnel juhul võib ilmuda peale domU konsoolile bootimist st võtmega -c rohkelt teateid

Couldnt get a file descriptor referring to the console

Selle vastu aitab liigutada ära domU sees fail

bash# mv /etc/console/boottime.kmap.gz /etc/console/boottime.kmap.gz-muidu-segab-xenni

Couldnt get a file descriptor referring to the console

Tundub, et 2007 aasta keskel on AMD64 platvormil Debian Etch Xenilisel paketituumal probleeme stabiilsusega mitme protsessori puhul. Selle vastu aitab kasutada /etc/xen/xend-config.sxp failis rida

# In SMP system, dom0 will use dom0-cpus # of CPUS
# If dom0-cpus = 0, dom0 will take all cpus available
(dom0-cpus 1)

Lisaks on täheldatud probleeme kui domU juurfailisüsteemina kasutatakse reiser failisüsteemi.

Kui domU on Debian Sarge, siis ei ole seal standardse paketihaldusega võimalik paigaldada nn xenisõbralikku libc teeki libc6-xen ning selle tulemusena võivad ilmneda sellised teated

4gb seg fixup, process S43portmap (pid 1046), cs:ip 73:b7e763f8

Selle vastu aitab kataloogi /lib/tls liigutamine

bash# mv /lib/tls /lib/tls.disabled

Lingid

NetBSD xen http://www.s-mackie.demon.co.uk/unix-notes/NetBSD-Xen-Setup.html

Xen knoppix http://unit.aist.go.jp/itri/knoppix/xen/index-en.html

Gentoo Xen http://gentoo-wiki.com/HOWTO_Xen_and_Gentoo