KVM: Difference between revisions
No edit summary |
|||
Line 1: | Line 1: | ||
:Alvar Teearu AK31 | :Alvar Teearu AK31 | ||
:Arvustab Margus Nairis AK31 | :Arvustab Margus Nairis AK31 | ||
Revision as of 21:37, 22 May 2011
- Alvar Teearu AK31
- Arvustab Margus Nairis AK31
Virtualiseerimine ja KVM
Virtualiseerimine
Virtualiseerimine on märksõna, mida kuuleb viimasel aja järjest rohkem, mis iganes tänapäevase serverpargi uuendamisel ei saada mööda kaalutlemata võimalust virtualiseerida. Virtualiseerine annab meile võimaluse kasutada samaaegselt töötavaid operatsiooni süsteeme, mis jooksevad ühe raudvara peal, sellega saavutame riistvaralise kokkuhoiu, parema süsteemide hallatavuse ja lihtsama testkeskonna tekitamise võimaluse.
Virtualiseerimise loogika on, et riistavaralise kihi ja operatsioonisüsteemi kihi vahele tekitatakse kiht, mis võimaldab jagada sama riistvara erinevatele operatsioonisüsteemidele. Peamised lahendused on:
- Emuleerimine- vahekiht tõlgib virtuaalse riistvara korraldused füüsilisele. Näiteks WINE, Bochs
- OS tasemele virtualiseerimine- OS kernelis töötavad isoleeritult erinevatel user-space instantsidel. Näiteks OpenVZ
- Bare-metal virtualiseerimine- Tekitatakse õhuke vahekiht riistvara ja külalisOS-de vahele. Näiteks VMware ESX, XEN, MS Hyper V
- Hostitud virtualiseerimine- Üks host OS võimaldab enda kõrval töötada mitmel külalis OS-l, tekitab enda kõrvale vahekihi, kuhu peale siis paigutuvad virtuaalsed operatsiooni süsteemid. Näiteks SUN VirtualBox, MS Virtual PC/Server ja ka KVM.>
Virtualiseerimisega saavutame lihtsamalt olukorra, kus kasutame kogu riistavaralist võimsust.
KVM
KVM(Kernel-based virtual machine)on vabavaraline virtualiseerimise lahendus Linuxile x86 riistvarale ja sisaldab endas ka virutaliseerimise laiendusi Intel VT ja AMD-V. Lisaks leiab sealt ka laetavad kernel moodulid(kvm.ko), mis tagab virtualiseerimise infrastruktuuri lahendid ja moodulid erinevatele protsessori tüüpidele(kvm-intel.ko ja kvm-amd.ko).
Kasutades KVM saab samal füüsilsel masinal jooksutada muutmata kujul nii Linuxi kui ka Windowsi masinaid. Igale virtuaalmasinale on eraldatud virtuaalne riistvara, kõvaketas, võrgukaart, graafikakaart jne.
Alates Linuxi versioonist 2.6.20 on KVM lisatud from-the-box.
KVM seadistamine Ubuntu OS-le
Antud KVM installatsiooni juhend toimib kindlasti Ubuntu versioonidele Lucid (10.04)- Natty (11.04), võimalik, et uuematele versioonide puhul tuleb sisse viia muutusi. Enne installatsiooniga alustamist tuleks veenduda, et kasutatava arvuti protsessor võimaldab virtualiseerimist, selleks on sobilik käsk:
egrep -c '(vmx|svm)' /proc/cpuinfo
0- protsessor ei toeta virtualiseerimist
1- protsessor toetab, võimalik et tuleb ka BIOS virtualiseerimine lubada
Võimalusel tuleks kasutada host masina peal 64bit operatsiooni süsteemi, 64bit versioon võimaldab guest masinatel kasutada rohkem kui 2GB RAMi ja jooksutab enda peal nii 32bit kui 64bit guest masinaid.
Installatsioon
Installatsiooni tuleks alustada vajalike pakettide instaleerimisega:
- libvirt-bin: tagab libvirtd, mis lubab administreerida qemu ja kvm-i kasutades libvirt-i
- qemu-kvm
- ubuntu-vm-builder: käsurea tööriist ehitamaks virtuaalmasinaid.
- bridge-utils: vaja kui kasutada võrgu seadetes bridge lahendust.
sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils
Manageerimaks virtuaalmasinatega on vaja kuuluda gruppi, kus selleks on antud õigused(libvirtd või kvm grupp). Peale libvirtd-bin instaleerumist, lisatakse seda instaleerinud kasutajanimi automaatselt libvirt gruppi ja vajadus kvm gruppi kuuluda puudub. Vajalik on välja ja sisselogimine, et kasutaja muutuks grupis aktiivseks.
Installatsiooni õnnestumist saab kontrollida käsuga:
virsh -c qemu:///system list
Kui selle käsu peale tulevad error teated, tuleks enne järgmiste sammude juurde asumist need kõrvaldada.Kontrolli näiteks, kas faili /var/run/libvirt/libvirt-sock on olemas kirjutusõigused.
Külalisoperatsiooni süsteemi loomine
Uue operatsiooni süsteemi loomine
Külalismasinate loomiseks on KVMis peamiselt kolm vahendit:
- virt-manager: Graafilise liidesega vahend
- ubuntu-vm-builder: lihtsaim vahend, põhimõteliselt kahe käsuga on võimalik luua Ubuntu Hardy virtuaalne masin
- virt-install: Python skript Red Hat-lt
Külalisoperatsiooni süsteemi loomiseks kasutame selles näites virt-install vahendeid. Virt-install ei loo automaatselt virtuaalmasinat, vaid laseb masinal üles bootida iso faililt ja tänu sellele võimaldab installida erinevate OS-süsteemidega masinaid. installeeri virt
sudo apt-get install virtinst
Siis tuleb kopeerida iso fail aktiivsesse kataloogi ja käivitada virt-install:
sudo virt-install --connect qemu:///system -n xpsp3 -r 512 -f windows.qcow2 -s 12 -c windowsxp.iso --vnc --noautoconsole --os-type windows --os-variant winxp
Peale eelmise käsu käivitamist bootib süsteem üles virtuaalselt masinalt.Ühendumaks virtuaalmasinaga sisesta alljärgnev käsk(võimalik, et tuleb eelenvalt installeerida virt-viewer).
virt-viewer -c qemu:///system xpsp3
Peale seda saab alustada installiga.
Probleemid, mis võivad esineda Windowsi guesti instaleerimisel:
1.Peale esimest rebooti ei leia windows installer ketast, selle vältimiseks tuleb lisada /etc/libvirt/qemu/xpsp3.xml faili rida:
<devices> [...] <disk type='file' device='cdrom'> <source file='//home/kasutaja/windowsxp.iso'/> <target dev='hdc' bus='ide'/> <readonly/> </disk> </devices>
peale muutmist lisada käsk:
sudo virsh define /etc/libvirt/qemu/xpsp3.xml
ja restartida virtuaalne masin.
Virtuaal masina kolimine(kloonimine)
Kolimaks virtuaal masinat ühelt kettalt teisele, tuleb anda järgmine käsk, srchost vana masin ja newhost uus masin:
virt-clone --connect=qemu:///system -o srchost -n newhost -f /path/to/newhost.qcow2
Külalisoperatsiooni süsteemi manageerimine
Virtuaalmasinaid saab manageerida shellist ja kasutades virsh-i. Ennem kui saame manageerimisega algust teha, tuleb uus masin defineerida, selleks kasutame järgmist käsku:
$ virsh --connect qemu:///system Connecting to uri: qemu:///system Welcome to virsh, the virtualization interactive terminal. Type: 'help' for help with commands 'quit' to quit virsh # define /etc/libvirt/qemu/xpsp3.xml Domain newvm defined from /etc/libvirt/qemu/xpsp3.xml
Masinate haldust saame teha kas käsurealt erinevate käskudega või muutes .xml faili. Kui oleme muutnud .xml faili, lisades seal virtuaalmasinale juurde mälu, CPU või muutnud muid parameetrid, siis tähtis on alati meeles pidada, et alati tuleb masin uuesti defineerida.
Näide käsurealt masina sulgemisest:
virsh # shutdown xpsp3 Domain xpsp3 is being shutdown
Erinevaid käske on palju(destroy,start), et neid näha, tuleks shelli trükkida help.
Kokkuvõte
KVM virtualiseerimise rakendus on tõhus vabavaraline vahend virtualiseerimaks enda serverid või kasutamaks linuxi tööjaamas erinevaid operatsioonisüsteeme. Selle koostöö Windowsi süsteemidega ei pruugi alati kõige paremini sujuda ja võimalik on vajadus teha teatud vigadele troubleshootingut, kuid kui tööle saadud, toimivad ka need.
Viited
http://www.linux-kvm.org/page/Main_Page
https://help.ubuntu.com/community/KVM