Grid (system)

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacji, wyszukiwania

Grid (ang. grid, w Polsce niekiedy mylnie nazywany siatką komputerową, a poprawnie przetwarzaniem sieciowym[1]) – 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).

Celem technologii gridowej jest stworzenie prostego, lecz mimo to wielkiego i potężnego, wirtualnego komputera z ogromnej ilości połączonych, niejednorodnych systemów współdzielących różnego rodzaju zasoby. Wyłaniający się standard dla współdzielenia zasobów wraz z dostępnością większych szerokości pasm transmisyjnych stanowią szansę na duży ewolucyjny krok w obliczeniach gridowych. W sensie ogólnym "grid computing" oznacza przetwarzanie danych traktowane jako usługa użyteczności publicznej. Inaczej mówiąc, dla klienta nie jest ważne, gdzie są przechowywane jego dane ani który komputer wykonuje zlecenie. Natomiast koncepcja grid computing widziana od strony usługodawcy oznacza alokację zasobów, współużytkowanie informacji oraz konieczność zapewnienia wysokiej dostępności.

Pojęcia tego jako pierwszy użył Ian Foster, profesor na Uniwersytecie w Chicago, naukowiec pracujący w ANL (ang. Argonne National Laboratory). Idea ta ciągle ewoluuje, znajdowane są nowe obszary jej potencjalnego zastosowania.

Grid jest rozwinięciem idei klastra poza tradycyjne granice domeny.

Pierwsze inicjatywy[edytuj | edytuj kod]

Za pierwszy przejaw idei gridu uważa się inicjatywę SETI@home (ang. Search for Extra-Terrestrial Intelligence), mającą na celu przyspieszenie poszukiwań śladów życia we Wszechświecie. Dowolny posiadacz komputera mógł pobrać fragment danych (sygnałów odbieranych przez radioteleskopy) i przeprowadzać obliczenia w czasie wolnym od własnych obliczeń (wykorzystując wolne cykle CPU). To nowatorskie podejście do problemu pozwoliło na równoczesne wykorzystanie milionów komputerów rozproszonych po całym świecie. Udało się w ten sposób zidentyfikować potencjalnie interesujące fragmenty sygnału, które następnie poddawane są dalszym analizom.

Zasoby[edytuj | edytuj kod]

Zasoby gridu mogą być administrowane przez różne organizacje. Udostępnianie zasobów przebiega zgodnie z lokalną polityką zarządzania zasobami stosowaną w danej organizacji.

Zasoby posiadają przynajmniej niektóre z poniższych cech:

Współdzielenie zasobów[edytuj | edytuj kod]

Warstwę fizyczną środowiska gridowego stanowią połączone siecią zasoby sprzętowe wielu organizacji stanowiących VO, które wyrażą chęć współtworzenia takiej struktury.

Ponad warstwą sprzętową musi istnieć warstwa programowa, która pozwoli na udostępnianie i współdzielenie zasobów oraz umożliwi rozliczanie członków VO z użycia zasobów (tzw. accounting).

Przezroczysty dostęp do zasobów[edytuj | edytuj kod]

Użytkownik systemu gridowego nie musi wiedzieć:

  • skąd pobrane zostaną potrzebne mu dane,
  • na którym serwerze wykonają się jego obliczenia,
  • które dokładnie fragmenty infrastruktury będą zaangażowane w wykonanie jego zadania.

Cała infrastruktura sprzętowo-programowa, poza interfejsem dostępowym (np. portalem), powinna być przed użytkownikiem ukryta tak, aby mógł on w prosty sposób zlecić swoje zadanie i otrzymać wyniki.

Cechy charakterystyczne systemu gridowego[edytuj | edytuj kod]

  • Kładzie nacisk na autonomię zasobu (pozwala na zachowanie lokalnej kontroli nad zasobami, lokalnych polityki dostępu). Zasoby nie są zarządzane centralnie, w przeciwnym razie jest to lokalny system zarządzania zasobami (np. SGE, LSF, PBS)
  • Zasobami gridu mogą być nie tylko komputery i sieci, także specjalistyczne urządzenia, zbiory danych.
  • Grid skupia się na użytkowniku, patrzy się nie tylko z punktu widzenia posiadacza zasobu, ale głównie z punktu widzenia użytkownika zlecającego zadanie do wykonania, aby zoptymalizować wykonanie aplikacji a nie użycie systemu.
  • Używa standardowych i otwartych protokołów, w przeciwnym razie mamy do czynienia z systemem dedykowanym, zamkniętym.
  • Dostarcza nietrywialnych usług (odpowiednie QoS), nie może wymagać od użytkownika specjalistycznej wiedzy i skomplikowanych procedur.

Wirtualne organizacje[edytuj | edytuj kod]

Wyobraźmy sobie wiele organizacji rozproszonych po całym świecie, każda posiada pewne zasoby komputerowe, programowe, sprzęt specjalistyczny i cenne dane, np. pomiarowe. Żadnej z tych organizacji nie stać na zakup wszystkich najnowszych osiągnięć technologicznych, każda z nich posiada pewien ich podzbiór i wykorzystuje w różnym czasie i z różnym natężeniem.

Celem tworzenia gridu jest umożliwienie organizacjom wzajemnej wymiany np. mocy obliczeniowej i innych zasobów z zachowaniem lokalnych polityk dostępu i bezpieczeństwa. Tworzone są w ten sposób Wirtualne Organizacje (VO, ang. Virtual Organizations).

Rozwiązywanie problemów dużej skali[edytuj | edytuj kod]

Grid ma pozwolić na rozwiązywanie problemów dużej skali, w zakresie znacznie większym niż pozwalają na to wieloprocesorowe superkomputery lub lokalne klastry komputerowe.

Dzięki udostępnianiu własnych zasobów w ramach Wirtualnej Organizacji, można mieć okresowo dostęp do wszystkich jej zasobów, co daje niewątpliwą szansę na wykonanie bardziej skomplikowanych obliczeń w krótszym czasie (zasoby na żądanie).

Technologie programowe[edytuj | edytuj kod]

Najbardziej znane realizacje koncepcji gridu to Legion i Globus Toolkit.

Globus Toolkit jest to oprogramowanie warstwy pośredniej (ang. middleware) opracowywane w ramach projektu Globus Alliance. Celem projektu jest dostarczenie środowiska do uruchamiania i tworzenia aplikacji gridowych. Ponadto w ramach projektu powstają przykładowe implementacje usług potrzebnych w tym środowisku. Globus Toolkit uważany jest za implementację referencyjną.

Architektura i implementacja sieci GRID[edytuj | edytuj kod]

L.p. Warstwy Modelu OSI Warstwy Modelu GRID
1. Fizyczna IP
2. Łącza danych TCP
3. Sieci HTTP
4. Transportowa SOAP
5. Sesji WS-RF
6. Prezentacji oprogramowanie pośredniczące
7. Aplikacji Grid Apps

Technika grid computing oparta jest na idei łączenia zasobów danych w metasystem, obejmujący różnorodne architektury, platformy i lokalizacje fizyczne, z zachowaniem lokalnych reguł dostępu i bezpieczeństwa w obrębie utworzonej organizacji wirtualnej (VO, ang. virtual organization). Zastosowanie techniki sieci grid wymaga zatem stworzenia wszechstronnego systemu połączeniowego jak i zaawansowanej infrastruktury oprogramowania. Opracowywaniem standardów dotyczących techniki grid computing zajmują się organizacje Global Grid Forum i OASIS.

Architektura środowiska gridowego zdefiniowana została w standardach OGSA (ang. Open Grid Services Architecture), OGSI (ang. Open Grid System Infrastructure) oraz WSRF (ang. Web Services Resource Framework) określającym wymagania dla interfejsu sieciowego i sposób budowania oprogramowania dla środowiska z wykorzystaniem usług sieciowych. Jest to architektura zbliżona strukturą do sieci Internet. Najniższą warstwę tworzą zasoby sprzętowe organizacji (komputery, systemy przechowywania danych, sieci, klastry). Warstwa łącza definiuje protokoły komunikacji i uwierzytelniania. Kolejna warstwa określa protokoły kontroli i bezpiecznego dostępu do lokalnych zasobów sieci. Wyższa warstwa dostarczająca mechanizmy udostępniania i współdzielenia globalnych zasobów gridu.

Najwyżej znajduje się warstwa aplikacji, którą stanowią oprogramowanie użytkownika oraz portale dostępowe. Jest to właściwie jedyna warstwa widoczna dla użytkownika. Zespół wszystkich usług realizujących współpracę aplikacji w środowisku rozproszonym i umożliwiający konsolidację różnorodnych elementów sieci tworzy tzw. oprogramowanie pośredniczące. Jest to rodzaj oprogramowania pośredniczącego, stanowiący pomost umożliwiający komunikację między aplikacją użytkownika a zewnętrznymi bazami danych lub serwerami.

Najbardziej znane realizacje koncepcji gridu to m.in. Legion, Globe, Unicore i Globus. Są to platformy programistyczne realizujące funkcję warstwy oprogramowania pośredniczącego. Przykładowo Globus Toolkit, opracowywany w ramach projektu Globus Alliance, stanowi pakiet składający się z kilku modułów pozwalających na implementację podstawowych usług, umożliwiających pracę w techniki grid. W skład Globus Toolkit wchodzą programy realizujące takie funkcje jak: lokalizowanie i monitorowanie zasobów, zapewnianie bezpieczeństwa, transmisję danych użytkowych, czy komunikację. W odróżnieniu od realizacji w postaci pakietu modułów, oprogramowanie Legion bazuje na zunifikowanej architekturze, w której wszystkie funkcje zbudowane są w oparciu o jeden model. Wszelkie nowe aplikacje włączane są do istniejącego interfejsu programistycznego. Takie rozwiązanie pozwala na efektywną współpracę nowych modułów z reszta systemu.

W implementacji infrastruktury grid najbardziej popularnymi technikami i językami programowania są te, bazujące na modelu obiektowym i udostępniające usługi sieciowe. Do najczęściej używanych przy tworzeniu oprogramowania dla sieci grid technik należy Microsoft Net Framework (.NET)[potrzebne źródło]. Jest to platforma programistyczna opracowana przez Microsoft, obejmująca środowisko uruchomieniowe (CLR, ang. Common Language Runtime) oraz biblioteki klas dostarczające standardowej funkcjonalności dla aplikacji. Przykładem zastosowania powyższej techniki jest oprogramowanie Alchemi – programistyczny szkielet ułatwiający tworzenie samego gridu, jak i aplikacji działających na nim. Innymi technikami są Java i jej pochodna JINI. Język programowania Java jest językiem zorientowanym obiektowo, dobrze nadającym się do tworzenia systemów grid, a także programów pracujących na gridzie. Co ważne, programy napisane w nim są niezależne od systemu operacyjnego, na którym są wykonywane. Technika JINI zapewnia natomiast dodatkowo takie funkcje jak: wykrywanie usług (ang. Service Discovery), system powiadamiania bazujący na zdarzeniach, system zarządzania zasobami rozproszonymi i zapewnianie bezpieczeństwa. Z tego powodu jest to świetna technika przydatna do tworzenia systemów grid computing. Przykładem gridu zbudowanego z wykorzystaniem języka Java i techniki JINI jest JGrid.

Bezpieczeństwo w sieciach GRID[edytuj | edytuj kod]

W środowisku sieci obliczeniowych grid kluczowym wymaganiem jest niewątpliwie bezpieczeństwo, co niesie ze sobą konieczność występowania mechanizmów takich jak: autoryzacja, uwierzytelnianie, pewność dostępności oraz integralność danych, szczególnie z punktu widzenia użytkownika. W czasie wykonywania zadań przez użytkownika najczęściej wymagana jest forma komunikacji „message passing”[2]. Może być to relacja krótkotrwała lub długotrwała. Jednakże w każdej sytuacji aplikacja musi być zaprojektowana z pełną funkcjonalnością bezpieczeństwa. Wymagane jest także stworzenie wysokiego bezpieczeństwa w ramach organizacji należących do sieci obliczeniowej. System scentralizowany staje się bardzo niepraktyczny. Infrastruktura jest tak tworzona aby zezwalała na jednokrotne, wszędzie akceptowalne logowanie, które pozwala na lokalną kontrolę nad prawami dostępu w całej sieci globalnej.

Jednocześnie w każdym węźle sieci występuje blok bezpieczeństwa umożliwiający komunikację między wewnętrznymi elementami sieci. Dzieje się tak, gdyż grid jest połączeniem oprogramowania oraz fizycznego sprzętu komputerowego, którego lokalizacja nie jest znana przez użytkownika. Gdy użytkownik pragnie wykonać jakąś pracę na konkretnym procesorze musi mieć pewność, że jego prywatne dane jak i aplikacje nie będą dostępne dla nikogo niepożądanego oraz nie będą zmienione w czasie wysyłania jak i odbierania. W innym przypadku użytkownik i administrator są narażeni na duże ryzyko złośliwego działania innych osób.

Przypadki występujące w sieciach obliczeniowych wymagające bezpiecznej komunikacji to:

  1. Natychmiastowe wykonanie zadania – w tym podstawowym wymaganiu wobec sieci obliczeniowej po stronie użytkownika wyznaczany jest host zdalny wykonujący zadanie na którym kod zadania jest już dostępny lub zostanie on wysłany jako część żądania. Zadanie jedynie zdalnie wykonuje obliczenia i w miarę możliwości wykorzystuje jedynie tymczasową pamięć zdalną. Wymagania bezpieczeństwa to: dwustronne uwierzytelnianie, proces akceptujący zadanie musi je uruchomić jako zaufany proces lokalny na procesorze liczącym.
  2. Wykonanie zadań wymagających zaawansowanego planowania, kolejkowania.
  3. Nadzorowanie wykonywanych zadań.
  4. Dostęp do informacji w sieci.
  5. Zmiana parametrów bezpieczeństwa.

Wznawianie pracy w sieciach Grid[edytuj | edytuj kod]

Systemy sieciowe grid są typowym przykładem asynchronicznych nadmiarowych systemów rozproszonych, w których jest niemożliwe uzyskanie pełnego kompromisu, ponieważ bezbłędna detekcja błędów jest niemożliwa.

Sieć składa się z wielu węzłów (hosty, rutery, itp.) połączonych fizycznie lub logicznie między sobą. Węzły te przeważnie mają własne systemy detekcji błędów i ich status informacyjny może być przekazywany przez narzędzia SNMP. Dzisiejszy Internet przedstawiany jest jako model wielu wartsw, w których topologia jak i połączenie sieciowe mają różne znaczenie. W warstwie IP, detekcja błędu połączenia jest uzyskiwana przez okresowe wiadomości „Hello” wymieniane między ruterami przez protokoły takie jak np.: OSPF czy IS-IS.

Mechanizmy nadmiarowe, jak algorytm ARQ (ang. Automatic Repeat Request) w TCP jest preferowany do radzenia sobie z problemami chwilowymi takimi jak: zbyt długie opóźnienie, błąd przesyłu czy błąd enkapsulacji. Jednakże, dla stałych uszkodzeń jak przecięcie linii czy uszkodzenie węzła pożądana jest nadmiarowość zasobów fizycznych (węzłów, medium transmisyjnego). Sieć potrafiąca sobie radzić ze stałymi uszkodzeniami jest siecią przetrwalną (ang. survivable network). Podstawowym wymaganiem sieci przetrwalnych jest, aby ich topologia była co najmniej dwu-połączeniowa, aby ścieżka zapasowa mogła być użyta w razie utracenia ścieżki podstawowej. W rzeczywistości jedynie uszkodzenia pojedynczych ścieżek są brane pod uwagę, ponieważ prawdopodobieństwo jednoczesnego utracenia dwóch ścieżek jest znikome. Z uszkodzeniami węzłów zwykle radzi sobie sprzęt nadmiarowy w węźle.

Techniki używane dla sieci przetrwalnych mogą być w szerokim znaczeniu sklasyfikowane w dwóch kategoriach: ekstrapolacja[3] (ang. preplanned protection) lub dynamiczne odtwarzanie (ang. dynamic restoration). W porównaniu z ekstrapolacją odtwarzanie jest znacznie wydajniejsze, za to trwa dłużej. Dodatkowym atutem odtwarzania jest jego skalowalność. Jednocześnie odtwarzanie nie zawsze gwarantuje ponowne ustanowienie połączenia po próbie odbudowy po wykryciu uszkodzenia.

Wydajna sieć nadmiarowa powinna być projektowana według kryteriów:

  1. Proces odbudowy jest możliwie szybki, a usługa po przerwaniu powinna być przywrócona w jak najkrótszym czasie.
  2. Całkowite obniżenie jakości działania sieci podczas uszkodzenia powinno być jak najmniejsze
  3. Koszty zarządzania siecią związane z obsługą błędu powinny być możliwie małe.

Dwie podstawowe metody ekstrapolacji:

  1. Ochrona ścieżki dedykowanej – jest to schemat ochrony ścieżki 1 + 1, w którym sygnał transportowany jest symultanicznie, a odbiornik wybiera lepszy sygnał.
  2. Ochrona ścieżki współdzielonej – jest to schemat ochrony gdzie jedna ścieżka z grupy ścieżek zapasowych może w razie uszkodzenia zastąpić którąś ze ścieżek głównych.

W sieciach z przełączaniem pakietów utrata pakietu jest nieunikniona. Wyróżniamy dwa powody utraty pakietu: (1) utrata odbudowy, która występują w następstwie detekcji, lokalizacji i zarządzania błędem, uszkodzeniem oraz (2) utrata przepełnienia spowodowana ograniczoną pojemnością podczas uszkodzenia oraz przekierowywaniem zbyt wielu pakietów na jedną ścieżkę, gdy brak ścieżek alternatywnych. Jednakże mogą występować straty spowodowane przez różne połączenia tych dwóch źródeł.

Rysunek 1

O ile przeważnie czas detekcji i lokalizacji uszkodzenia jest stały i znany, o tyle czas zawiadamiania znacznie się różni w zależności od wybranego schematu odbudowy. Postaramy się teraz przybliżyć kilka szybkich schematów odbudowy na przykładzie powyższej sieci z rysunku 1). Ścieżka podstawowa prowadząca z węzła I do E zaznaczona jest czarną grubą linią i łącze 2→3 ulega uszkodzeniu w czasie pracy.

Globalne Zmodernizowanie Rutingu
w czasie uszkodzenia łącza, rutery kolejno do wszystkich węzłów przekazują sobie informacje na temat aktualnej topologii i nowa trasa jest wybierana u źródła dla każdego nowego pakietu. To rozwiązanie jest optymalne i zwykle protokoły rutingu są sobie w stanie z tym poradzić, jednakże jest to proces długotrwały i wiele pakietów zostanie utraconych. W przykładzie kolejne pakiety będą przesyłane kolejno przez rutery: I, 4, 5, 6, E.
Dyfrakcja[4] lokalna (ang. Local deflection)
kiedy ruter 2 odnotuje uszkodzenie, wybierze alternatywny, kolejny ruter dla pakietów i wszystkie kolejne pakiety zostaną już przekazane zapasową ścieżką. W naszym przykładzie: I, 1, 2, 5, 6, E. Jest to proces bardzo szybki i powoduje utratę małej liczby pakietów. Z drugiej strony wszystkie pakiety przekierowywane są na jedną alternatywną ścieżkę, co może powodować wzmożoną „utratę przepełnienia”.
Dyfrakcja sąsiadów
w tym schemacie ruter 2 wysyła powiadomienia o uszkodzeniu łącza, które zawierają informację o przeznaczeniu dla wszystkich dróg podstawowych przechodzących przez uszkodzoną drogę. Po otrzymaniu takiej informacji, każdy sąsiad wybierze alternatywną drogę dla pakietów mających przepływać przez uszkodzone połączenie. W przykładzie wybrana by była droga: I, 1, 4, 5, 6, E. W porównaniu do dyfrakcji lokalnej schemat ten ma potencjał stworzenia lepszych połączeń po uszkodzeniu.
Dyfrakcja rozsyłana
bardziej wydajny algorytm łączący w sobie dyfrakcję lokalną jak i dyfrakcję sąsiadów. Początkowo pakiety są rutowane do kolejnego węzła według dyfrakcji lokalnej aż do momentu, gdy sąsiedzi odnotują powiadomienia o uszkodzeniu i sami zaczną unikać uszkodzonego łącza

Ciekawostki[edytuj | edytuj kod]

Angielskie słowo grid stosowane jest od dawna w energetyce i oznacza sieć elektryczną, nazywano w ten sposób także siatkę geograficzną. Wpięcie się do siatki komputerowej ma dawać dostęp do mocy obliczeniowej, tak jak wpięcie się do sieci elektrycznej daje dostęp do energii elektrycznej.

Zobacz też[edytuj | edytuj kod]

Przypisy

  1. Nowoczesne technologie informacyjne w zarządzaniu, Mieczysław L. Owoc, Jacek Sachanbinski, PRACE NAUKOWE AKADEMII EKONOMICZNEJ WE WROCLAWIU;Nr 1081; 2005
  2. message passing – z ang.; w naukach technicznych jest formą komunikacji używaną w obliczeniach równoległych, symultanicznych, programowaniu zorientowanym obiektowo i w komunikacji między procesami. Komunikacja polega na wysyłaniu wiadomości do odbiorców. Ramka wiadomości zawiera: nagłówek, sygnalizację oraz dane.
  3. w różnych naukach przewidywanie przebiegu lub rezultatu jakichś zjawisk na podstawie danych odnoszących się do innych, podobnych zjawisk lub przewidywanie przebiegu całości zjawisk na podstawie częściowej znajomości ich przebiegu
  4. zjawisko występujące przy rozchodzeniu się wszystkich rodzajów fal, powoduje ona m.in. przenikanie dźwięków i światła za przeszkodę i przez małe otwory

Bibliografia[edytuj | edytuj kod]

  • D. Minoli, A Networking Approach to Grid Computing, 2004
  • F. Travostino, Grid Networks, J. Wiley & Sons, 2006
  • I. Foster, C. Kesselman, The Anatomy Of The Grid, 2002
  • L. Ferreira, V. Berstirs, Introduction to Grid Computing with Globus, IBM Red Books,2003
  • I. Foster, C. Kesselman, The Physiology Of The Grid, 2002
  • Min Xie, Yuan-Shun Dai, Kim-Leng Poh, Computing Systems Reliability, 2004
  • Evan Marcus, Hal Stern, Blueprints for High Availability, 2003
  • Ruay-Shiung Chang, Po-Hung Chen, Complete and fragmented replica selection and retrieval in Data Grids (Available online at www.sciencedirect.com)