Erinevus lehekülje "KVM kasutamine Ubuntu 10.04 operatsioonisüsteemiga" redaktsioonide vahel

Allikas: Kuutõrvaja
(KVM guesti konsool)
(KVM guesti konsool)
129. rida: 129. rida:
 
[[Pilt:kvm-ubuntu-2.gif]]
 
[[Pilt:kvm-ubuntu-2.gif]]
  
* virsh abil ilma kasutades tekstiterminali
+
* virsh abil ilma kasutades tekstiterminali kusjuures guesti jaoks toimub ühendus üle tema serial konsooli, st peab olema seadistatud kuulama nt getty serialile failist /etc/inittab reaga
 +
 
 +
  T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100
  
 
[[Pilt:kvm-ubuntu-3.gif]]
 
[[Pilt:kvm-ubuntu-3.gif]]

Redaktsioon: 14. november 2009, kell 16:07

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

Lisaks on abiks vnc server ning koos sellega window manager, nt wmaker

 # apt-get install tightvncserver wmaker xterm xfonts-base

KVM guesti võrk

Selleks, et KVM guest 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

KVM guesti ettevalmistamine ja käivitamine

KVM guestide haldamine toimub libvirt liidese abil kahe haldusprogrammiga

  • virsh - konsoolis kasutamiseks shell
  • virt-manager - graafiline haldusliides

virt-manager käivitamine toimub öeldes

 # virt-manager -c qemu:///system

ning avaneb sarane pilt

Kvm-ubuntu-1.gif

Guesti kirjelduse haldamine

Guesti kirjeldused asuvad kataloogis /etc/libvirt/qemu ja nt selleks et täpsustada guesti võrguseadme mudelit, tuleb sooritada selline järgnevus

 # virsh dumpxml virt-arvuti > /tmp/virt-arvuti.xml

Lisada tekstiredaktoris /tmp/virt-arvuti.xml faili sektsiooni

 <interface type='bridge'>
   <mac address='70:00:00:10:02:54'/>
 </interface>

juurde rida

   <model type='e1000'/>

ning öelda

 # virsh define /tmp/virt-arvuti.xml

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

KVM guesti konsoolile saab ligi kahel viisil

  • virt-manager graafilise kasutajaliidese abil

Kvm-ubuntu-2.gif

  • virsh abil ilma kasutades tekstiterminali kusjuures guesti jaoks toimub ühendus üle tema serial konsooli, st peab olema seadistatud kuulama nt getty serialile failist /etc/inittab reaga
 T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100

Kvm-ubuntu-3.gif

OpenBSD guesti kasutamine

OpenBSD guesti 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 on ca 2-3 MBait/s ja koormab süsteemi. 4.6 ei boodi ilma kui UKC abil mpbios välja lülitada

 boot> bsd -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.

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