Nowa metoda wirtualizowania systemów x86

O technologiach pozwalających budować wirtualne serwery mówi się ostatnio bardzo dużo. Pozwalają dzielić jeden fizyczny serwer na wiele wirtualnych, niezależnych od siebie serwerów, na których można uruchamiać różne systemy operacyjne.

O technologiach pozwalających budować wirtualne serwery mówi się ostatnio bardzo dużo. Pozwalają dzielić jeden fizyczny serwer na wiele wirtualnych, niezależnych od siebie serwerów, na których można uruchamiać różne systemy operacyjne.

Programiści nadali programowym narzędziom, które obsługują takie rozwiązania, nazwę nadzorcy (hypervisor) lub monitora wirtualnych maszyn (VMM - Virtual Machine Monitor).

Tworzenie w ramach jednego fizycznego serwera x86 kilku partycji i instalowanie na nich różnych systemów operacyjnych jest obecnie możliwe po zastosowaniu takiego właśnie oprogramowania. Są to takie produkty, jak VMware lub Virtual Server (Microsoft), które tworzą wirtualne maszyny. Jest też dostępne oprogramowanie oparte na otwartym źródle (np. produkt Xen opracowany przez XenSource).

O

Nowa metoda wirtualizowania systemów x86

Macierzysta metoda wirtualizowania systemów

statnio powstała nowa koncepcja wirtualizowania systemów obliczeniowych opartych na architekturze x86, której nadano nazwę wirtualizacji macierzystej (native virtualization). Wykorzystuje ona możliwości zawarte w warstwie sprzętowej systemu obliczeniowego, a konkretnie opcje wprowadzone do najnowszych procesorów x86 produkowanych przez firmy Intel i AMD.

Procesory x86 poprzednich generacji nie spełniały wielu wymagań niezbędnych do efektywnego implementowania rozwiązań VMM, które pozwalałyby realizować następujące cele:

  • Zgodność: programy uruchomiane na wirtualnych maszynach powinny pracować w identyczny sposób jak w przypadku uruchomienia ich na fizycznych serwerach.
  • Kontrolowanie zasobów: wirtualne maszyny muszą mieć możliwość pełnego kontrolowania wszystkich wirtualnych zasobów.
  • Efektywność: efektowność pracy (wydajność) wirtualnych maszyn nie może odbiegać w istotnym stopniu od efektywności fizycznych maszyn.

Do tej pory systemy x86 wirtualizowano na dwa sposoby: realizując koncepcje pełnej wirtualizacji albo uciekając się do tzw. parawirtualizacji. Obie metody pozwalają budować systemy, w których niezależność systemów operacyjnych od warstwy sprzętowej jest iluzoryczna, a wydajność tak zbudowanych wirtualnych systemów obliczeniowych pozostawia wiele do życzenia. Zarządzanie takimi wirtualnymi systemami jest też bardzo trudne.

Metody pełnego wirtualizowania opierają się na stosowaniu bardzo złożonych technik programistycznych. Pozwalają one przechwytywać i wirtualizować instrukcje, modyfikując je na poziomie binarnym. W metodach tych instrukcje są przechwytywane w fazie czasu uruchomienia (run-time), modyfikowane i przekazywane do monitora wirtualnych maszyn (VMM). Wydajność pracy systemów opartych na metodach pełnego wirtualizowania jest bardzo niska w porównaniu z systemami wykorzystującymi metodę macierzystego wirtualizowania, np. taką jaką IBM stosuje w swoich serwerach System/370.

Metoda oparta na parawirtualizowaniu systemów obliczeniowych x86 jest obecnie często stosowana na uniwersytetach i w ośrodkach naukowo-badawczych. Dzieje się tak dlatego, ponieważ metoda ta pozwala uruchamiać zmodyfikowane wersje systemów operacyjnych, których kody źródłowe są ogólnie dostępne (są to takie systemy, jak Linux czy FreeBSD). Metoda parawirtualizowania wiąże się najczęściej z koniecznością wprowadzania radykalnych zmian do systemów operacyjnych, dlatego nie nadaje się do stosowania w środowiskach wymagających stabilności pracy, czyli takich, w których są uruchamiane aplikacje biznesowe.

Intel i AMD wprowadziły ostatnio do swoich ofert układy CPU, które wspierają sprzętowo zadanie wirtualizowania systemów. Dzięki nowym rozwiązaniom wprowadzonym do tych procesorów wirtualizowanie systemów obliczeniowych stało się dużo łatwiejsze.

W przypadku macierzystej wirtualizacji monitory wirtualnych maszyn (VMM) symulują w 100% warstwę sprzętową, co pozwala uruchamiać na wszystkich wirtualnych maszynach oryginalne systemy operacyjne, nie wprowadzając do nich żadnych poprawek. Monitor VMM wirtualizuje wtedy w efektywny sposób zestawy instrukcji x86, wykorzystując do tego celu metodę "przechwyć i emuluj" (trap-and-emulate).

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200