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 Protsze i tańsze rozwiązanie Pogorszenie wydajności (1) Zapewnienie
wsparcia dla migracji Ograniczona liczba maszyn wirtualnych Awaryjność (2)
Wady
maszyn wirtualnych pomiędzy innymi zwirtualizowanymi systemami
(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.