KVM kasutamine Ubuntu 10.04 operatsioonisüsteemiga

Allikas: Kuutõrvaja

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

Kvm-ubuntu-1.gif

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

Kvm-ubuntu-2.gif

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

Kvm-ubuntu-3.gif

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