KVM kasutamine Ubuntu 10.04 operatsioonisüsteemiga
Sisukord
- 1 Sissejuhatus
- 2 KVM hosti ettevalmistamine
- 3 Domeenide kasutamine virt-manager abil
- 4 Domeenide kasutamine virsh utiliidi abil
- 5 Virtuaalne riistvara
- 6 Domeeni kirjelduse haldamine
- 6.1 Võrguseadme lisamine
- 6.2 Plokkseadme lisamine
- 6.3 Kasutada oleva mälu kontrollimine
- 6.4 Protsessorite arvu muutmine
- 6.5 Domeeni kirjelduse eemaldamine
- 6.6 Domeeni kirjelduse lisamine
- 6.7 Domeeni kirjelduse salvestamine
- 6.8 Domeeni automaatselt käivitatavaks märkimine
- 6.9 Floppy-seadme kasutamine
- 7 Domeeni serial konsooli kasutamine
- 8 Domeeni kloonimine
- 9 Mittegraafiliste vahenditega domeeni paigaldamine
- 10 OpenBSD domeeni kasutamine
- 11 Domeeni migreerimine scsi -> virtio plokkseadmele
- 12 Domeeni alglaadimine CD tõmmiselt
- 13 Domeeni alglaadimine võrgust
- 14 Domeeni migreerimine mõnelt muult platvormilt KVM peale
- 15 Domeeni live-migration
- 16 Xen domeenide kasutamine KVM all
- 17 Windows XP kasutamine
- 18 Haiku kasutamine
- 19 FreeBSD kasutamine
- 20 Märkused
- 21 Kasulikud lisamaterjalid
Sissejuhatus
KVM (Kernel-based Virual Machine, ingl. k. tuumapõhine virtuaalmasin) on Linuxi kernelis asuv virtualiseerimise tugi, mis toetab nn native virtualization'it st töötab näiteks AMD-V ja Intel-VT protsessoritega.
KVM tekitab /dev/kvm seadme, mida kasutab modifitseeritud kasutajaprogramm (ingl. k. user-space program) QEMU selleks, et korraldada virtuaalsetele arvutitele aadressruumi, I/O, video jms ressursside kasutamist.
Seda operatsioonisüsteemi eksemplari, kus asub /dev/kvm seade nimetatakse host'iks (ingl. k. majutaja) ja virtuaalseid arvuteid nimetatakse guest'ideks (ingl. k. külaline).
KVMi iseloomustavad sellised asjaolud
- nn kernel.org tuumas on kasutatav KVM tugi
- kvm tehnoloogiat saab 2008 aasta suvel kasutada x86 arhitektuuriga arvutitest AMD-V ja Intel-VT toega protsessoritega, st praktiliselt viimastel aastatel toodetud uuemate mudelitega
- guest operatsioonisüsteemina saab kasutada suurt hulka erinevaid operatsioonisüsteeme, muu hulgas Linux, OpenBSD, Windows
- kvm domeeni on paigaldatud operatsioonisüsteem alates bootloaderist ja tuumast (nt erinevalt klassikalisest Xeni domeenist)
KVM arendamist korraldab Avi Kivity (RedHat). KVM tugi on lisaks Ubuntule olemas nt
- RedHat 5 - amelikult toetatud
- SLES11 - preview
KVM hostis ei töötavad seoses guestidega kahte tüüpi protsessid
- libvirtd - libvirt teekide vahendusel töötav KVM guestide haldusliides
- kvm - üks või enam töötavad kvm protsesse, mis vastavad virtuaalsetele arvutitele
Edasises tekstis nimetatakse virtuaalset arvutit ehk guesti domeeniks.
KVM hosti ettevalmistamine
Kui hostiks kasutatakse x86 riistvara ja mis iseenesest sisaldab Intel-VT või AMD-V tehnoloogia tuge peab veenduma, et see on ka kasutuses (nt sisselülitatud arvuti BIOS'est). Kui käsk väljastab midagi, ju siis on
# egrep '^flags.*(vmx|svm)' /proc/cpuinfo
KVM tarkvara ja süsteemi haldamiseks abivahendite paigaldamine
Ubuntu 10.04 sisaldab KVM tarkvara versiooni 0.12.3, kusjuures see numeratsioon põhineb uuel KVM tarkvara versioonide nimetamisel. Ubuntu paketihaldusest tuleb paigaldada tarkvara öeldes
# apt-get install ubuntu-virt-server ubuntu-virt-mgmt
Lisaks on abiks vnc server ning koos sellega window manager, nt wmaker
# apt-get install tightvncserver wmaker xterm xfonts-base
Ettevalmistused KVM domeenis võrgu kasutamiseks
Selleks, et KVM domeen saaks pöörduda võrku, tuleb kirjeldada KVM hostis sobivad sillad. Nt olgu hostis kaks füüsilist võrgukaart
- eth0 - teenuse pakkumisega seotud liiklus
- eth1 - hosti haldusega seotud liiklus
Sellisel juhul võiks kasutada nt sellist /etc/network/interfaces faili
# The loopback network interface auto lo iface lo inet loopback auto eth0 iface eth0 inet manual auto br0 iface br0 inet manual bridge_ports eth0 bridge_stp off bridge_fd 0 bridge_maxwait 0 auto eth1 iface eth1 inet static address 192.168.2.122 netmask 255.255.255.0 gateway 192.168.2.245
kus
- hosti operatsioonisüsteem ei kasuta br0 võrguseadet ip liikluse jaoks ja seetõttu ei ole seadistatud seal ip aadressi
- bridge_stp off - spanning tree protocol tugi on br0 sillal välja lülitatud
Kui domeenid kavatsetakse võrku ühendada kasutated sildu mitte füüsilistel vaid vlan seadmetel, siis sobib kasutada nt sellist /etc/network/interfaces seadistusfaili
# The loopback network interface auto lo iface lo inet loopback # HALDUS auto eth0 iface eth0 inet static address 10.0.5.248 netmask 255.255.255.0 gateway 10.0.5.1 # TEENUSED auto eth1 iface eth1 inet manual # ARENDUS auto vlan513 iface vlan513 inet manual vlan-raw-device eth1 auto br513 iface br513 inet manual bridge_ports vlan513 bridge_stp off bridge_fd 0 bridge_maxwait 0
Ettevalmistused KVM domeenis plokkseadme kasutamiseks
KVM domeeni plokseadmele võib vastata hostis
- fail - nt /srv/kvm/arvuti-1.img
- füüsiline ketas - nt /dev/sdc
- LVM köide - nt /dev/serverid/arvuti_1
Muude eelistuste puudumisel võib olla LVM hea valik kuna võimaldab plokkseadmeid mugavalt provisioneerida.
Domeenide kasutamine virt-manager abil
Üldiselt saab KVM domeenide kasutamist juhtida libvirt liidese abil kahe haldusprogrammiga
- virsh - konsoolis kasutamiseks shell
- virt-manager - graafiline haldusliides
virt-manager tuleb käivitada selliselt, et tal oleks nö kuhugi graafilist pilti näidata, nt hostis töötavas VNC serveris, käivitamine toimub öeldes juurkasutajana
# virt-manager -c qemu:///system
ning avaneb sarane pilt
virt-manger abil saab
- domeen moodustada
- domeen käivitada
- domeen seisata
- domeen kustutada
- domeen seadistusi muuta
- jälgida graafiliselt mälu ja kõvekettakasutust reaalajas
- ülevaade domeenide ressursikasutusest
- ülevaade hosti ressursikasutusest
Domeeni moodustamisel tuleb panna tähele, et valitakse virtuaalse arvuti tüübiks kvm (teine valik oleks qemu).
Käivitatud KVM domeen konsool paistab selline
- virt-manager graafilise kasutajaliidese abil
virt-manager kasutamine on suhteliselt intuitiivne, KVM tehnikaga tutvumiseks on tõenäoliselt sobiv alustada graafilisest kasutajaliidesest.
Domeenide kasutamine virsh utiliidi abil
virsh utiliide abil saab kontrollida kohalikus ning üle võrgu ssh'ga ligipääsetavat kvm süsteemi tekstiterminali kaudu, kusjuures virsh utiliiti tuleb kasutada juurkasutajana. virsh võimaldab
- domeeni moodustada
- domeeni kävitada
- domeeni seisata
- domeeni kustutada
- domeeni seadistusi uurida ja muuta
KVM kasutamise tundmaõppimiseks võiks olla efektiivne tegevuste järjekord selline, et esmalt moodustada virt-manager abil mõned domeenid ning seejärel püüda neid virsh abil juhtida ja tutvuda nende omadustega; ning seejärel katsetada domeene moodustada otsekohesemalt kui virt-manager abil.
virsh abil samas arvutis töötava KVM hüperviisoriga ühendumiseks sobib öelda, jõutakse nö virsh prompti
# virsh -c qemu:///system Connecting to uri: qemu:///system Welcome to virsh, the virtualization interactive terminal. Type: 'help' for help with commands 'quit' to quit # virsh
Näitena küsides süsteemi omadusi öeldakse nt
virsh # nodeinfo CPU model: x86_64 CPU(s): 16 CPU frequency: 2261 MHz CPU socket(s): 4 Core(s) per socket: 4 Thread(s) per core: 1 NUMA cell(s): 1 Memory size: 12318924 kB
Teise arvutis töötava hüperviisori kasutamiseks sobib öelda, tavaliselt korraldatakse seejuures, et ühest arvutist saab teise sisse logida ssh võtmega
# virsh -c qemu+ssh://192.168.2.121/system
- Domeeni omaduste küsimiseks sobib öelda
virsh # dominfo openbsd Id: 1 Name: openbsd_1 UUID: 2b91444a-4cec-ec49-7098-7795ebeecb21 OS Type: hvm State: running CPU(s): 1 CPU time: 3042.3s Max memory: 1048576 kB Used memory: 1048576 kB Autostart: disable Security model: apparmor Security DOI: 0 Security label: libvirt-2b91444a-4cec-ec49-7098-7795ebeecb21 (enforcing)
virsh käske võib anda virsh shellis või ka otse, argumendina, nt viimasega annab sama tulemuse kui öelda
# virsh dominfo openbsd
Domeenide käivitamine ja seiskamine
- Kõigi KVM kontrolli all olevate domeenide nimekiri
virsh # list --all Id Name State ---------------------------------- 1 openbsd running 2 debian shut off
- Domeenide käivitamine ja seiskamine
virsh # start debian Domain debian started
ja seiskamiseks
virsh # shutdown debian Domain debian is being shutdown
Nö voolu eemaldamisega on samväärne öelda
virsh # destroy debian Domain debian destroyed
Mitmete käskude andmisel tuleb arvestada, sündmuste toimumiseks kulub aeg, nt tasub peale shutdown ütlemist jälgida list abil, kas soovitud tulemus on saavutatud.
Töötavale domeenile vastab hostis sarnane protsess
/usr/bin/kvm -S -M pc-0.11 -m 4096 -smp 4 -name arvuti -uuid 28aed40f-196f-0d6c-d00b-0151c3fbba10 \ -monitor unix:/var/run/libvirt/qemu/arvuti.monitor,server,nowait -boot c -drive \ file=/dev/mapper/serverid-arvuti,if=virtio,index=0,boot=on -drive \ file=/dev/mapper/serverid-arvuti_data_backup,if=virtio,index=1 -drive \ file=/dev/mapper/serverid-arvuti_data_postgresql,if=virtio,index=2 \ -net nic,macaddr=70:00:00:01:00:01,vlan=0,model=e1000,name=e1000.0 -net tap,fd=11,vlan=0,name=tap.0 \ -net nic,macaddr=70:01:68:00:21:24,vlan=1,model=e1000,name=e1000.1 -net tap,fd=12,vlan=1,name=tap.1 \ -net nic,macaddr=70:00:00:00:30:01,vlan=2,model=e1000,name=e1000.2 -net tap,fd=13,vlan=2,name=tap.2 \ -serial pty -parallel none -usb -vnc 127.0.0.1:0 -k en-us -vga cirrus
Virtuaalne riistvara
Domeen saab kasutada rohkem või vähem virtualiseeritud riistvara
- protsessor
- plokkseade
- mälu
- võrk
kusjuures sama ressurssi saab kasutada kasutades erinevaid draivereid, nt plokkseadme puhul saab valida scsi, ide või virtio draiverite vahel. Nt üks võimalik virtuaalse riistvara komplekt oleks selline
# lspci 00:00.0 Host bridge: Intel Corporation 440FX - 82441FX PMC [Natoma] (rev 02) 00:01.0 ISA bridge: Intel Corporation 82371SB PIIX3 ISA [Natoma/Triton II] 00:01.1 IDE interface: Intel Corporation 82371SB PIIX3 IDE [Natoma/Triton II] 00:01.2 USB Controller: Intel Corporation 82371SB PIIX3 USB [Natoma/Triton II] (rev 01) 00:01.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 03) 00:02.0 VGA compatible controller: Cirrus Logic GD 5446 00:03.0 Ethernet controller: Intel Corporation 82540EM Gigabit Ethernet Controller (rev 03) 00:04.0 Ethernet controller: Intel Corporation 82540EM Gigabit Ethernet Controller (rev 03) 00:05.0 Ethernet controller: Intel Corporation 82540EM Gigabit Ethernet Controller (rev 03) 00:06.0 SCSI storage controller: Qumranet, Inc. Device 1001 00:07.0 SCSI storage controller: Qumranet, Inc. Device 1001 00:08.0 SCSI storage controller: Qumranet, Inc. Device 1001 00:09.0 RAM memory: Qumranet, Inc. Device 1002
Protsessor
# cat /proc/cpuinfo processor : 1 vendor_id : GenuineIntel cpu family : 6 model : 2 model name : QEMU Virtual CPU version 0.11.0 stepping : 3 cpu MHz : 2261.208 cache size : 2048 KB fpu : yes fpu_exception : yes cpuid level : 2 wp : yes flags : fpu de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush\ mmx fxsr sse sse2 syscall nx lm rep_good pni bogomips : 4523.57 clflush size : 64 cache_alignment : 64 address sizes : 40 bits physical, 48 bits virtual power management:
Plokkseade
- scsi - scsi seade, LSI seade
...
- virtio - paravirtuaalne seade, kernel draiver virtio* komplektist
00:06.0 SCSI storage controller: Qumranet, Inc. Device 1001
- ide -
...
Võrk
- virtio
...
- e1000 - Inteli riistvara
00:03.0 Ethernet controller: Intel Corporation 82540EM Gigabit Ethernet Controller (rev 03)
Domeeni kirjelduse haldamine
Domeeni kirjeldused asuvad kataloogis /etc/libvirt/qemu, aktiivsed kataloogis /var/run/libvirt/qemu. Kirjelduse haldamisel saab sooritada selliseid tegevusi
- kontrollida kuidas domeeni jaoks riistvara virtualiseeritakse, nt kas domeen kasutab ide (/dev/hda) või scsi (/dev/sda) plokkseadmeid
- kontrollida millist riistvara domeen saab kasutada, nt lisada võrgukaart, plokkseade, mälu või protsessoreid
Üldiselt võiks ette kujutada, et KVM domeen koosneb
- domeeni kirjeldusest
- domeeni ressursist
Libvirt KVM domeeni seadistusfail näeb välja üldiselt nt selline
<domain type='kvm'>
<name>template</name>
<uuid>28aed40f-196f-0d6c-d00b-0151c3fbba10</uuid>
<memory>1048576</memory>
<currentMemory>1048576</currentMemory>
<vcpu>2</vcpu>
<os>
<type arch='x86_64' machine='pc-0.11'>hvm</type>
<boot dev='hd'/>
</os>
<features>
<acpi/>
<apic/>
<pae/>
</features>
<clock offset='utc'/>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>restart</on_crash>
<devices>
<emulator>/usr/bin/kvm</emulator>
<disk type='block' device='disk'>
<source dev='/dev/serverid/katse'/>
<target dev='sda' bus='sda'/>
</disk>
<interface type='bridge'>
<mac address='70:00:00:01:00:01'/>
<source bridge='br0'/>
<model type='e1000'/>
</interface>
<interface type='bridge'>
<mac address='70:01:68:00:00:01'/>
<source bridge='br1'/>
<model type='e1000'/>
</interface>
<serial type='pty'>
<source path='/dev/pts/2'/>
<target port='0'/>
</serial>
<console type='pty' tty='/dev/pts/2'>
<source path='/dev/pts/2'/>
<target port='0'/>
</console>
<input type='mouse' bus='ps2'/>
<graphics type='vnc' port='5900' autoport='yes' keymap='en-us'/>
<video>
<model type='cirrus' vram='9216' heads='1'/>
</video>
</devices>
</domain>
kus
- uuid - unikaalne domeeni identifikaator
- graphics on vajalik selleks, et virt-manager pilti näitaks
- kettaseadme bus väärtus on scsi mis nö süntaksiliselt väljendub selles, et plokkseadme nimi on domeenis kujul /dev/sda; alternatiivideks oleks vastavalt ide -> hda ja virtio -> vda
- võrgukaardi tüüp on valitud e1000, alternatiiv võiks olla samuti nt virtio, aga ka mitmed muud tuntud riistvaralised mudelid
- mac aadressid on kaval kirjutada teisendatud vastavate ip aadressidena, antud juhul vastavalt
10.0.10.1 -> 70:00:00:10:00:01 192.168.0.1 -> 70:01:68:00:00:01
Olemasoleva domeeni kirjelduses muudatuse tegemiseks ja kehtestamiseks tuleb
- domeen peatada
# virsh shutdown arvuti
- redigeerida seadistusfaili, virsh promptist saab kasutada vi editori, salvestamisel eelnevalt automaatselt kontrollitakse muudatusi süntaksti jms suhtes
# virsh virsh # edit arvuti
- käivitada domeen
# virsh start arvuti
Võrguseadme lisamine
Avada arvuti kirjeldusfail virsh shellist editiga ning lisada
<interface type='bridge'>
<mac address='70:00:00:10:02:52'/>
<source bridge='br2'/>
</interface>
mudeli täpsustamiseks kasutada lisaks model elementi, st kokku tuleb nt
<interface type='bridge'>
<mac address='70:00:00:10:02:52'/>
<source bridge='br2'/>
<model type='e1000'/>
</interface>
Plokkseadme lisamine
Avada arvuti kirjeldusfail virsh shellist editiga ning lisada
<disk type='block' device='disk'>
<source dev='/dev/mapper/serverid-data'/>
<target dev='vdc' bus='virtio'/>
</disk>
kus bus väärtus tähistab, et domeen hakkab kasutama virtio draiverit.
Kasutada oleva mälu kontrollimine
Avada arvuti kirjeldusfail virsh shellist editiga ning muuta
<memory>4194304</memory> <currentMemory>4194304</currentMemory>
elementide väärtusi, ühikuks on kB, nt 4194304=4*1024*1024 võrdub 4G mäluga.
Protsessorite arvu muutmine
Avada arvuti kirjeldusfail virsh shellist editiga ning muuta
<vcpu>4</vcpu>
Protsessorite puhul saab muuta vaid domeeni kasutuses olevate protsessorite arvuti mitte kiirust.
Domeeni kirjelduse eemaldamine
Domeeni kirjelduse eemaldamiseks tuleb esmalt kustutada libvirt andmebaasist vastav kirjeldus
# virsh undefine arvutinimi Domain arvutinimi has been undefined
ning seejärel võib hostis vastava plokkseadme võtta uude kasutusse või eemaldada.
Domeeni kirjelduse lisamine
Domeeni lisamiseks tuleb esmalt koostada sobiva sisuga kirjeldusfail ning lisada see libvirt andmebaasi
# virsh define arvutinimi.xml
kusjuures tuleb veenduda, et kirjelduses kasutatud plokkseadme, võrgusillad jm ressurssid on hostis olemas. Seejärel saab domeeni käivitada öeldes
# virsh # start arvutinimi
Domeeni kirjelduse salvestamine
Domeeni kirjelduse salvestamiseks sobib öelda
# virsh dumpxml arvutinimi > arvutinimi.xml
Selliselt tehtud salvestust sobib kasutada nt uue domeeni kirjelduse alusena, unikaalsed väljade väärtused tuleks siis kustutada, süsteem genereerib nad kirjelduse lisamisel automaatselt.
Domeeni automaatselt käivitatavaks märkimine
Selleks, et KVM hosti käivitamisel domeen automaatselt käivituks tuleb öelda
virsh # autostart domeeninimi Domain domeeninimi marked as autostarted
Floppy-seadme kasutamine
Nn MSDOS-formateeritud floppy kasutamiseks sobib kasutada domeeni seadistusfailis sektsiooni
<disk type='file' device='floppy'>
<source file='/root/turvaserver-test-floppy.img'/>
<target dev='fda' bus='fdc'/>
</disk>
kusjuures hostis peab olema fail /root/turvaserver-test-foppy.img, mille võib moodustada nt selliselt
# dd if=/dev/zero of=/root/turvaserver-test-floppy.img bs=1024 count=1440
ning moodustada sellele failisüsteem öeldes
# mkdosfs /root/turvaserver-test-floppy.img
Tundub, et selliselt kasutusele võetud floppy ressurssi ei saa domeeni sees nö formaatida, kuid niisama lugeda ja kirjutada saab.
Domeeni serial konsooli kasutamine
Kui domeenis on seadistatud serial konsool, saab virsh abil seda tekstiterminalist kasutada. Domeenis peavad GRUBis olema nt sellised seadistused
serial --unit=0 --speed=9600 terminal --timeout=15 serial console title Debian GNU/Linux, kernel 2.6.26-2-amd64 root (hd0,0) kernel /boot/vmlinuz-2.6.26-2-amd64 root=/dev/sda1 ro console=ttyS0,9600 initrd /boot/initrd.img-2.6.26-2-amd64
ning nt getty seadistatud kuulema serialile failist /etc/inittab reaga
T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100
Konsooli poole pöördumiseks tuleb öelda
# virsh console domeeninimi
Serial konsooli väljundi faili kopeerimiseks sobib kasutada sellist sektsiooni
<serial type='file'>
<source path='/var/log/domeeninimi-serial.log'/>
<target port='0'/>
</serial>
Domeeni kloonimine
Kloonimise teel saab moodustada olemasoleva domeeni alusel uue virtuaalse arvuti, süsteem tagab, et need uue arvuti omadused, mis peavad olema on unikaalsed, nt UUID väärtus. Kloonida saab olemasolevat domeeni, mis parasjagu ei tööta nt selliselt
# virt-clone --connect qemu:///system -o arvuti_1 -n arvuti_2 -f /dev/serverid/arvuti_2 -m 54:52:00:32:d7:21 This will overwrite the existing path '/dev/serverid/arvuti_2'! Do you really want to use this disk (yes or no)? yes Cloning /var/lib/libvirt/ 100% |=========================| 7.0 GB 00:56 Clone 'arvuti_2' created successfully.
kus
- -o arvuti_1 - originaal mida kloonitakse
- -n arvuti_2 - uue tekitatava arvuti nimi
- -f /dev/serverid/arvuti_2 - uus arvuti asub LVM köitel
- -m - uue arvuti mac aadress, vastasel korral kasutatakse juhuslikku väärtust
Mittegraafiliste vahenditega domeeni paigaldamine
Tundub, et KVM kasutamine üldiselt eeldab vähemalt domeeni operatsioonisüsteemi paigaldamisel graafilise kasutajaliidese kasutamist. Esitatud järgnevus on üks viis paigaldada Debian Lenny operatsioonisüsteem kasutades selleks vaid tekstiterminali
- moodutada domeeni plokkseadmele vastav LVM köide
# lvcreate -L2G -n arvuti serverid
- moodustada plokkseadmele fdisk partitsioonitabel (parted näib, et jätab /dev/mapper/...-..p1 nimelised seadmed ripnema ja neist on raske vabaneda seejärel)
# fdisk /dev/serverid/arvuti ...
- ühendada plokkseade külge
# kpartx /dev/serverid/arvuti # mount /dev/serverid/arvuti1 /mnt/arvuti
- debootstrap abil paigaldada sinna operatsioonisüsteemi failisüsteem
# debootstrap lenny /mnt/arvuti http://ftp.ee.debian.org/debian
- paigaldada udev ja openssh-server paketid
# chroot /mnt/arvuti # apt-get install udev openssh-server
- kohendada /etc/fstab, /etc/network/interfaces
...
- paigaldada alglaadur, kuigi ta annab veateate, aga iseenesest tundub, et töötab
# grub-install --recheck --no-floppy --root-directory=/mnt/arvuti
Domeeni moodutamiseks tuleb kasutada sobivat seadistusfaili, nt eelmise punkti alusel moodustatud domeeni definitsioonist ning öelda
# virsh define arvutinimi.xml
Ning seejärel domeen käivitada
# virsh start arvutinimi
OpenBSD domeeni kasutamine
OpenBSD domeeni kasutamisel tuleb arvestada, et suhteliselt igasugune tegevus ajab arvuti koormuse kiiresti üles, iseenesest küll süsteem töötab, kui ei sobi praktiliselt peale manuaalide lugemise eriti muuks.
OpenBSD võrk töötab normaalsemalt e1000 seadmega, kuid kõvaketta kiirus võib ebaselgetel asjaoludel mõne hosti riistvara puhul olla vaid ca 2-3 MBait/s ja koormab süsteemi. 4.6 ei boodi ilma kui UKC abil mpbios välja lülitada
boot> boot -c ... UKC> disable mpbios 54 mpbios0 disabled UKC> quit
ning süsteemis öelda näiteks, et salvestada muudatus tuuma binaari
# config -ef /bsd ... ukc> disable mpbios 54 mpbios0 disabled ukc> quit Saving modified kernel.
Domeeni migreerimine scsi -> virtio plokkseadmele
Lisada domeenis faili /etc/initramfs-tools/modules read
virtio virtio_pci virtio_ring virtio_net virtio_blk
ning genereerida uus initramfs öeldes nt
# update-initramfs -u
Seejärel seisata domeen ning virsh abil muuda domeeni kirjelduses seadme bus väärtuseks virtio.
Domeeni alglaadimine CD tõmmiselt
Domeeni alglaadimiseks CD tõmmiselt tuleb seadistusfaili juure defineerida nt selline seade RIPLinux puhul
<disk type='file' device='cdrom'>
<source file='/srv/install/RIPLinux-9.3-non-X.iso'/>
<target dev='hdc' bus='ide'/>
<readonly/>
</disk>
ning alguses peab olema kirja, et alglaadida cdrom seadmelt
<os> <type arch='x86_64' machine='pc-0.11'>hvm</type> <boot dev='cdrom'/> </os>
RIPLinuxi abil on lisaks muude haldusprotseduuride tegemisele võimalik paigaldada kõvakettale GRUB alglaadur.
Domeeni alglaadimine võrgust
Domeeni alglaadimiseks võrgust PXE protokolli abil tuleb seadistusfaili kasutada nt sellist seadet
<interface type='bridge'>
<mac address='70:01:68:01:01:83'/>
<source bridge='br0'/>
<target dev='vnet13'/>
<model type='rtl8139'/>
</interface>
kusjuures oluline on kasutada rtl8139 draiverit. Asjaga on seotud failisüsteemis fail
/usr/share/kvm/pxe-rtl8139.bin
Lisaks tuleb näidata, et alglaadimine toimub võrgust
<os> <type arch='x86_64' machine='pc-0.11'>hvm</type> <boot dev='network'/> </os>
Domeeni migreerimine mõnelt muult platvormilt KVM peale
TODO
Domeeni live-migration
TODO
Töötavale domeenile ressursi lisamine
TODO
- Plokkseadme lisamine, reboot kehtestab lisamise
virsh # attach-disk arvuti /dev/serverid/arvuti_vdb vdb
Xen domeenide kasutamine KVM all
Tavaliselt kasutatakse Xeni nii, et Xen domeenide failisüsteemidele vastavad hostis LVM voluumid, kusjuures neil plokkseadmetel on otse failisüsteemid, st ilma partitsioonitabelita.
Kuna KVM guestil on vaja reeglina kasutada oma plokkseadmelt MBRi, siis on sobib kasutada Xeni domeeni failisüsteemidele lisaks ühte nö MBR'iga plokkseadet, mis võiks lisaks nt sisaldada /boot kataloogi sisu.
Windows XP kasutamine
Kasutamine toimub muus osas sarnaselt nt Linuxi domeenile, kuid plokkseame puhul võiks kasutada ide ja võrguseadme puhul nt ne2k_pci seadmeid
<disk type='block' device='disk'>
<source dev='/dev/c_data/xp'/>
<target dev='hda' bus='ide'/>
</disk>
<interface type='bridge'>
<mac address='00:16:3e:00:00:01'/>
<source bridge='br0'/>
<target dev='vnet0'/>
<model type='ne2k_pci'/>
</interface>
Haiku kasutamine
Haiku http://www.haiku-os.org/ kasutamiseks sobib nt selline KVM guesti seadistusfail, oluline on kasutada mitte kvm vaid qemu-system-x86_64 emulaatorit
<domain type='kvm' id='90'>
<name>haiku-auul</name>
<uuid>2983c4ff-8c38-4f10-7807-86f81328f96c</uuid>
<memory>524288</memory>
<currentMemory>524288</currentMemory>
<vcpu>1</vcpu>
<os>
<type arch='x86_64' machine='pc'>hvm</type>
<boot dev='cdrom'/>
</os>
<clock offset='utc'/>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>restart</on_crash>
<devices>
<emulator>/usr/bin/qemu-system-x86_64</emulator>
<disk type='block' device='disk'>
<source dev='/dev/systems/haiku'/>
<target dev='hda' bus='ide'/>
</disk>
<disk type='file' device='cdrom'>
<source file='/srv/tarkvara/haiku-r1alpha2.iso'/>
<target dev='hdb' bus='ide'/>
<readonly/>
</disk>
<interface type='bridge'>
<mac address='70:01:68:01:02:07'/>
<source bridge='br0'/>
<target dev='vnet28'/>
</interface>
<serial type='pty'>
<target port='0'/>
</serial>
<console type='pty'>
<target port='0'/>
</console>
<input type='mouse' bus='ps2'/>
<graphics type='vnc' port='5917' autoport='yes' keymap='en-us'/>
</devices>
</domain>
VNC kliendi kasutamisel tundub, et annab häid tulemusi öeldes
$ vncviewer -FullColor localhost:5917 -AutoSelect=0
kus
- localhost:5917 on suunatud KVM hosti Haiku guesti VNC serveri pordile
FreeBSD kasutamine
Tundub, et 2010 aasta materjale kasutades virt-manageri graafiliselt guesti konsoolilt ei õnnestu klaviatuuri korrektselt kasutada. Ülesaamiseks tuleb
- monteerida FreeBSD tõmmis töötavale arvutile külge
- kopeerida sisu sobivasse kataloogi öeldes nt
# rsync -aH --numeric-ids /tmp/freebsd /tmp/freebsd-serial
- lisada faili /tmp/freebsd-serial/boot/loader.conf rida
console="comconsole"
- moodustada uus tõmmis öeldes
# mkisofs -R -no-emul-boot -b boot/cdboot -o /tmp/freebsd-serial.iso /tmp/freebsd
Kasutamiseks öelda
# virsh start freebsd # virsh console freebsd
ning installer esitab konsooli osas sellised valikud, X-Window System seest kasutamisel sobib valida 5
.. /stand/sysinstall running as init on serial console These are the predefined terminal types available to sysinstall when running stand-alone. Please choose the closest match for your particular terminal. 1 ...................... Standard ANSI terminal. 2 ...................... VT100 or compatible terminal. 3 ...................... FreeBSD system console (color). 4 ...................... FreeBSD system console (monochrome). 5 ...................... xterm terminal emulator. Your choice: (1-5)
Selleks, et serial konsoolilt saaks sisse logida, peab lisaks Ttys sektsioonis olema rida
ttyu0 "/usr/libexec/getty std.9600" dialup on secure
Märkused
- kvm programmi saab käivitada privilegeerimata kasutaja eeldusel, et ta /dev/kvm seadmele lugeda ja kirjutada saab, reeglida kvm gruppi lisamisest kasutajale piisab.
- Selleks, et VNC sessiooni sees käivitatud kvm (või qemu) saaks aru klaviatuurist, sobib kasutada lisaks muudele käsurea parameetritele võtit -k, nt '-k en-us'
- Tundub, et vähemalt Debian Lenny domeen käitub scsi plokkseadmega ebastabiilselt, virtio toimib.
- Domeenide võrguliikluse jaoks on oluline, et hostis on lubatud ip forwarding ning kui hostis kasutatakse iptables reegleid, siis peab domeenidele vastav liiklus nt üle sildade olema lubatud.
- KVM kasutamisel on Xen ees eeliseks, et host'i ja guestide töötamise käigus saab tekida juurde sildu ja siis uute guestidega neid kasutama asuda.
Kasulikud lisamaterjalid
- KVM kodulehekülg - http://kvm.qumranet.com/kvmwiki
- käsu 'kvm --help' väljund
- http://en.wikipedia.org/wiki/X86_virtualization
- http://kvm.qumranet.com/kvmwiki/Guest_Support_Status
- KVM kasutamine Debian Lenniga
- http://wiki.libvirt.org/page/Main_Page
- https://help.ubuntu.com/community/KVM
- http://www.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/5.4/html/Virtualization_Guide/index.html
- Ubuntu Cloud - 9.10