Imigaqo yokusebenza ngokubanzi ye-QEMU-KVM

Imigaqo yokusebenza ngokubanzi ye-QEMU-KVM

Ukuqonda kwam ngoku:

1) KVM

I-KVM (i-Kernel-based Virtual Machine) yi-hypervisor (i-VMM - uMphathi we-Virtual Machine) osebenza njengemodyuli kwi-Linux OS. I-hypervisor iyadingeka ukuze kuqhutywe isofthiwe ethile kwindawo engekhoyo (ebonakalayo) kwaye kwangaxeshanye ufihle kule software i-hardware yangempela ebonakalayo apho le software isebenza khona. I-hypervisor isebenza njenge "spacer" phakathi kwe-hardware ebonakalayo (i-host) kunye ne-OS ebonakalayo (undwendwe).

Ekubeni i-KVM iyimodyuli eqhelekileyo ye-Linux kernel, ifumana zonke izinto ezifunekayo kwi-kernel (ulawulo lwememori, umcwangcisi, njl.). Kwaye ngokufanelekileyo, ekugqibeleni, zonke ezi zibonelelo ziya kwiindwendwe (ekubeni iindwendwe zisebenza kwi-hypervisor esebenza kwi-Linux OS kernel).

I-KVM ikhawuleza kakhulu, kodwa ngokwayo akwanelanga ukuqhuba i-OS ebonakalayo, kuba... Oku kufuna umlinganiso we-I/O. Kwi-I / O (i-CPU, iidiski, inethiwekhi, ividiyo, i-PCI, i-USB, i-serial ports, njl.) I-KVM isebenzisa i-QEMU.

2) QEMU

I-QEMU (i-Quick Emulator) yi-emulator yezixhobo ezahlukeneyo ezikuvumela ukuba usebenzise iinkqubo zokusebenza eziyilelwe ulwakhiwo olunye kwenye (umzekelo, i-ARM -> x86). Ukongeza kwiprosesa, i-QEMU ilingisa izixhobo ezahlukeneyo ze-peripheral: amakhadi enethiwekhi, i-HDD, amakhadi evidiyo, i-PCI, i-USB, njl.

Isebenza ngolu hlobo:

Imiyalelo / ikhowudi yokubini (umzekelo, i-ARM) iguqulwa ibe yikhowudi yeqonga eliphakathi elizimeleyo usebenzisa i-TCG (i-Tiny Code Generator) isiguquli kwaye emva koko le khowudi yokubini ezimeleyo iguqulwa ibe yimiyalelo / ikhowudi ekujoliswe kuyo (umzekelo, x86).

I-ARM –> intermediate_code –> x86

Ngokusisiseko, ungaqhuba oomatshini bokwenyani kwi-QEMU nakweyiphi na inginginya, nangeemodeli zeprosesa ezindala ezingaxhasi i-Intel VT-x (Intel Virtualization Technology) / AMD SVM (AMD Secure Virtual Machine). Nangona kunjalo, kulo mzekelo, iya kusebenza ngokucothayo kakhulu, ngenxa yokuba ikhowudi yokubini ephunyeziweyo ifuna ukuphinda ihlanganiswe kwi-fly kabini, usebenzisa i-TCG (TCG yi-Just-in-Time compiler).

Ezo. I-QEMU ngokwayo ipholile kakhulu, kodwa isebenza ngokucothayo.

3) Amakhonkco okukhusela

Imigaqo yokusebenza ngokubanzi ye-QEMU-KVM

Ikhowudi yenkqubo yeBhinary kwiiprosesa isebenza ngesizathu, kodwa ibekwe kumanqanaba ahlukeneyo (amakhonkco / amakhonkco oKhuseleko) kunye namanqanaba ahlukeneyo okufikelela kwidatha, ukusuka kwawona malungelo (Ring 0), ukuya kwezona zincinci, zilawulwa kwaye "kunye namantongomane aqinisiwe. ” (Iringi 3).

Inkqubo yokusebenza (i-OS kernel) isebenza kwiRingi 0 (imowudi yekernel) kwaye inokwenza nantoni na eyifunayo ngayo nayiphi na idatha kunye nezixhobo. Izicelo zomsebenzisi zisebenza kwinqanaba le-3 yeRingi (imo yomsebenzisi) kwaye abavumelekanga ukuba benze nantoni na abayifunayo, kodwa endaweni yoko kufuneka bacele ufikelelo ngexesha ngalinye ukwenza umsebenzi othile (ngaloo ndlela, izicelo zomsebenzisi zikwazi ukufikelela kuphela kwidatha yazo kwaye azikwazi "ukufumana". kwi”bhokisi yesanti yomnye umntu). Iringi ye-1 kunye ne-2 yenzelwe ukusetyenziswa ngabaqhubi.

Ngaphambi kokusungulwa kwe-Intel VT-x / AMD SVM, ii-hypervisors zabaleka kwiRingi 0, kwaye iindwendwe zabaleka kwiRingi 1. Ekubeni iRingi 1 ayinamalungelo aneleyo okusebenza okuqhelekileyo kwe-OS, kunye nomnxeba onelungelo ngalinye elivela kwinkqubo yeendwendwe, I-hypervisor kuye kwafuneka ilungise le mnxeba kubhabho kwaye iyenze kwiRingi 0 (kakhulu njengoko iQEMU isenza). Ezo. ibhinari yeendwendwe HAYI yenziwe ngokuthe ngqo kwiprosesa, kwaye ixesha ngalinye lihamba ngohlengahlengiso oluphakathi kubhabho.

I-overhead yayibalulekile kwaye le yayiyingxaki enkulu, kwaye ke abavelisi beprosesa, ngokuzimeleyo omnye komnye, bakhupha imiyalelo eyandisiweyo (Intel VT-x / AMD SVM) evumela ukuphumeza ikhowudi ye-OS yeendwendwe. NGQO kumqhubekekisi wenginginya (ugqitha nawaphi na amanyathelo aphakathi anexabiso eliphakathi, njengoko kwakunjalo ngaphambili).

Ngokufika kwe-Intel VT-x / AMD SVM, inqanaba elitsha leRingi elikhethekileyo -1 (minus enye) lenziwe. Kwaye ngoku i-hypervisor ibaleka kuyo, kwaye iindwendwe zibaleka kwiRingi 0 kwaye zifumane ilungelo lokufikelela kwi-CPU.

Ezo. ekugqibeleni:

  • umamkeli ubaleka kwiRingi 0
  • iindwendwe zisebenza kwiRingi 0
  • I-hypervisor isebenza kwiRingi -1

4) QEMU-KVM

I-KVM inika iindwendwe ukufikelela kwiRingi 0 kwaye isebenzisa i-QEMU ukulinganisa i-I / O (iprosesa, iidiski, inethiwekhi, ividiyo, i-PCI, i-USB, izibuko ze-serial, njl njl ukuba iindwendwe "zibone" kwaye zisebenze nazo).

Kungoko i-QEMU-KVM (okanye i-KVM-QEMU) :)

IIMALI
Umfanekiso ukutsala umdla
Umfanekiso woKhuseleko amakhonkco

PS Umbhalo weli nqaku wapapashwa okokuqala kwitshaneli yeTelegram @RU_Voip njengempendulo yombuzo ovela komnye wabathathi-nxaxheba beli jelo.

Bhala kwizimvo apho andiyiqondi isihloko ngokuchanekileyo okanye ukuba kukho nantoni na eyongeza.

Ndiyabonga!

umthombo: www.habr.com

Yongeza izimvo