Hyper-V - Architektura

Udostępnij na: Facebook

Autor: Dariusz Porowski

Opublikowano: 2011-09-08

Zanim wykonamy naszą pierwszą instalację Hyper-V, musimy dopasować sprzęt, na którym będzie ona realizowana oraz musimy dobrać zarządzający system operacyjny zgodny z oczekiwaniami. Po zapoznaniu się z tym artykułem będziesz:

  • wiedział jakie są typy wirtualizacji,
  • znał różnice w budowie hiperwizorów,
  • wiedział jak wygląda architektura Hyper-V i z jakich elementów się składa.

Artykuł jest drugim artykułem w ramach sekcji Pierwsze kroki z Hyper-V wchodzącej w cykl Podstawy wirtualizacji i Hyper-V. W ramach serii dostępne są jeszcze artykuły:

Hyper-V – gdzie jest i jego wymagania, w którym przybliżyliśmy, gdzie się znajduje Hyper-V oraz jakie są wymagania systemowe.

Instalacja i podstawowa konfiguracja Hyper-V, w którym wykonamy instalację Hyper-V za pomocą narzędzi graficznych, linii poleceń oraz PowerShell.

Typy wirtualizacji

Zanim przejdziemy do omawiania architektury Hyper-V zapoznamy się z typami monitorów maszyn wirtualnych (ang. Virtual Machine Monitor – VMM) – nie należy mylić skrótu VMM z narzędziem Virtual Machine Manager z rodziny System Center. Monitor maszyny wirtualnej to warstwa oprogramowania pomiędzy sprzętem a maszyną wirtualną. Poniżej na Rys. 1. przedstawione zostały podstawowe typy VMM.

Rysunek 1. Trzy typy monitorów maszyn wirtualnych

Monitory maszyn wirtualnych dzielą się na trzy podstawowe typy:

  • Typ 2 – to środowisko uruchomieniowe, gdzie proces wykonuje instrukcje niezależnie od systemu operacyjnego hosta. Wirtualizacja fizyczna (serwerów) nie należy do tego typu – przykładem może być Java Virtual Machine (JVM) lub Common Language Runtime (CLR).
  • Hybrydowy – gdzie VMM jest uruchomiony razem z systemem operacyjnym. Przykładem jest Windows Virtual PC oraz Virtual Server.
  • Typ 1 – w tym przypadku VMM działa bezpośrednio na najwyższej warstwie sprzętu. Do tego typu zalicza się hiperwizor Hyper-V, niezależnie czy jest dostarczony jako rola w Windows Server, czy jako samodzielny produkt Hyper-V Server.

Dodatkowo monitory maszyn wirtualnych typu 1 dzielą się na monolityczne oraz z mikrojądrem. Na Rys. 2. zostały przedstawione rodzaje hiperwizorów typu 1.

Rysunek 2. Dwa rodzaje hiperwizorów

  • Hiperwizor monolityczny – zawiera wszystko w jednej warstwie – jądro, sterowniki urządzeń, stos wejścia/wyjścia. Tego rodzaju hiperwizor używany jest w VMware vSphare oraz systemach Mainframe.
  • Hiperwizor z mikrojądrem – sam hiperwizor wykonuje tylko podstawowe zadania izolacji partycji i zarządzania pamięcią. Nie ma w nim sterowników urządzeń ani stosu wejścia/wyjścia – znajdują się one w partycji nadrzędnej. Ten rodzaj jest właśnie używany w Hyper-V.

Architektura

Dowiedzieliśmy się, że mamy do czynienia z typem 2 hiperwizora oraz, że jest to hiperwizor z mikrojądrem. Jak to działa w ogólnym zarysie? Na początek zapoznajmy się z Rys. 3., który prezentuje wysokopoziomową architekturę Hyper-V.

Rysunek 3. Wysokopoziomowa architektura Hyper-V

Partycja jest logiczną jednostką obsługiwaną przez hiperwizor Hyper-V, w której wykonywany jest kod systemu operacyjnego. Stos wirtualizacji działa w partycji nadrzędnej i ma bezpośrednio dostęp do urządzeń. Partycja główna tworzy partycje podrzędne za pośrednictwem Hypercall API. Partycje podrzędne nie mają dostępu do procesora fizycznego oraz nie obsługują jego przerwań, zamiast tego mają wirtualne procesory oraz wirtualną przestrzeń adresacji pamięci, które są prywatne dla każdej partycji podrzędnej. Hiperwizor przechwytuje przerwania do procesora i przekierowuje je do odpowiedniej partycji. Partycje podrzędne nie mają bezpośredniego dostępu do zasobów sprzętowych, są one natomiast reprezentowane jako urządzenia wirtualne. Żądania dostępu do wirtualnych urządzeń są przekierowywane za pośrednictwem VMBus lub hiperwizora do partycji nadrzędnej, która zarządza żądaniami dostępu. VMBus jest logicznym kanałem komunikacji – coś na zasadzie wirtualnej płyty głównej, która łączy Virtualization Service Providers (VSPs) -znajdującym się w partycji nadrzędnej z Virtualization Service Clients (VSCs) w partycji podrzędnej. VCS przekierowuje żądania dostępu do VCP przez VMBus – proces jest niewidoczny dla systemu operacyjnego gościa. Wirtualne urządzenia mogą skorzystać również z funkcji Oświeconego I/O. Oświecone I/O to wyspecjalizowane wirtualne urządzenia, które mają zapewniony wysoki stopień komunikacji i wykorzystują VMBus bezpośrednio z pominięciem wszelkich warstw emulacji. Dzięki temu komunikacja jest bardziej efektywna, ale wymaga oświeconych systemów operacyjnych gościa, czyli takich, które mają zainstalowane komponenty integracyjne (ICs). W ramach Oświeconego I/O dostępne są takie wirtualne urządzenia jak: kontroler pamięci masowej, adaptery sieciowe, grafika, podsystem. 

Poniżej znajduje się zestawienie wybranych terminów i skrótów, użytych powyżej w Rys. 3, wraz z krótkim opisem.

  • APIC – zaawansowany programowalny kontroler przerwań (ang. Advanced Programmable Interrupt Controller) – mechanizm, który obsługuje przerwania sprzętowe.
  • Hypercall – interfejs komunikacji z hiperwizorem.
  • IC – komponent integracyjny (ang. Integration Component). – Komponent, który umożliwia komunikację partycji podrzędnej z innymi partycjami oraz hiperwizorem.
  • Stos I/O – stos wejścia/wyjścia.
  • MSR – procedury obsługi pamięci (ang. Memory Service Routine).
  • VID – sterownik infrastruktury wirtualnej (ang. Virtualization Infrastructure Driver). – świadczy usługi zarządzania partycjami wirtualnymi, procesorem oraz pamięcią dla partycji.
  • VMBus – magistrala maszyny wirtualnej (ang. Virtual Machine Bus). – Kanał komunikacji wykorzystywany między partycjami oraz urządzeniami. VMBus dostępny jest po zainstalowaniu komponentów integracyjnych (IC).
  • VMMS – usługa zarządzania wirtualnymi maszynami (ang. Virtual Machine Management Service). – Usługa odpowiedzialna za zarządzanie stanem wszystkich maszyn wirtualnych w partycjach podrzędnych.
  • VMWP – proces roboczy maszyny wirtualnej (ang. Virtual Machine Worker Process). – Dostarcza usługi zarządzania maszyną wirtualną z partycji nadrzędnej do systemu operacyjnego gościa w partycji podrzędnej. Na każdą uruchomioną maszynę wirtualną tworzony jest oddzielny proces roboczy.
  • VSC – klient usługi wirtualizacji (ang. Virtualization Service Client). – Syntetyczne urządzenie w partycji podrzędnej. VSC wykorzystuje zasoby sprzętowe dostarczone przez VSP w partycji nadrzędnej. Komunikuje się z odpowiednimi VSP w partycji nadrzędnej za pośrednictwem VMBus, aby zrealizować żądania wejścia/wyjścia na urządzeniu.
  • VSP – dostawca usługi wirtualizacji (ang. Virtualization Service Provider). – Znajduje się w partycji głównej i zapewnia syntetyczną obsługę urządzeń dla partycji podrzędnej przez VMBus.
  • WinHv – biblioteka interfejsu hiperwizora dla systemu Windows (ang. Windows Hypervisor Interface Library). – Most łączący sterowniki z systemu operacyjnego gościa a hiperwizorem, który umożliwia wywołanie hiperwizora, przy użyciu standardowych konwencji wywoływania systemu Windows.
  • LinuxHv – biblioteka interfejsu hiperwizora dla systemu Linux (ang. Linux Hypervisor Interface Library). – Most łączący sterowniki z systemu operacyjnego gościa a hiperwizorem, który umożliwia wywołanie hiperwizora, przy użyciu standardowych konwencji wywoływania systemu Linux.
  • WMI – instrumentacja zarządzania Windows  (ang. Windows Management Instrumentation). - VMMS dostarcza zestaw interfejsów API opartych o WMI dla zarządzania i kontroli maszyn wirtualnych.

Podsumowanie

Po zapoznaniu się z artykułem dowiedzieliśmy się, jakie są typy wirtualizacji oraz rodzaje hiperwizorów. Wiemy już, gdzie kwalifikuje się Hyper-V. Zapoznaliśmy się również z wysokopoziomową architekturą oraz dowiedzieliśmy się ogólnie jak to wszystko funkcjonuje.

W następnym artykule przeprowadzimy instalację Hyper-V za pomocą narzędzi graficznych, linii poleceń oraz PowerShell.