General kushanda nheyo dzeQEMU-KVM

General kushanda nheyo dzeQEMU-KVM

Kunzwisisa kwangu ikozvino:

1) KVM

KVM (Kernel-based Virtual Machine) ndeye hypervisor (VMM - Virtual Machine Manager) inoshanda semodule paLinux OS. A hypervisor inodiwa kuitira kuti umhanye imwe software munzvimbo isiripo (virtual) uye panguva imwechete kuvanza kubva kune iyi software iyo chaiyo yemuviri hardware iyo inomhanya software. Iyo hypervisor inoita se "spacer" pakati peiyo yenyama Hardware (host) uye chaiyo OS (muenzi).

Sezvo KVM iri yakajairika module yeLinux kernel, inogamuchira zvese zvinodiwa zvakanaka kubva kukernel (memory management, scheduler, nezvimwewo). Uye maererano, pakupedzisira, zvese izvi zvikomborero zvinoenda kune vashanyi (sezvo vashanyi vanoshanda pane hypervisor inomhanya pa/muLinux OS kernel).

KVM inokurumidza kwazvo, asi pachayo haina kukwana kumhanyisa chaiyo OS, nekuti... Izvi zvinoda kutevedzera I/O. Kune I/O (CPU, disks, network, video, PCI, USB, serial ports, etc.) KVM inoshandisa QEMU.

2) QEMU

QEMU (Kurumidza Emulator) ndeye emulator yezvishandiso zvakasiyana izvo zvinokutendera kuti umhanye masisitimu anoshanda akagadzirirwa imwe dhizaini pane imwe (semuenzaniso, ARM -> x86). Kuwedzera kune processor, QEMU inotevedzera akasiyana siyana ekutenderera: makadhi etiweki, HDD, vhidhiyo makadhi, PCI, USB, nezvimwe.

Inoshanda seizvi:

Mirayiridzo/bhinari kodhi (semuenzaniso, ARM) inoshandurwa kuita yepakati-yakasununguka kodhi kodhi uchishandisa TCG (Tiny Code Generator) converter uye ipapo iyi yepuratifomu-yakazvimiririra yebhinari kodhi inoshandurwa kuita chinangwa mirairo / kodhi (semuenzaniso, x86).

ARM –> intermediate_code –> x86

Chaizvoizvo, unogona kumhanya chaiwo muchina paQEMU pane chero muenzi, kunyangwe neakakura processor modhi isingatsigire Intel VT-x (Intel Virtualization Technology) / AMD SVM (AMD Yakachengeteka Virtual Machine). Nekudaro, mune iyi kesi, ichashanda zvishoma nezvishoma, nekuda kwekuti iyo bhinary kodhi kodhi inoda kudzokororwa panhunzi kaviri, uchishandisa TCG (TCG is a Just-in-Time compiler).

Avo. QEMU pachayo inotonhorera, asi inoshanda zvishoma nezvishoma.

3) Zvindori zvekudzivirira

General kushanda nheyo dzeQEMU-KVM

Binary program kodhi pane processors inoshanda nechikonzero, asi inowanikwa pamatanho akasiyana (mhete / Dziviriro mhete) ine mazinga akasiyana ekuwana data, kubva kune ane rombo rakanaka (Ring 0), kusvika kune yakanyanya kushomeka, yakadzorwa uye "nenzungu dzakasimbiswa. ” (Ring 3).

Iyo inoshanda sisitimu (OS kernel) inomhanya paRing 0 (kernel modhi) uye inogona kuita chero yainoda nechero data nemidziyo. Zvishandiso zvemushandisi zvinoshanda paRing 3 nhanho (mushandisi modhi) uye havabvumidzwe kuita chero chavanoda, asi panzvimbo pezvo vanofanirwa kukumbira kuwana nguva yega yega kuita imwe oparesheni (saka, mashandisirwo emushandisi anongokwanisa kuwana data rawo uye haagone "kuwana. kupinda” mubhokisi rejecha romumwe munhu). Mhete 1 uye 2 yakagadzirirwa kushandiswa nevatyairi.

Isati yagadzirwa Intel VT-x / AMD SVM, ma hypervisors aimhanya paRing 0, uye vashanyi vakamhanya paRing 1. Sezvo Ring 1 isina kodzero dzakakwana dzekushanda kwakajairika kweOS, nekufona kwega kwega kubva kune yevaenzi system, hypervisor aifanira kushandura iyi runhare panhunzi uye kuiita paRing 0 (sezvinoita QEMU). Avo. muenzi binary NOT yakaurayiwa yakananga pane processor, uye nguva yega yega yaipfuura nepakati akati wandei magadzirirwo panhunzi.

Iyo yepamusoro yaive yakakosha uye iri raive dambudziko hombe, uyezve vagadziri ve processor, vakazvimiririra kune mumwe nemumwe, vakaburitsa yakawedzera seti yemirairo (Intel VT-x / AMD SVM) yaibvumira kuita muenzi OS kodhi. ZVAKASIYANA pane processor processor (kupfuura chero nhanho dzinodhura dzepakati, sezvazvaive zvakaita kare).

Nekuuya kweIntel VT-x / AMD SVM, yakakosha Mhete nhanho -1 (minus imwe) yakagadzirwa. Uye zvino iyo hypervisor inomhanya pairi, uye vashanyi vanomhanya paRin 0 uye vanowana rombo rakanaka kuCPU.

Avo. pakupedzisira:

  • host inomhanya paRing 0
  • vaenzi vanoshanda paRing 0
  • hypervisor inomhanya paRing -1

4) QEMU-KVM

KVM inopa vashanyi kuwana Ring 0 uye inoshandisa QEMU kutevedzera I/O (processor, disks, network, video, PCI, USB, serial ports, etc. iyo vashanyi "vanoona" uye kushanda nayo).

Saka QEMU-KVM (kana KVM-QEMU) :)

Credits
Mufananidzo wekukwezva kutarisa
Mufananidzo weDziviriro mhete

PS Chinyorwa chechinyorwa ichi chakatanga kuburitswa muTeregiramu chiteshi @RU_Voip semhinduro kumubvunzo kubva kune mumwe wevatori vechikamu.

Nyora mumashoko apo ini ndisinganzwisisi musoro wacho nenzira yakarurama kana kana pane chimwe chinhu chekuwedzera.

Ndinokutendai!

Source: www.habr.com

Voeg