Janina Mincer-Daszkiewicz
Systemy rozproszone
MSUI, II rok
Materiały i rysunki zaczerpnięto z
następujących źródeł
1. Ian Foster, What is the grid? A three point checklist, 2002.
2. Susan Schwarz, An overview of grid computing, prezentacja
3. Ed Seidel, Introduction to grid computing, prezentacja
4. Rajkumar Buyya, Grid Computing, prezentacja, www.gridbus.org
5. Ian Foster, strona domowa, www-fp.mcs.anl.gov/~foster/
6. Strona domowa projektu Globus, www.globus.org
7. Prace Fostera, www.globus.org/research/papers.html#OGSA
8. Inne strony: www.grid.org, www.gridcomputing.com,
www.gridforum.org
Co to jest grid?
• Grid obliczeniowy to infrastruktura sprzętowa i programowa,
która w sposób niezawodny, spójny, rozproszony i tani zapewnia
dostęp do zasobów obliczeniowych.
• Grid zapewnia ściśle kontrolowane współdzielenie zasobów i
rozwiązywanie problemów w dynamicznych organizacjach
wirtualnych, w skład których wchodzi wiele różnych instytucji.
To właśnie precyzyjnie zdefiniowane reguły współdzielenia (kto,
co, pod jakimi warunkami) określają zbiór jednostek i instytucji,
które tworzą wirtualną organizację.
• Współdzielenie nie dotyczy prostej wymiany plików, lecz raczej
bezpośredniego dostępu do komputerów, oprogramowania,
danych i innych zasobów.
• Wspólna infrastruktura i wymiana jest możliwa dzięki
standardowym protokołom
Grid jest systemem, który ...
• koordynuje dostęp do zasobów, które nie podlegają centralnej
kontroli ...
(grid integruje i steruje zasobami i użytkownikami, którzy istnieją w różnych
domenach, rozwiązując problemy bezpieczeństwa, członkostwa, rozliczania
itp., które pojawiają się w takich okolicznościach; wpp mamy do czynienia
z systemem lokalnego zarządzania)
• ... przy użyciu standardowych, otwartych, protokołów i
interfejsów ogólnego przeznaczenia ...
(gridy buduje się z zastosowaniem ogólnych protokołów, rozwiązujących
problemy autentykacji, autoryzacji, lokalizowania zasobów, dostępu do
zasobów; standardowych i otwartych; wpp mamy system ukierunkowany na
konkretne zastosowanie)
• ... w celu dostarczenia usługi o niebanalnej jakości
(jakość może dotyczyć czasu odpowiedzi, przepustowości, bezpieczeństwa,
wspólnego przydziału zasobów różnych typów zgodnie z żądaniami użytk.)
Co zatem NIE JEST gridem, a co JEST?
• Systemy takie jak Sun Grid Engine, Platform Load Sharing
Facility, Veridian Portable Batch System po zainstalowaniu na
komputerze równoległym lub sieci lokalnej zapewniają wysoką
jakość usługi – nie są to gridy, gdyż posiadają pełną wiedzę o
stanie systemu i żądań użytkowników oraz całkowicie nimi sterują
• Web nie jest (jeszcze) gridem – posługuje się co prawda
otwartymi i standardowymi protokołami, ale nie koordynuje
dostępu do zasobów na tyle, by zapewnić pożądaną jakość usług
• Przykłady (prawie) gridów: wielowęzłowe procesy szeregujące
jak Platform MultiCluster; rozproszone systemy obliczeniowe jak
Condor, Entropia, UnitedDevices; systemy P2P jak Gnutella;
rozproszona instalacja Storage Resource Broker (wspiera
rozproszony dostęp do zasobów)
• Znakomita analogia: Electric Power Grid
Ewolucja, nie rewolucja
Grid można postrzegać jako rozwiązanie, które wyrosło z
wielu innych, znanych i popularnych, w drodze ewolucji:
• Jak Web, gridy ukrywają złożoność
• Inaczej niż Web, który głównie wspiera komunikację, gridy umożliwiają pełną
współpracę przy realizacji wspólnych celów biznesowych
• Jak P2P, obliczenia gridowe umożliwiają użytkownikom współdzielenie
plików
• Inaczej niż P2P, gridy wspierają współdzielenie na zasadzie wielu-do-wielu,
nie tylko plików, ale także innych zasobów
• Jak klastry i rozproszone obliczenia, gridy łączą zasoby obliczeniowe
• Inaczej iż klastry i rozproszone obliczenia, które wymagają fizycznej
bliskości i jednorodnego środowiska operacyjnego, gridy mogą być
rozproszone geograficznie i niejednorodne
• Jak technologie wirtualizacji, gridy wspierają wirtualizację zasobów IT
• Inaczej niż technologie wirtualizacji, które wirtualizują pojedynczy system,
gridy wirtualizują rozrzucone zasoby IT
EUROPE:
ZIB/Germany
PC
2
/Germany
AEI/Germany
Lecce/Italy
CNR/Italy
Calabria/Italy
Pozman/Poland
Lund/Sweden
CERN/Swiss
CUNI/Czech R.
Vrije: Netherlands
EUROPE:
ZIB/Germany
PC
2
/Germany
AEI/Germany
Lecce/Italy
CNR/Italy
Calabria/Italy
Pozman/Poland
Lund/Sweden
CERN/Swiss
CUNI/Czech R.
Vrije: Netherlands
ANL/Chicago
USC-ISC/LA
UTK/Tennessee
UVa/Virginia
Dartmouth/NH
BU/Boston
UCSD/San Diego
ANL/Chicago
USC-ISC/LA
UTK/Tennessee
UVa/Virginia
Dartmouth/NH
BU/Boston
UCSD/San Diego
U. Of Melbourne
Monash U.
VPAC/Melbourne
U. Of Sydney
U. Of Melbourne
Monash U.
VPAC/Melbourne
U. Of Sydney
Santiago/Chile
Santiago/Chile
TI-Tech/Tokyo
ETL/Tsukuba
AIST/Tsukuba
TI-Tech/Tokyo
ETL/Tsukuba
AIST/Tsukuba
Cardiff/UK
Portsmoth/UK
Manchester, UK
Cambridge, UK
Cardiff/UK
Portsmoth/UK
Manchester, UK
Cambridge, UK
Kasetsart/Bangkok
Kasetsart/Bangkok
Singapore
Singapore
Przykłady gridów
Przykłady gridów
• GridLab Testbed
– Dziesięć maszyn w Europie dla deweloperów narzędzi gridowych
• European Union Data Grid
– grid do zastosowań w fizyce wysokich energii, naukach środowiskowych,
bioinformatyce (www.eu-datagrid.org)
• Access Grid
– Zasoby multimedialne oraz interfejsy do środowisk wizualizacyjnych i usług
gridowych (www.accessgrid.org), używany w ponad 150 instytucjach na
świecie
• NFS PACI Grid
• TeraGrid (www.teragrid.org)
– Łączy główne centra akademickie w USA, na potrzeby otwartych badań
naukowych
• Information Power Grid (www.ipg.nasa.gov)
– Wysokiej wydajności grid obliczeniowy NASA
Zasoby Teragrida
• Argonne National Lab (198 procesorów)
• Cal Tech (64 procesory)
• NCSA (512 procesorów)
• Pittsburg Supercomputing Center (3000
procesorów)
• San Diego Supercomputing Center (500
procesorów)
NSF PACI Grid
Access Grid
NorduGrid
Korzyści z obliczeń gridowych
• Użycie zasobów rozproszonych po całym świecie
– Dostęp do większej mocy obliczeniowej
– Lepszy dostęp do danych
– Użycie nadmiarowych cykli
• Obliczenia na nowym poziomie złożoności i nowej skali
• Lepsza współpraca wirtualnych organizacji (grup organizacji
wykorzystujących grida do współdzielenia zasobów)
Stan bieżący
• Dziesiątki projektów gridowych do obliczeń naukowych i
technicznych w akademickich środowiskach badawczych
• Porozumienie w kwestii kluczowych pojęć i technologii (Global
Grid Forum)
• Open source Globus Toolkit – standard głównych protokołów i
usług
• Dużo pieniędzy idzie na różnego rodzaju projekty gridowe
• Gwałtownie rośnie zainteresowanie biznesu
• Dalsza potrzeba rozwijania standardów udostępniania usług
gridowych
• Wymaga znacznego szkolenia użytkowników
Przygotowanie programu do wykonania
na gridzie
• Mnóstwo pracy z przygotowaniem programu
• trzeba zaadoptować nowe algorytmy do obliczeń
równoległych
• trzeba zmienić interfejs użytkownika
• Trzeba budować program na innej architekturze
• Trzeba przesłać program i dane na różne komputery
• Kwestie bezpieczeństwa i licencji
• Wymaga biegłości w administrowaniu
• W większości oparta na systemach uniksowych
Jak przebiega wykonanie programu na gridzie
• Użytkownik dostarcza żądanie poprzez GUI
• program
• system operacyjny i inne wymagania
• dane wejściowe
• Grid odnajduje i przydziela zasoby w celu spełnienia
żądania
• Grid monitoruje realizację żądania
• przenosi zadanie, gdy zasoby staną się niedostępne
lub ulegną awarii
• Grid zawiadamia użytkownika, gdy wyniki są gotowe
Warstwy oprogramowania
(interfejs użytkownika)
Przeglądarka lub okno shellowe
Klient Globus na stacji roboczej użytkownika
Serwer Globus na węźle Master
Zarządcy kolejek i planiści na węźle Master
(dostarcz zadanie)
(zarządca zadań)
Programy wykonywane na klastrach grida
Rozwój gridowych standardów
Custom
solutions
Open Grid
Services Arch
Real standards
Multiple implementations
Web services, etc.
Managed shared
virtual systems
Research
Globus Toolkit
Defacto standard
Single implementation
Internet
standards
1990
1995
2000
2005
2010
Slide courtesy of Ian Foster, Argonne National Labs
1a. Request to
Registry for sources
of data about “x”
1b. Registry
responds with
Factory handle
2a. Request to Factory for
access to database
2c. Factory returns
handle of GDS to
client
3a. Client queries GDS
with XPath, SQL, etc
3b. GDS interacts with database
3c. Results of query returned to
client as XML
Registry
Factory
2b. Factory creates
GridDataService to manage
access
Grid Data
Service
Client
XML /
Relational
database
Przykład usługi gridowej
SOAP/HTTP
service creation
API interactions
Główne usługi gridowe
• Bezpieczeństwo
• autentykacja: weryfikowanie tożsamości użytkownika
• autoryzacja: ustalanie i wymuszanie praw i przywilejów
użytkownika
• bezpieczeństwo grida: dostęp poprzez pojedynczy punkt
autentykacji ze stacji roboczej użytkownika
• Jednolite nazewnictwo:
• wymagane w celu przeroczystego dostępu do zasobów
niezależnie od ich położenia
• musi być unikatowe w całym gridzie
• nie należy obarczać użytkowników szczegółami dostępu do
zasobów
Usługi informacyjne
• Information and Data directory services
• dostęp do danych i informacji w całym gridzie
• standardowe metody dostępu do informacji o
obciążeniu procesora, szerokości pasma w sieci,
składowych aplikacji
• Wykrywanie i udostępnianie zasobów
• jak usługa siebie opisuje?
• jak się reklamuje? jak informuje gridowych brokerów
o swoim istnieniu?
• jak znaleźć usługę podają zbiór jej własności?
QoS – Quality of Service
• Grid składa się z dynamicznych składowych
• składowe uruchomione z początkowym zbiorem
warunków
• jak można zachować te warunki?
• analiza zależności
• może wymagać migracji
• migruj i rozpocznij wykonanie od początku
• migruj i kontynuuj z tego samego stanu
• zachowaj informację o stanie
• punkty kontrolne
Inne usługi gridowe
• Szeregowanie
• aplikacje składają się z różnych części
• trzeba je efektywnie szeregować w dostępie do różnych
zasobów
• Obsługa zdarzeń
• Monitorowanie
• skąd wiadomo, że składowa nadal żyje: monitory typu heart
beat, sieć agentów do monitorowania grida
• Obsługa sytuacji awaryjnych i pomoc użytkownikowi
• Jednolity interfejs, rozliczanie, współpraca przy
współużytkowaniu zasobów
Potrzebne są wewnątrz gridowe protokoły
• Rozwój protokołów nadzoruje Global Grid Forum
• Powstał de facto standard: Globus Toolkit
• W trakcie definiowania jest Open Grid Services Architecture
(OGSA), która modernizuje i rozszerza protokoły wchodzące w
skład Globus Toolkit – jest to odpowiedź na nowe wymagania,
także obejmujące usługi webowe
• OGSA cieszy się poparciem dużych firm, takich jak IBM,
Microsoft, Platform, Sun, Avaki, Entropia, United Devices
• W przyszłości żeby zasób mógł stać się częścią grida będzie
musiał implementować protokoły OGSA (tak jak zasób dostępny
w Internecie musi implementować protokół IP)
Otwarte usługi gridowe
• Połączenie usług webowych i gridowych
• WS-Resource Framework (2004)
konwencje określające zarządzanie stanem w celu umożliwienia
aplikacjom odszukiwania, sprawdzania i korzystania z zasobów
„stanowych” w standardowy sposób
• Web services description language (WSDL)
Format XML do opisu usług sieciowych jako zbioru punktów końcowych
obsługujących komunikaty zawierające informację typu „dokument”
lub typu „procedura”
• Umożliwia różnorodne implementacje za wspólnym interfejsem
• Używa standardów do opisu, odszukania, zarządzania usługą
• Globus i inne oprogramowanie gridowe przystosowane do
używania OGS
Usługi zapewniane przez Globus Toolkit
• Bezpieczeństwo (GSI)
– usługa bezpieczeństwa (autentykacji) oparta na PKI
• Dostarczanie zadań i zarządzanie nimi (GRAM)
– jednolite dostarczanie zadań
• Usługi informacyjne (MDS)
– usługi informacyjne oparte na LDAP
• Zarządzanie zdalnymi plikami (GASS)
– usługa dostępu do zdalnej pamięci
• Katalog zdalnych danych i narzędzia do zarządzania
– wspierane przez Globus 2.0 dostarczony w 2002
Podsumowanie i wnioski
• Obliczenia gridowe staną się platformą obliczeniową nowej
generacji do rozwiązywania problemów dużej skali.
• Zarządzanie zasobami jest trudnym zadaniem, gdyż systemy
muszą dobrze dostosowywać się do potrzeb, być skalowalne,
konkurencyjne, … i zapewniać QoS.
• Istnieje już infrastruktura do obsługi przydziału zasobów i
sterowania dostępem do nich, u podłoża których leży
“obliczeniowa ekonomia”
• Kluczem do sukcesu mierzonego liczbą gridowych
zastosowań jest istnienie łatwych w użyciu narzędzi do
tworzenia gridowych aplikacji