Procesory w służbie wirtualizacji

0
hardware-virtualization

Chociaż coraz więcej mówi się o sprzętowym wsparciu dla wirtualizacji, rzadko wyjaśnia się, co tak naprawdę oznaczają terminy AMD-V oraz Intel VT. Te dwie technologie wspierające rozwiązania wirtualizacyjne są względem siebie konkurencyjne, chociaż bardzo podobne. Dzięki nim część zadań związanych z obsługą wirtualnego środowiska wykonywanych jest bezpośrednio przez procesor, ale pod warunkiem, że oprogramowanie do wirtualizacji jest przygotowane do wykorzystania tych technologii.

Zadaniem AMD-V i Intel VT jest poprawa wydajności, co odbywa się poprzez zmniejszenie narzutu warstwy wirtualizacji. Procesor przejmuje zadania wykonywane dotychczas programowo przez monitor wirtualnych maszyn lub hipervisor, usprawniając tłumaczenie instrukcji czy adresów pamięci. To z kolei pozwala na tworzenie wirtualnych środowisk obsługujących większą liczbę użytkowników czy wymagające większej wydajności aplikacje.

Mity
Powszechnie funkcjonuje kilka błędnych wyobrażeń związanych ze sprzętową wirtualizacją, na przykład AMD-V i Intel VT są utożsamiane z kompletnym rozwiązaniem do wirtualizacji, które pozwala uruchamiać wirtualne maszyny z system operacyjnym. Takie rozwiązania mają szansę pojawić się w przyszłości, ale będą przeznaczone raczej do wirtualizacji komputerów biurkowych. Użytkownik będzie mógł przełączać się między wirtualnymi maszynami z wykorzystaniem kombinacji klawiszy lub przełącznika na obudowie komputera. Należy podkreślić, że niezależnie od sposobu wirtualizacji nadal będzie potrzebne oprogramowanie, które umożliwi tworzenie i zarządzanie wirtualnymi maszynami.

Kolejne błędne przekonanie dotyczy wzrostu wydajności – wirtualizacja sprzętowa pozwala jakoby uruchomić kilka wirtualnych maszyn, a każda z nich ma pracować z pełną częstotliwością procesora. Takich magicznych rozwiązań jeszcze nie ma. Wirtualne maszyny uruchomione na komputerze z wbudowanymi funkcjami sprzętowego wsparcia wirtualizacji nadal współdzielą zasoby, w tym czas procesora. Natomiast różne programy do wirtualizacji oferują szereg metod przydzielania pul zasobów czy ustalania priorytetów dostępu. Rozwiązaniem problemu jest wielordzeniowość procesorów. Wtedy wirtualne maszyny mogą korzystać z dedykowanych rdzeni. Nie ma to jednak nic wspólnego ze sprzętowym wsparciem wirtualizacji.

Mitem jest też twierdzenie, że każde oprogramowanie do wirtualizacji może wykorzystywać technologie AMD-V i Intel VT. Funkcje sprzętowej wirtualizacji będą działać tylko w tandemie z odpowiednio przygotowanym oprogramowaniem. Ponieważ wszystkie najnowsze procesory Intela i AMD są wyposażone w funkcje sprzętowej wirtualizacji, tylko od producentów oprogramowania zależy, czy będą wykorzystane. Najnowsze wersje produktów VMware’a są przygotowane do wykorzystania AMD-V oraz Intel VT, ale można je instalować również na starszych procesorach bez tych technologii. Z kolei Hyper-V zadziała tylko ze sprzętowym wsparciem wirtualizacji. Jeszcze inne podejście prezentuje Sun – świadomie nie implementuje wsparcia dla tych technologii, żeby zapewnić elastyczność swojego rozwiązania.

Technologia AMD-V
Jest to zbiór rozszerzeń wspierających wirtualizację i wbudowanych w 64-bitowe procesory firmy AMD: Opterony drugiej i trzeciej generacji, Athlony 64 i 64 X2 z rodzin F i G, Turiony 64 X2 oraz we wszystkie najnowsze modele. AMD-V wykonuje kilka zadań należących tradycyjnie do monitora maszyn wirtualnych. Zwiększa to wydajność i pozwala uprościć VMM (Virtual Machine Monitor).

Rozszerzenie Rapid Virtualization Indexing (znane wcześniej jako Nested Paging) przejmuje zadanie przechowywania tablic stron i tłumaczenia adresów pamięci wirtualnej na adresy pamięci fizycznej. Bez sprzętowego wsparcia wirtualizacji dla każdej wirtualnej maszyny tworzone są tzw. Shadow Page Tables przechowywane w pamięci RAM lub na dysku. Za translację odpowiada monitor maszyn wirtualnych.

Rapid Virtualization Indexing zagnieżdża tabele stron wszystkich wirtualnych maszyn w tabeli stron hosta. To pozwala przenieść tabelę stron hosta wraz z zagnieżdżonymi tabelami wirtualnych maszyn do bufora TLB (Translation Lookaside Buffer) w procesorze, co z kolei umożliwia sprzętową translację adresów.

Inne rozszerzenie, Device Exclusion Vector, poprawia bezpieczeństwo. Kontroluje dostęp do pamięci zarezerwowanej dla maszyn wirtualnych. AMD-V wprowadza też kilka nowych instrukcji: VMRUN, VMEXIT, VMLOAD, VMSAVE oraz VMCALL.

Zadania uruchamiane w systemie operacyjnym mają własne tabele stron przechowujące mapowania pamięci wirtualnej na pamięć fizyczną. Tabele te są przechowywane w buforze TLB procesora. Aby poprawić wydajność, każde zadanie otrzymuje swój identyfikator. To pozwala przechowywać w TLB wpisy różnych zadań (bez tego identyfikatora zawartość bufora TLB musiałaby być ponownie zapisywana nowymi mapowaniami podczas każdego przełączania między zadaniami).

Rozwiązanie to sprawdzało się dopóki nie pojawiły się wirtualne maszyny. System operacyjny działający w wirtualnej maszynie nie wie o działaniu pozostałych systemów i przydziela zadaniom tylko identyfikator zadania. To z kolei powoduje, że podczas przełączania między wirtualnymi maszynami bufor TLB musi być zapełniany nowymi danymi.

Technologia Tagged TLB wprowadza nowy identyfikator ASID (Address Space Identifier), który pozwala przypisać zadanie do właściwej wirtualnej maszyny i uniknąć zapełniania (ang. flush) bufora TLB nowymi danymi podczas przełączania między wirtualnymi maszynami.

Intel VT
W tym przypadku również mamy do czynienia ze zbiorem różnych technologii, których zadaniem jest przejęcie przez procesor części zadań wykonywanych programowo przez monitor maszyn wirtualnych.

Procesory umożliwiają wykonywanie instrukcji z różnym poziomem uprzywilejowania. Standardowo system operacyjny działa z najwyższym stopniem uprzywilejowania, tzw. ring 0, który daje bezpośredni dostęp do sprzętu. Jednak, aby uniknąć konfliktów między wirtualnymi maszynami, VMM przechwytuje wszystkie instrukcje w ringu 0 i obniża ich priorytet do ringu 1, co wymaga intensywnych obliczeń. W procesorach z technologią Intel VT pojawia się nowy poziom uprzywilejowania VMX root, z którego korzysta monitor maszyn wirtualnych. Dzięki temu systemy operacyjne w wirtualnych maszynach mogą pracować w ringu 0, co pozwala im bezpośrednio odwoływać się do procesora.

Intel VT FlexPriority pozwala na szybszą obsługę przerwań w przypadku 32-bitowych wirtualnych maszyn. Eliminuje konieczność przechwytywania przez VMM prób dostępu do Task Priority Register przez wirtualne maszyny. Pozwala także na efektywniejsze wykorzystanie technologii SMP (Symmetric Multiprocessing). Według danych Intela rozwiązanie to zwiększa o 35% wydajność wirtualnych maszyny i o 40% skraca czas ich uruchamiania.

VT Virtual Processor ID to odpowiednik technologii Tagged TLB opracowanej przez AMD. Dzięki temu identyfikatorowi procesor może całkowicie przejąć zadanie translacji adresów pamięci fizycznej na pamięć wirtualną. Procesor potrafi różnić, do której maszyny wirtualnej należą dane.

Z kolei Intel VT Extended Page Tables optymalizuje działanie pamięci wirtualnej. Umożliwia gościnnemu systemowi operacyjnemu modyfikowanie jego tablic stron. Redukuje konieczność korzystania z Shadow Page Tables, co pozwala na zmniejszenie zużycia pamięci.

Ostatnia z technologii, Intel VT FlexMigration, nie wpływa na wydajność działania wirtualnych maszyn. Jej zadaniem jest ułatwanie wprowadzania do wirtualnej puli zasobów nowych procesorów wykonanych w technologii 45 nanometrów.

Podsumowanie
Technologie sprzętowego wsparcia wirtualizacji nie są cudownym rozwiązaniem znacznie zwiększającym wydajność. Ich zadaniem jest zmniejszenie narzutu wirtualizacji, co jest realizowane poprzez przejęcie przez procesor części zadań wykonywanych dotychczas programowo przez monitor maszyn wirtualnych.

Jako ciekawostkę warto dodać, że tego typu technologie pojawiły się w procesorach dopiero w 2005 roku, choć były opracowane już wcześniej, a sama koncepcja wirtualizacji – opatentowana przez IBM-a – znana jest od dziesięcioleci. Przyczyną tego stanu rzeczy były patenty na wirtualizację, które wygasły właśnie w 2005 roku.

BRAK KOMENTARZY

ZOSTAW ODPOWIEDŹ