Kluczowe aplikacje biznesowe, bazy danych z informacjami koniecznymi do poprawnej pracy firmy, strony internetowe, w przypadku których przerwa w działaniu równa się ogromnym stratom finansowym - istnieją takie elementy które, aby biznes mógł sprawnie funkcjonować, po prostu muszą być dostępne. Czy jedynym wyjściem jest wiara w swoją szczęśliwą gwiazdę i liczenie na to, że nic się nie wydarzy? Czy nie ma możliwości aby zagwarantować działanie wszystkich usług? Na szczęście, jest to możliwe. Istnieją różnorakie rozwiązania, mające na celu zabezpieczyć ciągłość pracy i zapewnić uptime rzędu pięciu dziewiątek – maksymalny czas niedostępności usług 26 sekund w skali miesiąca.
Sieć
Awaria switcha, uszkodzony kabel sieciowy, nie kontaktująca wtyczka lub gniazdo patchpanela. Zdarza się. W efekcie serwer traci połączenie z siecią i przestaje być widoczny dla świata. Co z tego, że usługi działają poprawnie, skoro nikt z nich nie może skorzystać? Receptą na to jest zastosowanie bondingu. Przy wykorzystaniu jednego z modułów Kernela Linuksa możemy skonfigurować sieć tak, aby system widział dwie karty sieciowe jako jedno fizyczne urządzenie. Dzięki temu każdą z nich możemy wpiąć do odrębnego segmentu sieci, aby zmniejszyć prawdopodobieństwo wystąpienia awarii. Jeśli problem występuje tylko w jednym segmencie, serwer będzie cały czas widoczny w sieci.
Usługi
Większość usług uruchamianych na serwerach posiada specyficzne dla siebie sposoby uzyskiwania wysokiej dostępności (HA – High Availability). Na potrzeby tego artykułu omówimy najpopularniejsze z nich.
Część wspólna
W ogólności można przyjąć, że koniecznym będzie istnienie przynajmniej dwóch instancji danej usługi (dwóch baz danych, dwóch serwerów Apache itp.), które będą miały identyczną konfigurację – tak aby po awarii jednego serwera drugi mógł przejąć jego rolę. Ważną kwestią jest więc to, aby na obu serwerach był dostęp do tych samych, aktualizowanych na bieżąco danych. Rozwiązań może być kilka. Serwery mogą przechowywać dane na macierzy SAN (Storage Area Network)– współdzielonej macierzy dyskowej, podpiętej do serwerów szybką, dedykowaną siecią FC ( Fiber Channel) bądź też 10Gbps Ethernet. Dane mogą też być replikowane poprzez sieć przy użyciu mechanizmów danej usługi (czy to wbudowanych, jak replikacja w MySQL, czy też realizowanych przez dodatkowe rozwiązania, jak PostgreSQL i Slony). Istnieje też moduł Kernela Linuksa, DRBD, który, w skrócie ujmując, udostępnia opcję podpięcia przez sieć dysku z innego serwera. Zapewnia on synchronizację danych i płynne, niezauważalne przepięcie w razie wystąpienia awarii.
|
|
|
|
|
|
|
|
