Cechy i przyczyny rozwoju klastrów

Praktycznie każda publikacja poświęcona klastrom zawiera tę samą listę ich zalet, odnoszących się w ogólności do systemów rozproszonych. Ponieważ lista ta nie zmieniła się od początku historii systemów rozproszonych określa się je jako Litanię Standardową [7]. Główne z wymienianych zalet to: wysoka wydajność, wysoka dostępność (niezawodność), korzystny stosunek ceny do wydajności, możliwość stopniowej rozbudowy systemu (skalowalność)1.1.

Można się zastanawiać, dlaczego właśnie systemy klastrowe stają się coraz popularniejsze oraz -- z drugiej strony -- dlaczego ich rozwój nie jest tak szybki, aby można je spotykać na każdym kroku?

Czynnikiem niewątpliwie przyczyniającym się do rozwoju klastrów jest postęp technologiczny w dziedzinie sprzętu. Obecnie mikroprocesory komputerów osobistych posiadają moc niedawnych jeszcze superkomputerów, a już na pewno moc taką mają systemy złożone z kilkunastu bądź kilkudziesięciu współczesnych komputerów osobistych czy relatywnie tanich stacji roboczych, opartych na standardowych komponentach (np. wykorzystujących procesory Intel Xeon).

Gwałtowny rozwój nastąpił także w dziedzinie komunikacji sieciowej. Pojawienie się rozwiązań takich jak FCS (ang. Fibre Channel Standard), ATM (ang. Asynchronous Transfer Mode), SCI (ang. Scalable Coherent Interconnect) czy gigabitowy ethernet pozwoliło na przesyłanie danych z prędkością rzędu gigabitów na sekundę. Istnieją też technologie pozwalające jednocześnie na komunikację pomiędzy systemami oraz urządzeniami wejścia-wyjścia (jak np. FCS -- p. paragraf 1.3.3).

Kolejną wielką siłą stymulującą rozwój systemów klastrowych jest zapotrzebowanie na systemy wysoce dostępne (ang. highly available)1.2. Wynika to z wkraczania komputerów w coraz to nowe dziedziny życia oraz z nowych sposobów ich wykorzystania. O ile kiedyś naprawdę niezawodne musiałby być jedynie komputery sterujące lotami, elektrowniami atomowymi czy systemami wojskowymi, dziś wymóg poprawnej pracy non-stop pojawia się na każdym kroku. Oczywiście najbardziej przyczynia się do tego rozwój Internetu. System udostępniony w Internecie musi być praktycznie dostępny 24 godziny na dobę i 365 dni w roku - zawsze gdzieś na świecie ktoś z niego będzie korzystał, choćby z uwagi na współczesny trend globalizacji przedsiębiorstw.

Głównym czynnikiem hamującym rozwój systemów klastrowych jest oprogramowanie. Wykorzystanie możliwości oferowanych przez systemy klastrowe wymaga dostosowania istniejącego oprogramowania. Nie jest to zadanie łatwe. Systemy operacyjne nie oferują jeszcze funkcjonalności (albo jest to funkcjonalność bardzo ograniczona), pozwalającej na rozproszenie standardowego nieklastrowego oprogramowania, a co za tym idzie podniesienie jego niezawodności oraz wydajności. Stosunkowo niewiele rodzajów oprogramowania dostosowanego do pracy w systemach klastrowych wykorzystuje jednocześnie ich podstawowe cechy, tj. niezawodność i skalowalność. Najlepiej sprawdzają się tu chyba systemy baz danych lub niektóre systemy wsadowe, gorzej z systemami plików czy serwerami usług internetowych. W przypadku tych ostatnich udaje się często zwiększyć niezawodność, trudniej je natomiast rozbudowywać do bardzo dużych systemów (gorsza skalowalność).

Ponadto brak wrażenia pojedynczego systemu jest czynnikiem znakomicie utrudniającym zarządzanie system klastrowym i jego pielęgnację. Obsługa systemów klastrowych wymaga często wysokokwalifikowanych specjalistów -- a tacy nie tylko dużo kosztują, ale dodatkowo trudno ich znaleźć.


Grzegorz Całkowski 2001-02-28