Pakiet heartbeat

Pakiet heartbeat, prowadzony przez Alana Robertsona, jest poblicznie dostępnym oprogramowaniem udostępniającym podstawową funkcjonalność pozwalającą tworzyć i zarządzać klastrami wysokiej dostępności w systemie Linux. Głównym zadaniami realizowanymi przez to oprogramowanie są:
  1. monitorowanie dostępności poszczególnych węzłów klastra,
  2. uruchamianie i zatrzymywanie usług pracujących w reżimie wysokiej dostępności,
  3. zarządzanie zasobami dzielonymi w obrębie klastra np. adres IP, zasoby dyskowe.

Aktualnie pakiet dostępny jest w stabilnej wersji 1.0.3 na platformę Linux; dostępne są także archiwa źródłowe, binarne oraz pakiety dla ważniejszych dystrybucji Linuksa. Obszerna dokumentacja znajduje się na stronie www.linux-ha.org.

Pakiet heartbeat jest oprogramowanie darmowym, ale należy wyraźnie podkreślić, że swoimi możliwościami pozostaje bardzo daleko z rozwiązaniami komercyjnymi. Stanowi on realizację najprostszej strategii działania klastra wysokiej dostępności. Jeden z komputerów pełni rolę węzła głównego serwując usługi pewne pod ustalonym adresem IP. Drugi z komputerów -- węzeł zapasowy -- oczekuje bezczynnie na awarię węzła głównego. Jeśli zajdzie takie zdarzenie przejmuje on funkcje węzła głównego, uruchamiając wszystkie te usługi, które udostępniał węzeł główny. Oprogramowanie hearbeat nie potrafi przenosić usług i aplikacji między węzłami wraz z ich stanem -- potrafi jedynie wykryć awarię jednego z węzłów, przenieść pewne zasoby na węzeł zapasowy i na nim od nowa uruchomić usługi zatrzymane w wyniku awarii. Dla prostych instalacji np. serwerów http jest to jednak całkowicie wystarczająca funkcjonalność.

Główną część oprogramowania heartbeat stanowi podsystem -- demon monitorujący pracę węzłów klastra oraz zarządzający zasobami udostępnianymi w reżimie wysokiej dostępności. Demon uruchamiany jest na wszystkich węzłach klastra -- brak pracującego demona na jednym z węzłów jest równoznaczny z sytuacją awarii tego węzła. Demony wymieniają się ze sobą informacją, sprawdzając swoją dostępność. W przypadku awarii węzła głównego, demon na węźle stwierdza brak odpowiedzi na łączu heartbeat i rozpoczyna procedurę przejęcia zasobów wspólnych klastra i uruchomienia usług udostępnianych w trybie wysokiej dostępności.

Najważniejszym zasobem jaki musi przejąć węzeł zapasowy po awarii węzła głównego jest adres IP klastra. Każdy z węzłów klastra posiada swój własny adres IP w podsieci w której włączony jest klaster, jednak jest on wykorzystywany raczej w celach administracyjnych. Potrzebny jest dodatkowy wolny adres IP, który zostanie przypisany klastrowi jako całości i pod którym serwowane będą wszystkie usługi udostepniane w reżimie wysokiej dostępności. Wewnętrzna struktura klastra zostaje ,,ukryta'' pod jednym adresem IP, który w razie potrzeby będzie przenoszony pomiędzy węzłami klastra. W danej chwili adres ten może być przypisany tylko jednemu węzłowi.

Jeśli budując klaster zdecydujemy się na model shared data, kolejnym zasobem, który będzie przekazywany między węzłami są urządzenia pamięci masowej. Jednym z klasycznych rozwiązań jest podłączenie zewnętrznego dysku SCSI w tzw. układ V czyli do jednej magistrali wraz z dyskiem podpięte będą dwa host-adapter'y węzłów klastra. Węzły będą mieć zatem fizyczny dostęp do urządzenia dyskowego, zadaniem oprogramowania jest zadbać o to aby w danej chwili były one wykorzystywane przez tylko jedną maszynę.

W klastrze opartym o model share nothing konieczna jest implementacja mechanizów replikacji danych pomiędzy węzłami. W tym celu należy skorzystać z cron'a i polecenia rsync, które okresowo będzie synchronizowało dane pomiędzy węzłami. Podejście takie jest mało praktyczne w przypadku gdy synchronizujemy archiwa o pojemnościach wieluset megabajtów. Proces taki może być zbyt czasochłonny i zanadto obciążający sieć. Z tego też względu nie będziemy szerzej omawiać tej techniki w niniejszym opracowaniu. Jej dokładny opis wraz z kilkoma użytecznymi skryptami znajduje się w dokumentacji dostarczonej wraz z oprogramowaniem.



Subsections
Pawel Topa 2003-12-12