Maszyna wirtualna oparta na jądrze
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 |
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
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:
- Wirtualny procesor i pamięć
- VirtIO
Graficzne narzędzia do zarządzania
- 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
- Amit Szach (2016-11-02). „Dziesięć lat KVM” . lwn.net . Źródło 2017-02-10 .
Linki zewnętrzne
- Oficjalna strona internetowa
- Najlepsze praktyki dotyczące maszyny wirtualnej opartej na jądrze , IBM, wydanie drugie, kwiecień 2012 r
- Poprawa wydajności Virtio-blk , KVM Forum 2012, 8 listopada 2012 r., autor: Asias He
- Wikibook QEMU i KVM
- crosvm - monitor maszyny wirtualnej Chrome OS
- Petarda VMM dla KVM