Architektura maszyny wirtualnej

Wirtualizacja odnosi się nie tylko do podzespołów systemowych takich jak dysk twardy czy procesor, ale do całej maszyny. W tym celu projektanci i deweloperzy systemów komputerowych dodali warstwę oprogramowania (ang. software) do prawdziwej maszyny.  W ten sposób maszyna wirtualna może obejść ograniczenia komputera głównego wynikające z niekompatybilności architektur lub różnic zasobowych. Maszyna wirtualna wiąże się bezpośrednio z architekturą systemu komputerowego, a co za tym idzie jej struktura musi dokładnie odwzorowywać i przypisywać jak najdokładniej interfejsy z głównego systemu.


Ogólny schemat architektury na podstawie programu VMware. Monitor wirtualnej maszyny ogranicza dostęp z systemu operacyjnego Guest do rzeczywistego sprzętu. Zapewnia to wirtualną warstwę urządzeń i zatrzymuje wykonywanie uprzywilejowanych instrukcji wewnątrz systemu-gościa(Guest).


Jedną z ważniejszych kwestii podczas wirtualizacji jest pamięć wirtualna. Wiąże się to z dzieleniem pamięci fizycznej i dynamicznym przydzielaniu go do maszyn wirtualnych. Wirtualizacja pamięci maszyny wirtualnej jest bardzo podobna do pamięci wirtualnej wspomaganej przez nowoczesne systemy operacyjne. Aplikacje widzą ciągłą przestrzeń adresową, która niekoniecznie jest związana z bazową pamięcią fizyczną w systemie. System operacyjny utrzymuje mapowanie wirtualnych numerów stron do fizycznych numerów stron przechowywanych w tabelach stron. Wszystkie nowoczesne procesory x86 zawierają jednostkę zarządzania pamięcią (MMU) i bufor translacji (TLB) w celu optymalizacji wydajności pamięci wirtualnej. 

Aby uruchomić wiele maszyn wirtualnych na jednym systemie, wymagany jest dodatkowy poziom wirtualizacji pamięci. Innymi słowy, potrzebna jest wirtualizacja MMU do obsługi systemu-gościa. System-gość nadal kontroluje mapowanie adresów wirtualnych do pamięci adresów fizycznych Guest, ale nie ma bezpośredniego dostępu do pamięci urządzenia rzeczywistego. VMM ( Virtual Machine Manager) jest odpowiedzialny za przyporządkowanie fizycznej pamięci gości do rzeczywistej pamięci urządzenia i wykorzystuje tablice stron do przyspieszenia mapowania.


Schemat przedstawiający idee pamięci wirtualnej


Architektura hostowana

W architekturze hostowanej najpierw na sprzęcie instalowany jest system operacyjny (OS). Następnie instalowane jest oprogramowanie, hypervisor lub monitor maszyn wirtualnych. Oprogramowanie to jest używane do instalowania na sprzęcie wielu systemów operacyjnych gości, czyli maszyn wirtualnych (VM). Aplikacje są następnie instalowane i uruchamiane na maszynach wirtualnych w taki sam sposób, jak na maszynie fizycznej. Architektura hostowanej wirtualizacji jest bardziej przydatna przy tworzeniu oprogramowania, uruchamianiu starszych aplikacji i obsłudze różnych systemów operacyjnych.

 

Architektura bare-metal

W architekturze bare-metal hypervisor jest instalowany bezpośrednio na sprzęcie, a nie na bazowym systemie operacyjnym. Maszyny wirtualne i ich aplikacje są instalowane na hiperwizorze w taki sam sposób, jak w przypadku architektury hostowanej. Aplikacje, które zapewniają dostęp
w czasie rzeczywistym lub przetwarzanie danych, korzystają z architektury wirtualizacji bare-metal.

 

Porównanie

Wirtualizacja bare-metal sprawdza się najlepiej w centrum danych dla administratorów, którzy chcą zmaksymalizować wykorzystanie zasobów serwera poprzez uruchomienie dwóch lub więcej maszyn wirtualnych na tym samym systemie. Administratorzy, którzy korzystają z wirtualizacji bare-metal, zyskują korzyści w postaci logicznej izolacji maszyn wirtualnych, mobilności i wydajności.

Hostowana wirtualizacja ma swoje miejsce na komputerach końcowych. Umożliwia ona uruchamianie na laptopie lub komputerze stacjonarnym dwóch lub więcej maszyn wirtualnych - w większości przypadków maszyny te reprezentują różne systemy operacyjne i konfiguracje pulpitów. Na przykład, jedna maszyna wirtualna może obsługiwać pulpit Windows 10, podczas gdy inna maszyna wirtualna może obsługiwać pulpit macOS. Twórcy oprogramowania tworzący i testujący oprogramowanie
na systemach, które w innym przypadku nie obsługiwałyby natywnego systemu operacyjnego,
mogą uznać hostowaną wirtualizację za szczególnie przydatną. Zastosowanie wirtualizacji pozwala uniknąć kosztów i kłopotów związanych z zakupem i utrzymaniem wielu fizycznych punktów końcowych.

 

Hostowana

 

Zalety


Wady

 

Protsze i tańsze rozwiązanie

 

Pogorszenie wydajności (1)

 

 

Zapewnienie wsparcia dla migracji
maszyn wirtualnych pomiędzy innymi zwirtualizowanymi systemami

 

Ograniczona liczba maszyn wirtualnych

 

 

Awaryjność (2)

 


(1)   Pogorszenie wydajności – objawia się jako zwiększone opóźnienia na maszynie wirtualnej. Wydajność ta wynika ze wspólnego systemu operacyjnego, który narzuca dodatkową warstwę translacji pomiędzy maszynami wirtualnymi a bazowym sprzętem.

 (2)   Awaryjność – Biorąc pod uwagę aktualizacje, czy poprawki danego systemu operacyjnego można natknąć się na potencjalne błędy, które mogą mieć wpływ na cały system – w tym także na hypervisora i wszystkich jego maszyn wirtualnych.




Ostatnia modyfikacja: niedziela, 24 kwiecień 2022, 21:49