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