Klastry z Linuxa

Tworzenie klastrów linuxowych umożliwia uzyskanie niewielkim nakładem dużej mocy obliczeniowej.

Tworzenie klastrów linuxowych umożliwia uzyskanie niewielkim nakładem dużej mocy obliczeniowej.

Każde z rozwiązań klastrowych wymaga wspomagania sprzętowego do komunikacji między poszczególnymi węzłami oraz takiego dostrojenia systemu operacyjnego Linux (lub nakładki), aby zapewniać komunikację między aplikacjami. Na rynku istnieje wiele rozwiązań programowych do obsługi klastrów Linuxa - komercyjne i z publicznie dostępnym kodem źródłowym.

Połączenie sprzętowe

Najprostsze rozwiązanie klastrowe polega na połączeniu serwerów kartami Fast Ethernet i hubem. W większości zastosowań okaże się jednak, że opóźnienia przesyłania komunikatów między serwerami są zbyt duże. Dla szybkiej komunikacji lepsze są specjalizowane rozwiązania oferowane np. przez firmy Myricom lub Giganet oraz karty zgodne ze standardem IEEE 1596 Scalable Coherent Interface (SCI).

Myricom produkuje karty o szybkości transmisji do 1,28 Gb/s (160 MB/s). Na skrętce działają do 3 m (20 m z połową specyfikowanej szybkości); na światłowodzie jednomodowym - 10 km (100 m na światłowodzie wielomodowym). Karty firmy Giganet są zgodne ze specyfikacją Virtual Interface Architecture, promowaną przez Intela do tworzenia klastrów. Posługują się firmowym "nieroutowalnym" protokołem, a więc nie mogą działać w sieciach rozległych. Pracują z szybkością do 1 Gb/s (w jednym kierunku). Opóźnienie wynosi ok. 7 ľs.

Standard SCI jest oparty na topologii pierścieniowej (nie gwiaździstej jak w Ethernecie) i zapewnia działanie z szybkością do 400 MB/s (3,2 Gb/s) w każdym kierunku, przy opóźnieniu ok. 2,5 ľs. Bardziej wydajna jest topologia torusa - wiele pierścieni między serwerami. Ograniczeniem rozwiązań SCI jest wydajność gniazd PCI typowego serwera intelowskiego. Większość serwerów ma bowiem gniazda PCI o szybkości tylko 32 MHz przy szerokości 32 bitów, a więc zapewnia szybkość 133 MB/s (1 Gb/s). Jedynie droższe serwery mają gniazda PCI o szybkości 66 MHz i szerokości 64 bitów, są więc cztery razy wydajniejsze (ale karty sieciowe do nich są ok. 4 razy droższe).

Klastry do nauki

Klastry naukowe służą do rozwiązywania skomplikowanych problemów naukowych i technicznych - symulacji przepływów, obliczeń genetycznych, badań meteorologicznych. Dużą szybkość połączeń między serwerami zapewnia przejście na protokół firmowy z bezpośrednim dostępem do pamięci procesora. Obsługę komunikatów między węzłami klastra realizuje się najczęściej zgodnie z protokołem Messaging Passing Interface (MPI). Zawiera on zestaw funkcji API, pozwalających na dystrybucję kodu aplikacji na różne węzły klastra.

Naukowy system klastrowy Beowulf (www.beowulf.org) wspiera wiele uczelni. Jego zaletą jest dobre wykorzystanie mocy obliczeniowej węzłów klastra przy małym opóźnieniu komunikatów. W Beowulf zrealizowano protokoły MPI oraz Parallel Virtual Machine, dostarczono efektywne sterowniki do sieci, zmieniono strukturę zarządzania pamięcią Linuxa oraz zrealizowano usługi rozproszonej komunikacji między procesami (Distributed Interproces Communication - DIPC).

Klastrami służącymi przede wszystkim do równoważenia obciążenia są: Virtual Ser-ver Project (www.linuxvirtualserver.org) dostępny w ramach prac społeczności otwartego kodu Linux oraz komercyjny TurboLinux. Klaster o wysokiej dostępności jest realizowany przez społeczność open source (www.linux-ha.org); takie rozwiązanie prezentowała również firma TurboLinux we współpracy z SCO.

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200