| Termin | Definicja |
|---|---|
| klaster serwerów | Klaster serwerów to zespół maszyn działających jako jedna logiczna całość w celu zwiększenia dostępności usługi. Budowa klastra serwerów i rola węzłówKlaster serwerów to grupa co najmniej dwóch niezależnych serwerów, nazywanych węzłami, które współpracują przy obsłudze jednej usługi albo wspólnego zestawu usług. Z punktu widzenia użytkownika system może być prezentowany jako jeden zasób, mimo że jego działanie jest rozłożone na kilka maszyn. Każdy węzeł ma własny procesor, pamięć operacyjną, system operacyjny, interfejsy sieciowe i lokalne zasoby dyskowe, a oprogramowanie klastrowe nadzoruje ich stan oraz wymianę informacji. W zależności od przeznaczenia węzły mogą pełnić różne role. W klastrze wysokiej dostępności jeden serwer obsługuje usługę aktywnie, a drugi pozostaje gotowy do jej przejęcia. W klastrze równoważenia obciążenia wiele węzłów przyjmuje żądania jednocześnie, a mechanizm rozdzielający ruch kieruje połączenia do dostępnych maszyn. Istotne jest więc rozróżnienie między samym połączeniem serwerów w sieci a rzeczywistym klastrem: klaster wymaga wspólnego mechanizmu koordynacji, kontroli stanu i obsługi awarii. Komunikacja, członkostwo i decyzja o przełączeniuWęzły klastra wymieniają komunikaty kontrolne, często określane jako heartbeat, czyli sygnały potwierdzające działanie danego serwera. Brak odpowiedzi nie zawsze oznacza awarię maszyny. Przyczyną może być uszkodzenie interfejsu sieciowego, przeciążenie systemu, błąd przełącznika albo chwilowa utrata łączności. Dlatego oprogramowanie klastrowe korzysta z limitów czasu, kilku ścieżek komunikacji oraz dodatkowych testów stanu usługi, aby ograniczyć ryzyko błędnej decyzji. Ważnym pojęciem jest quorum, czyli zasada określająca, jaka część węzłów musi potwierdzić prawidłowy stan klastra, aby mógł on podejmować decyzje. Quorum zapobiega sytuacji, w której odseparowane grupy serwerów uznają jednocześnie, że mają prawo uruchomić tę samą usługę. Takie zdarzenie, nazywane split-brain, może prowadzić do konfliktu zapisów, wielokrotnego przydzielenia tego samego adresu sieciowego albo uszkodzenia danych. W praktyce stosuje się również mechanizmy fencing, które odłączają lub wyłączają węzeł uznany za niebezpieczny. Wysoka dostępność a równoważenie ruchuKlaster wysokiej dostępności ma ograniczyć przerwę w działaniu usługi po awarii węzła. Gdy serwer aktywny przestaje odpowiadać, drugi węzeł może uruchomić odpowiednie procesy, przejąć adres usługi i udostępnić zasoby wymagane do dalszej pracy. Przełączenie nie oznacza jednak, że wszystkie połączenia zostaną zachowane. Sesje zależne od pamięci konkretnego serwera mogą zostać zerwane, a niezatwierdzone operacje mogą wymagać ponowienia. Równoważenie obciążenia działa według innego modelu. Ruch może być rozdzielany na podstawie algorytmu round-robin, najmniejszej liczby aktywnych połączeń albo wyniku testu dostępności. Mechanizm kierujący żądania powinien sprawdzać nie tylko, czy serwer odpowiada na połączenie TCP, lecz także czy właściwa usługa zwraca poprawną odpowiedź aplikacyjną. Jeżeli węzeł działa, ale jego proces obsługujący żądania jest zawieszony, prosty test sieciowy może błędnie pozostawić go w puli aktywnych serwerów. Diagnostyka awarii i spójności klastraDiagnostyka klastra serwerów wymaga analizy kilku warstw jednocześnie: zasilania, temperatur, pamięci operacyjnej, dysków, kontrolerów, kart sieciowych, przełączników, systemu operacyjnego i oprogramowania klastrowego. Sam komunikat o utracie węzła nie wskazuje jeszcze przyczyny. Należy ustalić, czy awaria wystąpiła przed utratą komunikacji, podczas próby przejęcia usługi, czy dopiero po uruchomieniu jej na innym serwerze. Pomocne są znaczniki czasu w dziennikach, informacje o zmianach członkostwa oraz logi przełączania zasobów. Osobnej kontroli wymaga sposób dostępu do danych. Jeżeli kilka węzłów korzysta ze wspólnego zasobu dyskowego, trzeba sprawdzić blokady, ścieżki dostępu, opóźnienia i poprawność przejęcia zasobu przez kolejny serwer. Jeżeli każdy węzeł utrzymuje własną kopię danych, konieczne jest zweryfikowanie opóźnienia replikacji, kolejności zapisów i zachowania systemu po zerwaniu połączenia. Przed przywróceniem klastra do pracy należy potwierdzić stan wszystkich węzłów, poprawność konfiguracji sieci oraz to, który serwer ma aktualnie prawo świadczyć usługę. |