KVM kasutamine Ubuntu 10.04 operatsioonisüsteemiga
Sisukord
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 arendamist korraldab Avi Kivity.
KVM hostis ei tööta seoses guestide pidamisega mingit deemonit. Guesti kõvakettale vastab tavaliselt üks fail hosti failisüsteemis ja guesti käivitamiseks tuleb käivitada sobivate argumentidega programm kvm.
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
Debiani paketihaldusest tuleb paigaldada kvm pakett öeldes
# apt-get install ubuntu-virt-server ubuntu-virt-mgmt
KVM guesti ettevalmistamine ja käivitamine
TODO
KVM guesti võrk
Üheks võimalusek ühendada guest võrku on ühendada sama silla külge hosti füüsiline võrguseade ning hostis asuv guestile vastav tap seade.
Selleks tuleb moodustada hostis esmalt sild kirjutades /etc/network/interfaces faili sektsiooni
auto br0 iface br0 inet static address 192.168.10.13 netmask 255.255.255.0 network 192.168.10.0 broadcast 192.168.10.255 gateway 192.168.10.254 bridge_ports eth0 bridge_stp off bridge_maxwait 5
KVM guesti bootimine plokkseadmel asuva juurfailisüsteemiga
Tavaliselt vastab guesti failisüsteemile üks fail, mis algab partitsioonitabeliga ja milles sisalduvad failisüsteemid ning swap erinevatel partitsioonidel, tõtt-öelda nii nagu vihjab ka -hda võti sellisele asjakorraldusele.
Kui hostile kättesaadaval plokksseadmel, näiteks
- füüsilise kõvaketta partitsioon - /dev/sdb2
- LVM voluum - /dev/system/test_juurikas
- RAID seade - /dev/md4
- losetup programmi abil ettevalmistatud plokkseade
asub mõne operatsioonisüsteemi eksemplari juurfailisüsteem, siis selle saab kvm abil alglaadida, öeldes
# kvm -hda /dev/system/test_juurikas -m 512 -kernel bzImage -append "root=/dev/hda ro" -initrd file
kus
- -kernel argumendiks on test_juurikas alglaadimiseks sobiv tuum, mis asub hosti failisüsteemis
- -initrd argumendiks on test_juurikas alglaadimiseks sobiv ramdisk, mis asub hosti failisüsteemis
- -append argumendiks on kerneli argumendid, kõige olulisem on tuumale öelda kus guesti poolt vaadates asub juurfailisüsteem
KVM guesti konsool
TODO
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'
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