Kernel-alapú virtualizáció

A kernel-alapú virtualizációs megoldás:

Manapság rengeteg virtualizációs megoldás érhető el Unix / Linux rendszerekre, ebből az egyik a címben is említett kvm. A kernel-based virtual machine 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 egy nyílt forrású alkalmazás, mely a kernelben a 2.6.20-as kiadástól érhető el. Üzemeltetéséhez szükséges a qemu telepítése (a kvm nem keverendő össze a kqemu -val). 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 a másik számítógépen is szükségesek 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 (ezzel a paranccsal állapíthatjuk

System Message: WARNING/2 (./hardy/main/virtual/kvm.rst, line 31)

Bullet list ends without a blank line; unexpected unindent.

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
  • 2.6.20 vagy annál újabb kernel(a 8.04 felhasználóit ez nem érinti, mert ennél jóval újabb kernel verziót használ a Hardy Heron)
  • 2Gb szabad hely.

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 32 bites 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 (Alkalmazások → Kellékek → Terminál, vagy pedig nyomjuk meg az ALT+F2 billentyűkombinációt, és írjuk be a következőt: gnome-terminal), é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 igennel kell válaszolni (a függőségek telepítésére kérdez rá). Ezután letölti és telepíti, majd készen áll a használatra.

Használat:

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

Először is döntsük el, hová akarjuk rakni virtuális rendszerünket. Ebben a példában a felhasználó könyvtárában létrehozott "kvm" könyvtárban fogjuk létrehozni a képfájlt, ehhez nyissunk egy terminált, és adjuk ki a következő parancsokat:

$ mkdir /home/"felhasználónév"/kvm
Ezzel létrehozunk a saját könyvtárunkban egy kvm nevű könyvtárat

$ cd /home/"felhasználónév"/kvm
Ezzel a paranccsal belépünk a kvm könyvtárba

$ qemu-img create "a rendszer neve".img -f qcow 8G
Létrehozunk egy virtuális merevlemezt a rendszernek, 8 GB-os mérettel

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

  • -no-acpi (lásd a HUP Wiki vonatkozó szócikkét) Ha telepítésnél bekapcsoltuk, 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 a következő parancs kiadásával:

$ 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-t 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 mederben folyik, 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, 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-manger-t, amit a leírás további részében megtalálhatnak.

Érdekességek: 3D gyorsítás vmgl segítségével. Azokat a disztribúciókat, amik gfxboot rendszert használnak, nem lehet telepíteni, például Ubuntu Gutsy Gibbon Server (boot során fekete képernyő - van rá workaround).

A grafikus felület bemutatása:

A Hardy Heron megjelenésével kézhez kaptuk a virtuális gép(ek) igazgatóját (libvirt, virt-manager). Ez azt jelenti, hogy innentől kezdve grafikus felületen 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:

Szükséges csomagok: kvm libvirt0 libvirt-bin virt-manager libvirtd Telepítsük grafikus úton a Synaptic csomagkezelő segítségével, vagy pedig terminálban a következő parancs kiadásával:

$ sudo aptitude install kvm libvirt0 libvirt-bin virt-manager libvirtd

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 (a képeken pirossal kiemelve láthatóak).

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

Egy varázsló fog végigvezetni a virtuális gép létrehozásához szükséges lépéseken:

  1. Első lépésként adjuk meg a rendszer nevét
  2. Ezután adjuk meg a rendszer architektúráját: 32 bites rendszer esetén i686, 64 bites rendszer esetén x86_64. Ezen kívül engedélyezzük a hardveres gyorsítást, valamint tegyük a rendszert teljesen virtuálissá.
  3. Adjuk meg annak a képfájlnak vagy CD-ROM-nak helyét, amelyről a telepítést indítani szeretnénk, és adjuk meg a rendszer típusát. Lehetőség van hálózati telepítésre (PXE) is.
  4. Adjuk meg a rendszerünk virtuális merevlemezének méretét, helyét, valamint azt, hogy fix méretű fájlt szeretnénk, vagy dinamikusan növekvőt.
  5. Állítsuk be virtuális rendszerünk memóriáját és processzorát. A memória értéke legalább 256 MB legyen. Virtuális rendszerünknek több CPU-t is adhatunk, azonban figyeljünk arra, hogy a virtuális processzorok száma ne lépje túl a valós processzorok számát.
  6. Ezután a varázsló összegzi a beállításokat, melyeket ellenőrizzünk, és ha rendben találtuk őket, kattintsunk a Befejezés gombra.
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 elinuljon-e a virtuális gépünk is, illetve melyik eszközről bootoljon rendszerünk. A korábban 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 kvm-mel történő virtualizációt a felhasználók számára, mindezt grafikusan, egyszerű, letisztul felületen.