Kernel-based Virtual Machine
Logo programu | |
| Autor | Open Virtualization Alliance (OVA) |
|---|---|
| Język programowania | C |
| Platforma sprzętowa | Linux |
| Rodzaj | Hipernadzorca |
| Licencja | GNU General Public License i GNU Lesser General Public License |
| Strona internetowa | |
Kernel-based Virtual Machine (maszyna wirtualna bazująca na jądrze) – środowisko wirtualizacyjne dla systemów linuksowych.
Wyróżnia się system gospodarza i gościa. Gospodarz to system operacyjny (OS) kontrolujący sprzęt, czyli tzw. „goły metal” (ang. bare metal). Gość to OS wewnątrz gospodarza, któremu gospodarz udostępnia sprzęt.
Środowisko KVM (gospodarz lub gospodarze) umożliwia tworzenie sieci maszyn wirtualnych (goście). Każda maszyna wirtualna posiada prywatny zwirtualizowany sprzęt: bios, kartę sieciową, dysk twardy, kartę graficzną, dźwiękową, porty I/O itd. Dla wirtualnej maszyny (VM) sprzęt może być emulowany, parawirtualizowany, lub dostępny przelotowo (pass through). Może przypadać do 32 urządzeń PCI na gościa. Im mniejszy stopień programowej emulacji, tym obciążenie procesora jest mniejsze, wydajność VM jest większa, jednocześnie może maleć kontrola przez OS gospodarza, co może zmniejszać bezpieczeństwo systemu. KVM wykorzystuje sprzętowe technologie wirtualizacyjne. Dla AMD-V lub Intel VT-x warunek sprzętowej wirtualizacji jest spełniony wtedy, gdy /proc/cpuinfo zawiera odpowiednio znacznik svm lub vmx[1].
Pod maszynami wirtualnymi możliwa jest instalacja i wspólne działanie naraz dowolnej liczby systemów Linux, Windows i innych. KVM umożliwia przepełnianie (overcommit) zasobów: pamięci i CPU[2]. KVM umożliwia zatrzymanie, zapisanie stanu (snapshot), klonowanie lub przenoszenie (migrację) pracującego cały czas gościa do innego gospodarza. Przenoszenie działa, gdy obaj gospodarze przenoszonego gościa, mają podobne procesory (nie działa migracja z AMD na Intela i odwrotnie). Przerwa w pracy gościa (konieczna na końcową synchronizację migrowanych stanów pamięci i rejestrów), jest prawie natychmiastowa, wynosi np. 30 ms i jest prawie niewykrywalna przez OS gościa. Może to być np. wykorzystane do przenoszenia ciągle pracującego Windowsa z Polski za ocean żeby ominąć (bez wyłączania systemu) sztuczne terytorialnie restrykcje w dostępie do zasobów sieciowych. Możliwa jest też wielokrotna wirtualna podróż w czasie do stanu pracy wirtualnego komputera zamrożonego z przeszłości. Inne środowiska wirtualizacji mogą mieć podobne możliwości.
Zarządzanie KVM może się odbywać przez interfejs graficzny w virt-manager[3] lub z poziomu wiersza poleceń przez virsh.
Historia
KVM historycznie pochodził od w pełni wirtualizowanego rozwiązania dla systemu Linux na sprzęcie x86. Zawiera moduł jądra (nazwany kvm.ko) i komponent przestrzeni użytkownika (zmodyfikowaną wersję Qemu). Komponent KVM pojawił się w jądrze Linuksa wraz z wersją 2.6.20.
Sieć
W KVM sieć może być w trybie VEPA, mostowym, prywatnym lub przepustowym. Urządzenia sieciowe konfigurowane są jako macvtap do eth0[4], most między vibro0-nic i macvetap lub wirtualną sieć między vnet0 i macvetap.
Do izolacji inicjalizowanego ze świata dostępu do gościa, używana jest też NAT, czyli translacja adresów IP. Jest to domyślne ustawienie w LSD KVM[5]. Wirtualne NIC w KVM to e1000, ne2k_pci, pcnet, rtl8139[6] i virtio. Można dla gościa używającego NAT podłączyć by był dostępny z zewnątrz przez przekierowanie portów.
W przepustowym trybie sieci 'macvtap do ethN' używane są słabo zwirtualizowane karty sieciowe. Ograniczenia w sterowniku (słaba wirtualność) wymaga oddzielnych ethN urządzeń dla gości, co wymaga by w systemie gospodarza istniały fizyczne dodatkowe porty sieciowe. Przy zastosowaniu macvtap do ethN ruch sieciowy z gościa wychodzi bezpośrednio do sieci, gość jest dostępny z sieci i monitorując sieć (np przez Wireshark) widać wirtualną maszynę gościa jako niezależny sieciowy komputer.
Porównanie[7]
KVM nie obsługuje trybu parawirtualizacji Xena.
Zobacz też
Przypisy
- ↑ kvm.modules sprawdza: 'if [ $(grep -c svm /proc/cpuinfo) -ne 0 ];' z RHEL v 6.3
- ↑ 5.2. KVM limitations
- ↑ Virtual Machine Manager Home [online], virt-manager.org [dostęp 2017-11-24] (ang.).
- ↑ 0 w eth0 itp. jest zapisem umownym
- ↑ RHEL v6.3
- ↑ ma problemy z mostkowaniem zalecana jest tu virtio
- ↑ Faq - Kvm [online], www.linux-kvm.org [dostęp 2017-11-24] (ang.).
Linki zewnętrzne
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.