Maszyna wirtualna oparta na jądrze

KVM
Oryginalni autorzy Qumranet
Deweloperzy Społeczność jądra Linuksa
Magazyn
Napisane w C
System operacyjny Uniksopodobny
Platforma ARM , IA-64 , PowerPC , S/390 , x86 , x86-64
Typ Hypervisor
Licencja GNU GPL lub LGPL
Strona internetowa www.linux-kvm.org _ _

Maszyna wirtualna oparta na jądrze ( KVM ) to moduł wirtualizacji w jądrze Linuksa , który umożliwia jądru działanie jako hiperwizor . Został włączony do głównego jądra Linuksa w wersji 2.6.20, która została wydana 5 lutego 2007 r. KVM wymaga procesora ze sprzętowymi rozszerzeniami wirtualizacji, takimi jak Intel VT lub AMD-V . KVM został również przeniesiony na inne systemy operacyjne, takie jak FreeBSD i illumos w postaci ładowalnych modułów jądra.

KVM został pierwotnie zaprojektowany dla procesorów x86 , ale od tego czasu został przeniesiony na S/390 , PowerPC , IA-64 i ARM .

KVM zapewnia wspomaganą sprzętowo wirtualizację dla szerokiej gamy systemów operacyjnych gościa, w tym Linux, BSD , Solaris , Windows , Haiku , ReactOS , Plan 9 , AROS Research Operating System i macOS . Ponadto Android 2.2, GNU/Hurd ( Debian K16), Minix 3.1.2a, Solaris 10 U3 i Darwin Wiadomo, że 8.0.1 wraz z innymi systemami operacyjnymi i niektórymi nowszymi wersjami wymienionych systemów działają z pewnymi ograniczeniami.

Dodatkowo KVM zapewnia obsługę parawirtualizacji dla gości Linux, OpenBSD , FreeBSD, NetBSD , Plan 9 i Windows za pomocą VirtIO API . Obejmuje to parawirtualną kartę Ethernet , dyskowy kontroler I/O, sterownik balonu oraz interfejs graficzny VGA wykorzystujący sterowniki SPICE lub VMware .

Historia

Avi Kivity rozpoczął rozwój KVM w połowie 2006 roku w Qumranet , startupie technologicznym , który został przejęty przez Red Hat w 2008 roku.

KVM pojawił się w październiku 2006 roku i został włączony do głównej linii jądra Linuksa w wersji jądra 2.6.20, która została wydana 5 lutego 2007 roku.

KVM jest utrzymywany przez Paolo Bonziniego.

Wewnętrzne

Ogólne omówienie środowiska wirtualizacji KVM/QEMU

KVM zapewnia abstrakcję urządzeń, ale nie emulację procesora. Udostępnia /dev/kvm , którego host w trybie użytkownika może następnie użyć do:

  • Skonfiguruj przestrzeń adresową maszyny wirtualnej gościa. Host musi również dostarczyć obraz oprogramowania układowego (zwykle niestandardowy BIOS w przypadku emulacji komputerów PC), którego gość może użyć do załadowania głównego systemu operacyjnego.
  • Nakarm gościa symulowanymi wejściami/wyjściami.
  • Zmapuj wyświetlacz wideo gościa z powrotem na hosta systemowego.

udostępniono rozwidloną wersję QEMU , aby uruchamiać gości i radzić sobie z emulacją sprzętu, która nie jest obsługiwana przez jądro. Wsparcie to zostało ostatecznie włączone do projektu upstream. Obecnie istnieje wiele monitorów maszyn wirtualnych (VMM), które mogą wykorzystywać interfejs KVM, w tym kvmtool, crosvm i Firecracker , a także wiele specjalistycznych VMM zbudowanych przy użyciu frameworków, takich jak rust-vmm.

Wewnętrznie KVM używa SeaBIOS jako otwartej implementacji 16-bitowego BIOS -u x86 .

Cechy

Od lutego 2007 r. KVM obsługuje procesory vCPU z możliwością wymiany podczas pracy , dynamiczne zarządzanie pamięcią i migrację na żywo. Intensywny zapis pamięci wpływa na proces migracji

Emulowany sprzęt

Sam KVM emuluje bardzo mało sprzętu, zamiast tego odwołuje się do aplikacji klienckiej wyższego poziomu, takiej jak QEMU , crosvm lub Firecracker do emulacji urządzenia.

KVM udostępnia następujące emulowane urządzenia:

Graficzne narzędzia do zarządzania

libvirt obsługuje KVM
  • Kimchi – internetowe narzędzie do zarządzania wirtualizacją dla KVM
  • Virtual Machine Manager — obsługuje tworzenie, edytowanie, uruchamianie i zatrzymywanie maszyn wirtualnych opartych na KVM, a także migrację maszyn wirtualnych na żywo lub na zimno metodą „przeciągnij i upuść” między hostami.
  • Środowisko wirtualne Proxmox — pakiet zarządzania wirtualizacją typu open source, w tym KVM i LXC . Ma prosty instalator, internetowy graficzny interfejs użytkownika do zdalnego zarządzania, stos klastrów HA, ujednoliconą pamięć masową, elastyczną sieć i opcjonalne wsparcie komercyjne.
  • OpenQRM – platforma zarządzania do zarządzania heterogeniczną infrastrukturą centrów danych
  • GNOME Boxes – Interfejs Gnome do zarządzania gośćmi libvirt w systemie Linux
  • oVirt – narzędzie do zarządzania wirtualizacją typu open source dla KVM zbudowane na bazie libvirt

Koncesjonowanie

Komponent trybu jądra KVM jest częścią jądra Linuksa , licencjonowanego na licencji GNU General Public License, wersja 2 .

Zobacz też

Bibliografia

Linki zewnętrzne