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
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"/kvmEzzel létrehozunk a saját könyvtárunkban egy kvm nevű könyvtárat$ cd /home/"felhasználónév"/kvmEzzel a paranccsal belépünk a kvm könyvtárba$ qemu-img create "a rendszer neve".img -f qcow 8GLé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
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).
Egy varázsló fog végigvezetni a virtuális gép létrehozásához szükséges lépéseken:
- Első lépésként adjuk meg a rendszer nevét
- 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á.
- 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.
- 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.
- Á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.
- 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.
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).
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.