Home / Linux / Ubuntu / Kvm – kernel alapú virtuális gép

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

Szerző Ginko

Olvastad?

Linux

Friss funkciókkal érkezik a Linux 5.0 „Shy Crocodile”

Linus Torvalds nemrég megjelentette a Linux kernel 5.0 verzióját, melynek a Shy Crocodile, avagy a …

25 hozzászólás

  1. 2.6.20 vagy annál korábbi kernel,

    ez későbbi akart lenni, gondolom…

  2. Nekem semmit sem ir ki: egrep ‘^flags.*(vmx|svm)’ /proc/cpuinfo

    Most akkor nekem ez a kvm nem fog menni?

  3. 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.

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

  5. http://ark.intel.com/cpu.aspx?groupId=27233

    elméletileg nekem ilyen processzorom van a laptopba amilo pi2540
    Itt azt irja hogy nem 64 bites ettől függetlenül én live cd ről futtatam 64 bites kubuntut. Szóval tanácstalan vagyok XD

  6. 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?

  7. 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.

  8. Azért köszi! :)

  9. 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}

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

  11. 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…

  12. 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
  13. Működik! Nagyon szépen köszönöm!

  14. 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.

  15. @Norton: Melyik megoldás működött ezek közül?

  16. @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é

  17. 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

  18. 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.

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

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

A weboldal használatának folytatásával Ön elfogadja a cookie-k használatát Adatkezelési tájékoztató és felhasználási feltételek

A süti beállítások ennél a honlapnál engedélyezett a legjobb felhasználói élmény érdekében. Amennyiben a beállítás változtatása nélkül kerül sor a honlap használatára, vagy az "Elfogadás" gombra történik kattintás, azzal a felhasználó elfogadja a sütik használatát.

Bezárás