Virtual-IT.pl - wirtualizacja cloud computing storage data center

Artykuły

Wirtualizacja na przykładzie parawirtualizacji XEN w CentOS

 

Pojęcie wirtualizacji odnosi się do rozwiązań programowych, jak i sprzętowych umożliwiających oddzielenie wykorzystywanych zasobów sprzętowych od systemów oraz aplikacji, które z nich korzystają. Mówiąc prościej wirtualizacja tworzy oddzielne środowisko do działania innych systemów.


Fizycznie zainstalowany sprzęt jest częściowo „ukrywany” przed maszyną wirtualną, dzięki czemu uniezależniamy się od warstwy sprzętowej. Przykładowo na zwykłym komputerze klasy PC możemy zainstalować Mac OS X-a.

Typy wirtualizacji

Wyróżniamy dwa typy wirtualizacji:
- Parawirtualizacja - w której system operacyjny „gościa” współpracuje ze środowiskiem operacyjnym komputera w zakresie obsługi tych elementów sprzętowych, których działanie mogłoby kolidować z innymi wirtualnymi systemami. Współpraca taka realizowana jest dzięki dodatkowej warstwie abstrakcji i obsługi sprzętu zwanej hypervisorem.
- Pełna wirtualizacja - dzięki której wirtualizowany system operacyjny ma wrażenie, że działa na prawdziwym, fizycznym komputerze. W rzeczywistości odwołania systemu operacyjnego „gościa” do tych elementów fizycznych komputera, które kolidowałyby z działalnością innych środowisk lub systemu operacyjnego gospodarza (domeny przeznaczonej do zarządzania, tzw. Dom0), są przechwytywane przez specjalne oprogramowanie a następnie emulowane. Spowalnia to niestety pracę wirtualnego środowiska, dlatego pożądane w tej sytuacji jest sprzętowe wspomaganie wirtualizacji przez takie technologie jak Intel VT-x lub AMD-V. Stąd często pełną wirtualizacje określa się skrótem HVM od Hardware Virtual Machine.

Rozwiązania do wirtualizacji

Konkretnych rozwiązań wirtualizacyjnych mamy jednak dużo więcej. Najbardziej znane to:
- Xen
- Citrix XenServer
- OpenVZ
- Parallels Virtuozzo
- KVM
- VMware Workstation
- VMware Player
- VMware ESXi
- Oracle VirtualBox
- Microsoft Virtual PC
- Microsoft Hyper-V

Xen - podstawowe informacje

Skupię się na pierwszym z wymienionych rozwiązań, ponieważ korzystam z niego na co dzień, a co najważniejsze jest ono optymalne pod względem wydajności i kosztów.

Xen jest jednym z najbardziej zaawansowanych rozwiązań do tworzenia maszyn wirtualnych wykorzystującym parawirtualizację, działającym w bardzo podobny sposób do emulacji sprzętowej. Działa poprzez tworzenie interfejsu pomiędzy systemem operacyjnym uruchomionym w wirtualnym środowisku, a sprzętem. On kolejkuje i odpowiada systemowi operacyjnemu na żądania dostępu do warstwy sprzętowej. Kluczową różnicą pomiędzy wirtualizacją na poziomie systemu operacyjnego, dostępną w mechanizmie OpenVZ, a parawirtualizacją, jest umożliwienie osobom zarządzającym serwerem wirtualnym opartym o Xen modyfikowania modułów, korzystania z pamięci SWAP, oraz pełen dostęp do konfiguracji iptables.

Najnowsza wersja Xen-a potrafi nadzorować działanie systemów operacyjnych w wersji wieloprocesorowej (do 128 wirtualnych procesorów dla gościa) zarówno 32 i 64-bitowych (Intel oraz AMD). Na maszynach 32-bitowych Xen wykorzystuje technikę PAE do adresowania dużej ilości pamięci. Na 64-bitowych komputerach, można wirtualizować zarówno systemy 64-bitowe, jak i 32-bitowe. Xen potrafi wykorzystać sprzętową pomoc podczas pracy w trybie pełnej wirtualizacji, na przykład na procesorach Intel wyposażonych w technologię Virtualization Technology oraz na procesorach z podobną technologią AMD-V. Wspierane architektury to Intel IA32, AMD64/Intel x86-64, oraz Intel Itanium (IA-64).