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

Allikas: Kuutõrvaja
(Xen domU moodustamine)
(Xen domU moodustamine)
129. rida: 129. rida:
 
   stdin: is not a tty
 
   stdin: is not a tty
  
* Kui domU sees 'su - kasutajanimi' puhul kõigi sisestuse puhul peale Enteri logitakse kasutaja välja, st tagasi juurkasutaja shelli, siis selle vastu aitab anda domU'le 2 vcpus, http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=476519
+
* Kui domU sees 'su - kasutajanimi' puhul kõigi klaviatuurilt tehtud klahvivajutuste puhul peale Enteri logitakse kasutaja välja, st tagasi juurkasutaja shelli, siis selle vastu aitab anda domU'le 2 vcpus, http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=476519
  
 
===domU käivitamine ja seiskamine===
 
===domU käivitamine ja seiskamine===

Redaktsioon: 4. juuli 2009, kell 00:35

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 teegid, programmid, skriptid ja dokumentatsioon - xen-docs-3.2, xen-tools, xen-utils-3.2-1, xen-utils-common
  • üldkasutatavad abivahendid - bridge-utils

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 ro'
 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="2"
 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)

Märkused:

  • Vastsesse süsteemi sisselogimisel on juurkasutaja parool seadistamata, sisselogimisel konsoolilt sobib parooli küsimise kohas vajutada Enter.
  • Tõenäoliselt tuleb paigaldada vastsesse süsteemi udev pakett ning teha operatsioonisüsteemile alglaadimine, muidu saab ssh abil sisse logides teate
 PTY allocation request failed on channel 0
 /usr/bin/X11/xauth:  creating new authority file /root/.Xauthority
 stdin: is not a tty

domU käivitamine ja seiskamine

Jättes esialgu pööramata tähelepanu võrguseadistustele ja kommenteerides vif parameetri domU seadistusfailist välja veendume, et domU on kasutatav st teda saab käivitada, konsoolilt sisse logida ning seisata.

domU käivitamine koos konsooli kasutamisega toimub selliselt, -c võti tähendab, et samale terminalile kus käsk anti esitatakse domU konsool

 # xm create -c /etc/xen/xen.loomaaed.tartu.ee.cfg

Peale domU käivitamist võib sisse logida kas konsooli kaudu või üle võrgu kui võrk oleks seadistatud. Konsoolilt pääseb välja Ctrl + ] kombinatsiooni abil ning konsooli tagasi käsuga

 # xm console xen.loomaaed.tartu.ee

domU seiskamiseks on käsk

 # xm shutdown xen.loomaaed.tartu.ee

Töötavate domeenide nimekirja näeb käsuga

 # xm list

Xen domU'le vastavaid failisüsteeme saab dom0 all hõlpsasti külge ühendada ja kasutada, kusjuures vastav domU ei tohi samal ajal töötada

 bash# mount -o loop /data/domains/xen.loomaaed.tartu.ee/disk.img /mnt

Võrgu kasutamine domU seest

TODO

Ruuting režiim

TODO

Aadressteisendav režiim

TODO

Sillatud režiim

TODO

Sillatud režiim VLAN seadmetega

DomU ühendamiseks võrku mitme dom0 peal seadistatud VLAN võrguseadme abil tuleb teha ettevalmistusi operatsioonisüsteemi võrguseadistustes ning lisada paketihaldusest paigaldatud Xeni skriptidele juurde kaks skripti, mis peavad olema käivitatavad. Järgnev põhineb, õigemini kordab juhendit aadressilt http://wiki.xensource.com/xenwiki/XenNetworking#head-cc1acf427fd2514aa441f1dbce2ba0a512eb8697 ehk VLAN -> 2nd method.

Olgu selline eesmärk

  • eth0 - nö tavaline võrguseade, mida kasutatakse Xen dom0 halduseks, aadress 10.0.5.250
  • eth1 - nn tagged võrguseade, millele kasutatakse VLAN'isid vlan506, vlan507 ja vlan508, dom0 sees neil seadmetel ip aadresse ei ole
  • domU sees moodustuvad seadmed eth0 ja eth1, mis kuuluvad vastavalt vlan506 ja vlan507 peale, domU sees on neil ip aadressid seadistatud

Tulemuse saavutamiseks tuleb operatsioonisüsteemis moodustada sellise sisuga /etc/network/interfaces fail

 auto lo
 iface lo inet loopback
 
 auto eth0
 iface eth0 inet static
  address 10.0.5.250
  gateway 10.0.5.1
  netmask 255.255.255.0
 
 auto eth1
 iface eth1 inet manual
  pre-up ifconfig $IFACE up
  post-down ifconfig $IFACE down
 
 auto vlan506
 iface vlan506 inet manual
   vlan_raw_device eth1
 
 auto vlan507
 iface vlan507 inet manual
  vlan_raw_device eth1
 
 auto vlan508
 iface vlan508 inet manual
  vlan_raw_device eth1

Seejärel tuleb teha koopia failist /etc/xen/scripts/network-bridge

 # cp /etc/xen/scripts/network-bridge /etc/xen/scripts/network-bridge-withvlan

ning koopias kommenteerida osa ridu välja, selliselt

 # diff /etc/xen/scripts/network-bridge*
 100c100
 <     if ! ifup $1 ; then
 ---
 > #    if ! ifup $1 ; then
 108c108
 <     fi
 ---
 > #    fi
 217c217
 <     if ! ifdown ${netdev}; then
 ---
 > #    if ! ifdown ${netdev}; then
 222c222
 <     fi
 ---
 > #    fi
 245c245
 <     if ! ifdown ${bridge}; then
 ---
 > #    if ! ifdown ${bridge}; then
 247c247
 <     fi
 ---
 > #    fi

Seejärel tuleb moodustada skript /etc/xen/scripts/sillad.sh

 #!/bin/sh
 dir=$(dirname "$0")
 
 "$dir/network-bridge-withvlan" "$@" vifnum=0 netdev=vlan506 bridge=xenbr506
 "$dir/network-bridge-withvlan" "$@" vifnum=1 netdev=vlan507 bridge=xenbr507
 "$dir/network-bridge-withvlan" "$@" vifnum=2 netdev=vlan508 bridge=xenbr508
 
 for i in 506 507 508; do
         ifconfig xenbr$i up
 done

Ning lõpuks näidata seadistusfailis /etc/xen/xend-config.sxp, et seda sillad.sh faili kasutatakse

 # (network-script network-dummy)
 (network-script sillad.sh)

Nii ettevalmistatud sildade kasutamiseks sobib domU seadistusfailis kasutada nt ridu

 vif = [ 'mac=70:10:00:00:61:30,bridge=xenbr506', \
         'mac=70:10:00:00:71:30,bridge=xenbr507' ]

Kui kasutajat härib, et episoodiliselt on näha tcpdump abil domU sees salvestatud liikluses tcp või udp kontrollsummade vigu

 # tcpdump -s 1600 -w /tmp/tx-on-on.log -i eth0
 # zcat /tmp/tx-on-on.log | tcpdump -nvver - | grep incorrect
 ...
 20:14:45.155727 70:10:00:00:61:30 > 00:00:5e:00:01:6a, ethertype IPv4 (0x0800), \
   length 114: (tos 0x10, ttl 64, id 21672, offset 0, flags [DF], proto TCP (6), \
   length 100) 10.0.6.130.22 > 172.17.4.97.44186: P, cksum 0xc14a (incorrect \
   (-> 0x63df), 3761:3809(48) ack 1440 win 273 <nop,nop,timestamp 4294921785 9256126>

siis võib domU sees öelda ja selliseid vigu enam tcpdump ei esitata

 # ethtool -K eth0 tx off

Tulemusena on offloadi puudutavad parameetrid sellised

 # ethtool -k eth0
 Offload parameters for eth0:
 Cannot get device rx csum settings: Operation not supported
 Cannot get device flags: Operation not supported
 rx-checksumming: off
 tx-checksumming: off
 scatter-gather: off
 tcp segmentation offload: off
 udp fragmentation offload: off
 generic segmentation offload: off
 large receive offload: off

Samaväärne on kirjutada vastava seadme juurde /etc/network/interfaces faili

 post-up  ethtool -K eth0 tx off