Kernel-alapú virtualizáció (KVM)

A kernel virtualizációs megoldás:

Manapság rengeteg virtualizációs megoldás érhető el Unix / Linux rendszerekre, ebből az egyik legnépszerűbb a kvm, vagyis a Kernel-based Virtual Machine. Ez egy teljes virtualizációs megoldás (full virtualization solution) amely képes kihasználni az újabb processzorokban rejlő (AMD - V, Intel VT) hardveres virtualizáció képességet. Magában foglal egy betölthető kernel modult (kvm.ko). A Kvm alkalmas egy adott linux operációs rendszeren virtualizált környezetben egy másik operációs rendszert futtatni. Azaz miközben a natív rendszer (host) fut a számítógépen addig képesek vagyunk egy másik rendszert indítani (guest) virtuális környezetben, mondhatni gép a gépben hatást érünk el. Egy nagyon egyszerű példa: elindítjuk az ubuntut aztán az ubuntuból futtatunk egy windows operációs rendszert. Nagy előnye, hogy hordozható rendszert kapunk azaz kiírhatjuk dvd-re és magunkkal vihetjük bárhová. Persze használatához másik számítógépen is szükséges a rendszerigény címszó alatt felsoroltak és a kvm megléte.

A leírás két részből áll, az egyik a parancssorral történő használatot írja le, a másik pedig a grafikus felületű felhasználást mutatja be.

Rendszerigény:

Hardveres virtualizációra képes processzor. Ezt ezzel a paranccsal állapíthatjuk meg:

egrep '^flags.*(vmx|svm)' /proc/cpuinfo

Memória terén a kvm csapata 1Gb határt szab meg minimumnak, de ennél kevesebb fizikai memóriával is lehet futtatni virtuális gépet (a használható sebesség érdekében célszerű beszerezni a megadott mennyiséget). Minél nagyobb és több az erőforrás, annál gyorsabb lesz a virtuális gépünk is.

Parancssoros használat bemutatása:

Telepítés:

Telepíthetünk 64 bites rendszerre (host) mind 32 mind 64 bites vendég (guest) operációs rendszert. Viszont 32bites host rendszernél csak 32 bites vendég rendszer használható. A Kvm az Ubuntu disztribúció részét képezi a 7.04-es kiadástól számítva. Így a telepítés rendkívül egyszerűen megoldható. Nyissunk egy terminált és gépeljük be az alábbiakat:

$ sudo aptitude install kvm

Ezek után egy kérdést fog föltenni a csomagkezelő amire Igenlő választ kell adnunk. (a függőségek telepítésére kérdez rá) Ezután letölti és installálja, használatra kész.

Használat:

Hozzunk létre egy képfájlt az alábbi módon:

Először is döntsük el hova akarjuk rakni virtuális rendszerünket. Ebben a példában a felhasználó könyvtárába létrehozott "kvm" könyvtárba fogjuk létrehozni a képfájlt.(Ha rossz helyen hoztuk létre az sem baj

  1. töröljük és hozzunk létre egy újat a cél helyen
  2. másoljuk át a cél könyvtárba). Sokféle képformátumot képes kezelni, mint pl.: vmware által használt vmdk, vagy a qemu féle img de külön partícióra is telepíthetjük vele rendszerünket. (pl.: /dev/hda2/)

$ mkdir /home/"felhasználónév"/kvm
$ cd /home/"felhasználónév"/kvm
$ qemu-img create "a rendszer neve".img -f qcow 8G
(Megadhatunk kisebb értéket is, mérjük igényinkhez. pl.: 4G)

Mielőtt nekikezdünk a telepítésnek nézzük át a kapcsolókat melyekkel szabályozhatjuk a rendszert:

  • -no-acpi (lásd: http://wiki.hup.hu/index.php/ACPI) Ha telepítésnél be volt kapcsolva akkor annál a rendszernél mindig használjuk!
  • -m (ezzel a kapcsolóval határozhatjuk meg a virtuális gép számára elérhető memória mennyiségét)
  • -boot (miről bootoljon a virtuális rendszer pl.:cdrom vagy egy image file)
  • -hda (a rendszert tartalmazó képfájl helye)
  • -soundhw es1370 (hangkártya emuláció)
  • -snapshot (pillanatképet készíthetünk a rendszerünkről, biztonsági mentésként)
  • -localtime (windows rendszereknél alkalmazandó kapcsoló a helyi időt fogja használni a gép)
  • -usb (elérhetővé teszi az usb-s eszközöket)
  • -usbdevice tablet (az egér kiléphet a virtualizációs ablakból a gyorsgomb(hotkey) használata nélkül)
  • -net (internet beállítások (pl.: megadhatjuk a mac címet))
  • -std-vga (widescreen képernyő emulálása)
  • -smp (többprocesszoros vendég rendszer használata, maximum négy processzorig)

Indítsuk a telepítést:

$ kvm -no-acpi -m 384 -cdrom /dev/cdrom -boot d "a rendszer neve".img

A cdromnak megadhatunk képfájlt is, ez akkor jó ha a telepítendő OS egy a HDD-n tárolt képfájlból akarjuk kiolvasni.Ez esetben:

$ kvm -no-acpi -m 384 -cdrom /a/képfájl/helye -boot d "a rendszer neve".img

Ne feledjük, hogy ha linux rendszert telepítünk nem szükséges a -no-acpi kapcsoló! Windows alatt ildomos használni különben a rendszer nagyon lassú lesz. A telepítés a szokásos medrében folyik majd befejeztével indíthatjuk a rendszert:

$ kvm -hda "a rendszer neve".img -m 384 -cdrom /dev/cdrom -boot c -usb -usbdevice tablet -no-acpi

Indításnál célszerű a -boot c kapcsolót használni a -boot -d helyett annak érdekében, hogy a rendszer az indulás során a -hda kapcsolónál megadottakat tekintse elsőnek a bootsorrendnél. Ha minden rendben ment boldog tulajdonosai lehetünk egy virtuális rendszernek. Akinek problémát okoz a virtuális gép terminálban történő használata, az használja a hozzá tartozó grafikus felületet a virt-manager-t amit a leírás további részében megtalálhatnak.

Grafikus használat bemutatása:

A virtuális gép(ek) kezelésére egy grafikus eszköz is rendelkezésünkre áll. Ez azt jelenti, hogy akár egyszerűen, néhány egérkattintással is menedzselhetjük a virtuális gépeinket.(qemu, kvm, xen), viszont ezzel nem veszik el a parancssoros használhatóság lehetősége sem.

Telepítése:

Telepítsük a csomagkezelővel a virt-manager nevű csomagot.

Használata:

Indítsuk el a programot: Alkalmazások → Rendszereszközök → Virtuális gép igazgatója

Virt-manager.

A képen láthatjuk a helyi gépre vonatkozó adatokat. A Fájl → Kapcsolat megnyitása menüpont alatt távoli géphez is csatlakozhatunk.

Virtuális gép létrehozása:

Kattintsunk a sor elején található nyílra (vagy jobb kattintás a localhost gépen, ezután a legördülő menüben válasszuk ki a "kapcsolódás" opciót), majd a lentebb található "Új" gombra.

Az első lépések az új Virtuális gépünk felé.

Egy kedves kis varázsló bukkan fel a szemünk előtt, és megnyugtat, hogy végigvezet minket a lépéseken.

  1. Első lépésben a rendszerünk nevét kell beírni.
  2. Ki kell választanunk az architektúrát ami 32bites rendszernél i686-t a 64bites rendszernél x86_64 -et jelent. Jelöljük be a teljesen virtuális opciót, és pipáljuk ki a rendszermag / hardveres gyorsítás engedélyezéstét.
  3. Adjuk meg a telepítendő rendszer képfájljának vagy a CD-rom - nak a helyét. PXE(hálózati) telepítésre is van lehetőségünk! Válasszuk ki az OS típusát és a annak variánsát.
  4. A negyedik lépéssel elérkeztünk a tárhely létrehozásához. Itt meghatározhatjuk, hogy milyen méretű képfájlt szeretnénk létrehozni a rendszerünknek, hová szeretnénk tenni ezt a fájlt és lefoglalja e nekünk ezt a helyet a vir-manger, vagy a fájl folyamatosan növekedjen a meghatározott értékig.
  5. Memória és Processzor értékek beállítása. Minimum 256 megabájt ramot állítsunk be a virtuális rendszerünknek! A memória értékektől lentebb láthatjuk a Cpu információkat és beállítási lehetőségeket. A virt-manager minden CPU magot külön processzorként kezel azaz egy négy magos rendszernél négy processzort jelez ki. A VCPU(virtuális processzorok) száma lehetőleg ne lépje túl a processzormagjaink összegét.(azaz egy két maggal rendelkező cpu esetén ne állítsunk be három vagy annál több VCPU -t)
  6. A hatodik oldalon átnézhetjük a beállításokat. Majd a befejezés gombra kattintva indíthatjuk a telepítést.
Ubuntu telepítő képernyő, immár a virtuális gépben.

Virtuális gépeink monitorozása:

A localhost(helyi gép) sort kiválasztva és a Részletek gombra kattintva láthatjuk annak adatait. Ugyanezt megtehetjük a különböző virtuális gépeknél is. Itt megnézhetjük a rendszer állapotát, és beállíthatjuk a hardvereket. (lásd következő kép)

Hardverek beállítása.

Itt hozzáadhatunk, eltávolíthatunk hardvereket, illetve beállíthatjuk őket. A Boot Options menüpontban megadhatjuk, hogy rendszerünk indításánál elinduljon-e a virtuális gépünk is, illetve melyik eszközről bootoljon rendszerünk. A már ezelőtt létrehozott virtuális gépeket is tudjuk használni a virt-managerrel. Indítsunk egy új telepítést majd a merevlemez meghatározásánál adjuk meg a már létező rendszerünket.

A virt-manager közelebb hozta a kvmmel történő virtualizációt a felhasználók számára, láthattuk hat lépés és már kész is. Mindez grafikusan, egyszerű letisztul felületen.