Linux parawirtualny

Najnowsza wersja otwartego środowiska wirtualizacyjnego Xen zyskała uznanie i wsparcie dużych dostawców technologii i ma szansę stać się nowym standardem de facto.

Najnowsza wersja otwartego środowiska wirtualizacyjnego Xen zyskała uznanie i wsparcie dużych dostawców technologii i ma szansę stać się nowym standardem de facto.

Linux zyska wkrótce wysokiej klasy rozwiązanie do wirtualizacji. Rozwijany od kilku lat na uniwersytecie w Cambridge w Wielkiej Brytanii projekt o nazwie Xen doczekał się jesienią ub.r. wersji 2.0, którą zainteresowali się wielcy dostawcy technologii. Wsparcie dla Xen oficjalnie zadeklarowali już m.in. HP, IBM i Intel, zaś Red Hat i Novell poważnie się zastanawiają. Na konferencji OSDL Enterprise Linux Summit pojawiły się nawet spekulacje, że jeszcze w tym roku pojawi się jądro Linuxa uwzględniające Xen jako jedną z platform.

Wirtualnie, czyli...

Technologie wirtualizacyjne z roku na rok zyskują na znaczeniu. Kiedyś były dostępne tylko na platformach mainframe. Słynnemu pakietowi VM, służącemu do izolowania aplikacji, stuknęło niedawno 20 lat.

Niedawno IBM zdecydował się przenieść je także na platformy sprzętowej średniej klasy (serwery i5 oraz p5 wykorzystujące procesory Power5), umieszczając logikę wirtualizacyjną w mikrokodzie procesorów i chipsetów. Wirtualizacja wywodząca się z VM służy przede wszystkim ukryciu przed systemami operacyjnymi faktu współdzielenia przez nie zasobów, a w konsekwencji - lepszemu ich wykorzystaniu.

Wirtualizacja rozwijana była także poza IBM. Podobne podejście do wirtualizacji zastosował HP w serwerach wykorzystujących platformę PA-RISC. Rozwiązanie vPar (virtual Partition) HP starał się zawsze oferować wraz z pakietem WLM (WorkLoad Manager), który zarządzał priorytetami procesów działających w ramach pojedynczej maszyny wirtualnej. Ostatnio zwolennikiem wirtualizacji realizowanej na poziomie mikrokodu dostarczanego wraz ze sprzętem stał się również Intel. Dla niego to możliwość budowy nowego rynku.

Rozwiązania wirtualizacyjne budowano także w wyższych warstwach infrastruktury. W latach 90. własną technologię w tej dziedzinie stworzyła specjalistyczna firma VMware, przejęta pod koniec 2003 r. przez EMC. Oprogramowanie VMware realizuje wirtualizację nie w mikrokodzie, lecz w formie maszyny wirtualnej działającej w środowisku "normalnego" systemu operacyjnego. Oprogramowanie VMware emuluje dowolny sprzęt komputerowy i sieciowy, umożliwiając zdefiniowanie i uruchomienie w pamięci jednego komputera lub serwera wirtualnej infrastruktury komunikującej się poprzez wirtualną sieć. Rozwiązania VMware współpracują z systemami Windows, Linux i Unix i są wspierane przez wszystkich producentów serwerów.

Konkurencyjne do VMware rozwiązania wirtualizacyjne stworzyła firma Connectix, którą w marcu 2003 r. przejął Microsoft. Przed przejęciem firma oferowała jedynie produkt pozwalający na uruchamianie systemów Mac OS wewnątrz Windows. Jedną z głównych przesłanek za przejęciem były jednak zaawansowane prace nad produktem serwerowym, o którym z racji współpracy Microsoft wiedział. Tak doszło do powstania Microsoft Virtual PC 2004 oraz Microsoft Virtual Server 2005, które wykorzystują architekturę podobną do tej stosowanej przez VMware, a więc taką, w której każdy system - gość działa na osobnej maszynie wirtualnej emulującej całą warstwę sprzętową.

Niecałkiem wirtualnie

Najnowsza inkarnacja technologii wirtualizacyjnych jest rozwijana z myślą nie tyle o maksymalnym wykorzystaniu dostępnych zasobów sprzętowych, lecz raczej o bezpieczeństwie i wydajności aplikacji działających w ramach jednego systemu operacyjnego. Przykładem takiego rozwiązania jest wprowadzony właśnie na rynek system Solaris 10 autorstwa Sun Microsystems.

Pojedyncze jądro systemu operacyjnego realizuje tylko podstawowe funkcje rejestracji i zarządzania dostępem procesów do zasobów.

Wszystkie inne funkcje realizowane są w warstwach wyższych, przez co jądro jest zarówno wydajniejsze, jak i stabilniejsze.

Doktoranci prowadzący projekt Xen w Cambridge poszli podobnym tropem co Sun. Warstwa Xen odpowiedzialna za wirtualizację nie jest przywiązana do konkretnego modelu procesora czy serwera, tak jak ma to miejsce w przypadku rozwiązań IBM. W efekcie, rozwiązanie jest potencjalnie relatywnie łatwe do przeniesienia na różne platformy sprzętowe - potencjalnie, ponieważ na razie działa wyłącznie na sprzęcie x86. Jednocześnie Xen nie emuluje sprzętu, tak jak ma to miejsce w rozwiązaniach VMware i Microsoftu, co pozwala zachować znacznie wyższą wydajność. Autorzy projektu Xen nazywają to podejście parawirtualizacją.

Pełna wirtualizacja jest realizowana na wysokim poziomie abstrakcji - koniecznym, by możliwe było swobodne modelowanie różnorodnych systemów i relacji między nimi. Wydajność nie jest tu najważniejsza - takie potrzeby występują głównie wtedy, gdy platforma wirtualizacyjna ma wspierać symulowanie/testowanie konkretnego, zwykle skomplikowanego środowiska, np. w celu zbadania poprawności działania algorytmów czy prawidłowości konfiguracji.

Z punktu widzenia aplikacji działających w trybie produkcyjnym wysoki poziom abstrakcji oznacza, że operacje odwołujące się do sprzętu muszą pokonać kilka warstw logiki, zanim ich żądania zostaną obsłużone. To raczej wątpliwa zaleta. Zamiast więc emulować cały sprzęt, twórcy Xen postanowili stworzyć zgeneralizowaną warstwę interfejsów abstrahującą od konkretnego modelu sprzętu, tworząc własną, opartą na x86, lecz bardziej "ogólną" architekturę reprezentującą sprzęt przed systemami operacyjnymi.

Taka konstrukcja oznacza, że twórcy systemów operacyjnych, chcący wykorzystać Xen, będą musieli stworzyć dla tej platformy oddzielne wersje systemów - tak jak dziś przygotowują oddzielne wersje dla architektur IA-32, AMD64, Power5, UltraSPARC czy Itanium 2. Zmian nie będzie jednak wiele - dotyczyć będą głównie obsługi sterowników sprzętu, a nie fundamentów działania systemu operacyjnego. Ten jednorazowy kłopot będzie opłacalny w dziedzinie wydajności oraz stabilności całej platformy.

W internecie

http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html - witryna główna twórców Xen z bogatymi zasobami informacji

http://sourceforge.net/projects/xen - witryna dla deweloperów

http://www.xensource.com/ - firma zajmująca się usługami wokół Xen

http://sourceforge.net/mailarchive/forum.php?thread_id=6354578&forum_id=35600 - porady, jak przenieść Linuxa 2.6 na platformę Xen

http://www.xenoserver.org - strona projektu Xenoserver

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

TOP 200