Prinsip operasi umum QEMU-KVM

Prinsip operasi umum QEMU-KVM

Pemahamanku saiki:

1) KVM

KVM (Mesin Virtual berbasis Kernel) minangka hypervisor (VMM - Manajer Mesin Virtual) sing mlaku minangka modul ing OS Linux. A hypervisor dibutuhake kanggo mbukak sawetara piranti lunak ing lingkungan non-ana (virtual) lan ing wektu sing padha ndhelikake saka piranti lunak iki hardware fisik nyata sing piranti lunak iki mlaku. Hypervisor tumindak minangka "spacer" antarane hardware fisik (host) lan OS virtual (tamu).

Wiwit KVM minangka modul standar saka kernel Linux, nampa kabeh barang sing dibutuhake saka kernel (manajemen memori, panjadwal, lsp.). Lan kanthi mangkono, ing pungkasan, kabeh keuntungan kasebut menyang tamu (amarga para tamu nggarap hypervisor sing mlaku ing / ing kernel Linux OS).

KVM cepet banget, nanging ora cukup kanggo mbukak OS virtual, amarga ... Iki mbutuhake emulasi I / O. Kanggo I / O (CPU, disk, jaringan, video, PCI, USB, port serial, etc.) KVM nggunakake QEMU.

2) QEM

QEMU (Quick Emulator) minangka emulator kanggo macem-macem piranti sing ngidini sampeyan mbukak sistem operasi sing dirancang kanggo arsitektur siji liyane (contone, ARM -> x86). Saliyane prosesor, QEMU niru macem-macem piranti peripheral: kertu jaringan, HDD, kertu video, PCI, USB, lsp.

Kerjane kaya iki:

Instructions / kode binar (contone, ARM) diowahi dadi kode platform-independen penengah nggunakake TCG (Tiny Code Generator) converter banjur kode binar platform-independen iki diowahi dadi instruksi target / kode (contone, x86).

ARM -> kode_penengah -> x86

Intine, sampeyan bisa mbukak mesin virtual ing QEMU ing host apa wae, sanajan model prosesor lawas sing ora ndhukung Intel VT-x (Teknologi Virtualisasi Intel) / AMD SVM (Mesin Virtual Aman AMD). Nanging, ing kasus iki, bakal kerjane alon banget, amarga kode binar eksekusi kudu dikompilasi maneh kanthi cepet kaping pindho, nggunakake TCG (TCG minangka kompiler Just-in-Time).

Sing. QEMU dhewe mega kelangan, nanging kerjane alon banget.

3) rings pangayoman

Prinsip operasi umum QEMU-KVM

Kode program binar ing pemroses dianggo kanthi alesan, nanging dumunung ing tingkat sing beda-beda (ring / Protection rings) kanthi tingkat akses data sing beda-beda, saka sing paling ndarbeni hak istimewa (Ring 0), nganti sing paling winates, diatur lan "karo kacang kenceng. ” (Ring 3).

Sistem operasi (kernel OS) nganggo Ring 0 (mode kernel) lan bisa nindakake apa wae sing dikarepake karo data lan piranti apa wae. Aplikasi pangguna beroperasi ing tingkat Ring 3 (mode pangguna) lan ora diidini nindakake apa wae sing dikarepake, nanging kudu njaluk akses saben wektu kanggo nindakake operasi tartamtu (saiki, aplikasi pangguna mung duwe akses menyang data dhewe lan ora bisa "njaluk. menyang” kothak wedhi wong liya). Dering 1 lan 2 dimaksudake kanggo digunakake dening pembalap.

Sadurunge penemuan Intel VT-x / AMD SVM, hypervisor mlayu ing Ring 0, lan tamu mlayu ing Ring 1. Wiwit Ring 1 ora duwe hak sing cukup kanggo operasi normal OS, kanthi saben telpon hak istimewa saka sistem tamu, hypervisor kudu ngowahi telpon iki kanthi cepet lan nglakokake ing Ring 0 (kaya QEMU). Sing. binar tamu Ora kaleksanan langsung ing prosesor, lan saben wektu tindak liwat sawetara modifikasi penengah ing fly ing.

Overhead penting lan iki minangka masalah gedhe, lan banjur produsen prosesor, kanthi bebas saka siji liyane, ngeculake instruksi lengkap (Intel VT-x / AMD SVM) sing ngidini ngeksekusi kode OS tamu. LANGSUNG ing prosesor inang (bypassing sembarang langkah penengah larang regane, minangka kasus sadurunge).

Kanthi tekane Intel VT-x / AMD SVM, tingkat Ring anyar khusus -1 (minus siji) digawe. Lan saiki hypervisor mlaku ing, lan tamu mbukak ing Ring 0 lan njaluk hak istimewa kanggo CPU.

Sing. pungkasane:

  • host mlaku ing Ring 0
  • tamu nyambut gawe ing Ring 0
  • hypervisor mlaku ing Ring -1

4) QEMU-KVM

KVM menehi tamu akses kanggo Ring 0 lan nggunakake QEMU kanggo emulate I / O (prosesor, disk, jaringan, video, PCI, USB, bandar serial, etc. sing tamu "ndeleng" lan bisa karo).

Dadi QEMU-KVM (utawa KVM-QEMU) :)

KREDIT
Gambar kanggo narik kawigaten
Gambar dering Proteksi

PS Teks artikel iki asline diterbitake ing saluran Telegram @RU_Voip minangka jawaban kanggo pitakonan saka salah siji peserta saluran.

Tulis ing komentar sing aku ora ngerti topik kanthi bener utawa yen ana sing kudu ditambahake.

Matur suwun!

Source: www.habr.com

Add a comment