Algemiene prinsipes fan QEMU-KVM operaasje

Algemiene prinsipes fan QEMU-KVM operaasje

Myn hjoeddeistige begryp:

1) KVM

KVM (Kernel-basearre Virtual Machine) is in hypervisor (VMM - Virtual Machine Manager) dy't wurket as in module op Linux OS. In hypervisor is nedich om guon software út te fieren yn in net-besteand (firtuele) omjouwing en tagelyk de echte fysike hardware wêrop dizze software rint fan dizze software te ferbergjen. De hypervisor fungearret as in "laach" tusken de fysike hardware (host) en it firtuele OS (gast).

Sûnt KVM is in standert module fan de Linux kernel, it krijt alle foardielen (ûnthâld behear, planner, ensfh) út de kernel. En dêrtroch, op it lêst, geane al dizze foardielen nei de gasten (om't de gasten wurkje oan in hypervisor dy't rint op / yn 'e Linux kernel).

KVM is hiel fluch, mar troch himsels is it net genôch te rinne in firtuele OS, omdat dit fereasket I / O emulaasje. Foar I / O (prosessor, skiven, netwurk, video, PCI, USB, serial havens, ensfh) KVM brûkt QEMU.

2) QEMU

QEMU (Quick Emulator) is in emulator fan ferskate apparaten wêrmei jo bestjoeringssystemen kinne útfiere ûntworpen foar ien arsjitektuer op in oare (bygelyks ARM -> x86). Neist de prosessor emuleart QEMU ferskate perifeare apparaten: netwurkkaarten, HDD, fideokaarten, PCI, USB, ensfh.

It wurket sa:

Ynstruksjes / binêre koade (bygelyks ARM) wurde omboud ta tuskenlizzende platfoarm-ûnôfhinklike koade mei help fan de TCG (Tiny Code Generator) converter, en dan dizze platfoarm-ûnôfhinklike binêre koade wurdt omsetten yn doel ynstruksjes / koade (bygelyks x86).

ARM –> staging –> x86

Yn feite kinne jo firtuele masines op QEMU op elke host útfiere, sels mei âldere prosessormodellen dy't gjin Intel VT-x (Intel Virtualization Technology) / AMD SVM (AMD Secure Virtual Machine) stypje. Yn dit gefal sil it lykwols heul stadich wurkje, fanwege it feit dat de útfierbere binêre koade twa kear opnij kompilearre wurde moat, mei TCG (TCG is in Just-in-Time-kompiler).

Dy. QEMU sels is mega cool, mar it wurket hiel stadich.

3) Beskermingsringen

Algemiene prinsipes fan QEMU-KVM operaasje

Binêre programmakoade op processors wurket net krekt sa, mar leit op ferskate nivo's (ringen / beskermingsringen) mei ferskate nivo's fan tagong ta gegevens, fan 'e meast befoarrjochte (Ring 0), oant de meast beheinde, regele en "mei oanskerpe skroeven” (Ring 3 ).

It bestjoeringssysteem (OS kernel) rint op Ring 0 (kernel modus) en kin dwaan wat it wol mei alle gegevens en apparaten. Brûkerapplikaasjes wurkje op it Ring 3-nivo (brûkersmodus) en hawwe net it rjocht om te dwaan wat se wolle, mar ynstee moatte se elke kear tagong freegje om ien of oare operaasje út te fieren (dus hawwe brûkersapplikaasjes allinich tagong ta har eigen gegevens en kinne se net "komme" yn "immen oars syn sânbak"). Ring 1 en 2 binne foar bestjoerder gebrûk.

Foarôfgeand oan de útfining fan Intel VT-x / AMD SVM, hypervisors rûnen op Ring 0 en gasten rûnen op Ring 1. Sûnt Ring 1 hat net genôch tagongsrjochten foar it OS om goed te funksjonearjen, moast de hypervisor dizze oprop op 'e flecht feroarje mei elke befoarrjochte oprop fan 'e gast. en útfiere it op Ring 0 (lykas QEMU docht). Dy. gast binêre NOT waard útfierd direkt op 'e prosessor, en eltse kear it gie troch ferskate tuskenlizzende oanpassings op de fly.

De overhead wie signifikant en it wie in grut probleem, en doe brochten prosessorfabrikanten, ûnôfhinklik fan elkoar, in útwreide set ynstruksjes út (Intel VT-x / AMD SVM) wêrtroch gast OS-koade koe wurde útfierd DIRECT op 'e hostprosessor (omrin fan alle djoere tuskenstappen, lykas it earder wie).

Mei de komst fan Intel VT-x / AMD SVM waard in spesjale nij nivo Ring -1 (minus ien) makke. En no rint de hypervisor derop, en de gasten rinne op Ring 0 en krije befoarrjochte tagong ta de CPU.

Dy. úteinlik:

  • host rint op Ring 0
  • gasten wurkje foar Ring 0
  • hypervisor rint op Ring -1

4) QEMU-KVM

KVM jout gasten tagong ta Ring 0 en brûkt QEMU foar in emulate de I / O (prosessor, skiven, netwurk, video, PCI, USB, serial havens, ensfh dat gasten "sjogge" en wurkje mei).

Dêrom QEMU-KVM (of KVM-QEMU) :)

CREDITS
Ofbylding om oandacht te lûken
Picture beskerming ringen

PS De tekst fan dit artikel waard oarspronklik publisearre yn it Telegram-kanaal @RU_Voip as antwurd op in fraach fan ien fan 'e kanaalleden.

Skriuw yn 'e opmerkings wêr't ik it ûnderwerp net goed begryp of as d'r wat ta te foegjen is.

Tankewol!

Boarne: www.habr.com

Add a comment