Previous Up

Next


XEN
 

 

Opis

XEN jest Monitorem Wirtualnej Maszyny zaprojektowanym do działania na architekturze x86, wspierającym działanie wielu systemów operacyjnych dzielących rzeczywistą maszynę.Wszystkie guest OS działają niezależnie, w pełni odizolowane od siebie. Możliwe jest równoczesne uruchomienie nawet do 100 systemów operacyjnych.

Jako że Xen działa bezpośrednio na fizycznym sprzęcie, można o nim myśleć jako o mikroskopijnym systemie operacyjnym. W celu zminimalizowania strat wydajnościowych, używana jest technika wirtualizacji zwana parawirtualizacją. Jednak by system operacyjny mógł być uruchomiony na Xenie potrzebna jest jego modyfikacja, dokonana specjalnie pod kątem współpracy z XENem.

Każda maszyna wirtualna w XENie działa w osobnej domenie. Jedna z domen jest specjalna - tylko system operacyjny rezydujący w tej domenie jest startowany podczas uruchamiania XENa. Inicjuje on oprogramowanie odpowiedzialne za zarządzanie pozostałymi systemami operacyjnymi, w szczególności za:

 Ponadto system operacyjny ze specjalnej domeny jest odpowiedzialny za obsługę wirtualizacji urządzeń i dostępu do nich. W pozostałych domenach działają guest OS.

Jeżeli chodzi o poziom uprzywilejowania, to sam Monitor Wirtualnej Maszyny, czyli XEN, działa na poziomie 0, podczas gdy Guest OS muszą być zmodyfikowane by działać na poziomie 1. Aplikacje użytkowe działają standardowo na 3 poziomie uprzywilejowania.

Niektóre rozwiązania zastosowane w XEN:

 Przełączanie sterowania.

Dwie główne możliwości jeżeli chodzi o przełączanie kontroli to oddawanie kontroli przez XENa do systemu operacyjnego i odwrotnie - przez SO do XENa. Do obsługi przełączania kontroli stosowane są:

 Transfer danych.

W celu dostarczania danych i zawiadomień XEN używa asynchronicznych buforowych pierścieni. Rozwiązanie to dostarcza efektywnego mechanizmu transferu danych. Pierścień jest cykliczną kolejką, która sama w sobie nie zawiera danych. Dostęp do danych odbywa się przez deskryptory. Jest 4 aktorów w takich schemacie transferu:

Bardzo ważne jest, że Xen może zmienić kolejność obsługi żądań co umożliwia zwiększenie efektywności całego mechanizmu (np. poprzez taką kolejność obsługi żądań odczytu z dysku, aby sąsiadujące sektory były odczytywane zaraz po sobie).

Translacja adresów wirtualnych
W XENie fizyczne zasoby pamięci są widoczne dla guest OS. Zatem tablice stron mogą być swobodnie odczytywane przez guest OS, ale tylko XEN może coś w nich zmieniać.

 Pamięć Fizyczna
Pamięć fizyczna jest statycznie podzielona. W trakcie tworzenia każda domena dostaje ustaloną ilość zarezerwowanej dla niej pamięci. Takie rozwiązanie gwarantuje silną izolację. XEN może odbierać jak i przydzielać strony poszczególnym guest OS w zależności od potrzeb. Jeżeli zajdzie taka potrzeba, guest OS jest zmuszony do używania własnych algorytmów zarządzania pamięcią lub nawet do wyrzucania stron na wirtualny dysk. Ponadto każdy guest OS jest odpowiedzialny za stwarzanie iluzji ciągłej pamięci.

Wymagania i kompatybilność

By system operacyjny mógł być uruchomiony na Xenie potrzebna jest jego modyfikacja. Obecnie Xen umożliwia uruchomienie Linuksa (zmodyfikowany system nazywa się XenoLinux), NetBSD, FreeBSD (w trakcie tworzenia) oraz Windows (w trakcie tworzenia).
Aplikacje użytkowe i biblioteki nie potrzebują modyfikacji.
Sam XEN jest przygotowany do działania na komputerach o architekturze x86.

Przeznaczenie

Xen pozwala wielu systemom operacyjnym dzielić rzeczywistą maszynę w bezpieczny i dobrze zarządzany sposób, bez znacznej utraty wydajności i funkcjonalności.

Źródła:

http://www.cl.cam.ac.uk/Research/SRG/netos/xen (tutaj można pobrać XEN)
http://www.cs.utah.edu/~sgoyal/xen (wskazówki dotyczące instalacji i nie tylko)


 Previous Up

Next