Fitsipika ankapobeny amin'ny fampandehanana QEMU-KVM

Fitsipika ankapobeny amin'ny fampandehanana QEMU-KVM

Ny fahalalako ankehitriny:

1) KVM

KVM (Virtual Machine miorina amin'ny Kernel) dia hypervisor (VMM - Virtual Machine Manager) mandeha ho modely amin'ny Linux OS. Ilaina ny hypervisor mba hampandehanana rindrambaiko sasany amin'ny tontolo tsy misy (virtoaly) ary amin'ny fotoana iray ihany dia manafina amin'ity rindrambaiko ity ny fitaovana ara-batana tena misy azy io. Ny hypervisor dia miasa toy ny "spacer" eo anelanelan'ny fitaovana ara-batana (host) sy ny OS virtoaly (vahiny).

Koa satria ny KVM dia maodely manara-penitra amin'ny kernel Linux, dia mahazo ny zava-tsoa ilaina rehetra avy amin'ny kernel izy (fitantanana fahatsiarovana, fandaharam-potoana, sns.). Ary araka izany, amin'ny farany, ireo tombontsoa rehetra ireo dia mankany amin'ny vahiny (satria ny vahiny dia miasa amin'ny hypervisor izay mandeha amin'ny / ao amin'ny kernel Linux OS).

Haingana be ny KVM, saingy tsy ampy ny fampandehanana OS virtoaly, satria ... Mitaky emulation I/O izany. Ho an'ny I/O (CPU, kapila, tambazotra, horonan-tsary, PCI, USB, seranan-tsambo, sns) dia mampiasa QEMU ny KVM.

2) QEMU

QEMU (Quick Emulator) dia emulator ho an'ny fitaovana isan-karazany izay ahafahanao mampandeha ny rafitra fiasana natao ho an'ny maritrano iray amin'ny hafa (ohatra, ARM -> x86). Ho fanampin'ny processeur, ny QEMU dia maka tahaka ireo fitaovana periferika isan-karazany: karatra tambajotra, HDD, karatra video, PCI, USB, sns.

Miasa toy izao izy io:

Ny toromarika/kaody mimari-droa (ohatra, ARM) dia avadika ho kaody tsy miankina amin'ny sehatra mpanelanelana amin'ny alΓ lan'ny mpanova TCG (Tiny Code Generator) ary avy eo io kaody binary tsy miankina amin'ny sehatra io dia avadika ho toromarika/kaody kendrena (ohatra, x86).

ARM -> intermediate_code -> x86

Amin'ny ankapobeny, azonao atao ny mampandeha milina virtoaly amin'ny QEMU amin'ny mpampiantrano rehetra, eny fa na dia amin'ny maodely processeur taloha izay tsy mahazaka Intel VT-x (Intel Virtualization Technology) / AMD SVM (AMD Secure Virtual Machine). Na izany aza, amin'ity tranga ity, dia hiasa tsikelikely, noho ny zava-misy fa ny executing code binary dia mila averina indroa amin'ny lalitra, mampiasa TCG (TCG dia Just-in-Time compiler).

Ireo. Ny QEMU mihitsy dia mega cool, fa miasa miadana be.

3) Peratra fiarovana

Fitsipika ankapobeny amin'ny fampandehanana QEMU-KVM

Ny kaody programa binary amin'ny processeur dia miasa noho ny antony iray, saingy hita amin'ny ambaratonga samihafa (peratra / peratra fiarovana) miaraka amin'ny haavo isan-karazany amin'ny fidirana angon-drakitra, manomboka amin'ny tombontsoa indrindra (Ring 0), ka hatramin'ny voafetra indrindra, voafehy ary "miaraka amin'ny voamaina voahenjana. ” (Peratra 3).

Ny rafitra fandidiana (kernel OS) dia mandeha amin'ny Ring 0 (mode kernel) ary afaka manao izay tiany amin'ny angona sy fitaovana rehetra. Ny rindranasa mpampiasa dia miasa amin'ny haavon'ny Ring 3 (mode mpampiasa) ary tsy mahazo manao izay tiany, fa tsy maintsy mangataka fidirana isaky ny manao hetsika manokana (noho izany, ny rindranasa mpampiasa dia tsy mahazo miditra amin'ny angon-dry zareo ihany ary tsy afaka "mahazo" ao amin'ny" boaty fasika an'olon-kafa). Ny peratra 1 sy 2 dia natao hampiasain'ny mpamily.

Talohan'ny namoronana ny Intel VT-x / AMD SVM, ny hypervisors dia nihazakazaka tamin'ny Ring 0, ary nihazakazaka tamin'ny Ring 1 ny vahiny. hypervisor dia tsy maintsy nanova an'io antso an-tariby io ary nanatanteraka izany tamin'ny Ring 1 (toy ny ataon'ny QEMU). Ireo. vahiny binary TSY dia novonoina mivantana teo amin'ny processeur, ary isaky ny mandeha amin'ny alalan'ny fanovana mpanelanelana maromaro amin'ny lalitra.

Ny overhead dia manan-danja ary olana lehibe izany, ary avy eo ny mpanamboatra processeur, tsy miankina, dia namoaka toromarika miitatra (Intel VT-x / AMD SVM) izay mamela ny fametrahana ny code OS vahiny. mivantana amin'ny processeur mpampiantrano (miala amin'ny dingana manelanelana lafo vidy, toy ny teo aloha).

Miaraka amin'ny fahatongavan'ny Intel VT-x / AMD SVM, dia noforonina ny haavon'ny Ring vaovao -1 (minus iray). Ary ankehitriny ny hypervisor dia mihazakazaka eo, ary ny vahiny dia mihazakazaka amin'ny Ring 0 ary mahazo tombony amin'ny CPU.

Ireo. farany:

  • mandeha amin'ny Ring 0 ny mpampiantrano
  • miasa amin'ny Ring 0 ny vahiny
  • hypervisor mandeha amin'ny Ring -1

4) QEMU-KVM

Ny KVM dia manome ny vahiny miditra amin'ny Ring 0 ary mampiasa QEMU hanahaka ny I/O (processeur, disks, network, video, PCI, USB, port serials, sns. izay "jeren'ny vahiny" sy iasany).

Noho izany QEMU-KVM (na KVM-QEMU) :)

CREDITS
Sary mba hisarihana ny saina
Sarin'ny peratra fiarovana

PS Ny lahatsoratr'ity lahatsoratra ity dia navoaka voalohany tao amin'ny fantsona Telegram @RU_Voip ho valin'ny fanontanian'ny iray amin'ireo mpandray anjara amin'ny fantsona.

Soraty ao amin'ny commentaire izay tsy azoko tsara ilay lohahevitra na raha misy azo ampiana.

Misaotra anao!

Source: www.habr.com

Add a comment