Wirtualizacja zasobów wymaga uruchomienia specjalnego oprogramowania nazywanego hypervisorem, hipernadzorcą lub też monitorem maszyn wirtualnych. Te dzielą się jednak na dwa odmienne typy – czym się różnią i jakie są zalety oraz wady obu podejść? Hypervisor typu 1 oraz typu 2 – porównanie. 

Czym zajmuje się hypervisor? 

Uogólniając, zadaniem hypervisora jest separacja oprogramowania od fizycznego sprzętu. W ten sposób, tworząc warstwę abstrakcji, zapewnia on wirtualizację zasobów i umożliwia uruchamianie wielu maszyn wirtualnych, kontrolując ich pracę oraz komunikację z hostem. Rozwiązania zapewniające wirtualizację wykorzystują dwa odmienne rodzaje hipernadzorców nazywane „typ 1” oraz „typ 2”.

Hypervisor typu 1

Ten typ hypervisora działa bezpośrednio na „gołym” fizycznym sprzęcie. Ma przez to bezpośredni dostęp do zasobów bez pośrednika w formie systemu operacyjnego oraz dodatkowych sterowników. Sam w sobie jest formą systemu operacyjnego, co przekłada się na najwyższą wydajność i efektywność, a także bezpieczeństwo wobec zagrożeń czyhających na popularne OS takie jak Windows lub Linux.

Hipernadzorcy typu 1 bazują na pełnej wirtualizacji z akceleracją sprzętową, która jest konieczna do ich poprawnego funkcjonowania i wykonywania złożonych zadań związanych z zarządzaniem wirtualnymi zasobami. Zakres sprzętu obsługiwanego przez tego typu oprogramowanie może być ograniczony, co wynika bezpośrednio z braku warstwy pośredniczącej w postaci systemu operacyjnego, który mógłby przejąć bezpośrednią obsługę sprzętu.

Dowiedz się więcej o technikach wirtualizacji: Porównanie technik wirtualizacji – pełna wirtualizacja, wirtualizacja na poziomie systemu operacyjnego i parawirtualizacja

Przykładami tego typu hipernadzorcy są Xen Server, VMware ESXi oraz Microsoft Hyper-V – nawet pomimo działania w gruncie rzeczy jako jedna z ról w systemie Windows Server.

Hypervisor typu 2 

O ile poprzedni typ hypervisorów uruchamiany był bezpośrednio na „gołym” sprzęcie, tak te typu 2 instalowane są zazwyczaj na istniejącym systemie niczym aplikacja. Opierają się one na systemie operacyjnym hosta w celu wykonywania zadań takich jak zarządzanie wywołaniami procesora, pamięcią RAM lub zapisami i odczytami z dysku. Z jednej strony umożliwia to uruchomienie hypervisora na większym zakresie sprzętu, z drugiej natomiast – bardzo negatywnie wpływa na oferowaną wydajność.

Typ 2 hipernadzorców również zazwyczaj wykorzystuje akcelerację sprzętową, jednak niekiedy, w przypadku braku wsparcia poszczególnych funkcji na sprzęcie fizycznym, instrukcje wykonywane są poprzez translację binarną będącą cechą akceleracji programowej.

Ciekawym przypadkiem jest wirtualizator KVM – na pozór jest to typowy, działający na systemie operacyjnym hypervisor typu 2. Jednak dzięki głębokiej integracji z jądrem Linux (nazwa Kernel-based Virtual Machine nie wzięła się przecież znikąd) funkcjonuje on w rzeczywistości jako typ 1, zmieniając linuksowy kernel w hypervisor i będąc przy tym systemem operacyjnym sam dla siebie. Mimo to, KVM klasyfikowany jest jako typ 2 z uwagi na wykorzystanie pełnego systemu operacyjnego Linux do zapewniania wirtualizacji, nie jedynie samego kernela.

Przykładami hipernadzorców typu 2 są Oracle VM Server (wersja dla architektury x86), VMware Fusion i popularne w zastosowaniach amatorskich platformy Oracle VirtualBox oraz VMware Workstation.

Popularność tego typu spada w ostatnich latach, a jedynym wyjątkiem jest popularny KVM. Przyczyną jest oczywiście pogoń za wydajnością oraz zwiększaniem efektywności wykorzystania zasobów, które w przypadku hypervisorów typu 2 są w pewnym stopniu marnowane. Sprawdzają się one dobrze w zastosowaniach domowych oraz testowych jako szybki i prosty sposób na wirtualizację.