Virtualisointi: Mikä on ero KVM: n ja QEMU: n välillä?


Paras vastaus

KVM on QEMU: n haarukka. KVM-koodipohjaa muokataan tukemaan laitteistokiihdytystä, kun se on käytettävissä (sama arkkitehtuuri isäntä- ja vieras-VM: lle).

Eniten jos aikaa, QEMU: ta käytetään toisen arkkitehtuurin emulointiin (esim. Emuloida ARM / Power arch. X86-prosessorilla) . Olen käyttänyt tätä RaspberryPI-kuvan suorittamiseen, joka toimii ARM: llä kannettavassa tietokoneessani, jossa on Intel-prosessori.

Yksi ero niiden välillä on se, että QEMU toimii prosessorilla tarvitsematta laitteiston virtualisointilaajennusta (Intel VT / VT-d, AMD-V), kun taas KVM käyttää sitä. Laitteiston virtualisointilaajennusten avulla pääset suoraan fyysisen koneen laitteistoon. Haittapuolena on, että KVM-koodipohja ei voi jäljitellä toista arkkitehtuuria.

Mutta kun KVM suoritetaan koneessa, jossa ei ole HW-virt-tiedostotunnistetta, se vaihtaa takaisin QEMU: ksi suorittamaan virtuaalikoneen.

Voit tarkistaa, tukeeko prosessori laitteistovirustoa. Windowsissa voit käyttää http://www.cpuid.com/cpuz.php tai http://www.grc.com/securable.htm ja tarkista, onko ”vmx” tai ”svm” laajennus. (Jälkimmäinen on paljon helpompaa)

Käytä Linuxissa

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

Molempien kooditietokantojen yhdistäminen on meneillään ja näemme ne tulevaisuudessa yhtenä projektina. Tämä tekee KVM: stä vanhentuneen ja sulautuneen QEMU-kooditietokantaan.

Muuten, melkein kaikki uudet Intel ja AMD tukevat virtualisointia, mutta olen nähnyt Acer-kannettavan Intel-prosessorilla, joka ei tue laitteiston virtualisointia. Tarkista myös BIOS, jos tämä laajennus on käytössä. Muussa BIOSissa laajennus on oletusarvoisesti poistettu käytöstä.

Vastaus

Alun perin lähettäjältä Palvelinvirhe

KVM :

KVM on muutama asia: ensin se on Linux-ytimen moduuli (sisältyy nyt päälinjaan), joka vaihtaa prosessorin uuteen ”guest” -tilaan. Vierasvaltiolla on oma joukko rengastiloja, mutta etuoikeutetut ring0-käskyt palaavat takaisin hypervisorikoodiin. Koska koodia ei ole suoritettu uudella prosessorilla, koodia ei tarvitse muuttaa millään tavalla.

Prosessorin tilanvaihdon lisäksi ytimen moduuli käsittelee myös muutamia alemman tason osia emulointi, kuten MMU-rekisterit (käytetään VM: n käsittelemiseen) ja jotkut PCI-emuloidun laitteiston osat.

Toiseksi KVM on Qemu-suoritettavan haarukka. Molemmat ryhmät työskentelevät aktiivisesti pitääkseen erot mahdollisimman pieninä, ja niiden vähentämisessä on edistytty. Lopulta tavoitteena on, että Qemun tulisi toimia missä tahansa, ja jos käytettävissä on KVM-ytimoduulia, sitä voidaan käyttää. Mutta lähitulevaisuudessa Qemu-tiimi keskittyy laitteiston emulointiin ja siirrettävyyteen, kun taas KVM-ihmiset keskittyvät ytimen moduuliin (joskus pienien osien emulointiin siirtäminen sinne, jos sen on osoittautunut parantavan suorituskykyä), ja vuorovaikutuksessa muun käyttäjätilakoodin .

Suoritettava kvm-qemu-tiedosto toimii normaalin Qemun tavoin: allokoi RAM-muistin, lataa koodin ja uudelleenkääntämisen tai KQemulle soittamisen sijaan synnyttää ketjun (tämä on tärkeää); säie kutsuu KVM-ytimoduulin vaihtamaan vierastilaan ja jatkaa VM-koodin suorittamista. Etuoikeuskäskyllä ​​se siirtyy takaisin KVM-ytimen moduuliin, joka tarvittaessa ilmoittaa Qemu-säikeelle käsittelemään suurimman osan laitteistoemulaatiosta.

Yksi tämän arkkitehtuurin hienoista puolista on, että vieras koodi emuloidaan posix-säikeessä, jota voit hallita tavallisilla Linux-työkaluilla. Jos haluat virtuaalikoneen, jossa on 2 tai 4 ydintä, kvm-qemu luo 2 tai 4 ketjua, joista kukin kutsuu KVM-ytimen moduulia suorittamisen aloittamiseksi. Samanaikaisuutta (jos sinulla on tarpeeksi todellisia ytimiä) tai ajoitusta (jos et t) hallitsee normaali Linux-ajastin, pitäen koodin pienenä ja yllätysten rajallisena.

Qemu :

QEmu on täydellinen ja itsenäinen ohjelmisto. Käytät sitä koneiden jäljittelemiseen, se on erittäin joustava ja kannettava. Toimii pääasiassa erityisellä ”uudelleenkääntäjällä”, joka muuntaa tietylle prosessorille kirjoitetun binaarikoodin toiseen (esimerkiksi MIPS-koodin suorittamiseen PPC-mac: lla tai ARM: lla. x86-tietokoneessa).

Emuloidakseen muutakin kuin prosessoria, Qemu sisältää pitkän luettelon oheisemulaattoreista: levy, verkko, VGA, PCI, USB, sarja- / rinnakkaisportit jne.

Lähde: KVM: n ja QEMU: n välinen ero

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *