Kvm – kernel alapú virtuális gép

A kernel virtualizációs megoldás:
Manapság rengeteg virtualizációs megoldás elérhető Unix / Linux rendszerekre, ebből egyik a címben is említett kvm (http://kvm.qumranet.com/kvmwiki). A kernel 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). 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 (http://www.qemu.org) telepítése. (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 másik számítógépen is szükséges a rendszerigény címszó alatt felsoroltak.
Rendszerigény:
Hardveres virtualizációra képes processzor(írjuk be terminálba:

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

ha bármit kiír megnyugodhatunk processzorunk alkalmas). Memória terén a kvm csapata 1Gb határt szab meg minimumnak de ennél kevesebb RAM-al is lehet futtatni virtuális gépet ( de a használható sebesség érdekében célszerű beszerezni a megadott mennyiséget). Ugye triviális 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 későbbi kernel, 2Gb szabad hely.
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:
Első lépésként meg kell tudnunk milyen processzort használunk.
Terminálba írjuk be:

cat /proc/cpuinfo
 

Ezek után a rendszer kilistázza nekünk a processzor adatait. Keressünk két szót a listában „AMD” , „INTEL”. Ez azért szükséges mert mindkét gyártmányú processzor más fajta technológiát használ és más-más modulokat kell betöltenünk ha INTEL vagy ha AMD processzorral rendelkezünk. Ahhoz, hogy a felhasználónkkal használni tudjuk a programot hozzá kell adnunk a „kvm” csoporthoz.
Gépeljük be a következőt:

sudo adduser "felhasználónév" kvm

Aztán be kell töltenünk a processzorunkhoz tartozó modult.
Ha AMD:

 sudo modprobe kvm-amd

Ha INTEL:

udo modprobe kvm-intel

Ha nem szeretnénk minden indításnál pötyögni a modulok betöltésével akkor adjuk hozzá a nekünk megfelelő sort (kvm-amd vagy kvm-intel) a következő fájlhoz:

sudo gedit /etc/modules

Így azok rendszerindításnál automatikusan betöltődnek.
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 vagy 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ényeinkhez. 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 fájl)
-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, annak nem sokáig kell várni ugyanis az Ubuntu következő(Hardy) kiadásában benne foglaltatik egy a kvm-hez használható grafikus felület. Bővebben: klikk
Ínyenc falatok:
3D gyorsítás vmgl (http://www.cs.toronto.edu/~andreslc/xen-gl/) segítségével.
Azokat a disztribúciókat amik gfxboot rendszert használnak nem lehet telepíteni. Pl.: Ubuntu Gutsy Gibbon Server (boot során fekete képernyő – van rá workaround)
Forrás: http://kvm.qumranet.com/kvmwiki/HOWTO1, https://help.ubuntu.com/community/KVM

25 thoughts on “Kvm – kernel alapú virtuális gép

  1. Nekem semmit sem ir ki: egrep ‘^flags.*(vmx|svm)’ /proc/cpuinfo
    Most akkor nekem ez a kvm nem fog menni?

    1. Ebben az esetben nem, mivel a processzorod nem támogatja a hardveres virtualizálást.
      Sun Virtualbox, vagy VMWare ESXi-nek nem követelmény a hardveres támogatás.

  2. Hát nem tudom Intel Core Duo T2300 as processzorom van az intel weboldala szerint ennek T2300 supports Intel’s Virtualization Technology (VT)

  3. Szia Charlie!
    Éppen most ment fel a leírásod alapján a KVM-et. Előtte használtam virtualboxot, vmware-t, ms virtual pc-t, qemut(csak érintőlegesen).
    Épp telepüé az xp…. közben lenne pár kérdésem:
    Pár céges dolog miatt szükségem van xpre, de nem szeretném „beszennyezni” a gépemet, ezért döntöttem virtuális gép mellett – ismét. Konkrétan miben nyilvánul meg nekem a KVM előnye pl egy virtulboxal ellentétben? A proci 0. magja első pillanattól 100% ketyeg, 1. mag 30% és 50% között. VB alatt nem volt ennyire drasztikus. KVM nek kiosztott memória 512Mb.
    Szóval konkrétan a hardveres gyorsításból származó előnyöm akkora, hogy érdemes erre váltanom véglegesen vb helyett?

  4. a kvm inkább a szerver szegmenst célozza meg. átlagos, asztali felhasználásra a Virtualbox teljesen jó.
    Mellesleg nem én írtam a cikket.

  5. Azért lenne még egy utolsó kérdésem :
    Virtual Box ez fogadott, szeritned?? :
    VirtualBox can’t operate in VMX root mode. Please disable the KVM kernel extension, recompile your kernel and reboot (VERR_VMX_IN_VMX_ROOT_MODE).
    Eredmény kód:
    NS_ERROR_FAILURE (0x80004005)
    Komponens:
    Console
    Interfész:
    IConsole {e3c6d4a1-a935-47ca-b16d-f9e9c496e53e}

  6. Teljesen el kell távolítani minden KVM részt, pontosabban itt most a kernel modul maradt benne.

  7. synaptic-ban a search-be begépeltem, hogy kvm. Minden üres.
    Még mielőtt kérdeztem volna az
    – aptitue remove kvm
    – aptitude remove qemu
    és
    etc/modules-ből is kiszedtem a kvm-intel sort….
    ? nem értem, akkor mi baja lehet. És persze reboot is volt…

    1. Elvileg ezzel lehet:

      sudo apt-get remove --purge kvm

      Vagy ha már eltávolítottad:

      sudo dpkg -P kvm

      Majd a modulok lepusztítása

      sudo rm -rf /etc/kvm/ /etc/udev/rules.d/45-kvm.rules /etc/init.d/kvm
  8. Hát igen a gépemben valójában T2370 processzor van ami valóban nem támogat VT technológiát. Így maradok a virtual boxnál. Köszönöm a segítséget.
    Azonban azt szeretném még kérdezni hogy virtual boxal is tudok e szervert futtatni amit az a rendszer amiről fut a virtuális gép el tud érni hálózatban.
    És erre tudna e nekem valaki adni egy linket.

    1. @zoltan: Persze, meg lehet ilyet oldani. Annyi, hogy a hálózati csatolóknál ne NAT-ot, hanem host attachedet állíts be. Vagy ha NAT-ot, akkor ne felejtsd el beforwaldolni a megfelelő portokat a Virtualis gép felé

  9. Ezt hajtottam végre konkrétan, lépésekben:
    1. – sudo aptitue remove kvm
    2. – sudo aptitude remove qemu
    3. – etc/modules-ből kiszedtem a kvm-intel sort
    4. – sudo apt-get remove –purge kvm
    5. – sudo dpkg -P kvm
    6. – sudo rm -rf /etc/kvm/ /etc/udev/rules.d/45-kvm.rules /etc/init.d/kvm
    7. – reboot
    És minden ok lett

  10. nem lehetne egy leírást csinálni virtual boxal mert most nagyon rákaptam a témára de a serveres részhez alig értek. És virtual boxban nekem host attachedet nincs. 2.2.2 van azt hiszem. Port forwardot meg fogalmam sincs hogy kell csinálni. Vagy valamilyen angol leirás is jöhet. Mert nem tudom milyen kulcsszavakkal keressek rá googlen.

  11. hát végig olvastam előrébb nem vagyok XD
    Viszont a vbox súgót bújva megtaláltam hogy Host-Only adaptere kell állítanom nat helyett hogy ne keljen port forwaldolnom és lássa a ubuntu szervert a host gép és a másik virtuális gépem is. vagyis ha beirom a böngészőbe hogy 192.168.56.102 akkor megjelenik az it work’s felirat :).

  12. üdv
    elindultam, és odáig sikerült, hogy egy windows 7-et elindítok telepítésre dvd-ről, elindulna a telepítés de a windows hibát ír ki…mitől lehet?
    kéri hogy vagy helyezzem be a dvd-t vagy állítsam át a nyelvet…
    valami ötlet? akármi…?
    köszi, m

  13. [re=4456]somatyi[/re]: Melyik kvm verzió?
    Valószínűleg nem támogatja a Windows 7-et az a verzió és ezért lehet.

  14. creaft@creaft-desktop:~$ kvm -no-acpi -m 800 -cdrom /home/creaft/Asztal/WinXp.iso -boot d /media/virtualis/kvm/kvm.img
    pci_add_option_rom: failed to find romfile „pxe-rtl8139.bin”
    Azt szeretném megkérdezni hogy ez mitől lehet ?? Rendesen végigcsináltam mindent ahogy a leírás is írja. Települ is az oprendszer (Xp) csakhogy mégis kiírja a hibát 🙁 A virtualizáció is bevan kapcsolva a bioszba de eléggé lassú a telepités azaz nagyon lassú 🙁
    Előre is köszönöm a válaszokat.

  15. üdv.
    olyan problémám van, hogy a virtuális gépen az óra másodperc mutatója lemarad 1-2 másodpercel, a clocktime localhost -ra van állitva, esetleg valami ötlet?
    elöre is köszönöm!

Vélemény, hozzászólás?

Az e-mail címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük

Ez az oldal az Akismet szolgáltatást használja a spam csökkentésére. Ismerje meg a hozzászólás adatainak feldolgozását .