Przerwa niemile widziana

Powstaje coraz więcej metod zwiększania dostępności systemów informatycznych. Tradycyjne rozwiązania klastrowe stanowią obecnie jedynie podzbiór dostępnych opcji.

Powstaje coraz więcej metod zwiększania dostępności systemów informatycznych. Tradycyjne rozwiązania klastrowe stanowią obecnie jedynie podzbiór dostępnych opcji.

Wysoką dostępność czy też innymi słowy - odporność na awarie można osiągać na wiele sposobów, a wybór metody zależy od rodzaju zabezpieczanej aplikacji/systemu oraz od tego, jak szybko - po wystąpieniu awarii - ma być przywrócona jego pełna funkcjonalność. Konfiguracje o podwyższonej dostępności często nazywane są klastrami, choć nie zawsze jest to określenie właściwe.

W potocznym rozumieniu klaster to dwa lub więcej komputerów sprzężonych w taki sposób, że awaria jednego z nich powoduje przejęcie jego zadań przez pozostałe komputery. Różnice między poszczególnymi rozwiązaniami dotyczą w głównej mierze tego, w jaki sposób przejęcie to się odbywa. Rozwiązania zapewniające wysoką dostępność działają na różnych poziomach, np. aplikacji, oprogramowania warstwy pośredniej (serwera aplikacji, bazy danych, maszyny wirtualnej), systemu operacyjnego, sieci lub podsystemu pamięci masowych. Im wyższą warstwę rozwiązanie klastrowe wykorzystuje, tym jest ono bezpieczniejsze, choć jednocześnie trudniej je zbudować. Im niższą, tym z kolei jest tańsze jego wdrożenie i utrzymanie.

Aplikacji sztuk kilka

Klastry aplikacyjne to rozwiązania wykorzystywane stosunkowo rzadko. Powód jest prosty - kod aplikacji ulega częstym zmianom, które mogłyby destabilizować jego pracę w krytycznym momencie. Stworzenie tego typu aplikacji jest zadaniem trudnym. Jednym z nielicznych rozwiązań umożliwiających równoległą pracę - w zależności od systemu operacyjnego - od 4 lub 8 kopii aplikacji z tą samą bazą danych jest Oracle Real Application Cluster (RAC), jednak i ono wymaga jeszcze dopracowania.

Znacznie częściej stosuje się rozwiązania zapewniające wysoką dostępność na poziomie serwera aplikacji J2EE - oferują je wszyscy liczący się producenci, m.in. Bea Systems, IBM, Oracle i Sun Microsystems. Serwer aplikacji J2EE stanowi dla aplikacji podwójne zabezpieczenie: w środowisku serwera można uruchomić wiele instancji tej samej aplikacji, a jednocześnie serwer zintegrowany zwykle z działającym w systemie operacyjnym oprogramowaniem klastrowym, np. Veritas Cluster, HP TruCluster, Oracle RAC czy Sun Cluster Server, może pracować w kilku wzajemnie zabezpieczających się kopiach. Zastosowanie serwera aplikacji jest korzystne także dlatego że pozwala na łatwiejsze wznowienie pracy przez użytkowników, którzy korzystają z przeglądarki lub ewentualnie z działającego w jej środowisku apletu Java.

Rozmnażanie bazy

Zamiast "klastrować" aplikacje, można ograniczyć się do zabezpieczenia samej bazy danych. Do wyboru jest kilka opcji. Pierwsza z nich to możliwość wykorzystania oprogramowania klastrowego. Większość baz danych jest jednak wyposażona we własne rozwiązania zabezpieczające. Jednym z nich jest mechanizm shadow copy, umożliwiający tworzenie kopii danych na bieżąco w ramach tego samego serwera bazodanowego. Inny mechanizm, zwany replikacją, pozwala eksportować logi lokalnej bazy danych do bazy zdalnej. Niektóre bazy danych, np. SQL Server, stosują specyficzną formę replikacji zwaną log shipping. Różnica polega na tym, że w ramach replikacji pomiędzy dwoma bazami SQL Server nie są przesyłane zmiany zachodzące w środowisku bazy, np. dodanie tabeli lub indeksu, zmiana nazwy pola itp. - realizuje je log shipping.

Zarówno w przypadku replikacji jak i mechanizmu log shipping, serwer przyjmujący dane może je jedynie buforować lub też od razu wykonywać na własnej kopii bazy dokładnie te same operacje, które wykonał serwer główny. Pierwsze rozwiązanie jest tańsze, ponieważ serwer zapasowy może mieć mniej wydajną konfigurację niż główny. Atrakcyjność drugiego polega natomiast na tym, że w razie awarii serwera głównego serwer zapasowy może od razu rozpocząć pracę.

Do zabezpieczenia danych można też posłużyć się okresowo wykonywanymi kopiami natychmiastowymi, wymagającymi jednak zwykle współpracy bazy danych ze specjalnymi wersjami oprogramowania zarządzającego wolumenami logicznymi i systemami plików.