Pobierz najnowszy numer

Newsletter

Zapisz się do naszego Newslettera, aby otrzymywać informacje o nowościach z branży!

Jesteś tutaj

Wirtualizacja. Klastry wysokiej dostępności

Printer Friendly and PDF

leadOd obecnej infrastruktury serwerowej wymaga się ciągłego i nieprzerwanego działania. Serwery – np. plikowe, WWW, bazodanowe itp. – muszą być dostępne dla użytkowników nieprzerwanie, przez całą dobę i siedem dni w tygodniu. Dla wielu firm, a w zasadzie dla ich działów IT, jest to podstawowa zasada funkcjonowania systemów komputerowych. Z pomocą przychodzi klastrowanie serwerów lub usług. Klaster serwerów to grupa serwerów widocznych dla użytkowników jako jeden system (jako jeden serwer lub jako jedna aplikacja) zapewniający wysoką dostępność (HA – High Availability) do krytycznych aplikacji i danych. Klastry mogą być wykorzystywane m.in. do utrzymywania bardzo obciążonych usług sieciowych (np. serwerów WWW). Takie klastry nazywane są klastrami równoważącymi obciążenie (Load Balancing Cluster) lub klastrami serwerowymi.

Oczywiście klastrowanie to nie tylko powielanie serwerów, ale również redundancja połączeń tych serwerów z sieciami komputerowymi, zasilania, połączenia z zasobami dyskowymi (macierzami), pełna redundancja elementów samej macierzy (kontrolerów, zasilaczy, połączeń z serwerami).

Zazwyczaj dobór klastrów o wysokiej dostępności jest trudny i wiąże się z wysokimi kosztami. Wirtualizacja umożliwia tworzenie klastrów HA bez ponoszenia dodatkowych kosztów związanych z zastosowaniem fizycznych rozwiązań klastrowych. Warunkiem jest posiadanie serwerów wirtualizacyjnych i odpowiednich licencji.

Na wirtualnej platformie można uzyskać klastry o wysokiej dostępności na dwóch poziomach. Pierwszy poziom ogranicza się do monitorowania hosta (serwera fizycznego), drugi zaś synchronizuje maszyny wirtualne będące w klastrze i stany połączeń z tymi maszynami.

Co to jest – fizycznie – klaster HA serwerów wirtualnych? Jest to zespół serwerów działających na rzecz wspólnego dobra, jakim jest ciągłe działanie wirtualnych maszyn uruchomionych na wszystkich hostach należących do klastra HA. Wyznaczone serwery w klastrze HA posiadają wszystkie informacje o uruchomionych maszynach wirtualnych – na którym hoście dana maszyna jest uruchomiona, jakie ma przydzielone zasoby i priorytety, jaka jest ścieżka do katalogu z plikami konfiguracyjnymi danej maszyny itp.

Podczas konfiguracji klastra HA administrator definiuje liczbę fizycznych serwerów (hostów) w klastrze, które mogą ulec awarii. W zależności od tej wartości klaster HA oblicza, ile wirtualnych maszyn może zostać uruchomionych jednocześnie w całym klastrze. Informacja ta jest wymagana, aby w danym klastrze HA nie uruchomić zbyt dużo maszyn. Administrator może wyłączyć funkcję informowania i zapobiegania uruchomieniu zbyt dużej liczby wirtualnych maszyn, co jednak nie jest zalecane. Jak widać, klaster taki rezerwuje zasoby na potrzeby HA w zależności od liczby zdefiniowanych hostów, które mogą ulec awarii. Jeśli w klastrze mamy trzy identyczne serwery i zdefiniujemy, że awarii może ulec jeden, to HA pozwoli nam uruchomić tyle wirtualnych maszyn, ile będzie zasobów na dwóch serwerach. System działa w ten sposób, ponieważ w momencie awarii jednego hosta z trzech zostają tylko dwa, na których muszą uruchomić się wszystkie wirtualne maszyny z hosta, który uległ awarii. Jeśli w klastrze HA mamy niesymetryczne serwery (serwery nie są identyczne, np. jeden posiada więcej pamięci operacyjnej), to algorytm z całych zasobów klastra, na poczet awarii, odlicza zasoby najmocniejszych serwerów hostów.

Jak wynika z powyższego opisu, taki klaster HA nie jest klastrem idealnym. Można go zastosować dla serwerów wirtualnych, w przypadku których biznesowo mamy zezwolenie na niedostępność rzędu 5–10 minut, w zależności od zastosowanego sprzętu oraz oprogramowania wirtualizacyjnego. Wynika to z tego, iż w momencie awarii danego hosta fizycznego klaster zauważy jego brak i uruchomi brakujące maszyny wirtualne na pozostałych zasobach klastra. Proszę zwrócić uwagę na to, że klaster uruchomi brakujące maszyny od zera, tzn. wirtualne serwery nie będą dostępne w czasie ich uruchamiania. Ponadto wszystkie nawiązane sesje do tych serwerów zostaną utracone. Jest to logiczne, gdyż uszkodzeniu uległ host, na którym te maszyny pracowały, a klaster uruchamia je od nowa na pozostałych zasobach.

Jak już wspomniałem, taki rodzaj klastra nadaje się do systemów, które mogą być niedostępne przez kilka minut. Mogą to być np. kontrolery domen, serwery WWW, ftp, pamięć podręczna serwerów pocztowych, same serwery pocztowe itp. Zalety takiego klastrowania to niska cena (licencja tylko na wirtualizację, a klastrować można wszystkie maszyny wirtualne) oraz łatwość implementacji i obsługi. Nie są potrzebne dodatkowe licencje na system operacyjny i aplikacje pracujące w wirtualnej maszynie. Wady: utrata połączeń z wirtualnymi maszynami w momencie awarii i ich niedostępność w czasie uruchamiania.

Drugi rodzaj klastra zapewnia nieprzerwany dostęp do wirtualnej maszyny. Jego działanie opiera się na monitorowaniu hostów (jak w poprzednim przypadku) oraz – dodatkowo – na powieleniu wirtualnej maszyny. Maszyna wirtualna pracuje na pierwszym hoście, natomiast na drugim system wirtualizacji tworzy kopię tej maszyny i cały czas na bieżąco synchronizuje stan tej maszyny ze stanem oryginału. Takie rozwiązanie zapewnia ciągły dostęp do wirtualnej maszyny, nawet w przypadku awarii hosta. Zalety takiego rozwiązania to względnie niska cena i łatwość implementacji. Ten rodzaj klastrowania daje wysoką dostępność, ale należy pamiętać, iż jedna maszyna wirtualna jest uruchomiona dwa razy (na dwóch hostach), a w związku z tym wymagane są podwójne zasoby dla tej maszyny wirtualnej oraz podwójne licencje na system operacyjny oraz aplikacje, które są zainstalowane w maszynie wirtualnej. Do wykonania klastra na maszynach fizycznych również wymagane są licencje i dodatkowe zasoby w postaci fizycznego serwera.

Oczywiście oba rodzaje klastrów mogą pracować równocześnie, czyli klaster HA działa we wszystkich maszynach wirtualnych, a w wybranych wykonujemy dodatkowo klaster drugiego rodzaju i uruchamiamy kopię maszyny wirtualnej.

Jak widać, klaster maszyny wirtualnej jest prosty w implementacji i niezbyt kosztowny. Aby dobrać odpowiedni rodzaj klastra do poszczególnych serwerów wirtualnych, przed wdrożeniem należy zawsze wykonać projekt ze szczególnym uwzględnieniem dopuszczalnych czasów niedostępności maszyn, które mają być klastrowane.

Podsumowując, można powiedzieć, iż zaletą wirtualizacji jest zapewnienie wysokiej dostępności przy jednoczesnym zachowaniu niskich kosztów.  

Paweł Duda
OPTeam

Zabezpieczenia 4/2010

Wszelkie prawa zastrzeżone. Kopiowanie tekstów bez zgody redakcji zabronione / Zasady użytkowania strony