Virtualizáció: Mi a különbség a KVM és a QEMU között?


Legjobb válasz

A KVM a QEMU elágazása. A KVM kódalapú úgy van módosítva, hogy támogassa a hardveres gyorsítást (ha rendelkezésre áll, ugyanaz az architektúra a host és a vendég virtuális géphez).

Legtöbbször a QEMU-t használják egy másik architektúra utánzásához (pl. ARM / Power arch. X86 processzorral) . Ezt egy RaspberryPI kép futtatására használtam, amely ARM-en futtatható laptopomban, amely Intel processzorral rendelkezik.

Az egyik különbség az, hogy a QEMU processzoron fut, anélkül, hogy hardveres virtualizációs kiterjesztésre lenne szükség (Intel VT / VT-d, AMD-V), míg a KVM használja. A hardveres virtualizációs kiterjesztések lehetővé teszik a fizikai gép hardverének közvetlen elérését. Hátránya, hogy a KVM kódbázis nem képes más architektúrát utánozni.

De amikor a KVM-et HW virt kiterjesztés nélküli gépen futtatják, a VM futtatásához visszakapcsol a QEMU-ra.

Annak ellenőrzéséhez, hogy a processzor támogatja-e a hardveres virt., Windows esetén használhatja a http://www.cpuid.com/cpuz.php vagy http://www.grc.com/securable.htm, és ellenőrizze a “vmx” vagy “svm” kiterjesztést. (Ez utóbbi sokkal könnyebb)

Linux rendszeren használja a

  • egrep “(vmx | svm)” / proc / cpuinfo

Mindkét kódbázis egyesítése folyamatban van, és a jövőben egy projektnek tekintjük őket. Ez elavulttá teszi a KVM-et és összeolvad a QEMU kódbázissal.

Egyébként szinte az összes új processzort kiadta a Az Intel és az AMD támogatja a virtualizációt, de láttam egy Acer laptopot Intel processzorral, amely nem támogatja a hardveres virtualizációt. Kérjük, ellenőrizze a BIOS-t is, ha engedélyezte ezt a kiterjesztést. Más BIOS-ban a kiterjesztés alapértelmezés szerint le van tiltva.

Válasz

Eredetileg a szerverhibáról

KVM :

A KVM egy pár dolog: először ez egy Linux kernelmodul (amely a mainline-ban szerepel), amely a processzort egy új “vendég” állapotba kapcsolja át. A vendégállapotnak megvan a saját gyűrűállapot-készlete, de a privilegizált ring0 utasítások visszakerülnek a hipervizor kódjába. Mivel ez “új processzor-futtatási mód, ezért a kódot semmilyen módon nem kell módosítani.

A processzor állapotváltásán kívül a kernelmodul a processzor néhány alacsony szintű részét is kezeli. emuláció, mint az MMU regiszterek (amelyeket a virtuális gépek kezelésére használnak) és a PCI emulált hardver egyes részei.

Másodszor, a KVM a Qemu futtatható fájl villa. Mindkét csapat aktívan dolgozik a különbségek minimális szinten tartásán, és vannak előrelépések ennek csökkentésében. Végül az a cél, hogy a Qemu bárhol működjön, és ha rendelkezésre áll egy KVM kernelmodul, akkor azt fel lehet használni. De a belátható jövőben a Qemu csapata a hardveres emulációra és a hordozhatóságra összpontosít, míg a KVM emberei a kernelmodulra összpontosítanak (néha az emuláció kis részeit mozgatják oda, ha bebizonyosodik, hogy javítják a teljesítményt), és kapcsolódnak a többi felhasználói térkódhoz .

A kvm-qemu futtatható fájl úgy működik, mint a normál Qemu: lefoglalja a RAM-ot, betölti a kódot, és újrafordítás, vagy a KQemu hívása helyett szálat hoz létre (ez fontos); a szál felhívja a KVM kernelmodult, hogy vendég módra váltson, és folytatja a VM kód végrehajtását. Egy privilégium utasítással visszakapcsol a KVM kernelmodulra, amely szükség esetén jelzi a Qemu szálat, hogy kezelje a hardveres emuláció nagy részét.

Ennek az architektúrának az egyik szép dolga, hogy a vendég kódot egy posix szálban emulálják, amelyet normál Linux eszközökkel kezelhet. Ha 2 vagy 4 magos virtuális gépet szeretne, a kvm-qemu 2 vagy 4 szálat hoz létre, mindegyik meghívja a KVM kernelmodult a végrehajtás megkezdéséhez. A párhuzamosságot (ha elegendő valós magja van) vagy az ütemezést (ha nincs) a normál Linux ütemező kezeli, a kódot kicsiben tartva, és a meglepetések korlátozottak.

Qemu :

A QEmu egy komplett és önálló szoftver. A gépek utánzásához használja, nagyon rugalmas és hordozható. Főleg egy speciális “újrafordító” működik, amely átalakítja az adott processzorhoz írt bináris kódot másikká (például MIPS kód futtatásához PPC mac-on vagy ARM-en. egy x86-os PC-n).

Nem csak a processzor utánzásához a Qemu a perifériás emulátorok hosszú listáját tartalmazza: lemez, hálózat, VGA, PCI, USB, soros / párhuzamos portok stb.

Forrás: Különbség a KVM és a QEMU között

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