Ce este KVM și cum funcționează?

Kernel-based Virtual Machine sau KVM, cum e cunoscut, este un modul de virtualizare gratuit și open-source ce face parte din Kernelul Linux și care permite kernelului să ruleze mașini virtuale.

A fost integrat în kernelul Linux în versiunea 2.6.20, lansată pe 5 februarie 2007.

KVM necesită un procesor cu extensii de virtualizare hardware, cum ar fi Intel VT sau AMD-V.

KVM a fost portat și pe alte sisteme de operare, cum ar fi FreeBSD și illumos, sub formă de module de kernel încărcabile.

KVM a fost proiectat inițial pentru procesoare x86, dar a fost ulterior portat la z/Architecture, PowerPC, IA-64 și ARM. Portarea IA-64 a fost eliminată în 2014.

KVM acceptă virtualizare asistată de hardware pentru o gamă largă de sisteme de operare guest, inclusiv BSD, Solaris, Windows, Haiku, ReactOS, Plan 9, AROS, macOS și chiar alte sisteme Linux.

În plus, Android 2.2, GNU/Hurd (Debian K16), Minix 3.1.2a, Solaris 10 U3 și Darwin 8.0.1, împreună cu alte sisteme de operare și unele versiuni mai noi ale acestora enumerate, sunt cunoscute ca funcționând cu anumite limitări.

În plus, KVM oferă suport pentru paravirtualizare pentru guest-uri Linux, OpenBSD, FreeBSD, NetBSD, Plan 9 și Windows folosind API-ul VirtIO. Aceasta include o placă Ethernet paravirtuală, un controler I/O pe disc și o interfață grafică VGA folosind drivere SPICE sau VMware.

Istoria KVM

Avi Kivity a început dezvoltarea KVM la mijlocul anului 2006 la Qumranet, o companie startup din domeniul tehnologiei care a fost achiziționată de Red Hat în 2008.

KVM a apărut în octombrie 2006 și a fost integrat în linia principală a kernelului Linux în versiunea 2.6.20, lansată pe 5 februarie 2007.

KVM este întreținut de Paolo Bonzini.

Modul de funcționare al KVM

KVM oferă abstractizare a dispozitivului, dar nu și emulare a procesorului. Expune interfața /dev/kvm, pe care o gazdă în mod utilizator o poate utiliza apoi pentru:

  • Configurați spațiul de adrese al mașinii virtuale. Gazda trebuie să furnizeze și o imagine de firmware (de obicei un BIOS personalizat atunci când emulează PC-uri) pe care mașina virtuală o poate utiliza pentru a se conecta la sistemul său de operare principal.
  • Alimentați sistemul de intrare/ieșire simulat al mașinii virtuale.
  • Mapați afișajul video al mașinii virtuale înapoi pe gazda sistemului.

Inițial, o versiune specială a QEMU a fost furnizată pentru a lansa sistemele găzduite și a gestiona emularea hardware care nu este gestionată de kernel. Acest suport a fost în cele din urmă integrat în proiectul principal.

Acum există numeroase monitoare de mașini virtuale (VMM) care pot utiliza interfața KVM, inclusiv kvmtool, crosvm și Firecracker, și numeroase VMM specializate construite cu framework-uri precum rust-vmm.

Intern, KVM utilizează SeaBIOS ca implementare open source a unui BIOS x86 pe 16 biți.

Funcții

KVM oferă suport pentru vCPU-uri hot swappable, gestionarea dinamică a memoriei și Live Migration încă din februarie 2007.

De asemenea, reduce impactul pe care sarcinile de lucru care necesită scriere intensivă în memorie îl au asupra procesului de migrare.

Emulare hardware

KVM în sine emulează foarte puțin hardware, în schimb, se bazează pe o aplicație client de nivel superior, cum ar fi QEMU, crosvm sau Firecracker, pentru emularea dispozitivelor.

KVM oferă următoarele dispozitive emulate:

  • CPU și memorie virtuală
  • VirtIO

Graphical management tools

  • Kimchi – instrument de gestionare a virtualizării bazat pe web pentru KVM
  • Virtual Machine Manager – acceptă crearea, editarea, pornirea și oprirea mașinilor virtuale bazate pe KVM, precum și migrarea live sau la rece a mașinilor virtuale între gazde prin metoda drag-and-drop.
  • Proxmox Virtual Environment – ​​un pachet de gestionare a virtualizării open-source, care include KVM și LXC. Are un instalator bare-metal, o interfață grafică de gestionare la distanță bazată pe web, o stivă de clustere HA, stocare unificată, rețea flexibilă și suport comercial opțional.
  • OpenQRM – platformă de gestionare pentru gestionarea infrastructurilor eterogene ale centrelor de date
  • GNOME Boxes – interfață Gnome pentru gestionarea invitaților libvirt pe Linux
  • oVirt – instrument de gestionare a virtualizării open-source pentru KVM construit pe libvirt

Licențiere

Componenta kernel-mode a KVM face parte din kernelul Linux, licențiat sub GNU General Public License, versiunea 2

Comentarii

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

Acest site folosește Akismet pentru a reduce spamul. Află cum sunt procesate datele comentariilor tale.