ABC Wirtualizacji: Serwery

W większości dzisiejszych centrów danych panuje chaos. Wiele starych, a przy tym nie w pełni wykorzystywanych serwerów, którymi zarządzanie staje się coraz bardziej skomplikowane, nie ułatwia pracy administratorom. Zaczyna brakować miejsca, klimatyzacja pracuje pełną parą, a rachunki za prąd są coraz wyższe. Jest tylko jedno rozwiązanie tych problemów - wirtualizacja.

W większości dzisiejszych centrów danych panuje chaos. Wiele starych, a przy tym nie w pełni wykorzystywanych serwerów, którymi zarządzanie staje się coraz bardziej skomplikowane, nie ułatwia pracy administratorom. Zaczyna brakować miejsca, klimatyzacja pracuje pełną parą, a rachunki za prąd są coraz wyższe. Jest tylko jedno rozwiązanie tych problemów - wirtualizacja.

Wirtualna infrastruktura serwerowa obecnie najczęściej realizowana jest poprzez stworzenie abstrakcyjnej warstwy pomiędzy sprzętem komputerowym (serwerem) a uruchomionym na nim oprogramowaniem. Warstwa ta (z angielskiego zwana "hypervisor") jest tworzona przez specjalne oprogramowanie wirtualizujące. Umożliwia ono emulowanie sprzętu komputerowego (procesorów, pamięci, napędów, kart rozszerzeń) oraz stworzenie na jednej fizycznej maszynie kilku maszyn wirtualnych, w których będzie można zainstalować różne systemy operacyjne i aplikacje. Wirtualne maszyny mają własny BIOS, zaś na wirtualnym dysku należy założyć partycje i odpowiednio je sformatować. Aby wszystko odbyło się zgodnie z prawem, dla każdej maszyny wirtualnej potrzebujemy oddzielną licencję na system operacyjny i zainstalowane oprogramowanie.

ABC Wirtualizacji: Serwery

Trzy metody wirtualizacji serwerów

Rozwiązanie to stosowane jest do optymalizacji mocy obliczeniowej wykorzystywanej w serwerowniach (statystycznie 60-80% serwerów x86 jest utylizowanch w 5-15%). Pozwala na uruchomienie kilku wirtualnych serwerów na jednej fizycznej maszynie. Ułatwia zarządzanie serwerami i ich mocą obliczeniową. Wystarczy inteligentnie poprzydzielać odpowiednie maszyny wirtualne do fizycznych serwerów (np. połączyć maszyny, które głównie są obciążone w dzień, z tymi, których obciążenie następuje w nocy).

Szybki rozwój procesorów i relatywnie wolny postęp w rozwoju systemów operacyjnych i aplikacji doprowadziły do momentu, że kupowanie nowego serwera do pracy ze starymi aplikacjami nie ma sensu. Gdy stare wymagają wymiany, warto kupić jeden nowy serwer średniej klasy w miejsce kilku starych i zainstalować wszystkie stare aplikacje na jednym nowym serwerze, w wirtualnych maszynach. Oprócz oczywistych oszczędności przy kosztach zakupu, będzie można zaoszczędzić także na całkowitych kosztach obsługi - zasilaniu, obsłudze, chłodzeniu itd.

Ale z drugiej strony, posiadanie infrastruktury wirtualnej może prowokować do prób nadmiernej oszczędności, objawiającej się próbami umieszczenia zbyt wielu wirtualnych maszyn na jednym fizycznym serwerze. Pewną niedogodnością jest też fakt, że ewentualna awaria fizycznego serwera powoduje oczywisty przestój wszystkich serwerów wirtualnych. Stąd konieczność łączenia w klastry fizycznych serwerów, mających krytyczne znaczenie dla funkcjonowania przedsiębiorstwa.

Metody wirtualizacji serwerów

Wybór rozwiązań do wirtualizacji serwerów nie jest duży, a rynek podzielony jest dość niesymetrycznie - pomiędzy firmę VMware (ponad 90% udziałów) i pozostałe (Citrix, Microsoft, Parallels i Sun Microsystems). Konkurencja na tym rynku robi się jednak coraz większa i już wkrótce można spodziewać się pewnych zmian.

Istnieją trzy główne metody wirtualizacji serwerów. Każda umożliwia osiągnięcie najlepszych rezultatów w zależności od specyfiki przetwarzanych danych i priorytetów operacyjnych.

Wirtualizacja ponad x86

Realizacja wirtualizacji jest możliwa nie tylko na procesorach x86 - przeciwnie, to właśnie środowiska uniksowe były prekursorem idei współdzielenia zasobów mocy obliczeniowej już w latach 60. na komputerach mainframe IBM-a. Obecnie na rynku dostępne są dwa główne - konkurujące ze sobą - systemy wirtualizacji dla środowisk Linux i Unix. Ich twórcami są firmy HP i IBM.

HP oferuje swoją technologię wirtualizacyjną dla serwerów HP Integrity i HP 9000 pod marką HP Virtual Server Environment. Najważniejszym elementem tego pakietu jest oprogramowanie HP Integrity Virtual Machines, które umożliwia tworzenie wirtualnych maszyn z systemami HP-UX, Linux (Red Hat i SuSE) oraz Windows Server 2003. W ramach pakietu VSE HP oferuje też technologie nPartitions (podział wieloprocesorowego serwera na wirtualne mniejsze, z zachowaniem elektrycznej izolacji poszczególnych serwerów) oraz vPars, która dzieli środowisko HP-UX na wirtualne partycje.

IBM zgrupował ostatnio wszystkie swoje technologie wirtualizacyjne dla serwerów z procesorami Power pod jedną marką Power VM (wcześniej część z nich była znana pod marką Advanced Power Virtualization). System ten dostępny jest w trzech edycjach - Express, Standard i Enterprise. Dla wszystkich dostępna jest nowa funkcja Lx86, która pozwala na uruchamianie aplikacji linuksowych, przygotowanych oryginalnie dla procesorów x86, w wirtualnych maszynach działających na procesorach Power6 (wydajność uruchamianych w ten sposób aplikacji wynosi 60-80%). Rozwiązanie Power VM umożliwia też zaawansowane zarządzanie zasobami (w edycjach Standard i Enterprise) oraz przenoszenie działających wirtualnych maszyn pomiędzy serwerami (tylko w edycji Enterprise).

Pełna wirtualizacja

To najpopularniejsza metoda wirtualizacji, gdzie wykorzystywane jest oprogramowanie tworzące abstrakcyjną warstwę pomiędzy wirtualnymi serwerami i fizycznym sprzętem. Najpopularniejsze komercyjne rozwiązania w tym zakresie to oprogramowanie firmy VMware oraz program Virtual Server firmy Microsoft. Dostępne są też rozwiązania open source dla Linuksa.

W tym modelu dostajemy pełną wirtualną platformę sprzętową dla każdego wirtualnego serwera, włączając w to w pełni konfigurowalny BIOS. Dzięki tej metodzie każdy wirtualny serwer działa jako odrębny proces na platformie hosta. Na fizycznym dysku (lub macierzy dyskowej) każdy serwer jest całkowicie niezależny od innych (jest oddzielnym plikiem), z własną, odrębną instancją systemu operacyjnego i wszystkich potrzebnych aplikacji.

Oprogramowanie wirtualizujące przechwytuje rozkazy dla procesora, kontrolerów i urządzeń peryferyjnych, priorytetyzuje i układa w odpowiednią kolejkę do wykonania. Dzięki tej wirtualnej warstwie możliwe jest zainstalowanie praktycznie dowolnego systemu operacyjnego, bez konieczności modyfikacji zarówno sprzętu, jak i instalowanego oprogramowania. Dużym minusem tego typu rozwiązań jest obciążenie procesora przez oprogramowanie wirtualizujące (nie jest ono duże, chociaż odczuwalne), jak też wiele instancji systemów operacyjnych, uruchamianych na jednym fizycznym serwerze.


TOP 200