Komputery ze współczesnym światem

Charakterystyka nowoczesnych klastrowych systemów obliczeniowych. Ocena konfiguracji klastrów

Technologie klastrowe od dawna są dostępne dla zwykłych organizacji. Było to możliwe dzięki zastosowaniu klastrów poziom wejścia niedrogie serwery firmy Intel, standardową komunikację i szeroko stosowane systemy operacyjne. Rozwiązania klastrowe na platformach Microsoft nastawione są przede wszystkim na zwalczanie błędów operatorskich, awarii sprzętu i oprogramowania. Rozwiązania klastrowe są skutecznym narzędziem rozwiązywania tych problemów.

Wraz z rozwojem technologii komputerowej dramatycznie wzrósł stopień jej integracji z procesami biznesowymi przedsiębiorstw i działalnością organizacji. Pojawił się problem gwałtownego wydłużania się czasu, w którym dostępne są zasoby obliczeniowe, a ma to coraz większe znaczenie. Niezawodność serwerów staje się jednym z kluczowych czynników pomyślnego działania firm z rozwiniętą infrastrukturą sieciową, jest to szczególnie ważne w przypadku dużych przedsiębiorstw, w których specjalne systemy wspierają procesy produkcyjne w czasie rzeczywistym, dla banków z rozbudowaną siecią oddziałów, czy centrów usług operator telefoniczny z wykorzystaniem systemu wspomagania decyzji. Wszystkie te firmy potrzebują serwerów, które działają nieprzerwanie i dostarczają informacji 24 godziny na dobę bez przerwy.

Koszt przestoju sprzętu dla przedsiębiorstwa stale rośnie, gdyż składa się z kosztów utraconych informacji, utraconych zysków, kosztów pomoc techniczna i naprawa, niezadowolenie klientów itp. Jak stworzyć niezawodny system i ile kosztuje rozwiązanie tego problemu? Istnieje szereg technik, które pozwalają obliczyć koszt minuty przestoju dla danego przedsiębiorstwa, a następnie na podstawie tej kalkulacji wybrać najbardziej akceptowalne rozwiązanie z najlepszym stosunkiem ceny do wydajności.

Istnieje wiele opcji i narzędzi do budowy niezawodnego systemu komputerowego. Macierze dyskowe RAID, nadmiarowe zasilacze np. „ubezpieczają” część wyposażenia systemu na wypadek awarii innych podobnych elementów systemu i pozwalają nie przerywać przetwarzania żądań informacji w przypadku awarii. Zasilacze awaryjne zapewnią działanie systemu w przypadku awarii zasilania. Wieloprocesorowe płyty główne zapewnią działanie serwera w przypadku awarii pojedynczego procesora. Jednak żadna z tych opcji nie uratuje, jeśli cały system komputerowy ulegnie awarii. I tu pojawia się klastrowanie.

Historycznie rozpowszechnione niegdyś systemy „hot” standby uważane są za pierwszy krok w kierunku tworzenia klastrów. Jeden lub dwa takie systemy, które są częścią sieci kilku serwerów, nie wykonują żadnej użytecznej pracy, ale są gotowe do pracy, gdy tylko któryś z głównych systemów ulegnie awarii. W ten sposób serwery dublują się w przypadku awarii lub awarii jednego z nich. Ale chciałbym, aby łącząc kilka komputerów, nie tylko powielały się nawzajem, ale także wykonywały inny pożyteczna praca rozkładając ciężar między sobą. W wielu przypadkach klastry najlepiej pasują do takich systemów.

Początkowo klastry były używane tylko do wydajnego przetwarzania i obsługi rozproszonych baz danych, zwłaszcza tam, gdzie wymagana jest zwiększona niezawodność. Później zaczęto ich używać w serwisie internetowym. Jednak spadek cen dla klastrów spowodował, że takie rozwiązania są coraz częściej wykorzystywane do innych potrzeb. Technologie klastrowe wreszcie stały się dostępne dla zwykłych organizacji — w szczególności dzięki wykorzystaniu tanich serwerów Intela, standardowych narzędzi komunikacyjnych i powszechnych systemów operacyjnych (OS) w klastrach klasy podstawowej.

Rozwiązania klastrowe oparte na platformach Microsoft nastawione są przede wszystkim na zwalczanie awarii sprzętu i oprogramowania (SW). Statystyka awarii takich systemów jest dobrze znana: tylko 22% z nich jest bezpośrednio spowodowanych awariami sprzętu, systemu operacyjnego, zasilania serwerów itp. Aby wyeliminować te czynniki, stosuje się różne technologie zwiększające odporność serwera na awarie (dyski redundantne i hot-swap, zasilacze, płyty w gniazdach PCI itp.). Jednak 78% pozostałych incydentów jest zwykle spowodowanych awariami aplikacji i błędami operatora. Rozwiązania klastrowe są skutecznym narzędziem do rozwiązania tego problemu.

Klastry pozwalają na zbudowanie unikalnej architektury o wystarczającej wydajności, odporności na awarie sprzętu i oprogramowania. Taki system jest łatwo skalowalny i aktualizowalny w uniwersalny sposób, oparty na standardowych komponentach i za rozsądną cenę, która jest znacznie niższa niż cena unikalnego komputera odpornego na awarie lub systemu masowo równoległego).

Termin „klaster” oznacza zarówno odporność na awarie, skalowalność, jak i łatwość zarządzania. Można również podać klasyczną definicję klastra: „klaster to równoległy lub rozproszony system składający się z kilku połączonych ze sobą komputerów i jednocześnie wykorzystywany jako pojedynczy, zunifikowany zasób komputerowy”. Klaster to stowarzyszenie kilku komputerów, które są zarządzane i używane jako pojedyncza jednostka na pewnym poziomie abstrakcji. Każdy węzeł klastra (węzłem jest zwykle komputer będący częścią klastra) ma własną kopię systemu operacyjnego. Przypomnijmy, że systemy z architekturami SMP i NUMA, które mają jedna współdzielona kopia systemu operacyjnego, nie można uznać za klastry. Węzłem klastra może być komputer jednoprocesorowy lub komputer wieloprocesorowy, aw ramach tego samego klastra komputery mogą mieć różne konfiguracje (różna liczba procesorów, różne ilości pamięci RAM i dysków). Węzły klastra są ze sobą połączone za pomocą konwencjonalnych połączeń sieciowych (Ethernet, FDDI, Fibre Channel) lub za pośrednictwem niestandardowe technologie specjalne. Takie połączenia wewnątrz klastra lub między węzłami umożliwiają węzłom komunikowanie się ze sobą niezależnie od zewnętrznego środowiska sieciowego. Poprzez kanały wewnątrzklastrowe węzły nie tylko wymieniają informacje, ale także kontrolować nawzajem swoją wydajność.

Istnieje również szersza definicja klastra: „klaster to system działający jako całość, gwarantujący wysoką niezawodność, posiadający scentralizowane zarządzanie wszystkimi zasobami i wspólny system plików, a ponadto zapewniający elastyczność konfiguracji i łatwość skalowania zasobów”.

Jak już wspomniano, głównym celem klastra jest zapewnienie wysokiego poziomu dostępności (inaczej zwanego poziomem dostępności – High Availability, HA), a także wysokiego stopnia skalowalności i łatwości administrowania w porównaniu do odmiennego zestawu komputerów czy serwerów. Zwiększenie dostępności systemu zapewnia działanie krytycznych aplikacji tak długo, jak to możliwe. Aplikacje krytyczne obejmują wszystkie aplikacje, które bezpośrednio wpływają na zdolność firmy do osiągania zysków, świadczenia usług lub wykonywania innych ważnych funkcji. Co do zasady wykorzystanie klastra daje pewność, że w przypadku, gdy serwer lub jakakolwiek aplikacja przestanie normalnie funkcjonować, inny serwer w klastrze nadal będzie wykonywał swoje zadania , przejąć rolę uszkodzonego serwera (lub uruchomić kopię uszkodzonej aplikacji) w celu zminimalizowania przestojów użytkowników z powodu awarii systemu.

Gotowość jest zwykle mierzona jako procent czasu spędzonego przez system w dobrym stanie, w całkowitym czasie. Różne aplikacje wymagają różnej dostępności ze strony systemu komputerowego. Dostępność systemu można zwiększyć na różne sposoby. Wyboru metody dokonuje się w zależności od kosztu systemu i kosztu przestoju dla przedsiębiorstwa. Istnieją dość tanie rozwiązania, które skupiają się głównie na skróceniu czasu przestoju po wystąpieniu awarii. Droższe zapewniają normalne funkcjonowanie systemu i obsługują użytkowników nawet w przypadku awarii jednego lub kilku jego elementów. Wraz ze wzrostem dostępności systemu jego cena rośnie nieliniowo. Podobnie koszt jego utrzymania rośnie nieliniowo. Systemy o stosunkowo niskim koszcie mają niewystarczająco wysoki poziom odporności na awarie - nie więcej niż 99% (oznacza to, że około czterech dni w roku struktura informacyjna przedsiębiorstwa będzie niesprawna). To niewiele, jeśli obejmuje to planowane przestoje związane z konserwacją zapobiegawczą lub rekonfiguracją.

Wysoki stopień dyspozycyjności (gotowości) oznacza rozwiązanie, które jest w stanie kontynuować działanie lub przywracać działanie po wystąpieniu większości błędów bez interwencji operatora. Najbardziej zaawansowane (i naturalnie drogie) rozwiązania odporne na awarie są w stanie zapewnić niezawodność systemu na poziomie 99,999% (czyli nie więcej niż 5 minut przestojów rocznie).

Między zjednoczonymi systemy serwerowe z lustrzanymi podsystemami dyskowymi (lub macierzami dyskowymi RAID) i systemami odpornymi na awarie, rozwiązania klastrowe zapewniają najlepsze rozwiązanie. Pod względem dostępności zbliżają się do systemów odpornych na uszkodzenia po nieproporcjonalnie niższych kosztach. Rozwiązania te są idealne do zastosowań, w których tolerowane są tylko bardzo niewielkie nieplanowane przestoje.

W przypadku awarii systemu klastrowego odzyskiwanie jest zarządzane przez specjalne oprogramowanie i sprzęt. Oprogramowanie klastrowe pozwala automatycznie wykryć pojedynczą awarię sprzętu lub oprogramowania, wyizolować ją i przywrócić system. Specjalnie zaprojektowane procedury są w stanie wybrać najszybszą metodę odzyskiwania i zapewnić, że usługi będą działać w możliwie najkrótszym czasie. Za pomocą wbudowanego narzędzia programistycznego i interfejsu programistycznego można tworzyć niestandardowe programy, które wykrywają, izolują i naprawiają awarie występujące w aplikacjach tworzonych przez użytkowników.

Ważną zaletą klastrowania jest skalowalność. Klaster pozwala elastycznie zwiększać moc obliczeniową systemu poprzez dodawanie do niego nowych węzłów i bez przerywania pracy użytkowników. Nowoczesne rozwiązania klastrowe zapewniają automatyczne rozłożenie obciążenia pomiędzy węzłami klastra, dzięki czemu jedna aplikacja może działać na kilku serwerach i korzystać z ich zasobów obliczeniowych. Typowe aplikacje działające w klastrach to:

  • Baza danych;
  • systemy zarządzania zasobami przedsiębiorstwa (ERP);
  • systemy przesyłania wiadomości i poczty;
  • środki przetwarzania transakcji za pośrednictwem sieci i serwerów sieciowych;
  • systemy zarządzania relacjami z klientami (CRM);
  • systemy udostępniania plików i drukowania.

Tak więc klaster łączy kilka połączonych ze sobą serwerów specjalny kanał komunikacji, często nazywana siecią systemową. Węzły klastra monitorują wzajemnie swoją kondycję i wymieniają określone informacje, takie jak konfiguracja klastra, a także przesyłają dane między sobą dyski współdzielone i koordynować ich wykorzystanie.

Monitorowanie stanu zdrowia przeprowadzone przez specjalny sygnał bicia serca("puls"). Węzły klastra przekazują sobie ten sygnał, aby potwierdzić swoje normalne funkcjonowanie. W małych klastrach sygnały pulsu są przesyłane tymi samymi kanałami co dane, w dużych systemach klastrów są do tego przydzielane specjalne linie. Oprogramowanie klastra musi odbierać sygnał „impulsowy” z każdego serwera w określonych odstępach czasu – jeśli go nie otrzyma, serwer jest uznawany za bezczynny, a klaster jest automatycznie rekonfigurowany. Konflikty między serwerami są również automatycznie rozwiązywane, gdy podczas uruchamiania klastra pojawia się problem z wyborem serwera „wiodącego” lub grupy serwerów, których zadaniem jest utworzenie nowego klastra.

Do zorganizowania klastrowego kanału komunikacyjnego można wykorzystać konwencjonalne technologie sieciowe (Ethernet, Token Ring, FDDI, ATM), współdzielone magistrale I/O (SCSI lub PCI), szybki interfejs Fibre Channel lub wyspecjalizowane technologie CI (Computer Interconnect), DSSI (Digital Storage System Interconnect) lub Memory Channel.

Interfejs DSSI jest przeznaczony do uzyskiwania dostępu do napędów i do wzajemnej interakcji systemów. Jest podobny do protokołu wielu hostów SCSI-2, ale ma większą wydajność i możliwość organizowania interakcji z komputerem. Klastry DSSI obsługują niezawodność systemu, udostępnianie zasobów, rozproszony system plików i przejrzystość. Z punktu widzenia zarządzania i bezpieczeństwa klaster DSSI wydaje się być pojedynczą domeną.

Interfejs CI - podwójna magistrala szeregowa z szybkością wymiany do 70 Mb/s. Jest on podłączony do systemu I/O komputera za pośrednictwem inteligentnego kontrolera, który może obsługiwać zarówno pracę z podwójną, jak i z pojedynczą magistralą, w zależności od wymagań bezpieczeństwa dostępu konkretnego komputera. Wszystkie linie komunikacyjne interfejsu CI są z jednej strony podłączone do integratora CI - specjalnego urządzenia monitorującego połączenia z węzłami i konfiguracjami klastrów.

Technologia Memory Channel pozwala na stworzenie wysoce wydajnego środowiska komunikacyjnego, które zapewnia szybkie (do 100 MB/s) przesyłanie wiadomości pomiędzy serwerami w klastrze.

Wymagania dotyczące szybkości kanału komunikacyjnego zależą od stopnia integracji węzłów klastra oraz charakteru aplikacji. Jeśli np. aplikacje w różnych węzłach nie wchodzą ze sobą w interakcję i nie uzyskują jednocześnie dostępu do dysków, wówczas węzły wymieniają między sobą jedynie komunikaty kontrolne potwierdzające ich działanie, a także informacje o zmianie konfiguracji klastra, tj. dodaniu nowych węzłów, redystrybucji woluminów dyskowych itp. Ten rodzaj wymiany nie wymaga znacznych zasobów interkonektu i równie dobrze może być zaspokojony prostym 10-megabitowym kanałem Ethernet.

Istnieje ogromna liczba rzeczywistych konfiguracji klastrów. Istnieją rozwiązania będące połączeniem kilku klastrów, a nawet z dodatkowymi urządzeniami. Każda z opcji spełnia wymagania odpowiednich różnych aplikacji i oczywiście różni się zarówno kosztem, jak i złożonością wdrożenia. Powszechnie stosowane są topologie klastrów, takie jak gwiazda, pierścień, N-N itp. Jednak bez względu na to, jak złożony i egzotyczny jest klaster, można go zakwalifikować według dwóch kryteriów:

Organizacja pamięć o swobodnym dostępie węzły klastra,

Stopień dostępności urządzeń I/O, przede wszystkim dysków.

Jeśli chodzi o pamięć RAM, istnieją dwie opcje: albo wszystkie węzły klastra mają niezależną pamięć RAM, albo mają wspólną pamięć współdzieloną. Dostępność klastrowych urządzeń I/O determinowana jest głównie możliwością wykorzystania pamięci zewnętrznej z dyskami współdzielonymi, co oznacza, że ​​każdy węzeł ma transparentny dostęp do systemu plików współdzielonej przestrzeni dyskowej. Oprócz podsystemu dysku współdzielonego, węzły klastra mogą posiadać dyski lokalne, ale w tym przypadku są one wykorzystywane głównie do uruchamiania systemu operacyjnego na węźle. Taki klaster musi mieć specjalny podsystem zwany Distributed Lock Manager (DLM), aby rozwiązywać konflikty podczas jednoczesnego zapisywania do plików z różnych węzłów klastra. W systemach bez DLM aplikacje nie mogą uzyskiwać równoległego dostępu do tych samych danych, a całe miejsce na dysku, jeśli takie istnieje, jest przydzielane w danym momencie jednemu z węzłów.

W klastrach, które nie obsługują współbieżnego dostępu do pamięci zewnętrznej, wszystkie węzły są w pełni samodzielnymi serwerami. W przypadku dwóch węzłów dostęp do pamięci współdzielonej na dyskach odbywa się za pomocą współdzielonej magistrali I/O (Rysunek 1). Dla każdego węzła taka magistrala kończy się macierzą dyskową. W danym momencie tylko jeden węzeł posiada współużytkowany system plików. W przypadku awarii jednego z serwerów kontrola nad magistralą i udostępnionymi dyskami zostaje przeniesiona do innego węzła.

Ryż. 1. Budowanie klastra dwóch węzłów.

W przypadku firm posiadających zintegrowany system informatyczny, w którym tylko część zasobów jest wykorzystywana do realizacji aplikacji krytycznych pod względem niezawodności, można zastosować schemat budowy klastra „active-standby” (rys. 2). W najprostszym przypadku taki system zawiera aktywny serwer, który wykonuje najważniejsze aplikacje, oraz maszynę rezerwową, która wykonuje mniej krytyczne zadania. Gdy serwer aktywny ulegnie awarii, wszystkie jego aplikacje automatycznie przechodzą w stan gotowości, w którym przestają działać aplikacje o najniższym priorytecie. Taka konfiguracja eliminuje spowolnienie krytycznych aplikacji - użytkownicy po prostu nie zauważą żadnych zmian (specjalnym przypadkiem tego schematu jest konfiguracja "passive - standby", w której serwer standby nie przenosi żadnego obciążenia i jest w trybie standby).

Ryż. 2. Budowa klastra typu „active – standby”.

Istnieje również konfiguracja „aktywne – aktywne”, co oznacza, że ​​wszystkie serwery w klastrze wykonują poszczególne aplikacje o tym samym wysokim priorytecie, zasoby obliczeniowe serwera zapasowego wykorzystywane są w codziennej pracy. Zaletą takiego podejścia jest to, że użytkownik ma do dyspozycji system o wysokiej dostępności (serwer jest zduplikowany) i jednocześnie może korzystać ze wszystkich zasobów obliczeniowych klastra. Zmniejsza to całkowity koszt systemu na jednostkę mocy obliczeniowej. Aplikacje przełączają się awaryjnie z niedziałającej maszyny na pozostałe, co oczywiście wpływa na ogólną wydajność. Klastry typu aktywny-aktywny mogą istnieć tylko jako dedykowane systemy, które nie mogą wykonywać zadań o niskim priorytecie, takich jak obsługa biura. Ponadto, budując klastry z aktywnym serwerem zapasowym, możliwe jest posiadanie w pełni redundantnych serwerów z własnymi oddzielnymi dyskami. Stwarza to konieczność ciągłego kopiowania danych z serwera podstawowego na serwer zapasowy – daje to pewność, że w przypadku awarii serwer zapasowy będzie posiadał prawidłowe dane. Ponieważ dane są całkowicie zduplikowane, klient może mieć dostęp do dowolnego serwera, co pozwala nam mówić o równoważeniu obciążenia w takim klastrze. Dodatkowo węzły takiego klastra można rozdzielić geograficznie, co czyni konfigurację odporną na awarie. Takie podejście zapewnia bardzo wysoki poziom dostępności, ale ma również następujące wady:

Konieczność ciągłego kopiowania danych (oznacza to, że część zasobów obliczeniowych i sieciowych będzie stale wydatkowana na synchronizację);

Nawet najszybszy interfejs sieciowy pomiędzy serwerami w ramach klastra nie wyklucza opóźnień w przekazywaniu informacji, co może ostatecznie doprowadzić do desynchronizacji, jeśli jeden serwer ulegnie awarii i nie wszystkie transakcje dokonane na jego dysku zostaną odzwierciedlone na dysku drugiego serwera.

W klastrze brak udostępniania zasobów(rys. 3) serwery są podłączone do jednej macierzy dyskowej, ale każdy z nich zarządza swój zestaw płyt. W przypadku awarii jednego z węzłów, kontrolę nad jego dyskami przejmuje drugi serwer. Ta metoda eliminuje potrzebę ciągłej synchronizacji danych między serwerami, a tym samym uwalnia dodatkowe zasoby obliczeniowe i sieciowe. Ale w tej konfiguracji dyski stają się pojedynczym punktem awarii, dlatego w tym przypadku zwykle stosuje się dyski z technologią RAID.

Ryż. 3. Budowa klastra bez współdzielonych zasobów.

W systemach z pełnym udostępnianiem zasobów(Rysunek 4) wszystkie serwery w klastrze mają jednoczesny dostęp do tego samego dysku. Takie podejście wymaga starannie zaprojektowanego oprogramowania, aby zapewnić wielokrotny dostęp do tego samego nośnika. Tak jak w poprzednim przypadku, tutaj dyski mogą być pojedynczym punktem awarii, tak i tutaj użycie macierzy RAID jest pożądane. W tej opcji nie ma potrzeby ciągłej synchronizacji danych pomiędzy serwerami. Uwalnia to dodatkowe zasoby obliczeniowe i sieciowe.

Ryż. 4. Budowa klastra z udostępnionymi zasobami.

Wszystkie programy realizowane przez klaster można warunkowo podzielić na kilka kategorii. Na dowolnym węźle klastra można uruchomić prawie każdy zwykły program. Co więcej, ten sam program może być uruchamiany na różnych węzłach klastra. Jednak każda kopia programu musi korzystać z własnego zasobu (systemu plików), ponieważ system plików przypisany do określonego węzła. Oprócz konwencjonalnego oprogramowania dla klastrów istnieją tak zwane prawdziwe aplikacje klastrowe. Takie programy są niejako rozproszone między węzłami klastra, a interakcja jest zorganizowana między częściami programu działającymi na różnych węzłach. Prawdziwe programy klastrowe umożliwiają zrównoleglenie obciążenia klastra. Pozycję pośrednią zajmują aplikacje przeznaczone do pracy w klastrze. W przeciwieństwie do prawdziwych programów klastrowych, nie używają jawnego paralelizmu; w rzeczywistości program jest zwyczajny, ale może korzystać z niektórych funkcji klastra, związanych przede wszystkim z migracją zasobów.

Wszystkie rozwiązania klastrowe oparte na platformach Microsoft nastawione są przede wszystkim na zwalczanie awarii sprzętu i oprogramowania. Specjalne oprogramowanie jest tym, co łączy serwery w klastry. Wiele nowoczesnych aplikacji korporacyjnych i systemów operacyjnych ma wbudowaną obsługę klastrów, ale tylko specjalne oprogramowanie pośrednie może zagwarantować sprawne funkcjonowanie i przejrzystość klastra. Odpowiada:

Za skoordynowaną pracę wszystkich serwerów;

W celu rozwiązania konfliktów pojawiających się w systemie,

Zapewnia tworzenie klastrów i rekonfigurację po awariach;

Zapewnia rozkład obciążenia na węzły klastra;

Zapewnia przywracanie uszkodzonych aplikacji serwerowych na dostępnych węzłach (przełączanie awaryjne - procedura migracji);

Monitoruje stan środowisk sprzętowych i programowych;

Pozwala na uruchomienie dowolnej aplikacji na klastrze bez wcześniejszej adaptacji do nowej architektury sprzętowej.

Oprogramowanie klastrowe ma zwykle kilka wstępnie zdefiniowanych scenariuszy odzyskiwania systemu i może również zapewniać administratorowi możliwość dostosowania takich scenariuszy. Failover może być obsługiwany zarówno dla hosta jako całości, jak i dla poszczególnych jego komponentów - aplikacji, woluminów dyskowych itp. Funkcja ta jest automatycznie inicjowana w przypadku awarii systemu, a także może zostać uruchomiona przez administratora, jeśli np. potrzebuje wyłączyć jeden z węzłów do rekonfiguracji.

Rozwiązania klastrowe w nowoczesnych systemach obliczeniowych oprócz zwiększonej niezawodności i szybkości podlegają kilku dodatkowym wymaganiom:

Powinny zapewniać jedną zewnętrzną reprezentację systemu,

wysoka prędkość Kopia rezerwowa i odzyskiwania danych

Równoległy dostęp do bazy danych,

Posiadać umiejętność przenoszenia obciążenia z węzłów awaryjnych na sprawne,

Mieć środki do ustanowienia wysokiego poziomu gotowości, zagwarantować powrót do zdrowia po katastrofie.

Oczywiście korzystanie z kilku węzłów klastra uzyskujących dostęp do tych samych danych w tym samym czasie zwiększa złożoność procedury tworzenia kopii zapasowych i późniejszego odtwarzania informacji. Przeniesienie obciążenia z uszkodzonego węzła do sprawnego jest głównym mechanizmem zapewniającym nieprzerwane działanie aplikacji pod warunkiem optymalnego wykorzystania zasobów klastra. Dla efektywnego wspólnego działania systemów klastrowych i DBMS system musi posiadać rozproszony menedżer blokad A, który zapewnia spójną zmianę bazy danych, gdy nadejdzie sekwencja żądań z różnych węzłów klastra. Konfigurowanie konfiguracji klastra przy jednoczesnym zapewnieniu wysokiej dostępności aplikacji jest procesem dość skomplikowanym (wynika to ze złożoności ustalania reguł, według których określone aplikacje są przenoszone z uszkodzonych węzłów klastra do zdrowych). System klastrowy musi umożliwiać łatwe przenoszenie aplikacji z jednego węzła klastra do drugiego, a także przywracanie awaryjnej aplikacji na innym węźle. Użytkownik systemu nie musi wiedzieć, że pracuje z systemem klastrowym, dlatego dla użytkowników klaster powinien wyglądać jak pojedynczy komputer. Musi mieć jeden system plików dla wszystkich węzłów, jeden adres IP i jeden rdzeń systemu.

Najbardziej niezawodne są klastry rozproszone. Nawet najbardziej niezawodne systemy mogą zawieść, jeśli na przykład dojdzie do pożaru, trzęsienia ziemi, powodzi lub ataku terrorystycznego. Przy globalnej skali współczesnego biznesu takie zdarzenia nie powinny mu zaszkodzić, więc klaster może (lub powinien) być rozproszony.

Wszystkie wiodące firmy komputerowe (Compaq, Dell, Hewlett-Packard, IBM, Sun Microsystems) oferują własne rozwiązania klastrowe. Wiodącą pozycję w segmencie klastrów UNIX zajmuje IBM, który aktywnie promuje swoją bazę danych DB2, Sun aktywnie promuje swoje rozwiązanie Sun Cluster. Jednym z najaktywniejszych graczy (zarówno pod względem liczby certyfikowanych platform dla klastrów, jak i różnorodności samych rozwiązań klastrowych) jest firma Compaq Corporation, która oferowała niemal kompletną gamę klastrów na platformach Windows dla działu lub oddziału zdalnego, dla aplikacji infrastruktury korporacyjnej oraz dla dużych centrów przetwarzania danych. Rozwiązanie klastrowe Compaq TrueCluster Server w maksymalnym stopniu zaspokaja współczesne wymagania firm w zakresie takiej technologii. Nowe oprogramowanie pozwala np. zainstalować bazę danych na kilku połączonych ze sobą serwerach. Potrzeba takiej konsolidacji pojawia się np. wtedy, gdy potrzebujesz większej pojemności lub chcesz skrócić czas przestoju w przypadku awarii serwera, co osiąga się poprzez przeniesienie operacji na inny serwer w klastrze. Pozwala to na znaczne obniżenie kosztów platform sprzętowych, dzięki czemu ekonomicznie uzasadnione jest budowanie klastrów niedrogich serwerów o standardowej architekturze nawet dla stosunkowo małych przedsiębiorstw. Compaq i Oracle aktywnie współpracują w zakresie technologii i biznesu, aby stworzyć bardziej skalowalną, łatwiejszą w zarządzaniu, niezawodną i ekonomiczną klastrową platformę bazodanową. Ponadto firma Oracle nawiązała współpracę z firmami Dell i Sun Microsystems, aby zaoferować klientom wstępnie skonfigurowane i przetestowane systemy, na których działa oprogramowanie klastrowe firmy Oracle. Na przykład firma Dell dostarcza oprogramowanie klastrowe na przetestowanych serwerach z systemami Windows i Linux.

Klastry odgrywają jedną z kluczowych ról na rynku systemów korporacyjnych. W wielu przypadkach rozwiązania klastrowe po prostu nie mają realnej alternatywy. Realna wysoka dostępność i szeroka skalowalność klastrowych systemów informatycznych pozwala im z powodzeniem rozwiązywać coraz bardziej złożone zadania, a przy rosnących potrzebach łatwo zwiększyć moc obliczeniową platformy przy akceptowalnym dla zwykłych przedsiębiorstw poziomie kosztów.

Jednym z najnowocześniejszych kierunków w dziedzinie tworzenia systemów obliczeniowych jest klastrowanie. Pod względem wydajności i dostępności klastrowanie jest alternatywą dla symetrycznych systemów wieloprocesorowych.

Jak już zauważyliśmy, jest to klaster obliczeniowy M1MR- system (multikomputer) składający się z wielu pojedynczych komputerów (węzłów klastra obliczeniowego) połączonych pojedynczym środowiskiem komunikacyjnym.

Węzeł klastra może być jednoprocesorową maszyną wirtualną lub maszyną wirtualną tego typu SMP Lub MRR. Każdy węzeł może funkcjonować niezależnie i niezależnie od klastra.

Każdy węzeł ma własną lokalną pamięć RAM. Jednocześnie z reguły nie ma wspólnej fizycznej pamięci RAM dla węzłów. Środowisko komunikacyjne klastrów obliczeniowych zwykle umożliwia węzłom interakcję ze sobą tylko poprzez przekazywanie komunikatów. Ogólnie rzecz biorąc, klaster obliczeniowy powinien być traktowany jako pojedynczy system sprzętu i oprogramowania z jednym systemem komunikacji, jednym centrum sterowania i planowaniem obciążenia.

Architektura przetwarzania klastrowego sprowadza się do połączenia kilku węzłów w szybką sieć. Wraz z terminem „przetwarzanie klastrowe” często używane są takie nazwy, jak klaster stacji roboczych, hiperkomputer, współbieżne przetwarzanie sieciowe.

Klastry mają dwa zadania:

  • osiągnąć wysoką moc obliczeniową;
  • zapewnić zwiększoną niezawodność samolotów.

Pierwszy klaster komercyjny został stworzony przez korporację DEC na początku lat 80. ostatni wiek. Jako węzły klastrów mogą być użyte zarówno identyczne VS (klastry jednorodne), jak i różne (klastry heterogeniczne). Ze względu na swoją architekturę klastrowana sieć WAN jest luźno powiązanym systemem.

Korzyści osiągnięte dzięki klastrowaniu:

  • absolutna skalowalność. Możliwe jest tworzenie dużych klastrów, które pod względem mocy obliczeniowej przewyższają nawet najbardziej wydajne pojedyncze maszyny wirtualne. Klaster może zawierać kilkadziesiąt węzłów, z których każdy jest multiplekserem;
  • rozszerzalna skalowalność. Klaster jest zbudowany w taki sposób, że można go powiększać, dodając nowe węzły w małych porcjach;
  • duża dostępność. Ponieważ każdy węzeł klastra jest niezależną maszyną wirtualną lub VS, awaria jednego z węzłów nie prowadzi do utraty wydajności klastra. W wielu systemach odporność na awarie jest automatycznie obsługiwana przez oprogramowanie;
  • doskonały stosunek ceny do wydajności. Klaster o dowolnej wydajności można utworzyć, łącząc standardowo

VM, a jego koszt będzie niższy niż koszt pojedynczej maszyny wirtualnej

z równoważną mocą obliczeniową.

Na poziomie sprzęt komputerowy klaster to po prostu zbiór niezależnych systemów komputerowych połączonych siecią. Podczas łączenia maszyn w klaster prawie zawsze obsługiwana jest bezpośrednia komunikacja między maszynami. Rozwiązania mogą być proste, oparte na sprzęcie Ethernet lub złożone, z szybkimi sieciami o przepustowości setek megabajtów na sekundę (System /?5/6000 Sp 1VM, systemy cyfrowe oparte o Memory Channel, ServerNet korporacji Compaq).

Węzły klastra monitorują wzajemnie swój stan i wymieniają określone informacje. Monitorowanie stanu zdrowia odbywa się za pomocą specjalnego sygnału zwanego biciem serca („bicie serca”). Sygnał ten jest przesyłany między węzłami klastra w celu potwierdzenia ich normalnego funkcjonowania.

Integralną częścią klastra jest specjalistyczne oprogramowanie (oprogramowanie), któremu powierzono zadanie zapewnienia nieprzerwanej pracy w przypadku awarii jednego lub większej liczby węzłów. Takie oprogramowanie redystrybuuje obciążenie obliczeniowe w przypadku awarii jednego lub kilku węzłów klastra, a także przywraca obliczenia w przypadku awarii w węźle. Ponadto, jeśli w klastrze znajdują się dyski współdzielone, oprogramowanie klastra obsługuje pojedynczy system plików.

Węzły klastra obliczeniowego mogą działać w różnych systemach operacyjnych. Jednak najczęściej używane są standardowe systemy typu UNIX. Należy zauważyć, że z punktu widzenia rozwoju stosowanych programów równoległych nie ma zasadniczych różnic między jednorodnymi klastrami obliczeniowymi a MRR- systemy.

Klasyfikacja klastrów obliczeniowych według typu

procesory węzłowe

Klastry obliczeniowe są klasyfikowane przede wszystkim ze względu na charakter procesorów węzłowych (ryc. 9.10).

Węzłami klastra obliczeniowego są zwykle komputery osobiste, stacje robocze i serwery NMP. Jeśli węzeł klastra jest SMP- system, wówczas taki klaster obliczeniowy nazywany jest *SHR-cluster.

Jeśli komputery osobiste lub stacje robocze są używane jako węzły klastra obliczeniowego, to zwykle jest to system

Ryż. 9.10.

Sytuacja, w której podczas rozwiązywania zadania na klastrze kolejne zadania użytkownika są nadal wykonywane na węzłach tego klastra. W rezultacie względna wydajność węzłów klastra zmienia się losowo iw szerokim zakresie. Rozwiązaniem problemu byłoby napisanie samoadaptującego się programu użytkownika. Skuteczne rozwiązanie tego problemu wydaje się jednak bardzo problematyczne. Sytuacja pogarsza się, jeśli wśród komputerów węzłowych klastra obliczeniowego znajdują się serwery plików. Jednocześnie podczas rozwiązywania zadania w klastrze obciążenie środowiska komunikacyjnego może się znacznie różnić, co powoduje, że koszty komunikacji zadania są nieprzewidywalne.

Klasyfikacja klastrów obliczeniowych ze względu na jednorodność węzłów

Jak każdy system A//A//, klastry obliczeniowe są podzielone na jednorodne systemy klastrowe (homogeniczne klastry obliczeniowe) i heterogeniczne systemy klastrowe (heterogeniczne klastry obliczeniowe).

Zwykle mówiąc o klastrach obliczeniowych, mają na myśli jednorodne klastry obliczeniowe. Jednak podczas rozbudowy klastra często konieczne jest użycie procesorów różniących się nie tylko wydajnością, ale także architekturą od procesorów węzłowych klastra. Dlatego stopniowo jednorodny klaster obliczeniowy może stać się heterogeniczny. Ta heterogeniczność powoduje następujące problemy: różnice w wydajności procesorów komplikują zadanie rozdzielania pracy między procesory; różnica w architekturze procesorów wymaga przygotowania różnych plików wykonywalnych dla różnych węzłów, aw przypadku różnic w reprezentacji danych może również wymagać konwersji ich formatów przy przesyłaniu komunikatów pomiędzy węzłami.

Klasyfikacja klastrów obliczeniowych ze względu na funkcjonalność węzłów

Węzły klastra obliczeniowego mogą być w pełni funkcjonalnymi komputerami, które mogą również pracować jako niezależne jednostki. Wydajność takiego klastra jest zwykle niska.

Aby utworzyć klastry obliczeniowe o wysokiej wydajności, bloki systemowe komputerów węzłowych są znacznie prostsze niż w pierwszym przypadku (nie w pełni funkcjonalne). Nie ma potrzeby wyposażania komputerów węzłowych w karty graficzne, monitory, dyski i inne urządzenia peryferyjne. Urządzenia peryferyjne są instalowane tylko na jednym lub kilku komputerach sterujących (komputery NAUG). Takie podejście może znacznie obniżyć koszt systemu.

Przy klasyfikacji klastrów wykorzystuje się również szereg innych cech klasyfikacyjnych (ryc. 9.11).


Ryż. 9.11.

  • klasyfikacja według standardowych komponentów;
  • klasyfikacja według orientacji funkcjonalnej. Klasyfikacja klastrów obliczeniowych według standardowych komponentów. Z punktu widzenia standaryzacji komponentów można wyróżnić dwie klasy systemów klastrowych:
    • 1) klaster obliczeniowy jest zbudowany w całości ze standardowych komponentów;
    • 2) przy budowie klastra wykorzystywane są komponenty ekskluzywne lub rzadko używane.

Pierwszorzędne klastry obliczeniowe charakteryzują się niskimi cenami i łatwą konserwacją. Technologie klastrowe są szeroko stosowane jako sposób na tworzenie relatywnie tanich systemów klasy superkomputerów z komponentów produkowanych masowo.

Klastry drugiej klasy zapewniają bardzo wysoką wydajność, ale są oczywiście droższe.

Klasyfikacja klastrów obliczeniowych ze względu na ich orientację funkcjonalną. Z funkcjonalnego punktu widzenia systemy klastrowe można podzielić na:

Dla szybkich systemów klastrowych (wysoka wydajność) -

klastry NR;

Systemy klastrowe o wysokiej dostępności — NA-

klastry.

Klastry o dużej prędkości są wykorzystywane w obszarach wymagających znacznej mocy obliczeniowej. Klastry wysokiej dostępności stosowane są wszędzie tam, gdzie koszt ewentualnego przestoju przewyższa koszt poniesiony na zbudowanie systemu fault-tolerant.

Wydajność szybkiego klastra obliczeniowego jest oczywiście zależna od wydajności jego węzłów. Z drugiej strony wydajność klastra, podobnie jak każdego systemu z pamięcią rozproszoną, w dużym stopniu zależy od wydajności środowiska komunikacyjnego. Zazwyczaj przy budowie klastrów obliczeniowych stosuje się raczej tanie media komunikacyjne. Takie środowiska zapewniają wydajność o jeden lub dwa rzędy wielkości niższą niż wydajność mediów komunikacyjnych superkomputerów. Dlatego nie ma zbyt wielu problemów, które można rozwiązać wystarczająco wydajnie w dużych systemach klastrowych.

Wpływ wydajnościowy środowiska komunikacyjnego na ogólną wydajność systemu klastrowego zależy od charakteru wykonywanego zadania. Jeżeli zadanie wymaga częstej wymiany danych pomiędzy podzadaniami, które są rozwiązywane na różnych węzłach klastra obliczeniowego, wówczas należy zwrócić maksymalną uwagę na szybkość środowiska komunikacyjnego. Odpowiednio, im mniej części zadania współdziała ze sobą, tym mniej uwagi można poświęcić szybkości środowiska komunikacyjnego.

Opracowano wiele technologii łączenia komputerów w klastry.

Aby system obliczeniowy miał wysokie wskaźniki dostępności, konieczne jest, aby jego komponenty były jak najbardziej niezawodne, aby system był odporny na awarie, a także aby możliwa była „gorąca” wymiana komponentów (bez wyłączania systemu). Dzięki klastrowaniu w przypadku awarii jednego z komputerów w systemie zadania mogą być automatycznie (przez system operacyjny) redystrybuowane pomiędzy inne (serwisowalne) węzły klastra obliczeniowego. W ten sposób odporność klastra na awarie jest zapewniona przez duplikację wszystkich istotnych komponentów systemu obliczeniowego. Klastry dwuwęzłowe są obecnie najpopularniejszymi komercyjnymi systemami przełączania awaryjnego.

Wyróżnia się jeszcze jedną klasę klastrów obliczeniowych – sieci komputerowe (SIATKA),łączenie zasobów wielu klastrów, komputerów wieloprocesorowych i jednoprocesorowych, które mogą należeć do różnych organizacji i znajdować się w różnych krajach.

Rozwój równoległych programów dla sieci komputerowych staje się bardziej skomplikowany z powodu następujących problemów. Zasoby (liczba węzłów, ich architektura, wydajność) przydzielone do zadania określane są dopiero w momencie, gdy sieć przetwarza zlecenie wykonania tego zadania. W związku z tym programista nie ma możliwości opracowania programu pod konkretną konfigurację sieci komputerowej. Program musi być opracowany w taki sposób, aby mógł się dynamicznie (bez rekompilacji) dopasowywać do wybranej konfiguracji sieci. Ponadto do heterogeniczności środowiska komunikacyjnego dodaje się zmienność jego charakterystyk spowodowaną zmianami obciążenia sieci. W najlepszym przypadku program musi być zaprojektowany tak, aby uwzględniał tę heterogeniczność środowiska komunikacyjnego, co jest bardzo trudnym zadaniem. Jak zauważyliśmy powyżej, podobny problem występuje również w przypadku klastrów obliczeniowych zbudowanych w oparciu o komputery osobiste lub stacje robocze.

Wydajna wydajność klastrowych systemów obliczeniowych (rzeczywista wydajność aplikacji, KUKS) szacuje się na 5-15% ich szczytowej wydajności (Peak Reklamowana wydajność, PAPKA). Dla porównania: dla najlepszych systemów niskoprocesorowych z procesorów wektorowych stosunek ten szacuje się na 30-50%.

Klastrowe systemy obliczeniowe stały się kontynuacją rozwoju idei osadzonych w architekturze systemów MPA. Jeżeli w systemie MPA moduł procesora pełni rolę kompletnego węzła obliczeniowego, to w systemach klastrowych takie węzły obliczeniowe pełnią komercyjnie dostępne komputery. Rozwój technologii komunikacyjnych, a mianowicie pojawienie się szybkich prędkości sprzęt sieciowy oraz specjalne biblioteki oprogramowania, np. MPI (Message Passing Interface), które realizują mechanizm przekazywania komunikatów przez standardowe protokoły sieciowe, udostępniły publicznie technologie klastrowe. Obecnie powstaje wiele małych systemów klastrowych, łączących moc obliczeniową komputerów w laboratorium lub klasie.

Atrakcyjną cechą technologii klastrowych jest to, że w celu osiągnięcia wymaganej wydajności pozwalają one na budowanie systemów heterogenicznych, tj. łączenie komputerów różnych typów w jeden system obliczeniowy, od komputerów osobistych po potężne superkomputery. Technologie klastrowe są szeroko stosowane jako sposób tworzenia systemów klasy superkomputerowej z komponentów produkowanych masowo, co znacznie obniża koszt systemu obliczeniowego. W szczególności jednym z pierwszych w 1998 roku był projekt The COst Effective COmputing Array (COCOA), w ramach którego na bazie 25 dwuprocesorowych komputerów osobistych o łącznym koszcie około 100 000 USD stworzono system o wydajności odpowiadającej 48-procesorowemu Cray T3D o wartości kilku milionów dolarów.

Lyle Long, profesor inżynierii lotniczej na Penn State University, uważa, że ​​stosunkowo tanie klastrowe systemy obliczeniowe mogą z powodzeniem służyć jako alternatywa dla drogich superkomputerów w organizacjach naukowych. Pod jego kierownictwem na uczelni powstał klaster COCOA. W ramach tego projektu 25

stacje bazowe firmy DELL, każda z dwoma procesorami Pentium II/400 MHz, 512 MB RAM, 4 GB Dysk twardy Karta sieciowa SCSI i Fast Ethernet. Węzły są połączone za pomocą 24-portowego przełącznika Baynetworks 450T z jednym modułem rozszerzeń. Zainstalowane oprogramowanie obejmuje system operacyjny RedHat Linux, kompilatory Fortran 90 i HPF firmy Portland Group, darmową redystrybuowaną implementację MPI — Message Passing Interface Chameleon (MPICH) oraz system kolejkowania DQS.

W referacie przedstawionym na 38. Spotkaniu i Wystawie Nauki Kosmicznej Long opisuje równoległą wersję programu obliczeniowego do automatycznego równoważenia obciążenia, używanego do przewidywania poziomu hałasu helikoptera w różnych lokalizacjach. Dla porównania ten program obliczeniowy został uruchomiony na trzech różnych 48-procesorowych komputerach w celu obliczenia szumu w 512 punktach. Obliczenia trwały 177 sekund w systemie Cray T3E, 95 sekund w systemie SGI Origin2000 i 127 sekund w klastrze COCOA. Tym samym klastry są bardzo wydajną platformą obliczeniową dla problemów tej klasy.

Przewagą systemów klastrowych nad superkomputerami jest to, że ich właściciele nie muszą dzielić czasu procesora z innymi użytkownikami, jak ma to miejsce w dużych centrach superkomputerowych. W szczególności COCOA zapewnia ponad 400 tysięcy godzin czasu procesora rocznie, podczas gdy w centrach superkomputerowych uzyskanie 50 tysięcy godzin może być trudne.

Oczywiście nie ma potrzeby mówić o pełnej równoważności tych systemów. Jak wiadomo, wydajność systemów z pamięcią rozproszoną jest bardzo zależna od wydajności środowiska przełączającego, które można scharakteryzować dwoma parametrami: latency – czas opóźnienia przy wysyłaniu wiadomości oraz przepustowość – szybkość przesyłania informacji. Przykładowo dla komputera Cray T3D parametry te wynoszą odpowiednio 1 µs i 480 Mb/s, a dla klastra, w którym jako medium przełączające wykorzystywana jest sieć Fast Ethernet, parametry te wynoszą 100 µs i 10 Mb/s. To częściowo wyjaśnia bardzo wysoki koszt superkomputerów. Przy takich parametrach, jak rozważany klaster, nie ma tak wielu zadań, które można skutecznie rozwiązać na wystarczająco dużej liczbie procesorów.

Na podstawie powyższego podamy definicję: klaster to połączony zestaw pełnoprawnych komputerów wykorzystywanych jako pojedynczy zasób obliczeniowy. Zarówno te same (klastry jednorodne), jak i różne (klastry heterogeniczne) mogą być używane jako węzły klastrów. maszyny obliczeniowe. Ze względu na swoją architekturę klastrowy system obliczeniowy jest luźno powiązany. Klastry są zwykle tworzone przy użyciu prostych 1-procesorowych komputerów osobistych lub 2- lub 4-procesorowych serwerów SMP. W tym przypadku nie nakłada się żadnych ograniczeń na skład i architekturę węzłów. Każdy węzeł może obsługiwać własny system operacyjny. Najczęściej stosowana standardowa obsługa systemy linuksowe, FreeBSD, Solaris, Tru64 Unix, Windows NT.

W literaturze zwraca się uwagę na cztery korzyści osiągnięte dzięki klastrowaniu systemu komputerowego:

absolutna skalowalność;

skalowalna skalowalność;

duża dostępność;

stosunek ceny do wydajności.

Wyjaśnijmy każdą z powyższych cech klastrowego systemu obliczeniowego.

Nieruchomość absolutna skalowalność oznacza, że ​​możliwe jest tworzenie dużych klastrów, które przewyższają mocą obliczeniową nawet najbardziej wydajne pojedyncze komputery. Klaster może zawierać dziesiątki węzłów, z których każdy jest wieloprocesorem.

Możliwość układania w stos właściwości skalowalności oznacza, że ​​klaster można powiększać, dodając nowe węzły w małych porcjach. W ten sposób użytkownik może zacząć od małego systemu, rozszerzając go w razie potrzeby.

Ponieważ każdy węzeł klastra jest niezależnym komputerem lub systemem, awaria jednego z węzłów nie prowadzi do utraty wydajności klastra. W wielu systemach odporność na błędy jest automatycznie obsługiwana przez oprogramowanie.

I wreszcie systemy klastrowe zapewniają to, co jest nieosiągalne dla superkomputerów. stosunek ceny do jakości. Klastry o dowolnej wydajności można tworzyć przy użyciu standardowych „cegiełek”, przy czym koszt klastra będzie niższy niż

nocny komputer o równoważnej mocy obliczeniowej.

Zatem na poziomie sprzętowym klaster jest zbiorem niezależnych systemów komputerowych połączonych siecią. Rozwiązania mogą być proste, oparte na sprzęcie Ethernet, lub złożone, z szybkimi sieciami o przepustowości setek megabajtów na sekundę.

Integralną częścią klastra jest specjalistyczne oprogramowanie, którego zadaniem jest utrzymywanie obliczeń w przypadku awarii jednego lub kilku węzłów. Takie oprogramowanie redystrybuuje obciążenie obliczeniowe w przypadku awarii jednego lub kilku węzłów klastra, a także przywraca obliczenia w przypadku awarii w węźle. Ponadto, jeśli w klastrze znajdują się dyski współdzielone, oprogramowanie klastra obsługuje pojedynczy system plików.

Klasyfikacja architektur systemów klastrowych

W literaturze opisano różne sposoby klasyfikacji systemów klastrowych. Najprostsza klasyfikacja opiera się na sposobie wykorzystania macierzy dyskowych: razem lub osobno.

na ryc. Na rysunkach 5.5.1 i 5.5.2 przedstawiono struktury klastrów dwóch węzłów, których koordynację zapewnia szybkie łącze służące do przesyłania komunikatów. Może to być sieć lokalna, z której korzystają również komputery spoza klastra lub linia dedykowana. W przypadku łącza dzierżawionego jeden lub więcej węzłów klastra będzie miało dostęp do łącza lokalnego lub sieć globalna, który zapewnia komunikację między klastrem serwerów a zdalnymi systemami klienckimi.

Różnica pomiędzy prezentowanymi klastrami polega na tym, że w przypadku sieci lokalnej węzły wykorzystują lokalne macierze dyskowe, a w przypadku łącza dzierżawionego węzły współdzielą jedną redundantną macierz niezależnych dysków twardych lub tzw. RAID (Redundant Array of Independent Disks). RAID składa się z kilku dysków kontrolowanych przez kontroler, połączonych ze sobą szybkimi kanałami i postrzeganych przez system zewnętrzny jako jedna całość. W zależności od rodzaju zastosowanej macierzy, można zapewnić różne stopnie odporności na uszkodzenia i wydajności.

procesor

procesor

wysoka prędkość

procesor

procesor

Autostrada

Urządzenie

Urządzenie

Urządzenie

Urządzenie

we/wy

we/wy

we/wy

we/wy

Dysk

Dysk

Ryż. 5.5.1. Konfiguracja klastra bez udostępnionych dysków

Dysk

Urządzenie

Urządzenie

procesor

procesor

we/wy

we/wy

procesor

procesor

Urządzenie

Urządzenie

Urządzenie

Urządzenie

we/wy

we/wy

we/wy

we/wy

Dysk

wysoka prędkość

Dysk

Autostrada

Ryż. 5.5.2. Konfiguracja klastra z udostępnionymi dyskami

Rozważ najpopularniejsze typy macierzy dyskowych

RAID0 (striping - striping) - macierz dyskowa złożona z dwóch lub więcej dysków twardych bez nadmiarowości. Informacje są dzielone na bloki danych i zapisywane na obu (kilku) dyskach jednocześnie. Zaletą jest znaczny wzrost wydajności. Wadą jest to, że niezawodność RAID0 jest oczywiście niższa niż niezawodność któregokolwiek z dysków z osobna i maleje wraz ze wzrostem liczby dysków wchodzących w skład RAID0, ponieważ awaria któregokolwiek z dysków prowadzi do niesprawności całej macierzy.

RAID1 (mirroring - mirroring) - macierz składająca się z co najmniej dwóch dysków. Zaletami są akceptowalna prędkość zapisu i wzrost prędkości odczytu przy równoległych zapytaniach, a także wysoka niezawodność: działa tak długo, jak działa przynajmniej jeden dysk w macierzy. Prawdopodobieństwo awarii dwóch dysków jednocześnie jest równe iloczynowi prawdopodobieństw awarii każdego dysku. W praktyce, jeśli jeden z dysków ulegnie awarii, należy podjąć pilne działania: ponownie przywrócić redundancję. Do tego z dowolnym Poziom RAID(oprócz zera) zalecają używanie gorących części zapasowych. Zaletą tego podejścia jest utrzymanie stałej dostępności. Wadą jest to, że trzeba zapłacić koszt dwóch dysków twardych za użyteczną pojemność jednego dysku twardego.

RAID10 to lustrzana macierz, która zapisuje dane sekwencyjnie na wielu dyskach, podobnie jak RAID0. Ta architektura to macierz RAID0, której segmenty to macierze RAID1 zamiast pojedynczych dysków. W związku z tym tablica tego poziomu musi zawierać co najmniej cztery dyski. RAID10 łączy wysoką odporność na uszkodzenia i wydajność.

Pełniejszy obraz klastrowych systemów obliczeniowych daje klasyfikacja klastrów według stosowanych metod grupowania, które określają główne cechy funkcjonalne systemy:

tworzenie klastrów z pasywną redundancją;

klastrowanie z aktywną redundancją;

niezależne serwery;

serwery z podłączeniem do wszystkich dysków;

serwery z dyskami współdzielonymi.

Redundantne grupowanie jest najstarszą i najbardziej wszechstronną metodą. Jeden z serwerów przejmuje całe obciążenie obliczeniowe, podczas gdy drugi pozostaje nieaktywny, ale gotowy do przejęcia obliczeń w przypadku awarii serwera głównego. Serwer aktywny (lub podstawowy) okresowo wysyła komunikat pulsu do serwera zapasowego (pomocniczego). W przypadku braku komunikatów pulsu, co jest uważane za awarię serwera głównego, kontrolę przejmuje serwer pomocniczy. Takie podejście poprawia dostępność, ale nie poprawia wydajności. Co więcej, jeśli jedyną formą komunikacji między węzłami jest przesyłanie wiadomości, a oba serwery w klastrze nie współdzielą dysków, to serwer zapasowy nie ma dostępu do baz danych zarządzanych przez serwer główny.

Nadmiarowość pasywna jest rzadkością w przypadku klastrów. Termin „klaster” odnosi się do zestawu połączonych ze sobą węzłów, które aktywnie uczestniczą w procesie obliczeniowym i wspólnie tworzą iluzję jednego potężnego komputera. Ta konfiguracja jest zwykle określana jako system aktywnego serwera pomocniczego i istnieją trzy metody łączenia w klastry: serwery autonomiczne, serwery bez udostępniania dysku i serwery z udostępnianiem dysku.

W pierwszej metodzie każdy węzeł klastra jest traktowany jako samodzielny serwer z własnymi dyskami, przy czym żaden z dysków w systemie nie jest współużytkowany. Schemat zapewnia wysoką wydajność i wysoką dostępność, ale wymaga specjalnego oprogramowania do planowania dystrybucji żądań klientów do serwerów w taki sposób, aby osiągnąć zrównoważony i efektywne wykorzystanie wszystkie serwery. Konieczne jest, aby w przypadku awarii jednego z węzłów podczas wykonywania aplikacji inny węzeł klastra mógł przechwycić i zakończyć tę aplikację. W tym celu należy stale tworzyć kopie zapasowe danych w systemie, tak aby każdy serwer miał dostęp do wszystkich najnowszych danych w systemie. Ze względu na te koszty wysoką dostępność osiąga się tylko kosztem utraconej produktywności.

Aby zmniejszyć obciążenie komunikacyjne, większość klastrów składa się obecnie z serwerów połączonych ze współdzielonymi dyskami, zwykle reprezentowanymi przez macierze dyskowe RAID (patrz rysunek 5.5.2).

Jedna odmiana tego podejścia zakłada, że ​​udostępnianie dysku nie jest używane. Dyski udostępnione są podzielone na partycje, a każdy węzeł klastra ma przydzieloną własną partycję. Jeśli jeden z węzłów ulegnie awarii, klaster można przekonfigurować tak, aby prawa dostępu do współdzielonej partycji dysku zostały przeniesione do innego węzła.

Alternatywnie, wiele serwerów współdzieli dostęp do dysków współdzielonych w czasie, dzięki czemu każdy węzeł ma dostęp do wszystkich partycji wszystkich dysków współdzielonych. Takie podejście wymaga pewnego rodzaju mechanizmu blokującego, aby zapewnić, że tylko jeden serwer ma dostęp do danych w danym momencie.

Klastry zapewniają wysoki poziom dostępności – nie mają jednego systemu operacyjnego i współdzielonej pamięci, czyli nie ma problemu ze spójnością pamięci podręcznej. Ponadto specjalne oprogramowanie w każdym węźle stale monitoruje wydajność wszystkich pozostałych węzłów. Sterowanie to polega na okresowym wysyłaniu przez każdy węzeł sygnału „nadal nie śpię”. Jeśli sygnał z określonego węzła nie zostanie odebrany, wówczas taki węzeł jest uważany za niesprawny; nie ma możliwości wykonywania operacji we/wy, jego dyski i inne zasoby (w tym adresy sieciowe) są ponownie przypisywane do innych węzłów, a uruchomione w nim programy są ponownie uruchamiane w innych węzłach.

Wydajność klastra skaluje się wraz z dodawaniem węzłów. Klaster może uruchamiać wiele pojedynczych aplikacji, ale skalowanie pojedynczej aplikacji wymaga, aby jej części komunikowały się za pośrednictwem przesyłania wiadomości. Nie można jednak zignorować faktu, że interakcje między węzłami klastra zajmują znacznie więcej czasu niż w tradycyjnych systemach obliczeniowych. Możliwość niemal nieograniczonego zwiększania liczby węzłów oraz brak jednego systemu operacyjnego sprawiają, że architektury klastrowe są niezwykle skalowalne. Systemy z setkami i tysiącami węzłów są z powodzeniem stosowane.

Przy tworzeniu klastrów można wyróżnić dwa podejścia. Pierwszym podejściem jest tworzenie małych systemów klastrowych. Klaster łączy w pełni wyposażone komputery, które nadal działają jako niezależne jednostki, takie jak komputery w klasie lub laboratoryjne stacje robocze. Drugie podejście polega na celowym tworzeniu potężnych zasobów obliczeniowych. Bloki systemowe komputerów kompaktowo rozmieszczone -

Znajdują się one w specjalnych stojakach, a do zarządzania systemem i wykonywania zadań przydzielono jeden lub więcej w pełni wyposażonych komputerów, zwanych komputerami hostami. W takim przypadku nie ma potrzeby zaopatrywania komputerów węzłów obliczeniowych w karty graficzne, monitory, dyski i inne urządzenia peryferyjne, co znacznie obniża koszt systemu.

Opracowano wiele technologii łączenia komputerów w klastry. Obecnie najpowszechniej stosowaną technologią jest Ethernet, ze względu na łatwość obsługi i niski koszt sprzętu komunikacyjnego. Jednak trzeba za to zapłacić ewidentnie niewystarczającą szybkością wymiany.

Twórcy pakietu podprogramów ScaLAPACK, przeznaczonego do rozwiązywania problemów algebry liniowej w systemach wieloprocesorowych z dużym udziałem operacji komunikacyjnych, wymagania stawiane systemowi wieloprocesorowemu formułują w następujący sposób: „Prędkość wymiany międzyprocesorowej między dwoma węzłami, mierzona w MB/s, musi wynosić co najmniej 1/10 szczytowej wydajności węzła obliczeniowego, mierzonej w MFLOPS”.

Topologie klastrów

Rozważmy topologie charakterystyczne dla tzw. „małych” klastrów składających się z dwóch do czterech węzłów.

Topologia par klastrów używany przy organizowaniu klastrów dwu- lub czterowęzłowych (rys. 5.5.3). Węzły są pogrupowane w pary, macierze dyskowe są dołączone do obu węzłów wchodzących w skład pary, a każdy węzeł pary ma dostęp do wszystkich macierzy dyskowych tej pary. Jeden z węzłów pary jest używany jako kopia zapasowa dla drugiego.

Para klastrów z czterema węzłami jest prostym rozszerzeniem topologii z dwoma węzłami. Obie pary klastrów są traktowane jako całość pod względem administrowania i konfiguracji.

Ta topologia może służyć do organizowania klastrów o wysokiej dostępności danych, ale odporność na awarie jest realizowana tylko w obrębie pary, ponieważ urządzenia do przechowywania informacji należące do pary nie mają fizycznego połączenia z inną parą.

Przełącznik

grupa

grupa

grupa

grupa

Dysk

Dysk

Dysk

Dysk

Ryż. 5.5.3. Topologia par klastrów

Topologia + 1 umożliwia tworzenie klastrów składających się z dwóch, trzech i czterech węzłów (Rys.5.5.4). Każda macierz dyskowa łączy się tylko z dwoma węzłami klastra. Macierze dyskowe są zorganizowane zgodnie ze schematem RAID1 (dublowanie). Jeden serwer jest podłączony do wszystkich macierzy dyskowych i służy jako kopia zapasowa dla wszystkich innych (podstawowych lub aktywnych) węzłów. Serwer rezerwowy może służyć do zapewnienia wysokiej dostępności w tandemie z dowolnym aktywnym węzłem.

Topologia jest zalecana do organizowania klastrów o wysokiej dostępności danych. W konfiguracjach, w których możliwe jest przydzielenie jednego węzła na potrzeby redundancji, ta topologia może zmniejszyć obciążenie aktywnych węzłów i zapewnić replikację obciążenia uszkodzonego węzła w węźle rezerwowym bez utraty wydajności. Tolerancja błędów jest zapewniona między dowolnym węzłem podstawowym a węzłem rezerwowym. Jednocześnie topologia nie pozwala na wdrożenie globalnej odporności na uszkodzenia, ponieważ główne węzły klastra i ich systemy przechowywania informacji nie są ze sobą połączone.

Topologia ×, podobnie jak topologia +1, pozwala na tworzenie klastrów składających się z dwóch, trzech i czterech węzłów, jednak w przeciwieństwie do niej charakteryzuje się większą elastycznością i skalowalnością (rys.5.5.5).

Przełącznik

grupa

grupa

grupa

grupa

Przełącznik

grupa

grupa

grupa

grupa

Przełącznik

Dysk

Dysk

Dysk

Ryż. 5.5.5. Topologia ×

Tylko w tej topologii wszystkie węzły klastra mają dostęp do wszystkich macierzy dyskowych, które z kolei są zbudowane według schematu RAID1 (mirroring). Skalowalność topologii przejawia się w łatwości dodawania kolejnych węzłów i macierzy dyskowych do klastra bez zmiany połączeń w systemie.

grupa

grupa

grupa

grupa

Dysk

Dysk

Dysk

Dysk

Ryż. 5.5.6. W pełni podzielona topologia

W pełni podzielona topologia umożliwia podłączenie każdej macierzy dyskowej tylko do jednego węzła klastra (rys. 5.5.6 ). Zalecane tylko dla tych aplikacji, które charakteryzują się całkowicie odrębną architekturą dostępu.

Pytania kontrolne

1. Zdefiniuj klastrowy system obliczeniowy.

2. Wymień główne zalety i wady klastrowych systemów obliczeniowych.

3. Jakie klasyfikacje klastrowych systemów obliczeniowych stosujesz

4. Jakie znasz topologie systemów klastrowych? Wypisz ich zalety i wady.

Literatura

1. Architektury i topologie wieloprocesorowych systemów obliczeniowych / AV Bogdanow, V.V. Korchow, V.V. Mareev, EN Stankow. - M .: INTUIT.RU, 2004. - 176 s.

2. Układy mikroprocesorowe: podręcznik. zasiłek dla uczelni /

EK Aleksandrow, R.I. Gruszwicki, MS Kuprijanow i inni; wyd. DV Puzankowa . - Petersburg: Politechnika, 2002. - 935 s.


Dział 29 „Sterowanie Systemami Inteligentnymi”

Streszczenie na ten temat:

Systemy klastrowe

Zakończony:

uczeń grupy K9-292

Popow I.A.

MOSKWA 2001

1. Wstęp

2. Główne klasy współczesnych komputerów równoległych

3. Architektura klastrowa komputerów równoległych

4. Cele tworzenia systemów klastrowych

5. Klastry przełączania awaryjnego

6. Klastry o wysokiej wydajności

7. Projekt Beowulf

8. Wniosek

9. Literatura

Wstęp

Rozwój wieloprocesorowych systemów obliczeniowych

Rozwój tradycyjnych architektur do budowy systemów obliczeniowych, takich jak SMP, MPP, wektorowe systemy równoległe, postępuje dość szybko. Zwiększa wydajność, zwiększa niezawodność i odporność na awarie. Architektury te mają jednak jedną wadę – koszt tworzonych systemów, czasem niedostępny dla wielu użytkowników takich systemów – organizacji edukacyjnych i badawczych. Okazuje się, że jest on bardzo wysoki ze względu na złożoność komponentów sprzętowych i programowych systemu, które są wymagane do zapewnienia takiego tempa wzrostu produktywności. Jednak zapotrzebowanie na zasoby obliczeniowe jest obecnie bardzo duże w wielu obszarach działalności naukowej i praktycznej, a zasoby tradycyjnych systemów superkomputerowych są niewystarczające, aby je zapewnić.

Systemy klastrowe pojawiły się jako tańsze rozwiązanie problemu braku zasobów obliczeniowych i opierają się na wykorzystaniu w swojej architekturze szeroko rozpowszechnionych i relatywnie tanich technologii, sprzętu i narzędzia oprogramowania takich jak PC, Ethernet, Linux itp. Wykorzystanie technologii masowej w systemach klastrowych stało się możliwe dzięki znacznemu postępowi w rozwoju komponentów konwencjonalnych systemów obliczeniowych, takich jak jednostki centralne, system operacyjny, środowiska komunikacyjne.

Ponieważ systemy klastrowe są architektonicznie ewolucją systemów MPP z masową równoległością, główną rolę w ich rozwoju odgrywa postęp w dziedzinie technologii sieciowych. Do tej pory pojawiły się niedrogie, ale skuteczne rozwiązania komunikacyjne. To z góry określiło szybkie pojawienie się i rozwój klastrowych systemów obliczeniowych. Do postępu w rozwoju systemów klastrowych przyczyniły się również inne czynniki.

W ostatnich latach znacznie wzrosła również wydajność komputerów osobistych opartych na procesorach Intela. Takie komputery zaczęły stwarzać poważną konkurencję dla stacji roboczych opartych na droższych i mocniejszych procesorach RISC. W tym samym czasie coraz większą popularność zaczął zyskiwać system operacyjny Linux, darmowa wersja systemu UNIX. Jednocześnie w organizacjach naukowych i na uczelniach, w których rozwija się większość systemów klastrowych, z reguły są specjaliści od systemu operacyjnego Linux.

O wysokim stopniu rozwoju systemów klastrowych dzisiaj świadczy fakt, że na liście Top500 najpotężniejszych superkomputerów na świecie znajduje się 11 instalacji klastrowych.


Główne klasy współczesnych komputerów równoległych

Systemy klastrowe są ewolucją systemów równoległych. Aby pokazać miejsce systemów klastrowych wśród innych typów równoległych architektur systemów obliczeniowych, konieczna jest ich klasyfikacja. Systemy równoległe można klasyfikować według różnych kryteriów.

Ze sprzętowego punktu widzenia głównym parametrem klasyfikacji komputerów równoległych jest obecność pamięci współdzielonej (SMP) lub rozproszonej (MPP). Skrzyżowanie SMP i MPP to architektury NUMA, w których pamięć jest fizycznie przydzielana, ale logicznie współdzielona.

Symetryczne systemy wieloprocesorowe

System SMP składa się z kilku jednorodnych procesorów i wspólnej macierzy pamięci. Jednym z podejść często stosowanych w architekturach SMP do tworzenia skalowalnego systemu pamięci współdzielonej jest jednolita organizacja dostępu do pamięci poprzez organizację skalowalnego kanału procesora pamięci:

Każda operacja dostępu do pamięci jest interpretowana jako transakcja na szynie procesor-pamięć. Spójność pamięci podręcznych jest obsługiwana sprzętowo.

W SMP każdy procesor ma co najmniej jedną (a być może więcej) własnych pamięci podręcznych.

Można powiedzieć, że system SMP to pojedynczy komputer z kilkoma równorzędnymi procesorami. Wszystko inne jest w jednym egzemplarzu: jedna pamięć, jeden podsystem wejścia/wyjścia, jeden system operacyjny. Słowo „peer” oznacza, że ​​każdy procesor może zrobić wszystko, co każdy inny. Każdy procesor ma dostęp do całej pamięci, może wykonywać dowolne operacje we/wy, przerywać działanie innych procesorów i tak dalej.

Wadą tej architektury jest konieczność zorganizowania kanału procesor-pamięć o bardzo dużej przepustowości.

Systemy masowo równoległe

Masowo równoległy system MPP składa się z jednorodnych węzłów obliczeniowych, w tym:

  • jeden lub więcej procesory(zwykle RISC)
  • pamięć lokalna (bezpośredni dostęp do pamięci innych węzłów nie jest możliwy)
  • procesor komunikacyjny lub karta sieciowa
  • dyski twarde i/lub inne urządzenia wejścia/wyjścia

Do systemu można dodawać specjalne węzły we/wy i węzły sterujące. Węzły są połączone przez jakieś medium komunikacyjne (szybka sieć, przełącznik itp.)

Systemy z nierównomiernym dostępem do pamięci NUMA

NUMA (niejednolity dostęp do pamięci), w przeciwieństwie do zwykłej architektury pamięci współdzielonej SMP, składa się z kilku oddzielnych procesorów, z których każdy oprócz własnej pamięci podręcznej ma również pamięć lokalną:

W takiej architekturze procesor i moduły pamięci są ściśle zintegrowane, dlatego szybkość dostępu do pamięci lokalnej jest znacznie większa niż do pamięci „sąsiedniego” procesora. Podsystemy we/wy mogą być częścią każdego węzła lub skonsolidowane w dedykowanych węzłach we/wy. Jeśli spójność pamięci podręcznej jest utrzymywana w całym systemie, ta architektura nazywa się cc-NUMA.

Najłatwiejszym sposobem scharakteryzowania systemu NUMA jest wyobrażenie sobie dużego systemu SMP podzielonego na kilka części, które są połączone szkieletem komunikacyjnym połączonym z magistralami systemowymi, a każda część zawiera własną pamięć główną i podsystem I/O. Tym właśnie jest NUMA: dużym SMP podzielonym na zestaw mniejszych, prostszych SMP. Głównym problemem z NUMA jest zapewnienie spójności pamięci podręcznych. Sprzęt umożliwia pracę ze wszystkimi pojedynczymi urządzeniami pamięci głównej części składowych systemu (zwykle nazywanych węzłami), tak jakby były pojedynczą gigantyczną pamięcią.

architektura klastrowa

Rozważ miejsce architektury klastrowej systemów komputerowych w tej klasyfikacji.

Klaster to połączony zestaw kompletnych komputerów używanych jako pojedynczy zasób. Określenie „pełnowartościowy komputer” oznacza kompletny system komputerowy, który ma wszystko, co jest potrzebne do jego działania, w tym procesory, pamięć, podsystem wejścia/wyjścia, a także system operacyjny, podsystemy, aplikacje itp. Zwykle nadają się do tego komputery osobiste lub systemy równoległe, które mogą mieć architekturę SMP, a nawet NUMA. Klastry to systemy luźno powiązane, węzły są połączone za pomocą jednej ze standardowych technologii sieciowych (Fast/Gigabit Ethernet, Myrinet) w oparciu o architekturę magistrali lub przełącznika. Dlatego są tańszą do zbudowania modyfikacją architektury MPP.

Architektura klastrowa komputerów równoległych

Ogólne zasady

Jak wspomniano wcześniej, klaster obliczeniowy to zbiór komputerów zjednoczonych w ramach określonej sieci w celu rozwiązania jednego problemu (rys. 3), który jest prezentowany użytkownikowi jako pojedynczy zasób. Ta koncepcja klastra została po raz pierwszy zaproponowana i wdrożona na początku lat 80-tych przez firmę Digital Equipment Corporation, która wciąż rozwija tę technologię.

Koncepcja „pojedynczego zasobu” oznacza posiadanie oprogramowania, które pozwala użytkownikom, administratorom i aplikacjom myśleć, że istnieje tylko jeden podmiot, z którym współpracują – klaster. Na przykład system przetwarzanie wsadowe klastrowanie umożliwia wysłanie zadania do przetworzenia do klastra, a nie do dowolnego oddzielnego komputera. Bardziej złożonym przykładem są systemy baz danych. Praktycznie wszyscy dostawcy systemów baz danych mają wersje, które działają równolegle na wielu komputerach w klastrach. Dzięki temu aplikacje korzystające z bazy danych nie muszą dbać o to, gdzie wykonywana jest ich praca. DBMS odpowiada za synchronizację równoległych działań i utrzymanie integralności bazy danych.

Komputery tworzące klaster - tzw. węzły klastra - są zawsze względnie niezależne, co pozwala na zatrzymanie lub wyłączenie dowolnego z nich w celu przeprowadzenia prac konserwacyjnych lub zainstalowania dodatkowego sprzętu bez zakłócania pracy całego klastra.

Jako węzły obliczeniowe w klastrze najczęściej wykorzystywane są jednoprocesorowe komputery osobiste, dwu- lub czteroprocesorowe serwery SMP. Każdy węzeł uruchamia własną kopię systemu operacyjnego, który jest najczęściej używany jako standardowe systemy operacyjne: Linux, NT, Solaris itp. Skład i pojemność węzłów może zmieniać się nawet w ramach tego samego klastra, co umożliwia tworzenie systemów heterogenicznych. Wybór konkretnego środowiska komunikacyjnego determinowany jest wieloma czynnikami: charakterystyką klasy rozwiązywanych zadań, potrzebą późniejszej rozbudowy klastra itp. Możliwe jest włączenie do konfiguracji wyspecjalizowanych komputerów, na przykład serwera plików, i z reguły jest to możliwe dostęp zdalny do klastra przez Internet.

Z definicji architektury systemów klastrowych wynika, że ​​obejmuje ona bardzo szeroki wachlarz systemów. Biorąc pod uwagę punkty skrajne, za klaster można uznać parę komputerów PC połączonych lokalną siecią Ethernet 10 Mbit, a także system obliczeniowy stworzony w ramach projektu Cplant w Sandia National Laboratory: 1400 stacji roboczych opartych na procesorach Alpha połączonych szybką siecią Myrinet.

Można więc zauważyć, że istnieje wiele różnych opcji budowania klastrów. Jednocześnie duże znaczenie w architekturze klastra mają wykorzystywane technologie i standardy komunikacji. To one w dużej mierze determinują zakres zadań, do których można wykorzystać klastry zbudowane w oparciu o te technologie.

Technologie komunikacyjne budowanie klastrów

Klastry mogą być budowane zarówno w oparciu o wyspecjalizowane magistrale szybkiej transmisji danych, jak iw oparciu o technologie sieci masowych. Wśród standardów komunikacji masowej najczęściej wykorzystywaną siecią jest Ethernet lub jego bardziej produktywna odmiana – Fast Ethernet, zwykle oparta na przełącznikach. Jednak duże koszty ogólne związane z transmisją komunikatów w ramach sieci Fast Ethernet prowadzą do poważnych ograniczeń zakresu zadań, które można skutecznie rozwiązać w takim klastrze. Jeśli klaster wymaga większej wydajności i wszechstronności, należy zastosować szybsze i bardziej wyspecjalizowane technologie. Należą do nich SCI, Myrinet, cLAN, ServerNet i inne. Charakterystyka porównawcza parametry tych technologii podano w
Tabela 1.

sieć serwerów

szybki ethernet

Opóźnienie (MPI)

Przepustowość (MPI)

180 MB/s

Przepustowość (sprzęt)

400 MB/s

160 MB/s

150 MB/s

12,5 MB/s

Implementacja MPI

HPVM, MPICH-GM itp.

Tabela 1.

Wydajność sieci komunikacyjnych w systemach klastrowych jest określona przez kilka cech liczbowych. Istnieją dwie główne cechy: opóźnienie - początkowy czas opóźnienia podczas wysyłania wiadomości oraz przepustowość sieci, która określa szybkość przesyłania informacji kanałami komunikacyjnymi. Przy czym ważne są nie tyle deklarowane w normie charakterystyki szczytowe, ile realnie osiągane na poziomie niestandardowe aplikacje, na przykład na poziomie aplikacji MPI. W szczególności, po wywołaniu przez użytkownika funkcji Send() w celu wysłania wiadomości, wiadomość przed opuszczeniem procesora przechodzi sekwencyjnie przez cały zestaw warstw, określonych przez specyfikę organizacji oprogramowania i sprzętu - w związku z tym następuje znaczne załamanie standardów dotyczących wartości opóźnień. Obecność opóźnienia prowadzi do tego, że maksymalna prędkość transmisji w sieci nie może zostać osiągnięta w przypadku wiadomości o małej długości.

Szybkość przesyłania danych w sieci w ramach technologii Fast Ethernet i Scalable Coherent Interface (SCI) zależy od długości wiadomości. Fast Ethernet charakteryzuje się dużą wartością latencji - 160-180 µs, podczas gdy latencja dla SCI wynosi około 5,6 µs. Maksymalna prędkość transferu dla tych samych technologii wynosi odpowiednio 10 MB/s i 80 MB/s.

Cele tworzenia systemów klastrowych

Projektanci architektur systemów klastrowych przy ich tworzeniu przyświecali różnym celom. Pierwszym był Digital Equipment z klastrami VAX/VMS. Celem stworzenia tej maszyny było zwiększenie niezawodności systemu, zapewnienie wysokiej dostępności i odporności systemu na awarie. Obecnie istnieje wiele systemów o podobnej architekturze innych producentów.

Innym celem tworzenia systemów klastrowych jest tworzenie tanich, wysokowydajnych systemów obliczeń równoległych. Jeden z pierwszych projektów, który nadał nazwę całej klasie systemów równoległych - klaster Beowulf - powstał w Centrum Lotów Kosmicznych NASA Goddard, aby wesprzeć projekt Nauk o Ziemi i Kosmosie niezbędnymi zasobami obliczeniowymi. Projekt Beowulf rozpoczął się latem 1994 roku i wkrótce zmontowano 16-procesorowy klaster na procesory Intela 486DX4/100 MHz. Każdy węzeł został wyposażony w 16 MB pamięci RAM oraz 3 karty sieciowe Ethernet. System ten okazał się bardzo udany pod względem cena/wydajność, więc architektura ta zaczęła być rozwijana i szeroko stosowana w innych organizacjach i instytutach naukowych.

Każda klasa klastrów ma swoją specyficzną architekturę i sprzęt. Rozważmy je bardziej szczegółowo.

Klastry przełączania awaryjnego

Zasady budowy

Aby zapewnić niezawodność i odporność na awarie systemów komputerowych, stosuje się wiele różnych rozwiązań sprzętowych i programowych. System może np. zduplikować wszystkie elementy podlegające awariom – zasilacze, procesory, pamięć RAM i pamięć zewnętrzną. Takie systemy fault-tolerant z redundantnymi komponentami są wykorzystywane do rozwiązywania problemów, w których niezawodność konwencjonalnych systemów komputerowych jest niewystarczająca, obecnie szacowana na 99% prawdopodobieństwo bezawaryjnej pracy. W takich problemach wymagane jest prawdopodobieństwo 99,999% lub wyższe. Taką niezawodność można osiągnąć, stosując różne metody zwiększania odporności na uszkodzenia z powyższych. W zależności od stopnia gotowości systemu obliczeniowego do użytku wyróżnia się cztery rodzaje niezawodności:

Poziom gotowości, %

Maks. przestoje

Rodzaj systemu

3,5 dnia w roku

Standardowy

8,5 godziny rocznie

Duża dostępność

1 godzina rocznie

Odporność na awarie

5 minut rocznie

Odporne na uszkodzenia

Tabela 2.

W przeciwieństwie do systemów odpornych na błędy z redundantnymi komponentami, a także różnymi opcjami przetwarzania wieloprocesowego, klastry łączą stosunkowo niezależne maszyny, z których każdą można zatrzymać w celu konserwacji lub rekonfiguracji bez zakłócania kondycji klastra jako całości. Wysoką wydajność klastra i minimalizację przestojów aplikacji uzyskuje się dzięki temu, że:

  • w przypadku awarii oprogramowania na jednym z węzłów aplikacja dalej działa lub automatycznie restartuje się na pozostałych węzłach klastra;
  • awaria jednego z węzłów (lub kilku) nie doprowadzi do upadku całego systemu klastrowego;
  • prace konserwacyjne i naprawcze, rekonfiguracja czy zmiana wersji oprogramowania, co do zasady, mogą być przeprowadzane w węzłach klastra po kolei, bez przerywania pracy pozostałych węzłów.

Integralną częścią klastra jest specjalne oprogramowanie, które de facto rozwiązuje problem przywracania węzła w przypadku awarii, a także rozwiązuje inne problemy. Oprogramowanie klastrowe ma zwykle kilka wstępnie zdefiniowanych scenariuszy odzyskiwania systemu i może również zapewniać administratorowi możliwość dostosowania takich scenariuszy. Przełączanie awaryjne może być obsługiwane zarówno dla hosta jako całości, jak i dla jego poszczególnych komponentów - aplikacji, woluminów dyskowych itp. Funkcja ta jest uruchamiana automatycznie w przypadku awarii systemu, może być również uruchomiona przez administratora, jeśli np. musi wyłączyć jeden z węzłów w celu rekonfiguracji.

Klastry mogą mieć współdzieloną pamięć dla dyski zewnętrzne, zazwyczaj w macierzy dyskowej RAID. Macierz dyskowa RAID to podsystem we/wy serwera służący do przechowywania dużych ilości danych. Macierze RAID wykorzystują znaczną liczbę dysków o stosunkowo małej pojemności do przechowywania dużych ilości danych, a także zapewniają wyższą niezawodność i nadmiarowość. Taka tablica jest postrzegana przez komputer jako pojedyncze urządzenie logiczne.

Przełączanie awaryjne może być obsługiwane zarówno dla hosta jako całości, jak i dla jego poszczególnych komponentów - aplikacji, woluminów dyskowych itp. Funkcja ta jest uruchamiana automatycznie w przypadku awarii systemu, może być również uruchomiona przez administratora, jeśli np. musi wyłączyć jeden z węzłów w celu rekonfiguracji.

Węzły klastra monitorują wzajemnie swój stan i wymieniają informacje o „klastrach”, takie jak konfiguracja klastra, a także przesyłają dane między dyskami współdzielonymi i koordynują ich wykorzystanie. Monitorowanie stanu odbywa się za pomocą specjalnego sygnału, który węzły klastra przesyłają do siebie w celu potwierdzenia ich normalnego funkcjonowania. Zakończenie sygnalizacji z jednego z węzłów sygnalizuje oprogramowaniu klastra, że ​​wystąpiła awaria i konieczność ponownego rozłożenia obciążenia na pozostałe węzły. Jako przykład rozważ klaster przełączania awaryjnego VAX/VMS.

Klaster VAX/VMS

DEC była pierwszą firmą, która w 1983 roku ogłosiła koncepcję systemu klastrowego, definiując go jako grupę połączonych ze sobą komputerów reprezentujących pojedynczy węzeł przetwarzania informacji. Zasadniczo klaster VAX jest luźno powiązanym systemem obejmującym wiele maszyn ze wspólnym elementem pamięć zewnętrzna, który zapewnia pojedynczy mechanizm zarządzania i administrowania.

Klaster VAX ma następujące właściwości:

Udostępnianie zasobów. Maszyny VAX w klastrze mogą dzielić dostęp do współdzielonych napędów taśm i dysków. Wszystkie maszyny VAX w klastrze mogą uzyskiwać dostęp do poszczególnych plików danych tak, jakby były one lokalne.

Wysoka gotowość. Jeśli jeden z komputerów VAX ulegnie awarii, zadania jego użytkowników mogą zostać automatycznie przeniesione na inny komputer w klastrze. Jeśli w systemie jest wiele HSC i jeden z nich ulegnie awarii, pozostałe HSC automatycznie przejmują kontrolę.

Wysoka przepustowość. Szereg systemów aplikacyjnych może skorzystać z możliwości równoległego wykonywania zadań na kilku komputerach klastrowych.

Użyteczność systemu. Udostępnione bazy danych mogą być obsługiwane z jednej lokalizacji. Programy użytkowe można zainstalować tylko raz na udostępnionych dyskach klastra i udostępnić je wszystkim komputerom w klastrze.

Możliwość rozbudowy. Zwiększenie mocy obliczeniowej klastra uzyskuje się poprzez podłączenie do niego dodatkowych komputerów VAX. Dodatkowe napędy na dyskach magnetycznych i taśmach magnetycznych stają się dostępne dla wszystkich komputerów wchodzących w skład klastra.

Pracę klastra VAX determinują dwa główne komponenty. Pierwszym komponentem jest mechanizm szybkiej komunikacji, drugim oprogramowanie systemowe, które zapewnia klientom przejrzysty dostęp do usługi systemowej. Fizycznie połączenia w ramach klastra są realizowane przy użyciu trzech różnych technologii magistrali różne cechy wydajność.

Główne metody komunikacji w klastrze VAX przedstawiono na rys. 4.

Ryż. 4 Klaster VAX/VMS

Magistrala CI (Computer Interconnect) działa z szybkością 70 Mb/s i służy do łączenia komputerów VAX i sterowników HSC za pomocą Star Coupler. Każde łącze CI ma podwójne redundantne łącza, dwa do nadawania i dwa do odbierania, wykorzystujące podstawową technologię CSMA, która wykorzystuje opóźnienia specyficzne dla węzła w celu rozwiązania kolizji. Maksymalna długość łącza CI wynosi 45 metrów. Star Coupler może obsługiwać do 32 magistral CI, każda do podłączenia komputera VAX lub kontrolera HSC. Kontroler HSC to inteligentne urządzenie sterujące pracą napędów dyskowych i taśmowych.

Komputery VAX można również łączyć w klastry za pośrednictwem sieci lokalnej

Ethernet z wykorzystaniem NI - Network Interconnect (tzw. lokalne klastry VAX), jednak wydajność takich systemów jest stosunkowo niska ze względu na konieczność współdzielenia pasma sieci Ethernet pomiędzy komputery klastra i innych klientów sieci.

Klastry mogą być również oparte na magistrali DSSI (Digital Storage System Interconnect). Do magistrali DSSI można podłączyć do czterech komputerów VAX niższej i średniej klasy. Każdy komputer może obsługiwać wiele adapterów DSSI. Oddzielna magistrala DSSI działa z prędkością 4 MB/s (32 Mb/s) i umożliwia podłączenie do 8 urządzeń. Obsługiwane są następujące typy urządzeń: adapter systemowy DSSI, kontroler dysków serii RF i kontroler taśm serii TF. DSSI ogranicza odległość między węzłami w klastrze do 25 metrów.

Oprogramowanie systemowe VAX Cluster

Aby upewnić się, że procesory komunikują się ze sobą poprawnie podczas uzyskiwania dostępu do współdzielonych zasobów, takich jak dyski, DEC używa Distributed Lock Manager (DLM). Bardzo ważną funkcją DLM jest zapewnienie spójnego stanu pamięci podręcznych dysków dla operacji we/wy systemu operacyjnego i aplikacji. Na przykład w relacyjnych aplikacjach DBMS DLM jest odpowiedzialny za utrzymywanie spójnego stanu między buforami bazy danych na różnych komputerach w klastrze.

Zadanie utrzymywania spójności pamięci podręcznej we/wy między procesorami w klastrze jest podobne do zadania utrzymywania spójności pamięci podręcznej w ściśle sprzężonym systemie wieloprocesorowym zbudowanym na magistrali. Bloki danych mogą pojawiać się jednocześnie w wielu pamięciach podręcznych, a jeśli jeden procesor zmodyfikuje jedną z tych kopii, inne istniejące kopie nie odzwierciedlają już bieżącego stanu bloku danych. Koncepcja przechwytywania bloku (własność bloku) jest jednym ze sposobów radzenia sobie z takimi sytuacjami. Zanim blok będzie mógł zostać zmodyfikowany, należy zabezpieczyć własność bloku.

Praca z DLM wiąże się ze znacznym obciążeniem. Narzut w środowisku VAX/VMS może być wysoki i wymagać wysłania do sześciu komunikatów przez magistralę CI dla pojedynczej operacji we/wy. Narzut może sięgać nawet 20% dla każdego procesora w klastrze.

Klastry o wysokiej wydajności

Zasady budowy

Architektura wysokowydajnych klastrów pojawiła się jako rozwinięcie zasad budowy systemów MPP na mniej wydajnych i masowych komponentach kontrolowanych przez system operacyjny ogólnego przeznaczenia. Klastry, podobnie jak systemy MPP, składają się z luźno połączonych węzłów, które mogą być jednorodne lub, w przeciwieństwie do MPP, różne lub heterogeniczne. Przy projektowaniu wysokowydajnej architektury klastrowej szczególną uwagę zwraca się na zapewnienie wysokiej wydajności magistrali komunikacyjnej łączącej węzły klastra. Ponieważ w klastrach często stosuje się masowe magistrale o stosunkowo niskiej wydajności, należy podjąć szereg działań w celu wyeliminowania ich niskiej przepustowości na wydajność klastrów i zorganizowania wydajnej równoległości w klastrze. Na przykład przepustowość jednej z najszybszych technologii Fast Ethernet jest o rząd wielkości mniejsza niż przepustowość połączeń w nowoczesnych superkomputerach o architekturze MPP.

Aby rozwiązać problemy z niską wydajnością sieci, stosuje się kilka metod:

Klaster jest podzielony na kilka segmentów, w obrębie których węzły są połączone wysokowydajną magistralą typu Myrinet, a połączenie pomiędzy węzłami różnych segmentów realizowane jest przez niskowydajne sieci Ethernet/Fast Ethernet. Pozwala to, wraz z obniżeniem kosztów środowiska komunikacyjnego, znacząco zwiększyć wydajność takich klastrów przy rozwiązywaniu problemów z intensywną wymianą danych pomiędzy procesami.

Zastosowanie tzw. „trunkingu”, tj. łączenie kilku kanałów Fast Ethernet w jeden wspólny szybki kanał łączący kilka przełączników. Oczywistą wadą tego podejścia jest „utrata” niektórych portów biorących udział w łączeniu przełączników.

W celu poprawy wydajności tworzone są w takich sieciach specjalne protokoły wymiany informacji, które pozwalają na bardziej efektywne wykorzystanie przepustowości kanału oraz usuwają pewne ograniczenia narzucane przez standardowe protokoły (TCP/IP, IPX). Ta metoda jest często stosowana w systemach klasy Beowulf.

Główną cechą, jaką powinien charakteryzować się klaster o wysokiej wydajności, jest skalowalność pozioma, ponieważ jedną z głównych zalet zapewnianych przez architekturę klastrową jest możliwość zwiększenia pojemności istniejącego systemu poprzez proste dodawanie nowych węzłów do systemu. Co więcej, wzrost mocy następuje niemal proporcjonalnie do mocy dodanych zasobów i może być realizowany bez zatrzymywania systemu podczas jego pracy. W systemach z innymi architekturami (zwłaszcza MPP) możliwa jest zazwyczaj tylko skalowalność pionowa: dodawanie pamięci, zwiększanie liczby procesorów w systemach wieloprocesorowych lub dodawanie nowych adapterów lub dysków. Pozwala tymczasowo poprawić wydajność systemu. Jednak system zostanie ustawiony na maksymalną obsługiwaną ilość pamięci, procesorów lub dysków, zasoby systemowe zostanie wyczerpany, a aby zwiększyć produktywność, będziesz musiał tworzyć nowy system lub znacząco poddawać recyklingowi stary. System klastrowy pozwala również na skalowalność pionową. Dzięki skalowaniu pionowemu i poziomemu model klastrowy zapewnia większą elastyczność i łatwość zwiększania wydajności systemu.

Projekt Beowulf

Beowulf to skandynawska epopeja opowiadająca o wydarzeniach z VII - pierwszej trzeciej VIII wieku, w których bierze udział bohater o tym samym imieniu, który wychwalał się w bitwach.

Jednym z przykładów implementacji systemu klastrowego o takiej strukturze są klastry Beowulfa. Projekt Beowulf zgromadził kilkanaście organizacji (głównie uniwersytetów) w Stanach Zjednoczonych. Czołowymi twórcami projektu są eksperci z agencji NASA. W tego typu klastrach można wyróżnić następujące główne cechy:

Klaster Beowulf składa się z kilku pojedynczych węzłów, które są zgrupowane wspólna sieć, udostępnione zasoby nie są wykorzystywane przez węzły klastra;

Za optymalne uważa się budowanie klastrów opartych na dwuprocesorowych systemach SMP;

Aby zmniejszyć obciążenie związane z interakcją między węzłami, użyj pełnego dupleksu 100 MB Fast Ethernet (rzadziej używają SCI), utwórz kilka segmentów sieci lub połącz węzły klastra za pomocą przełącznika;

Zastosowane oprogramowanie to system operacyjny Linux oraz bezpłatne biblioteki komunikacyjne (PVM i MPI);

Historia projektu Beowulf

Projekt rozpoczął się latem 1994 roku w należącym do NASA Goddard Space Flight Center (GSFC), a dokładniej w utworzonym na jego bazie CESDIS (Center of Excellence in Space Data and Information Sciences).

Pierwszy klaster Beowulfa powstał w oparciu o komputery o architekturze Intela z systemem Linux. Był to system składający się z 16 węzłów (na procesorach 486DX4/100MHz, 16MB pamięci i 3 kartami sieciowymi na każdym węźle, 3 "równoległymi" kablami Ethernet 10Mbit). Został stworzony jako zasób obliczeniowy projektu Earth and Space Sciences Project (ESS).

Ponadto w GSFC i innych oddziałach NASA zebrano inne, potężniejsze gromady. Na przykład klaster HIVE (Highly-parallel Integrated Virtual Environment) zawiera 64 węzły z 2 procesorami Pentium Pro/200 MHz i 4 GB pamięci każdy, 5 przełączników Fast Ethernet. Całkowity koszt tego klastra to około 210 tys. sterowniki sieciowe(w szczególności sterownik umożliwiający jednoczesne korzystanie z kilku kanałów Ethernet).

Architektura Beowulfa

węzły klastra.

Są to albo komputery jednoprocesorowe, albo serwery SMP z niewielką liczbą procesorów (2-4, ewentualnie do 6). Z jakiegoś powodu za optymalne uważa się budowanie klastrów opartych na systemach dwuprocesorowych, mimo że w tym przypadku konfiguracja klastra będzie nieco trudniejsza (głównie dlatego, że dostępne są stosunkowo niedrogie płyty główne dla 2 procesorów Pentium II/III). Warto zainstalować 64-128MB pamięci RAM na każdym węźle (dla systemów dwuprocesorowych 64-256MB).

Jedną z maszyn należy wybrać jako centralną (głowicę), w której należy zainstalować odpowiednio duży dysk twardy, możliwie mocniejszy procesor oraz więcej pamięci niż na innych (pracujących) węzłach. Sensowne jest zapewnienie (bezpiecznej) komunikacji tej maszyny świat zewnętrzny.

Kończąc pracę węzłów, całkiem możliwe jest zrezygnowanie z dysków twardych - te węzły ładują system operacyjny przez sieć z maszyny centralnej, co oprócz oszczędności pozwala skonfigurować system operacyjny i całe niezbędne oprogramowanie tylko 1 raz (na maszynie centralnej). O ile węzły te nie będą jednocześnie służyć jako stacje robocze użytkowników, nie ma potrzeby instalowania na nich kart graficznych i monitorów. Istnieje możliwość zainstalowania węzłów w stojakach (rackmounting), co zmniejszy zajmowaną przez węzły przestrzeń, ale będzie kosztować trochę więcej.

Istnieje możliwość zorganizowania klastrów w oparciu o już istniejące sieci stacji roboczych, tj. stacje robocze użytkowników mogą być używane jako węzły klastra w nocy iw weekendy. Systemy tego typu nazywane są czasem COW (Cluster of Workstations).

Liczba węzłów powinna być dobrana w oparciu o wymagane zasoby obliczeniowe i dostępne zasoby finansowe. Należy rozumieć, że przy dużej liczbie węzłów będziesz musiał zainstalować bardziej złożony i kosztowny sprzęt sieciowy.

Główne typy sieci LAN zaangażowane w projekt Beowulf to Gigabit Ethernet, Fast Ethernet i 100-VG AnyLAN. W najprostszym przypadku używany jest jeden segment Ethernet (10Mbit/s po skrętce). Jednak taniość takiej sieci, ze względu na kolizje, zamienia się w duży narzut na wymianę międzyprocesorową; a dobrej wydajności takiego klastra należy oczekiwać tylko od zadań o bardzo prostej strukturze równoległej i z bardzo rzadkimi interakcjami między procesami (np. wyliczanie opcji).

Aby uzyskać dobrą wydajność wymiany międzyprocesorowej, używany jest pełny dupleks Fast Ethernet o szybkości 100 Mbit/s. Jednocześnie, aby zmniejszyć liczbę kolizji, instaluje się albo kilka „równoległych” segmentów Ethernet, albo węzły klastra są łączone za pomocą przełącznika.

Droższą, ale również popularną opcją jest użycie przełączników, takich jak Myrinet (1,28 Gbit/s, pełny dupleks).

Mniej popularnymi, ale też bardzo często wykorzystywanymi technologiami sieciowymi w budowaniu klastrów są technologie cLAN, SCI oraz Gigabit Ethernet.

Czasami do komunikacji między węzłami klastra wykorzystuje się równolegle kilka fizycznych kanałów komunikacyjnych - tzw. „wiązanie kanałów”, które jest zwykle wykorzystywane w technologii Fast Ethernet. W tym przypadku każdy węzeł jest połączony z przełącznikiem Fast Ethernet więcej niż jednym kanałem. Aby to osiągnąć, węzły są wyposażone w wiele kart sieciowych lub wieloportowe karty Fast Ethernet. Zastosowanie łączenia kanałów w węzłach z systemem Linux pozwala na zorganizowanie jednolitego rozkładu obciążenia odbioru / transmisji między odpowiednimi kanałami.

Oprogramowanie systemowe

System operacyjny. Zazwyczaj system Linux jest używany w wersjach specjalnie zoptymalizowanych pod kątem rozproszonych obliczeń równoległych. Jądro Linuksa 2.0 zostało przerobione. W trakcie budowy klastrów okazało się, że standardowe sterowniki urządzenia sieciowe w systemie Linux są dość nieefektywne. Dlatego opracowano nowe sterowniki, przede wszystkim dla sieci Fast Ethernet i Gigabit Ethernet, oraz zapewniono możliwość logicznego łączenia kilku równoległych połączeń sieciowych między komputerami osobistymi (podobnie jak w przypadku łączenia sprzętowego), co umożliwia zbudowanie sieci o dużej zagregowanej przepustowości z tanich sieci lokalnych o niskiej przepustowości.

Jak w każdym klastrze, każdy węzeł klastra uruchamia własną kopię jądra systemu operacyjnego. Dzięki udoskonaleniom zapewniona jest unikalność identyfikatorów procesów w ramach całego klastra, a nie poszczególnych węzłów.

Biblioteki komunikacyjne. Najpopularniejszym interfejsem programowania równoległego w modelu przekazywania komunikatów jest MPI. Zalecaną darmową implementacją MPI jest pakiet MPICH opracowany w Argonne National Laboratory. Dla klastrów opartych na przełączniku Myrinet opracowano system HPVM, który obejmuje również implementację MPI.

Istnieją dwie możliwości efektywnej organizacji równoległości w ramach jednego systemu SMP:

  1. Dla każdego procesora w maszynie SMP tworzony jest oddzielny proces MPI. Procesy MPI wewnątrz tego systemu wymieniają komunikaty poprzez pamięć współdzieloną (musisz odpowiednio skonfigurować MPICH).
  2. Na każdej maszynie działa tylko jeden proces MPI. W ramach każdego procesu MPI odbywa się zrównoleglanie w modelu „pamięci współdzielonej”, na przykład za pomocą dyrektyw OpenMP.

Po zainstalowaniu implementacji MPI warto przetestować rzeczywistą wydajność transferów sieciowych.

Oprócz MPI istnieją inne biblioteki i systemy programowania równoległego, których można używać w klastrach.

Przykład implementacji klastra Beowulf — Avalon

W 1998 roku w Los Alamos National Laboratory astrofizyk Michael Warren wraz z innymi naukowcami z grupy astrofizyki teoretycznej zbudowali superkomputer Avalon, będący klastrem Beowulf opartym na procesorach DEC Alpha/533MHz. Avalon pierwotnie składał się z 68 procesorów, następnie został rozbudowany do 140. Każdy węzeł ma 256 MB pamięci RAM, dysk twardy EIDE 3,2 GB, kartę sieciową Kingston (całkowity koszt węzła to 1700 USD). Węzły są połączone za pomocą 4 x 36-portowych przełączników Fast Ethernet i centralnie umieszczonego 12-portowego przełącznika Gigabit Ethernet firmy 3Com.

Całkowity koszt Avalona to 313 000 USD, a jego wydajność LINPACK (47,7 GFLOPS) pozwoliła mu zająć 114. miejsce w 12. edycji listy Top500 (obok 152-procesorowego systemu IBM SP2). 70-procesorowa konfiguracja Avalon wykazała w wielu testach taką samą wydajność jak 64-procesorowy system SGI Origin2000/195MHz, który kosztuje ponad 1 milion dolarów.

Obecnie Avalon jest aktywnie wykorzystywany w obliczeniach astrofizycznych, molekularnych i innych obliczeniach naukowych. Na konferencji SC'98 twórcy Avalon przedstawili referat zatytułowany „Avalon: An Alpha/Linux Cluster Achieves 10 Gflops for $150k” i zdobyli nagrodę Gordon Bell Price/Performance Prize w 1998 roku.

Wniosek

Wiodący producenci mikroprocesorów Firmy Sun Microsystems, Dell i IBM podzielają tę samą wizję przyszłości branży superkomputerów: pojedyncze, niezależne superkomputery powinny zostać zastąpione grupami wysokowydajnych, klastrowanych serwerów. Nawet dzisiaj rozproszone systemy klastrowe wyprzedzają pod względem wydajności nowoczesne klasyczne superkomputery: najpotężniejszy komputer dzisiejszego świata - IBM ASCI White - ma wydajność 12 teraflopów, wydajność sieci [e-mail chroniony] o wartości około 15 teraflopów. W tym samym czasie IBM ASCI White został sprzedany za 110 milionów dolarów iw całej historii swojego istnienia [e-mail chroniony] wydano około 500 000 dolarów.

Literatura

2. http://www.beowulf.com

3. http://newton.gsfc.nasa.gov/thehive/

4.LoBoS, http://www.lobos.nih.gov

5. http://parallel.ru/news/kentucky_klat2.html

6. http://parallel.ru/news/anl_chibacity.html

7. http://parallel.ru/cluster/

8. http://www.ptc.spbu.ru

komputery MMD

Posiada komputer MIMD N procesory, które wykonują niezależnie N Strumienie instrukcji i przetwarzania N strumienie danych. Każdy procesor pracuje pod kontrolą własnego strumienia instrukcji, czyli komputer MIMD może równolegle wykonywać zupełnie różne programy.


Architektury MIMD są dalej klasyfikowane na podstawie fizycznej organizacji pamięci, tj. czy procesor ma własną pamięć lokalną i uzyskuje dostęp do innych bloków pamięci za pomocą komutowanej sieci, czy też komutowana sieć łączy wszystkie procesory z pamięcią współdzieloną. Na podstawie organizacji pamięci wyróżnia się następujące typy architektur równoległych:

  • Komputery z pamięcią rozproszoną (Pamięć rozproszona)
    Procesor może uzyskiwać dostęp do pamięci lokalnej, może wysyłać i odbierać komunikaty przesyłane przez sieć łączącą procesory. Komunikaty służą do komunikacji między procesorami lub, równoważnie, do odczytu i zapisu zdalnych bloków pamięci. W wyidealizowanej sieci koszt wysłania wiadomości między dwoma węzłami w sieci nie zależy zarówno od lokalizacji obu węzłów, jak i ruchu w sieci, ale zależy od długości wiadomości.

  • Komputery ze współdzieloną (współdzieloną) pamięcią (prawdziwa wspólna pamięć)
    Wszystkie procesory mają wspólny dostęp do pamięci, zwykle poprzez magistralę lub hierarchię magistrali. W wyidealizowanym modelu PRAM (Parallel Random Access Machine), często używanym w teoretycznych badaniach algorytmów równoległych, każdy procesor może uzyskać dostęp do dowolnego miejsca w pamięci w tym samym czasie. W praktyce skalowalność tej architektury zwykle skutkuje jakąś formą hierarchii pamięci. Częstotliwość dostępu do pamięci współdzielonej można zmniejszyć, przechowując kopie często używanych danych w pamięci podręcznej powiązanej z każdym procesorem. Dostęp do tej pamięci podręcznej jest znacznie szybszy niż bezpośredni dostęp do pamięci współdzielonej.

  • Komputery z wirtualną pamięcią współdzieloną (współdzieloną). (wirtualna pamięć współdzielona)
    Nie ma wspólnej pamięci jako takiej. Każdy procesor ma własną pamięć lokalną i może uzyskiwać dostęp do pamięci lokalnej innych procesorów za pomocą „adresu globalnego”. Jeśli „adres globalny” nie wskazuje na pamięć lokalną, dostęp do pamięci jest realizowany za pomocą komunikatów wysyłanych przez sieć komunikacyjną.

Przykład maszyn z wspólna pamięć może służyć:

  • Sun Microsystems (wieloprocesorowe stacje robocze)
  • Silicon Graphics Challenge (wieloprocesorowe stacje robocze)
  • Sekwencyjna symetria
  • Wypukły
  • Cry 6400.

Następujące komputery należą do klasy maszyn z pamięcią rozproszoną

  • IBM-SP1/SP2
  • Parsytec GC
  • CM5 (Korporacja Myślących Maszyn)
  • Cray T3D
  • Paragon (Intel Corp.)
  • nCUBE
  • Meiko CS-2
  • AVX (komputery równoległe Alex)
  • IMS-B008

Architektury MIMD z pamięcią rozproszoną można również klasyfikować na podstawie przepustowości sieci przełączającej. Na przykład w architekturze, w której pary procesora i modułu pamięci (elementu procesora) są połączone siecią o topologiach krata, każdy procesor ma taką samą liczbę połączeń sieciowych, niezależnie od liczby procesorów w komputerze. Całkowita przepustowość takiej sieci rośnie liniowo wraz z liczbą procesorów. Z drugiej strony w architekturze, która ma sieć z topologiami hipersześcian, liczba połączeń między procesorami a siecią jest funkcją logarytmiczną liczby procesorów, a przepustowość sieci rośnie szybciej niż liniowo wraz z liczbą procesorów. w topologii klika każdy procesor musi być połączony ze wszystkimi innymi procesorami.


Sieć z topologią 2D krata (torus)

Sieć z topologią 2D torus


Sieć z topologią klika

Narodowe Centrum Zastosowań Superkomputerowych (University of Illinois, Urbana-Champaign)

MPI: interfejs przekazywania wiadomości

Nazwa „interfejs komunikacyjny” mówi sama za siebie. Jest to dobrze wystandaryzowany mechanizm budowania programów równoległych w modelu przesyłania komunikatów. Istnieją standardowe „powiązania” MPI z C/C++, Fortran 77/90. Istnieją bezpłatne i komercyjne implementacje dla prawie wszystkich platform superkomputerowych, a także sieci stacji roboczych UNIX i Windows NT. MPI jest obecnie najczęściej używanym i najszybciej rozwijającym się interfejsem w swojej klasie.

Beowulf — klastry oparte na systemie Linux

Michaił Kuzminski

"systemy otwarte"

Na przełomie tysiącleci mamy wszelkie szanse być świadkami monopolizacji przemysłu komputerowego, który może objąć zarówno mikroprocesory, jak i systemy operacyjne. Mowa oczywiście o mikroprocesorach firmy Intel (Merced grozi wyparciem procesorów o architekturze RISC) oraz systemie operacyjnym firmy Microsoft.

W obu przypadkach o sukcesie w dużej mierze decyduje siła marketingowej machiny, a nie tylko „konsumpcyjne” właściwości wytwarzanych produktów. Moim zdaniem społeczność komputerowa nie zdała sobie jeszcze sprawy z ogromu możliwych konsekwencji.

Niektórzy eksperci porównują potencjalną monopolizację rynku komputerowego z obserwowaną w latach 70. monopolistyczną dominacją IBM – zarówno w dziedzinie komputerów typu mainframe, jak i systemów operacyjnych. Pracuję w tej technice od dłuższego czasu, a wraz z rozprzestrzenianiem się systemu operacyjnego Unix w naszym kraju, coraz bardziej uświadamiam sobie wiele zalet systemu operacyjnego IBM MVS. Podzielam jednak powszechny pogląd, że taki monopol nie przyspieszył postępu.

Zachodnie uniwersytety, które kiedyś były jednymi z pierwszych, które używały Uniksa, nadal polegają na tym systemie w swoich obiecujących projektach, a Linux jest coraz częściej wybierany jako platforma. Ten artykuł jest poświęcony jednemu z pouczających osiągnięć akademickich.

Linux jako zjawisko społeczne

Nie dziwi nas już fakt, że Linux stał się znaczącym zjawiskiem w życiu komputerów. W połączeniu z bogatym zestawem swobodnie dystrybuowanego oprogramowania GNU, ten system operacyjny stał się niezwykle popularny wśród niekomercyjnych użytkowników w kraju i za granicą. Jej popularność rośnie. Wersje Linuksa istnieją nie tylko dla platformy Intel x86, ale także dla innych architektur procesorów, w tym DEC Alpha, i są szeroko stosowane w aplikacjach internetowych, a także przy wykonywaniu zadań o charakterze obliczeniowym. Jednym słowem, Linux stał się swego rodzaju „systemem operacyjnym dla ludzi”. Nie oznacza to jednak, że Linux nie ma słabych punktów; jednym z nich jest brak obsługi architektur SMP.

Najtańszym sposobem na zwiększenie zasobów obliczeniowych, w tym mocy obliczeniowej, jest budowa klastra. Masowo równoległe superkomputery z fizycznie i logicznie rozproszoną pamięcią RAM można również uznać za rodzaj klastrów. Najbardziej uderzającym przykładem takiej architektury jest słynny komputer IBM SP2.

Całe pytanie dotyczy tego, co łączy komputery (węzły) w klaster. W „prawdziwych” superkomputerach używa się do tego specjalistycznego, a więc drogiego sprzętu, zaprojektowanego tak, aby zapewniał wysoką przepustowość. Klastry zwykle używają konwencjonalnych standardów sieciowych, takich jak Ethernet, FDDI, ATM lub HiPPI.

Technologie klastrowe wykorzystujące system operacyjny Linux zaczęły się rozwijać kilka lat temu i stały się dostępne na długo przed pojawieniem się Wolfracka dla Windows NT. Tak więc w połowie lat 90. narodził się projekt Beowulf.

Bohater eposu

„Beowulf” to skandynawska epopeja opowiadająca o wydarzeniach z VII - pierwszej trzeciej VIII wieku, której uczestnikiem jest bohater o tym samym imieniu, który wychwalał się w bitwach. Nie wiadomo, czy autorzy projektu myśleli o tym, z kim Beowulf będzie teraz walczył (zapewne z Windows NT?), ale bohaterski obraz pozwolił na konsorcjum kilkunastu organizacji (głównie uniwersytetów) w Stanach Zjednoczonych. Nie można powiedzieć, aby wśród uczestników projektu dominowały centra superkomputerowe, jednak klastry Loki i Megalon są instalowane w tak znanych na całym świecie centrach obliczeniowych o wysokiej wydajności, jak Los Alamos i laboratorium Sandia Departamentu Energii USA; czołowymi twórcami projektu są eksperci z agencji NASA. Ogólnie rzecz biorąc, wszystkie bez wyjątku klastry tworzone przez uczestników projektu otrzymują wielkie nazwiska.

Oprócz Beowulfa znana jest inna technologia bliskich klastrów - TERAZ. W TERAZ komputery osobiste zwykle zawierają informacje o sobie i przydzielonych im zadaniach oraz obowiązkach Administrator systemu taki klaster obejmuje tworzenie tych informacji. Klastry Beowulfa są pod tym względem prostsze (czyli z punktu widzenia administratora systemu): tam poszczególne węzły nie wiedzą o konfiguracji klastra. Tylko jeden dedykowany węzeł zawiera informacje konfiguracyjne; i tylko on ma połączenie sieciowe ze światem zewnętrznym. Wszystkie pozostałe węzły klastra są połączone siecią lokalną i tylko „cienki mostek” z węzła sterującego łączy je ze światem zewnętrznym.

Węzłami w technologii Beowulf są płyty główne komputerów PC. Zazwyczaj węzły używają również lokalnych dysków twardych. Do łączenia węzłów używane są standardowe typy sieci lokalnych. Rozważymy ten problem poniżej, ale najpierw skupimy się na oprogramowaniu.

Jego podstawą w Beowulf jest zwykły, dostępny na rynku system operacyjny Linux, który można kupić na płycie CD-ROM. Początkowo większość uczestników projektu skupiała się na płytach wydawanych przez Slackware, ale teraz preferowana jest wersja RedHat.

W zwykłym systemie operacyjnym Linux można zainstalować dobrze znane narzędzia do obsługi równoległej w modelu przesyłania komunikatów (LAM MPI 6.1, PVM 3.3.11 i inne). Możesz także użyć standardu p-nitków i standardowe środki komunikacja międzyprocesorowa, zawarta w każdym systemie operacyjnym Unix System V. W ramach projektu Beowulf przeprowadzono również znaczące dodatkowe udoskonalenia.

Przede wszystkim należy zwrócić uwagę na dopracowanie jądra Linuksa 2.0. W trakcie budowy klastrów okazało się, że standardowe sterowniki urządzeń sieciowych w Linuksie są bardzo nieefektywne. Dlatego opracowano nowe sterowniki (autorem większości opracowań jest Donald Becker), głównie dla sieci Fast Ethernet i Gigabit Ethernet, i możliwe było logiczne połączenie kilku równoległych połączeń sieciowych między komputerami osobistymi, co umożliwia zbudowanie sieci o dużej zagregowanej przepustowości z tanich sieci lokalnych o ponad skromnej prędkości.

Jak w każdym klastrze, każdy węzeł ma własną kopię jądra systemu operacyjnego. Dzięki ulepszeniom zapewniona jest unikalność identyfikatorów procesów w ramach całego klastra, a nie poszczególnych węzłów, a także „zdalne dostarczanie” sygnałów systemu operacyjnego Linux.

Ponadto należy zwrócić uwagę na funkcje rozruchu sieciowego (netbooting) podczas pracy z płytami głównymi Intel PR 440FX, a także można ich używać do pracy z innymi płytami głównymi wyposażonymi w BIOS AMI.

Bardzo ciekawe możliwości dają mechanizmy sieciowej pamięci wirtualnej (Network Virtual Memory) czy współdzielonej pamięci rozproszonej DSM (Distributed Shared Memory), które pozwalają stworzyć dla procesu swoistą „iluzję” współdzielonej pamięci RAM węzłów.

Networking to delikatna sprawa

Ponieważ równoległość aplikacji superkomputerowych w ogóle, a aplikacji klastrowych w szczególności, wymaga dużej przepustowości i małych opóźnień do wymiany komunikatów między węzłami, charakterystyka sieci staje się parametrem określającym wydajność klastra. Wybór mikroprocesorów dla węzłów jest oczywisty - są to standardowe procesory produkowane przez firmę Intel; ale z topologią klastra, typem sieci i kartami sieciowymi można poeksperymentować. To właśnie w tym obszarze przeprowadzono główne badania.

Analizując różne dostępne obecnie na rynku karty sieciowe do komputerów PC, szczególną uwagę zwrócono na takie cechy, jak efektywna obsługa rozgłaszania (multicasting), obsługa dużych rozmiarów pakietów itp. Głównymi typami sieci LAN zaangażowanych w projekt Beowulf są Gigabit Ethernet, Fast Ethernet i 100-VG AnyLAN. (Możliwości technologii ATM były również aktywnie eksplorowane, ale, o ile autor wie, odbywało się to poza zakresem tego projektu.)

Jak samodzielnie zbudować superkomputer

Po przeanalizowaniu wyników prac przeprowadzonych w ramach projektu Beowulf można dojść do następującego wniosku: znalezione rozwiązania pozwalają na samodzielne złożenie wysokowydajnego klastra w oparciu o standardowe komponenty komputera PC i wykorzystanie konwencjonalnego oprogramowania. Wśród największych przykładów nie można nie wspomnieć o 50-węzłowym klastrze w CESDIS, który obejmuje 40 węzłów przetwarzania danych (opartych na jedno- i dwuprocesorowych płytach Pentium Pro/200 MHz) oraz 10 węzłów skalujących (dwuprocesorowa płyta Pentium Pro/166 MHz). Stosunek kosztów do wydajności szczytowej w takim klastrze wydaje się być bardzo dobry. Pytanie brzmi, jak skutecznie można zrównoleglić aplikacje - innymi słowy, jaka będzie rzeczywista, a nie szczytowa wydajność. Obecnie uczestnicy projektu pracują nad rozwiązaniem tego problemu.

Warto zaznaczyć, że budowa klastrów z konwencjonalnych pecetów staje się dziś dość modna w środowisku naukowym. Podobne klastry planują także niektóre instytucje akademickie w naszym kraju.

Łącząc komputery o różnych pojemnościach lub różnych architekturach w klaster, mówi się o klastrach heterogenicznych (heterogenicznych). Węzły klastra mogą jednocześnie służyć jako stacje robocze użytkowników. W przypadku, gdy nie jest to potrzebne, węzły można znacznie odciążyć i/lub zainstalować w szafie typu rack.

Wykorzystywane są standardowe systemy operacyjne dla stacji roboczych, najczęściej dystrybuowane swobodnie - Linux/FreeBSD wraz ze specjalnymi narzędziami do obsługi programowania równoległego i dystrybucji obciążenia. Programowanie z reguły w ramach modelu przekazywania komunikatów (najczęściej MPI). Omówiono to bardziej szczegółowo w następnym akapicie.

Historia rozwoju architektury klastrowej.

DEC była pierwszą firmą, która w 1983 roku ogłosiła koncepcję systemu klastrowego, definiując go jako grupę połączonych ze sobą komputerów reprezentujących pojedynczy węzeł przetwarzania informacji.

Jeden z pierwszych projektów, który nadał nazwę całej klasie systemów równoległych - gromady Beowulfa - powstał w Centrum Lotów Kosmicznych NASA Goddard, aby wesprzeć projekt Nauk o Ziemi i Kosmosie niezbędnymi zasobami obliczeniowymi. Projekt Beowulf rozpoczął się latem 1994 roku i wkrótce zmontowano 16-procesorowy klaster z procesorami Intel 486DX4/100 MHz. Każdy węzeł został wyposażony w 16 MB pamięci RAM oraz 3 karty sieciowe Ethernet. Do pracy w tej konfiguracji opracowano specjalne sterowniki, które rozdzielają ruch między dostępne karty sieciowe.

Później klaster HIVE - Highly-parallel Integrated Virtual Environment został zmontowany w GSFC, którego strukturę pokazano na ryc. 2. Ten klaster składa się z czterech podklastrów E, B, G i DL, łączących 332 procesory i dwa dedykowane węzły hosta. Wszystkie węzły tego klastra działają pod kontrolą systemu RedHat Linux.

W 1998 roku w Los Alamos National Laboratory astrofizyk Michael Warren i inni naukowcy z Theoretical Astrophysics Group zbudowali superkomputer Avalon, który jest klastrem Linux opartym na procesorach Alpha 21164A z częstotliwość zegara 533MHz. Początkowo Avalon składał się z 68 procesorów, następnie został rozbudowany do 140. Każdy węzeł ma 256 MB pamięci RAM, dysk twardy o pojemności 3 GB oraz kartę sieciową Fast Ethernet. Całkowity koszt projektu Avalon wyniósł 313 000 USD, a jego wydajność LINPACK na poziomie 47,7 GFLOPS uplasowała go na 114 miejscu w 12. edycji listy Top500, obok 152-procesorowego systemu IBM RS/6000 SP. W tym samym 1998 roku, na najbardziej prestiżowej konferencji z dziedziny obliczeń o wysokiej wydajności Supercomputing'98, twórcy Avalon zaprezentowali raport „Avalon: An Alpha/Linux Cluster Achieves 10 Gflops for $150k”, który otrzymał pierwszą nagrodę w kategorii „najlepszy stosunek ceny do wydajności”.

W kwietniu tego roku w ramach projektu AC3 z Cornell University for Biomedical Research zainstalowano klaster Velocity+ składający się z 64 węzłów z dwoma procesorami Pentium III/733 MHz i 2 GB pamięci RAM każdy, o łącznej pojemności 27 GB na dysku. Węzły działają Sterowanie Windowsem 2000 i są połączone siecią cLAN firmy Giganet.

Projekt Wiele pudełek na półkach został wdrożony w Narodowym Instytucie Zdrowia Stanów Zjednoczonych w kwietniu 1997 roku i jest interesującym wykorzystaniem technologii Gigabit Ethernet jako medium komunikacyjnego. Początkowo klaster składał się z 47 węzłów z dwoma procesorami Pentium Pro/200 MHz, 128 MB pamięci RAM i 1,2 GB miejsca na dysku w każdym węźle. W 1998 roku został zrealizowany

kolejnym etapem projektu jest LoBoS2, podczas którego węzły zostały przekonwertowane na komputery stacjonarne z zachowaniem klastrowania. Teraz LoBoS2 składa się ze 100 węzłów obliczeniowych zawierających dwa procesory Pentium II / 450 MHz, 256 MB pamięci RAM i 9 GB pamięci dyskowej. Dodatkowo do klastra podłączone są 4 komputery sterujące ze wspólną macierzą RAID o pojemności 1,2 TB.

Jednym z najnowszych rozwiązań klastrowych był superkomputer AMD Presto III, będący klastrem Beowulf składającym się z 78 procesorów Athlon. Komputer jest zainstalowany w Tokyo Institute of Technology. Do tej pory AMD zbudowało 8 klastrowanych superkomputerów Beowulfa z systemem Linux.

Klastry IBM

RS/6000

IBM oferuje kilka typów luźno powiązanych systemów opartych na standardzie RS/6000, które działają w klastrach Produkt oprogramowania Multiprocesor klastrowy o wysokiej dostępności/6000 (HACMP/6000).

Węzły klastra działają równolegle, współdzieląc dostęp do zasobów logicznych i fizycznych, korzystając z możliwości menedżera śluz, który jest częścią HACMP/6000.

Od czasu ogłoszenia w 1991 r. produkt HACMP/6000 jest stale rozwijany. Zawierał równoległego menedżera zasobów, rozproszonego menedżera blokad i równoległego menedżera woluminów logicznych, przy czym ten ostatni zapewniał równoważenie obciążenia w całym klastrze. Maksymalna liczba węzłów w klastrze wzrosła do ośmiu. Obecnie w klastrze pojawiły się węzły z wieloprocesorowością symetryczną zbudowane w technologii Data Crossbar Switch, która zapewnia liniowy wzrost wydajności wraz ze wzrostem liczby procesorów.

Klastry RS/6000 budowane są w oparciu o lokalne Sieci ethernetowe, Token Ring lub FDDI i można je skonfigurować różne sposoby z punktu widzenia zapewnienia zwiększonej niezawodności:

  • Hot standby lub łatwe przełączanie awaryjne. W tym trybie węzeł aktywny wykonuje zadania aplikacji, podczas gdy węzeł rezerwowy może wykonywać zadania niekrytyczne, które można zatrzymać w przypadku konieczności przełączenia awaryjnego węzła aktywnego.
  • rezerwa symetryczna. Podobny do hot standby, ale role węzła master i standby nie są ustalone.
  • Wzajemny odbiór lub tryb z rozkładem obciążenia. W tym trybie każdy węzeł w klastrze może „przechwytywać” zadania uruchomione w dowolnym innym węźle w klastrze.

IBM SP2

IBM SP2 prowadzi w zestawieniu największych superkomputerów TOP500 pod względem liczby instalacji (141 instalacji, a łącznie na świecie działa 8275 takich komputerów z łączną liczbą węzłów ponad 86 tys. Superkomputery te oparte są na podejściu klastrowym opartym na architekturze wykorzystującej potężny przełącznik centralny. IBM stosuje to podejście od wielu lat.

Ogólna architektura dodatku SP2

Rysunek 1 przedstawia ogólne wyobrażenie o architekturze SP2. 1. Główną cechą architektury jest zastosowanie szybkiego przełącznika z niskimi opóźnieniami do łączenia ze sobą węzłów. Ta zewnętrzna skrajność prosty obwód doświadczenie okazało się niezwykle elastyczne. Początkowo węzły SP2 były jednoprocesorowe, potem pojawiły się węzły o architekturze SMP.

Właściwie wszystkie szczegóły są ukryte w strukturze węzłów. Ponadto węzły są różne rodzaje, a nawet procesory w sąsiednich węzłach mogą być różne. To zapewnia

większa elastyczność w konfiguracjach. Całkowita liczba węzłów w systemie komputerowym może sięgać 512. Węzły SP2 są w rzeczywistości niezależnymi komputerami, a ich bezpośrednie odpowiedniki są sprzedawane przez IBM pod niezależnymi nazwami. Najbardziej jaskrawym tego przykładem jest czteroprocesorowy serwer RS/6000 44P-270 SMP z mikroprocesorami Power3-II, który sam w sobie można zaliczyć do klasy średniej, a nawet mini-superkomputerów.

Mikroprocesory zainstalowane w węzłach SP2 rozwijały się wzdłuż dwóch linii architektonicznych: Power - Power2 - Power3 - Power3-II oraz wzdłuż linii PowerPC aż do modelu 604e o częstotliwości taktowania 332 MHz.

Tradycyjne dla SP2 są „cienkie” (Thin Node) i „szerokie” (Wide Node) węzły z architekturą SMP. Można je zainstalować jako PowerPC 604e (od dwóch do czterech procesorów) i Power3-II (do czterech). Pojemność pamięci RAM węzłów wynosi od 256 MB do 3 GB (w przypadku korzystania z Power3-II - do 8 GB). Główne różnice między węzłami cienkimi i szerokimi dotyczą podsystemu I/O. Szerokie węzły są przeznaczone do zadań wymagających większych możliwości we/wy: mają dziesięć gniazd PCI (w tym trzy 64-bitowe) zamiast dwóch gniazd w cienkich węzłach. W związku z tym liczba wnęk montażowych dla urządzeń dyskowych w szerokich węzłach jest większa.

Szybkość przełącznika charakteryzuje się niskim opóźnieniem: 1,2 ms (do 2 ms przy ponad 80 węzłach). Jest to o rząd wielkości lepsze niż to, co można uzyskać w nowoczesnych klastrach Beowulf Linux. Szczytowa przepustowość na port: 150 MB/s w jednym kierunku (tj. 300 MB/s w pełnym dupleksie). Adaptery przełączników znajdujące się w węzłach SP2 mają tę samą przepustowość. IBM zgłasza również doskonałe wyniki w zakresie opóźnień i przepustowości.

Najpotężniejsze węzły SP2 są „wysokie” (High Node). Węzeł wysoki to kompleks składający się z węzła obliczeniowego z maksymalnie sześcioma podłączonymi urządzeniami rozszerzającymi wejścia/wyjścia. Taki węzeł ma również architekturę SMP i zawiera do 8 procesorów Power3 o taktowaniu 222 lub 375 MHz.

Ponadto ten typ węzła zawiera kartę we/wy, do której jest również podłączona płyta główna. Płyta I/O zawiera dwa symetryczne bloki logiczne SABRE, przez które przesyłane są dane urządzenia zewnętrzne, Więc

jak napędy i sprzęt telekomunikacyjny. Karta we/wy ma cztery 64-bitowe gniazda PCI i jedno gniazdo 32-bitowe (33 MHz) oraz zintegrowane kontrolery UltraSCSI, Ethernet 10/100 Mb/s, trzy porty szeregowe i jeden port równoległy.

Wraz z pojawieniem się wysokich węzłów i mikroprocesorów Power3-II / 375 MHz systemy IBM SP2 osiągnęły 723,4 GFLOPS w testach równoległych Linpack. Wynik ten osiągnięto przy użyciu 176 węzłów (704 procesorów). Biorąc pod uwagę, że można zainstalować do 512 węzłów, wynik ten pokazuje, że dostępne na rynku dodatki IBM SP2 są potencjalnie bliskie znaku 1 TFLOPS.

Rozwiązania klastrowe firmy Sun Microsystems

Firma Sun Microsystems oferuje rozwiązania klastrowe oparte na produkcie SPARCcluster PDB Server, który jako węzły wykorzystuje wieloprocesorowe serwery SMP SPARCserver 1000 i SPARCcenter 2000. SPARCserver 1000 może mieć do ośmiu procesorów, a SPARCcenter 2000 do 20 procesorów SuperSPARC. Pakiet podstawowy obejmuje: dwa węzły klastra oparte na SPARCserver 1000/1000E lub SPARCcenter 2000/2000E, dwie macierze SPARCstorage oraz zestaw do budowania klastra, który obejmuje nadmiarowy sprzęt komunikacyjny, konsolę Cluster Management Console, oprogramowanie SPARCcluster PDB oraz pakiet obsługi usługi klastra.

Aby zapewnić wysoką wydajność i dostępność komunikacji, klaster zachowuje pełną redundancję wszystkich autostrad danych. Węzły klastra są połączone za pomocą łączy SunFastEthernet o przepustowości 100 Mb/s. Aby połączyć podsystemy dyskowe, użyj interfejs światłowodowy Fibre Channel o przepustowości 25 Mb/s, pozwalający na usuwanie od siebie dysków i węzłów na odległość do 2 km. Wszystkie połączenia między węzłami, węzłami i podsystemami dyskowymi są powielane na poziomie sprzętowym. Sprzęt, oprogramowanie i obiekty sieciowe klastry sprawiają, że w systemie nie ma takiego miejsca, którego pojedyncza awaria lub awaria spowodowałaby wyłączenie całego systemu z działania.

projekty uniwersyteckie

Ciekawym rozwinięciem University of Kentucky jest klaster KLAT2 (Kentucky Linux Athlon Testbed 2). System KLAT2 składa się z 64 bezdyskowych węzłów z procesorami AMD Athlon/700 MHz i 128 MB pamięci RAM każdy. Oprogramowanie, kompilatory i biblioteki matematyczne (SCALAPACK, BLACS i ATLAS) zostały udoskonalone w celu efektywnego wykorzystania 3DNow! Procesory AMD dla zwiększenia wydajności. Dużym zainteresowaniem cieszy się zastosowane rozwiązanie sieciowe, zwane „Flat Neighborghood Network” (FNN). Każdy węzeł ma cztery karty sieciowe Fast Ethernet firmy Smartlink, a węzły są połączone za pomocą dziewięciu 32-portowych przełączników. W tym przypadku dla dowolnych dwóch węzłów istnieje zawsze bezpośrednie połączenie przez jeden z przełączników, ale nie ma potrzeby łączenia wszystkich węzłów przez jeden przełącznik. Optymalizując oprogramowanie pod kątem architektury AMD i topologii FNN, osiągnęliśmy rekordowy stosunek ceny do wydajności wynoszący 650 USD/GFLOPS.

Idea podziału klastra na sekcje doczekała się ciekawego wcielenia w projekcie Chiba City, realizowanym w Argonne National Laboratory. Partycja główna zawiera po 256 węzłów obliczeniowych

z czego zainstalowane są dwa procesory Pentium III / 500 MHz, 512 MB pamięci RAM i dysk lokalny o pojemności 9 GB. Oprócz partycji obliczeniowej system zawiera partycję wizualizacyjną (32 komputery osobiste IBM Intellistation z kartami graficznymi Matrox Millenium G400, 512 MB RAM i dyskami 300 GB), partycję przechowywania danych (8 serwerów IBM Netfinity 7000 z procesorami Xeon/500 MHz i dyskami 300 GB) oraz partycję kontrolną (12 komputerów IBM Netfinity 500). Wszystkie są połączone siecią Myrinet, która służy do obsługi aplikacji równoległych, a także sieciami Gigabit Ethernet i Fast Ethernet do celów zarządczych i serwisowych. Wszystkie sekcje są podzielone na „miasto” (miasto) na 32 komputery. Każde z nich ma swojego „burmistrza”, który lokalnie obsługuje swoje „miasto”, odciążając sieć usługową i zapewniając szybki dostęp do lokalnych zasobów.

Projekty klastrowe w Rosji

Rosja zawsze miała duże zapotrzebowanie na wysokowydajne zasoby obliczeniowe, a stosunkowo niski koszt projektów klastrowych był poważnym impulsem do powszechnego stosowania takich rozwiązań w naszym kraju. Jednym z pierwszych, który się pojawił, był klaster Paritet, zmontowany w IVViBD i składający się z ośmiu procesorów Pentium II połączonych siecią Myrinet. W 1999 roku w firmie NICEVT, która w rzeczywistości była pionierem w wykorzystaniu technologii SCI do budowy systemów równoległych, przetestowano wariant rozwiązania klastrowego opartego na sieci SCI.

Wysokowydajny klaster oparty na sieci komunikacyjnej SCI zainstalowany w Research Computing Center Moskiewskiego Uniwersytetu Państwowego. Klaster NIVC obejmuje 12 dwuprocesorowych serwerów Excimer opartych na Intel Pentium III/500 MHz, łącznie 24 procesory o łącznej szczytowej wydajności 12 miliardów operacji na sekundę. Całkowity koszt systemu to około 40 tysięcy dolarów, czyli około 3,33 tysiąca za 1 GFLOPS.

Węzły obliczeniowe klastra są połączone jednokierunkowymi kanałami sieci SCI w dwuwymiarowy torus 3x4 i są jednocześnie połączone z serwerem centralnym za pośrednictwem pomocniczej sieci Fast Ethernet i przełącznika 3Com Superstack. Sieć SCI jest rdzeniem klastra, tworząc ten system unikalny obiekt obliczeniowy klasy superkomputerów, skoncentrowany na szerokiej klasie zadań. Maksymalna szybkość wymiany danych przez sieć SCI w aplikacjach użytkownika wynosi ponad 80 MB/s, a czas opóźnienia to około 5,6 µs. Przy budowie tego klastra obliczeniowego wykorzystano zintegrowane rozwiązanie Wulfkit opracowane przez firmy Dolphin Interconnect Solutions i Scali Computer (Norwegia).

Głównym narzędziem do programowania równoległego w klastrze jest MPI (Message Passing Interface) w wersji ScaMPI 1.9.1. W teście LINPACK, przy rozwiązywaniu układu równań liniowych z macierzą 16000x16000, rzeczywista uzyskana wydajność wyniosła ponad 5,7 GFLOPS. W testach pakietu NPB wydajność klastra jest porównywalna, a czasami przewyższa wydajność superkomputerów z rodziny Cray T3E o tej samej liczbie procesorów.

Głównym obszarem zastosowania klastra obliczeniowego Centrum Informatycznego Badań i Rozwoju Moskiewskiego Uniwersytetu Państwowego jest wsparcie podstawowych badań naukowych i procesu edukacyjnego.

Wśród innych ciekawych projektów na uwagę zasługuje rozwiązanie wdrożone na Uniwersytecie w Petersburgu w oparciu o technologię Fast Ethernet: zmontowane klastry mogą służyć zarówno jako pełnoprawne niezależne sale lekcyjne, jak i pojedyncza instalacja obliczeniowa rozwiązująca pojedyncze zadanie. W Centrum Naukowym Samara

obrała drogę tworzenia heterogenicznego klastra obliczeniowego, w skład którego wchodzą komputery oparte na procesorach Alpha i Pentium III. Na Politechnice w Petersburgu montowana jest instalacja oparta na procesorach Alpha i sieci Myrinet bez użycia lokalnych dysków na węzłach obliczeniowych. Ufa State Aviation Technical University projektuje klaster oparty na dwunastu stacjach Alpha, sieci Fast Ethernet i systemie operacyjnym Linux.

Państwowa Wyższa Szkoła Informatyki i Komunikacji

Praca pisemna

z dyscypliny „Obwody komputerowe”

na temat: „Nowoczesne systemy klastrowe i ich zastosowanie”

Ukończył: uczeń grupy KSD-32

Muzalewski Jewgienij


Wprowadzenie 3

1. Ogólne zasady systemów klastrowych 4

2. Klasyfikacja 4

3. Korzystanie z systemów klastrowych 5

Wnioski 6

Referencje 6
Wstęp

Klaster to modułowy system wieloprocesorowy stworzony w oparciu o standardowe węzły obliczeniowe połączone szybkim medium komunikacyjnym. Teraz słowa „klaster” i „superkomputer” są w dużej mierze synonimami, ale zanim można to powiedzieć z całą pewnością, sprzęt przeszedł długi cykl ewolucji. Przez pierwsze 30 lat od pojawienia się komputerów, aż do połowy lat 80., technologie „superkomputerowe” rozumiane były wyłącznie jako produkcja wyspecjalizowanych, szczególnie wydajnych procesorów. Jednak pojawienie się mikroprocesora jednoukładowego praktycznie zatarło różnicę między procesorami „masowymi” a „wyjątkowo wydajnymi” i od tego momentu jedynym sposobem na stworzenie superkomputera było połączenie procesorów w celu rozwiązania jednego problemu równolegle.

Atrakcyjną cechą technologii klastrowych jest to, że pozwalają one, w celu osiągnięcia wymaganej wydajności, łączyć komputery różnych typów w pojedyncze systemy obliczeniowe, od komputerów osobistych po potężne superkomputery. Technologie klastrowe są szeroko stosowane jako sposób tworzenia systemów klasy superkomputerowej z komponentów produkowanych masowo, co znacznie obniża koszt systemu obliczeniowego.


1. Zasady ogólne systemy klastrowe

Jak wspomniano wcześniej, klaster obliczeniowy jest zbiorem
komputery zjednoczone w określonej sieci w celu rozwiązania jednego problemu, który jest prezentowany użytkownikowi jako pojedynczy zasób.

Pojęcie „pojedynczego zasobu” oznacza obecność oprogramowania, które daje
możliwość czytania przez użytkowników, administratorów i aplikacje,
że jest tylko jeden podmiot, z którym współpracują, klaster.
Na przykład system przetwarzania wsadowego klastra umożliwia wysłanie zadania do
przetwarzania do klastra, a nie do pojedynczego komputera. Bardziej złożony
Przykładem są systemy baz danych. Prawie wszyscy producenci
systemów bazodanowych, istnieją wersje działające równolegle na
wiele maszyn klastrowych. W rezultacie aplikacje korzystające z bazy danych
danych nie musi obchodzić, gdzie wykonywana jest ich praca. DBMS
odpowiedzialny za synchronizację równoczesnych działań i utrzymanie
integralność bazy danych.

Komputery tworzące klaster - tak zwane węzły klastra - zawsze
stosunkowo niezależny, co pozwala na zatrzymanie lub wyłączenie dowolnego z nich
je w celu konserwacji zapobiegawczej lub instalacji dodatkowych
sprzętu bez zakłócania kondycji całego klastra.

Jako węzły obliczeniowe są zwykle używane w klastrze
jednoprocesorowe komputery osobiste, dwu- lub czteroprocesorowe SMP-
serwery. Każdy węzeł uruchamia własną kopię systemu operacyjnego.
systemów, które są najczęściej stosowane w standardzie
systemy operacyjne: Linux, NT, Solaris itp. Skład i moc węzłów
może zmieniać się nawet w ramach tego samego klastra, umożliwiając tworzenie
systemy heterogeniczne. Decyduje wybór konkretnego medium komunikacji
wiele czynników: cechy klasy rozwiązywanych zadań, potrzeba
późniejsza rozbudowa klastra itp. Można skonfigurować
wyspecjalizowane komputery, takie jak serwer plików i z reguły
zapewniona jest możliwość zdalnego dostępu do klastra przez Internet.
Wynika to z zawartej w nim definicji architektury systemów klastrowych
sobie bardzo szeroką gamę systemów.

2. Klasyfikacja

Systemy klastrowe mogą korzystać z różnych platform i zwykle są klasyfikowane nie według zestawu komponentów, ale według aplikacji. Istnieją cztery typy systemów klastrowych: klastry obliczeniowe, klastry baz danych, klastry pracy awaryjnej i klastry dystrybucji obciążenia. Największą grupę stanowią klastry obliczeniowe. Można go podzielić na podgrupy; jednak klasyfikacji w ramach tej grupy nie podlegają już rzeczywiste komputery, ale gotowe rozwiązania klastrowe oprogramowania i sprzętu. Takie systemy „pod klucz” mają preinstalowane oprogramowanie aplikacyjne wymagane przez klienta do rozwiązania jego problemów. Rozwiązania zoptymalizowane pod kątem różnych zastosowań różnią się doborem komponentów, które zapewniają najbardziej produktywną pracę tych konkretnych aplikacji przy najlepszym stosunku ceny do jakości.

Klastry baz danych są nowe. Systemy te współpracują z równoległymi wersjami baz danych i są wykorzystywane w dużych organizacjach do obsługi systemów CRM i ERP, a także transakcyjnych baz danych. Dziś systemy te są poważnym konkurentem dla tradycyjnych serwerów z pamięcią współdzieloną ze względu na m.in najlepszy stosunek cena/wydajność, skalowalność i odporność na awarie.

Klastry przełączania awaryjnego są budowane w celu jak najlepszego zapewnienia niezawodności krytycznych aplikacji. Działanie aplikacji jest duplikowane na różnych węzłach, aw przypadku błędu na jednym z nich, aplikacja kontynuuje pracę lub jest automatycznie restartowana na drugim. Takie klastry nie są duże, a użytkownicy często sami je budują. Technologie klastrowe są również wykorzystywane do dystrybucji dużego strumienia żądań na wiele serwerów. Takie rozwiązania są często wykorzystywane do obsługi serwisów WWW z dynamiczną zawartością, które stale uzyskują dostęp do baz danych, np Wyszukiwarki. W zależności od rozmiaru usługi klastry dystrybucji obciążenia mogą mieć dość dużą liczbę węzłów.

Działanie systemów klastrowych wspierane jest przez cztery rodzaje specjalistycznych aplikacji, takich jak: systemy operacyjne (najczęściej Linux), narzędzia komunikacyjne, narzędzia do tworzenia aplikacji równoległych oraz oprogramowanie do administrowania klastrami.

3. Wykorzystanie systemów klastrowych

Twórcy architektur systemów klastrowych realizowali różne cele, kiedy
ich stworzenie. Pierwszym był Digital Equipment z klastrami VAX/VMS.
Celem stworzenia tej maszyny było zwiększenie niezawodności systemu,
zapewnienie wysokiej dostępności i odporności na awarie. Obecnie
czasu istnieje wiele systemów podobnych w architekturze od innych
producenci.

Kolejnym celem tworzenia systemów klastrowych jest tworzenie tanich
wysokowydajne systemy obliczeń równoległych. Jeden z pierwszych
projekty, które dały nazwę całej klasie systemów równoległych - klasterowi Beowulf
– powstał w Centrum Lotów Kosmicznych NASA Goddard w celu wsparcia
niezbędne zasoby obliczeniowe projektu Nauki o Ziemi i Kosmosie.
Projekt Beowulfa rozpoczął się latem 1994 roku, a 16-procesorowy
klastra na procesorach Intel 486DX4/100 MHz. Każdy węzeł miał
zainstalowane 16 MB pamięci RAM i 3 sieci Ethernet-
adapter. System ten był bardzo udany pod względem
cena / wydajność, dlatego zaczęto rozwijać taką architekturę i
szeroko stosowane w innych organizacjach i instytutach naukowych.
Każda klasa klastrów ma swoje własne cechy architektury i
zastosowany sprzęt.

Średnio krajowe superkomputery nadal daleko odbiegają wydajnością od zachodnich: maszyny wykorzystywane do badań naukowych są 15-krotnie, zasoby obliczeniowe firm finansowych 10-krotnie, superkomputery przemysłowe 9-krotnie.


wnioski

Klaster to złożony kompleks programowo-sprzętowy składający się z węzłów obliczeniowych opartych na standardowych procesorach połączonych szybką siecią systemową oraz z reguły sieciami pomocniczymi i usługowymi.

Istnieją cztery typy systemów klastrowych: klastry obliczeniowe, klastry baz danych, klastry pracy awaryjnej i klastry dystrybucji obciążenia.

Sfera zastosowania systemów klastrowych nie jest obecnie węższa niż superkomputerów o innej architekturze: nie mniej skutecznie radzą sobie one z zadaniem symulowania różnorodnych procesów i zjawisk. Modelowanie superkomputerowe może znacznie obniżyć koszty i przyspieszyć wprowadzanie nowych produktów na rynek, a także poprawić ich jakość.

Podobne posty