to get the file
Transkrypt
to get the file
Programowanie Współbieżne Klastry i Gridy 1 Klastry ● Klaster komputerowy (ang. cluster) zwany także gronem grupa połączonych jednostek komputerowych, współpracujących ze sobą w celu udostępnienia zintegrowanego środowiska pracy. (źródło: wikipedia) ● Komputery wchodzące w skład klastra nazywamy węzłami. 2 Klastry Klastry buduje się dla dwóch celów. ● Klastry wydajnościowe buduje się jako jeden komputer równoległy wiele obecnych superkomputerów zbudowana jest na tej zasadzie ● Klastry niezawodnościowe klastry pracują jako zespół komputerów dublujących się na wzajem, w razie awarii inne komputery przejmą zadania tego węzła, który przestał działać 3 Klastry Klastry wydajnościowe: ● Nth – moduł do NetFilter. Rozkłada obciążenie sieciowe dbając o to by co n-ty pakiet zadanej reguły trafiał do odpowiedniego węzła. – Zaletą jest prostota i ogólnodostępność – Nie posiada mechanizmów samodiagnozowania – Nie wyrównuje obciążenia w sposób dynamiczny. – Brak narzędzi do monitorowania stanu węzłów. – Brak komunikacji między węzłami 4 Klastry Klastry wydajnościowe: ● LVS Linux Virtual Server Projekt LVS jest rozwinięciem idei budowy klastra w oparciu o translację adresów sieciowych (NAT), np. nth. – Zawiera dodatkowo wyspecjalizowany algorytm rozkładania obciążenia – Monitoruje stan pracy węzłów – Posiada jeden główny serwer kontrolujący resztę – Główny serwer rozkłada równomiernie obciążenie przydzielając zadania poszczególnym węzłom, proces ten jest nie widoczny dla klientów, którzy widzą jedynie sam serwer. 5 Klastry Klastry wydajnościowe: ● ● ● MOSIX (Multicomputer Operating System for UNIX) został stworzony w oparciu o jądro systemu operacyjnego Unix na zlecenie armii izraelskiej na Uniwersytecie Hebrajskim w Jerozolimie w 1981r. Ponieważ fragmenty kodu nie były "open" więc postanowili napisać wszystko od zera i tak powstał OpenMosix bazujący na Linuxie. Mosix poczatkowo był rozwijany na systemie BSD. Został przeniesiony na system Linux w 1999 roku, a w 2002 wydzielił sie z niego OpenMosix. 6 Klastry Open MOSIX – posiada swój własny klastrowy system plików o nazwie MosixFS (nazywany tez MFS) – Do równoważenia obciążenia procesorów Mosix używa procesu migracji z wywłaszczeniem inicjowanym przez nadawcę. – Aby zwiększyć wydajność systemu plików po migracji, jest używany algorytm Direct File System Access (DFSA). Ten algorytm pozwala na bezpośrednia komunikacje z głównym węzłem. 7 Klastry Open MOSIX ● – Używanie OpenMosix'a jest niewskazane w obliczeniach, które korzystają dużo z pamięci dyskowych. Związane jest to z koniecznością przesyłania przez sieć dużej ilości danych. – Proces przenoszenia procesów na węzły jest całkowicie automatyczny i przeprowadzany w zależności od ich obciążenia – Wymogiem jest aby aplikacja uruchamiana na klastrze miała możliwość pracy współbieżnej. – znajduje zastosowanie w symulacjach komputerowych i złożonych obliczeniach. Okazuje się przydatny między innymi przy animacjach 3D i programach sztucznej inteligencji http://openmosix.sourceforge.net/ 8 Klastry Klastry wydajnościowe: ● ● ● PVM (Parallel Virtual Machine) Został zaprojektowany i stworzony by umożliwić łączenie komputerów o różnych konfiguracjach sprzętowych w jeden równolegle działający multikomputer. MPI – standard na którym bazuje wiele implementacji Message Passing Interface, takich jak OpenMPI czy LAM. Kerrighed ( http://www.kerringhed.org)- powstał, jako wynik projektu badawczego rozpoczętego w 1999 roku. Konfigurowalne globalne szeregowanie procesów, kiedy węzeł jest niedostatecznie obciążony, system dostrzega niezrównoważenie i proces migruje z mocno do niedostatecznie 9 obciążonego węzła Klastry Klastry wydajnościowe: ● OpenSSI http://www.openssi.org – ukazał się w 2001 roku bazując na projekcie UnixWare NonStop Cluster, który powstał na bazie systemu Locus. – Aktualna wersja OpenSSI zawiera kilka systemów plików i systemów zarządzania dyskami opartych na otwartym oprogramowaniu (GFS, OpenGFS, Lustre, OCFS, DRSD), – rozproszony mechanizm blokowania (OpenDLM Distributed Lock Manager) i mechanizm migracji pochodzący z systemu Mosix. 10 Klastry wydajnościowe: ● OpenSSI Klastry – OpenSSI pozwala dynamicznie równoważyć obciążenie procesorów w klastrze. Mechanizm migracji OpenSSI używa procesu delegacji do obsługi IPC i wywołań systemowych po migracji procesu oraz klastrowy system plików (OCFS) do obsługi dostępu do otwartych plików. – Narzędzia w OpenSSI: ● ● ● ● ● ● loadlevel - służy do sterowania równoważenia obciążenia loads - pokazuje obciążenia węzłów migrate - służy do migracji procesów onall - wykonuje program na każdym węźle onnode - wykonuje program na podanym węźle wherepid - pokazują na jakim węźle wykonuje się podany 11 proces Klastry Klastry niezawodnościowe: ● ● Fake (z ang. nieprawdziwy, podrabiany) stanowi dość ciekawy sposób realizacji systemu niezawodnościwego. W momencie wykrycia awarii serwera głównego serwer zapasowy zaczyna się pod niego „podszywać”. Do tego celu używa się ARP spoofing uniemożliwiając tym samym rozpoznanie przez węzły faktu zaistnienia awarii. DRBD Projekt DRBD powstał w celu stworzenia systemu mirrorowania systemu plików. Dane zapisywanie lokalnie na komputerze są w tym samym czasie automatycznie wysyłane na drugi komputer. Pozwala to na wykonywanie kopii zapasowych w sposób natychmiastowy. Z utworzonej kopii można skorzystać od razu w wypadku awarii komputera pierwszego. Więcej na 12 http://www.drbd.org/ Klastry Klastry niezawodnościowe: ● ● High - Availability Linux Project ma na celu stworzenie rozwiązania umożliwiającego wysoką dostępności dla systemów GNU/Linux w oparciu o klustering. Projekt Linux-HA współpracuje także z projektem LVS. Heartbeat - publicznie dostępne oprogramowanie udostępniające podstawowa funkcjonalność pozwalająca tworzyć i zarządzać klastrami wysokiej dostępności w systemie Linux. Połączenie gwarantujące komunikacje, węzły informują sie nawzajem, że działają. Jeżeli któryś z węzłów przestaje odpowiadać, pozostałe przejmują jego funkcje do czasu usunięcia usterki. 13 Klastry Systemy plików używane w klastrach, powinny charakteryzować się kilkoma cechami wspólnymi: ● zwiększona skalowalność ● równoważenie obciążeń ● ● ● ● ● lepsze zarzadzanie (zarządzanie systemem klastrowym jest ułatwione dzięki temu, że system jest widziany jako jedna całość) odporność na awarie serwera (zastępowany jest przez inny serwer) odporność na awarie sprzętu (jeżeli „padnie” część sieci może znajdzie się trasa przez dobrą część). przeźroczystość (uzytkownik postrzega klaster jako jeden serwer niezaleznie od tego, na jakim elemencie klastra faktycznie pracuje i ile ich jest) niezawodność (węzły sa odizolowane od siebie, więc uszkodzenie jednego z nich nie powoduje wystąpienia awarii w innym). 14 Klastry Systemy plików używane w klastrach ● Coda - zaawansowany sieciowy, rozproszony system plików. Jest rozwijany na uniwersytecie Carnegie Mellon od 1987 roku. Ten system plików powstał z AFS wersji 2. – Celem systemu Coda jest wysoka dostępność. – W przypadku uszkodzenia części sieci serwerów umożliwia dalszą pracę. – Może on pracować bez połączenia z siecią. Mozna korzystać z zasobów będąc od nich odłączonym (korzystając z plików roboczych). – Po podłączeniu do sieci aktualizacja danych jest wykonywana automatycznie. – Coda cechuje się dobrą skalowalnością. – Jest przechowywana na replikowanych serwerach danych. 15 Klastry Systemy plików używane w klastrach ● GFS (ang. Global File System) jest stosunkowo zaawansowanym i dojrzałym systemem plików dla klastrów wysokiej dostępności. – Umożliwia on bezpieczny jednoczesny dostęp do plików w trybie do zapisu i odczytu przez wiele węzłów klastra. – Charakteryzuje sie dobrą skalowalnością i szybkim doprowadzeniem systemu plików po awarii do spójnego stanu. – Architektura systemu plików umożliwia wydajne, skalowalne blokowanie plików oraz wybór mechanizmu blokowania. W odróżnieniu od centralnego serwera metadanych, GFS wyklucza powstawanie wąskich gardeł. Jest zgodny ze standardem POSIX. – Jest to system plików o zamkniętym śródle. 16 Klastry Systemy plików używane w klastrach ● NFS (ang. Network File System) jest sieciowym, rozproszonym systemem plików zorientowanym na obsługę plików. – Został stworzony przez firme Sun Microsystems, a obecnie jest otwartym protokołem internetowym. – Pracuje w środowisku heterogenicznym. – Umożliwia współdzielenie systemów plików pomiędzy dowolną liczba komputerów. – Każda maszyna moze jednoczesnie pełnic role klienta i serwera – oferuje przeźroczystość dostępu (moduł klienta systemu NFS dostarcza lokalnym procesom interfejsu programowania aplikacji, który jest identyczny jak interfejs lokalnego systemu operacyjnego, 17 Klastry Systemy plików używane w klastrach ● NFS – Przeźroczystość położenia (przez spójna konfiguracje montowania zdalnych katalogów u klientów), – Przeźroczystość wydajności (intensywne wykorzystanie pamięci podręcznych) i migracji. – NFS4 oferuje też elementy współbieżności. 18 Klastry Systemy plików używane w klastrach ● Lustre (Linux + Clusters) jest aktywnie rozwijanym systemem. Powstał w 2001 roku w firmie HP, później projekt został przekazany na licencji Open Source. – Celem utworzenia tego systemu było doprowadzenie do możliwości bezpiecznego obsłużenia bardzo dużej ilości węzłów w klastrach o wysokiej przepustowości. – Do konfiguracji i logowania Lustre wykorzystuje standardy LDAP (ang. Lightweight Directory Access Protocol) i XML (ang. Extensible Markup Language). – Dane przechowywane w systemie (specjalne pliki i katalogi) są traktowane jak obiekty. Właściwości obiektów (rozmiar, czas utworzenia, wskaźniki dowiązań symbolicznych, flagi rezerwowe) przechowywane są na19 serwerach metadanych (MDS). – Klastry Systemy plików używane w klastrach ● Lustre – Metadane przechowywane są oddzielnie w stosunku do rzeczywistej zawartości obiektów. – Serwery metadanych obsługują tworzenie plików, zmiany ich właściwości i są odpowiedzialne za obsługę obszaru nazw – plik może być odnaleziony poprzez wysłanie zapytania do serwera metadanych. – Wszystkie implementacje Lustre sa zgodne ze standardem POSIX 20 Klastry Porównanie wybranych 3 Systemów Klastrowych Zakres przestrzeni nazw Jednolita lista procesów (global ps) Globalna statystyka pamięci (global top) i obciążenia procesów Globalny dostęp do urządzeń Jednolita przestrzeń nazw w systemie plików. Migracja procesów Migracja wątków Migracja aplikacji wielowątkowych Globalne szeregowanie procesów Konfigurowalność globalnego szeregowania procesów. Kerrighed T T OpenMOSIX OpenSSI T/N T T/N T T N N N N T T T/N T T T T T T N N T T N T T T N N 21 Klastry Porównanie wybranych 3 Systemów Klastrowych Kerrighed OpenMOSIX OpenSSI Migracja procesów używających segmentów pamięci Systemu V Migracja procesów używających semaforów Systemu V Migracja procesów używających łączy Migracja procesów używających gniazd UNIX Migracja procesów używających gniazd INET Dynamiczne dodawanie węzła Dynamiczne usuwanie węzła Zrzucenie migawki procesu Odporność na uszkodzenie węzła Zrzucenie migawki aplikacji wielowątkowej Zrzucenie migawki aplikacji równoległych T N T N T T T N N N T N N T T T T T T T N N N T T T T T T T N N N 22 GRIDY GRID system, który integruje i zarządza zasobami będącymi pod kontrolą różnych domen (od instytucji po system operacyjny) i połączonymi siecią komputerową, używa standardowych, otwartych protokołów i interfejsów ogólnego przeznaczenia (odkrywania i dostępu do zasobów, autoryzacji, uwierzytelniania) oraz dostarcza usług odpowiedniej jakości (QoS, oferuje usługi wyższego poziomu). 23 GRIDY Grid jest takim rozszerzonym klastrem. Główne cechy grida to: ● rozproszone geograficzne ● heterogeniczne sprzętowo i programowo ● dynamiczne (dostępność zmienna w czasie) ● potencjalnie zawodne ● posiadane i zarządzane przez różne organizacje ● różne wymagania i polityki bezpieczeństwa ● różne polityki zarządzania zasobami ● połączone heterogeniczną siecią (różne warstwy, protokoły komunikacyjne, topologie) 24 GRIDY Obecnie powstaje sporo sieci gridowych. Choćby: ● ● SEE-GRID-2 "South Eastern European Grid-Enabled eInfrastructure Development-2" Sieci GRID, znane również jako eInfrastruktura, stanowią metodę współużytkowania sieci komputerowych o dużej przepustowości w celu ułatwienia prowadzenia badań, a szczególnie współpracy badawczej. – łatwiejsza jest wymiana informacji, w sposób analogiczny do pracy w Internecie, – wspólne wykorzystywanie mocy obliczeniowej. – Naukowcy z Europy Południowo-Wschodniej zyskują w ten sposób możliwość uruchamiania aplikacji wymagających dużej mocy przetwarzania bądź pojemności składowania, w tym prowadzenia złożonych symulacji komputerowych. 25 GRIDY ● distributed.net – projekt łamania kluczy. – Paczki danych – klienci, rozproszone obliczenia w wolnym czasie. – Np klucz RC5-56 bitowy złamano w 250dni, RC5-64 w 1757dni RC5-72 jest nadal liczony od 1,630 dni i przeszukali 0.415% przestrzeni poszukiwań. – Wszystkich kluczy jest 4,722,366,482,869,646,000,000 a w tej chwili policzyli 19,619,019,907,837,985,000 – 76,012 członków z czego około 10% obecnie jest aktywna. – W tym tempie powinno im to zająć około 400tys. dni. – Ludzi przyciąga drobna nagroda 10tys $ za złamanie klucza. Z czego 6 bierze dnet. 26 GRIDY ● ● ● ● SETI@HOME - To też jest jeden z pierwszych projektów od 1999. – Uczestniczy w nim ponad 2mln osób. – Około 3mln komputerów. – Średnia prędkość ok 14Tflopa. – Dziennie z teleskopu w Puerto Rico spływa około 40GB danych które są rozsyłane do komputerów na całym świecie. United Devices Cancer Research Project – Szukanie lekarstwa na raka. Działa na podobnych zasadach. The Human Proteome Folding Project - Szukanie funkcji wszystkich protein genotypu ludzkiego. Zadanie to jednemu zwykłemu pc zajęło by około 1mln lat. Parabon Computation - http://www.parabon.com/ 27 GRIDY ● ● Klaster Holk to najszybszy obecnie superkomputer w Polsce przeznaczony do zastosowań naukowych. Zainstalowana w Centrum Informatycznym Trójmiejskiej Akademickiej Sieci Komputerowej na Politechnice Gdańskiej maszyna przekroczyła granicę wydajności biliona operacji na sekundę, uzyskując w pierwszych dniach stycznia 2006r. wynik 3,225 teraflopów/s w teście HPL(High-Performance Linpack). Składa się obecnie z 288 procesorów Itanium2 dual core 1,4 i wyposażony jest w pamięć operacyjną o pojemności 2304 GB oraz pamięć dyskową 5,8 TB. Spina go sieć InfiniBand 10Gb/s. Pracuje pod kontrolą systemu Debian linux Clusterix klaster zbudowany w sposób rozproszony, łączy kilka ośrodków akademickich za pomocą krajowej sieci optycznej nowej generacji PIONIER Prędkość 4,4 TFLOPS udało się uzyskać dzięki 802 64-bitowych procesorów Intel Itanium 2, oraz systemu operacyjnego Linux. (prędkość może być obecnie większa po upgradzie niektórych komputerów, choćby Holka) <FILM> 28 GRIDY ● ● ● listę 500 najszybszych zamyka wynik 2736.9 gigaflopów. A otwiera BlueGene ponad 130tys procesorów ponad 32TB pamięci wszystko to daje moc ponad 280Tf. (http://www.top500.org) Obecnie wśród najszybszych systemów są – klastry około 72,2% – MPP 21,6% – Gridy 6,2 % Systemy operacyjne w pierwszej 500. – Linux 376 – Unix 86 – Mieszane 32 – BSD i Mac po 3 29