Sunteți pe pagina 1din 10

Lucrare de Laborator NR 3.

Iniţiere în tehnologia GRID. Instalare,


configurare şi execuţie în GridGain

1 Obiective

1. Deprinderea terminologiei specifice GridGain


2. Configurarea GridGain
3. Împărţirea şi rularea unei aplicaţii specifice GridGain

2 Breviar teoretic

Introducere

Termenul de „grid” s-a conturat la mijlocul anilor 1990 pentru a se referi la o


infrastructură computaţională distribuită capabilă să pună la dispoziţie resursele în funcţie de
necesităţile specifice fiecărui client, aşa cum poate fi utilizată reţeaua (eng. grid) de
electricitate.
Tehnologia grid poate spori în mare măsură productivitatea şi eficienţa organizaţiilor
(virtuale) care trebuie să facă faţă provocărilor, prin optimizarea proceselor şi resurselor,
partajarea acestora în reţea şi colaborare.
Soluţiile grid vin în întâmpinarea organizaţiilor ce doresc dezvoltarea unei arhitecturi
orientate pe servicii care facilitează managementul şi integrarea proceselor afacerii.
Pe piaţă există un număr mare de ofertanţi de astfel de soluţii, dintre aceştia putând fi
amintiţi: Oracle, IBM, DataSynapse, GreenTeaSoft, Sun, Hewlett-Packard, United Devices,
etc.
O definiţie pentru grid ar putea fi cea dată de Wolfgang Gentzsch în „The Grid, The
Time Machine of the 21st Century": grid-ul „reprezintă o infrastructură software/hardware/
instrumente care furnizează acces nelimitat, dependent, consistent şi omniprezent la resurse de
tip computaţional şi date”. De fapt, grid-ul poate fi văzut ca cea mai recentă şi completă
evoluţie a procesării distribuite, în tabelul de mai jos fiind prezentată o comparaţie ([3],[5]) cu
alte tehnologii binecunoscute.

Tabelul 1. Comparaţie alte tehnologiei Grid cu alte tehnologii distribuite

Teh Similarităţi Diferenţe


nologie
Web Un grid ascunde Un grid permite maşinilor să lucreze
complexitatea sa, împreună şi să colaboreze într-o formă care
interconectează resurse presupune mai mult decât o simplă comunicarea;
diferite şi oferă o
percepţie unificată
asupra mediului;
Peer- Ambele pot Grid-urile pot utiliza relaţii „mai mulţi la
to peer partaja fişiere şi pot mulţi” pentru a partaja o mare varietate de resurse,
comunica nu numai fişiere;
direct, uneori
prin intermediul unui
broker
central;
Cluste Clusterele şi Un cluster este alcătuit din calculatoare de
r-e gridurile grupează acelaşi tip aflate într-o locaţie centrală şi
resursele pentru a necesitând o imagine unică a sistemului (SSI).
rezolva o problemă şi Spre deosebire de cluster unde accentul cade pe
pot avea un management performanţa procesării paralele, într-un grid acesta
unitar al instrumentelor revine partajării resurselor. SSI nu mai este o
pentru toate cerinţă, calculatoarele din grid fiind eterogene şi
componentele; distribuite geografic;
Virtua Grid-ul permite Spre deosebire de virtualizare care se referă
lizare componentelor să fie la un singur sistem, un grid permite virtualizarea
percepute ca un fond resurselor eterogene de pretutindeni, chiar globale,
comun de resurse. pentru a forma un fond comun de servicii IT;
Activitatea poate fi
desfăşurată într-un mod
asemănător pe
oricare dintre ele;

Grid-urile de pe piaţă sunt, de fapt, combinaţii ale tipurilor principale de grid, şi


anume:
▪ grid-uri computaţionale (eng. computational grids) - orientate pe furnizarea
accesului la un fond comun de putere de calcul.
Grid-urile computaţionale exploatează capacitatea de procesare agregată a
calculatoarelor eterogene, incluzând în general cluster-e de calculatoarea dedicate,
supercalculatoare;
▪ grid-uri de date (eng. data grids) – se concentrează pe management, distribuţie şi
replicarea eficientă a unor mari cantităţi de date, asigurând accesul la date pentru organizaţiile
din grid. Utilizatorii nu sunt interesaţi de locaţia în care sunt stocate datele, ci au nevoie de
disponibilitatea datelor pentru a-şi putea îndeplini sarcinile de lucru;
▪ grid-uri colaborative (eng. Scavenging grids) - se folosesc în sistemele cu un număr
mare de desktop-uri, acestea fiind baleiate (eng. scavenging) pentru a determina ciclii CPU
neutilizaţi precum şi alte resurse. Proprietarii resurselor au controlul atunci când resursele lor
sunt disponibile pentru a participa la grid (e.g. Condor, Entropia).
Ţinând cont de aplicaţiile ce vor rula în grid, trebuie ales tipul potrivit pentru
organizaţie.
Cu toate că există numeroase modele de servicii grid, sunt implementate cu succes în
cadrul sistemelor grid arhitecturi de sistem de tip protocoale stratificate (e.g. Globus) şi de
tip maşină virtuală (e.g. Legion). În cadrul arhitecturii de tip protocoale stratificate, straturile
sistemului sunt succesiv construite pe funcţionalitatea nivelurilor inferioare. Stratificarea
sistemului facilitează independenţa resurselor şi aplicaţiilor din grid, componentele eterogene
putând interacţiona utilizând interfeţele definite de protocol. În mod similar, arhitecturile de
tip maşină virtuală abstractizează eterogenitatea resurselor din grid. Totuşi, abstractizarea
arhitecturii maşinii virtuale este realizată la un nivel superior, componentele şi resursele grid-
ului fiind integrate într-o singură entitate de calcul ce poate fi adresată global. Prin
comparaţie, sistemele stratificate abstractizează domeniul de aplicaţie şi resursele ce stau la
baza grid-ului pentru a furniza o interfaţă comună independentă de diferitele componente
hardware şi software conţinute în grid.
În general, arhitecturile grid de tip protocoale stratificate sau maşină virtuală suportă
aceleaşi funcţionalităţi de bază, ca alocarea resurselor, managementul proceselor, servicii de
informare, securitate, comunicare, managementul datelor, replicare, toleranţa la defecte,
precum şi parametri legaţi de calitatea serviciilor. Aceste mecanisme nu sunt specifice
sistemelor grid, ci ele au fost adaptate pornind de la sistemele paralele şi distribuite astfel
încât să răspundă cerinţelor sistemelor grid.
Există şi încercări de standardizare, proiectul celor de la Global Grid Forum urmărind
să organizeze protocoalele sub Open Grid Services Architecture (OGSA), arhitectură de
sistem grid bazată pe conceptele şi tehnologiile serviciilor Web.

Probleme şi provocări ale grid-urilor

Procesarea grid are drept scop să cupleze resursele distribuite geografic şi să ofere
servicii într-o manieră transparentă, puternică şi ieftină indiferent de locaţia fizică a resurselor
sau a punctelor de acces. Pentru a realiza aceasta, trebuie rezolvate provocările în ceea ce
priveşte dezvoltarea de instrumente şi middleware-ruri capabile să integreze cu uşurinţă
dispozitive de calcul, cluster-e, depozite de date şi reţele ([3]). Deşi standarde ca OGSA
încercă să definească un număr de servicii principale ale grid-ului, există încă numeroase
probleme care trebuie soluţionate înainte ca aplicaţiile grid să devină la fel de pătrunzătoare
ca aplicaţiile Web şi Internetul.
Aceste provocări includ probleme legate de ingineria software, planificarea şi
echilibrarea încărcării, procesarea autonomă, replicarea, etc. În continuarea se vor prezenta
doar două dintre aceste probleme şi posibilele modalităţi de rezolvare a acestora.

Planificarea şi echilibrarea încărcării

La fel ca şi în cazul altor sisteme distribuite, alocarea cererilor, planificarea lucrărilor


şi echilibrarea încărcării reprezintă o problemă importantă care are un efect direct asupra
ieşirilor sistemului şi timpului total de execuţie al lucrărilor. Sistemele bazate pe planificare,
în general, analizează sau prezic starea unui sistem pentru a determina cel mai bun nod căruia
să-i aloce lucrarea. În prezent, sistemele grid utilizează modele predictive care alocă lucrările
sistemelor neutilizate pe baza unei aproximări a stării sistemului. Aceste modele sunt mai
eficiente deoarece nu trebuie determinată starea globală a sistemului.
Există un trend de a utiliza în sistemele grid a modelelor economice sau de piaţă.
Aceste modele partiţionează resursele grid-ului într-o economie computaţională (eng.
computational economy) în care resursele sunt schimbate ca şi cum ar fi monedă fizică.
Utilizatorii pot specifica bugetul şi termenul limită pentru lucrări, permiţând astfel
planificatorului să aloce resursele pentru a îndeplini cerinţele legate de timp şi costuri (e.g.
Nimrod-G, Grid Application Development Software, Condor-G).
Alte modele alocă resursele pe baza performanţei prezise, alocând lucrările maşinilor
în funcţie de cât de repede se aşteaptă să se termine o lucrare pe un anumit sistem (e.g.
AppLeS, Matchmaker). Din păcate, aceste modele bazate pe performanţă sunt adesea lacome,
neluând în considerare alte lucrări nou intrate în sistem, ceea ce poate conduce la performanţe
slabe.
Multe sisteme bazate pe planificarea lucrărilor încearcă să reechilibreze resursele
sistemului în mod dinamic şi să migreze lucrările de la sistemele ocupate la cele neutilizate.

Probleme legate de ingineria software

Dezvoltarea şi analiza aplicaţiilor grid ridică, ca şi alte sisteme distribuite, numeroase


probleme.
Programatorii sunt expuşi în mod direct complexităţii sistemelor grid şi sunt
confruntaţi cu sisteme care necesită coordonarea simultană a mai multor componente
independente ale sistemului. Până când biblioteci la nivel de aplicaţie nu vor fi larg
răspândite, dezvoltarea aplicaţiilor grid va fi îngreunată.
În prezent, sunt dezvoltate câteva interfeţe de programare a aplicaţiilor care să
simplifice accesul la resursele grid-ului. Aceste sisteme integrează diferite servicii
componente ale grid-ului într-o singură interfaţă coerentă (e.g. MPICH-G2, GraDS, Cactus).
În sistemele distribuite, ca grid-urile computaţionale sau de date, aplicaţiile pot utiliza
mii de sisteme eterogene, făcând operaţiile de monitorizare şi depanare foarte complicate.
Aceasta se datorează unor probleme majore asociate cu sistemele paralele şi
distribuite:
▪ dimensiunea mare a sistemului şi eterogenitatea sa;
▪ numărul mare de programe care se execută în paralel;
▪ latenţă crescută a reţelelor de mare întindere;
▪ dificultatea obţinerii unei stări globale a grid-ului;
▪ imposibilitatea recreării exacte a secvenţei de execuţie datorită variaţiilor de
încărcare a sistemului.
Evaluarea performanţelor este o altă problemă de importanţă critică în dezvoltarea
sistemelor distribuite. Performanţa sistemului este o măsură a eficienţei cu care diferite
componente ale grid-ului îşi completează sarcinile în diferite condiţii. În prezent, este aproape
imposibil să se creeze teste controlabile şi cu rezultate ce pot fi reproduse, datorită condiţiilor
în schimbare ca latenţa reţelei, blocajele, încărcarea sistemului şi diferitele defecte ale
sistemului. De aceea, rezultatele sistemului grid pot furniza doar o aproximare brută a
eficienţei unui algoritm particular.
Există câteva medii de simulare (e.g. GridSim şi Bricks) care utilizează simularea cu
evenimente discrete pentru a modela interacţiunea dintre componentele grid-ului şi pentru a
înregistra performanţele ([4]). Aceste sisteme furnizează un mediu controlabil şi reproductibil
pentru a genera rezultatele testelor.

GridGain este o infrastructură pentru calcul grid, open source şi pe bază de Java.
GridGain este dezvoltat în Java pentru Java.

2.1 Concepte de bază în GridGain

2.1.1 Instanţă Grid


Instanţa grid este o singură instanţă Gridgain care are nume. Pe o singură maşină
virtuală Java se pot porni mai multe instanţe Gridgain. GridFactory este cea care poate crea
instanţe grid.

2.1.2 Nod Grid


Nodul grid este similar instanţei grid, o rulare a gridului care are un ID de nod unic.
Nodurile din grid nu trebuie să fie fizic separate. GridGain suportă mai multe noduri pe
aceeaşi maşină virtuală. Nodurile oferă informaţii statice despre ele cu ajutorul atributelor de
nod şi informaţii dinamice cu ajutorul metrici nodului.

2.1.3 Task grid


Taskul grid este principala unitate de transmisie în grid. Taskul grid este cea ce
transmite şi execută un utilizator în grid.

2.1.4 Sesiunea taskului grid


Pe timpul execuţiei unui task GridGain asigură sesiuni pentru taskuri şi pentru joburi.

2.1.5 Topologia Grid


Topologia grid specifică care noduri grid sunt disponibile pentru un job grid.
Topology SPI este un loc centralizat care este responsabil cu determinarea nodurilor
disponibile pentru un task.

2.1.6 Job Grid


Jobul grid este un executabil. Jobul grid ajunge în noduri la distanţă pentru a fi
executate în timp ce taskul grid este responsabil cu împărţirea şi agregarea rezultatelor grid.
2.2 Instalarea şi configurarea GridGain
Pentru instalarea GridGain trebuie preinstalat Java 5 sau Java 6[ CITATION htt \l 1048 ].
După instalarea Java trebuie instalat pachetul GridGain[ CITATION www3 \l 1048 ]. După
instalarea GridGain trebuie setate două variabile de sistem GRIDGAIN_HOME şi
JAVA_HOME. La unele versiuni variabila JAVA_HOME trebuie setată înaintea instalări
GridGain.
După aceşti paşi GridGain este instalat şi gata de funcţionare în modul multicast şi cu
pornire manuală.
Se poate instala şi ca serviciu de Windows sau Linux. Pentru paşi se poate vizita
http://www.gridgainsystems.com/wiki/display/GG15UG/GridGain+Node+as+Linux+or+Win
dows+Service
Setarea implicită de multicast de obicei este folosită doar în teste sau în reţele de
dimensiuni mici. Pentru rulări peste WAN GridGain are mai multe utilitare standard. Pentru
proiect am ales pachetul JGroups. Pentru configurarea acestui pachet se folosesc fişiere XML
existente în directorul ConfigâJgroups\TCP.
Exemplu de configurare a fişierului jgroups.xml
<!--
LICENSE AGREEMENT

GRIDGAIN - GRID COMPUTING FOR JAVA.


COPYRIGHT (C) 2005-2008 GRIDGAIN SYSTEMS. ALL RIGHTS RESERVED.

THIS IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR


MODIFY IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC
LICENSE AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION; EITHER
VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER
VERSION.

THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL,


BUT WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE
GNU LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.

YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC
LICENSE ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE
SOFTWARE FOUNDATION, INC., 51 FRANKLIN ST, FIFTH FLOOR, BOSTON,
MA
02110-1301 USA
-->

<!--
JGroups localhost configuration.
This file provides TCP based GridJgroupsDiscoverySpi and
GridJgroupsCommunicationSpi
for node discovery and message exchange.

Note that some versions of JGroups may require


an explicit bind address to be specified for IPv6.
Refer to http://www.jgroups.org or
http://www.jboss.org/wiki/Wiki.jsp?page=JGroups
for more information about JGroups configuration.

If you have an OS with IPv6 enabled, Java applications may try to


route IP multicast
traffic over IPv6. Use "-Djava.net.preferIPv4Stack=true" system
property at VM startup
to prevent this.
-->
<protocol_stacks>
<stack name="grid.jgroups.stack" description="Grid configuration
stack">
<config>
<!-- Start port for local TCP listener. -->
<TCP start_port="7800"/>

<!--
Initial hosts is a list of initial hosts in the grid.
Other hosts will attempt to find initial hosts in
order
to connect to the grid.

Make sure to change 'localhost' to your initial host


IP address.
-->
<TCPPING
timeout="5000"
initial_hosts="192.168.96.101[7800]"
port_range="10"
num_initial_members="1"/>

<MERGE2
min_interval="10000"
max_interval="20000"/>

<FD_SOCK/>

<VERIFY_SUSPECT
timeout="3000"
num_msgs="3"/>

<pbcast.NAKACK
gc_lag="500"
retransmit_timeout="300,600,1200,2400,4800, 9600"/>

<UNICAST
timeout="300,600,1200,2400,4800"/>

<pbcast.STABLE
desired_avg_gossip="20000"/>
<FRAG
frag_size="8192"/>

<pbcast.GMS
join_timeout="5000"
join_retry_timeout="2000"
shun="true"
print_local_addr="true"/>
</config>
</stack>
</protocol_stacks>

Pentru ca GridGain să încarce acest fişier la start trebuie dat ca parametru de comnadă
fişierul spring-jgroups.xml care încarcă automat jgroups.xml.
Exemplu de rulare gridgain.bat config/jgroups/tcp/spring-jgroups.xml

Grid-uri bazate pe modele economice

Managementul şi planificarea resurselor într-un grid reprezintă o iniţiativă complexă


deoarece resursele sunt distribuite, eterogene ca natură, deţinute de diverşi indivizi sau
organizaţii, cu propriile politici, au diferite modele de acces şi cost, precum şi variaţii în ceea
ce priveşte încărcarea şi disponibilitatea resurselor.
Aceasta conduc la un număr de probleme legate de autonomie, eterogenitatea
interacţiunilor, extensibilitatea politicilor, alocarea resurselor, broker-ul de resurse, controlul
online, scalabilitate şi probleme economice.
Un număr de sisteme grid (ca Globus şi Legion) rezolvă mare parte dintre aceste
probleme cu excepţia economiei computaţionale.
Buyya argumentează că economia computaţională este necesară pentru a crea grid-uri
scalabile reale, deoarece aceasta furnizează un mecanism pentru a regla cererea şi oferta de
resurse din grid. Astfel, proprietarii de resurse sunt cointeresaţi să facă parte din grid iar
consumatorii de resurse sunt interesaţi să optimizeze utilizarea resurselor şi să realizeze un
echilibru între timp şi costurile de acces.
În lucrarea [2], se propune un cadru de lucru al economiei computaţionale construit
deasupra middleware-ului sistemelor grid existente care oferă o infrastructură pentru
managementul şi schimbul resurselor în mediile grid.
Un grid orientat pe modele economice include o gamă întreagă de tehnologii software,
de la sisteme de operare locale la borker-ii de resurse globali şi aplicaţii special proiectate
pentru a exploata capacităţile grid-ului. Interacţiunea dintre aceste componente trebuie să fie
sigură şi să se adapteze la resursele a căror stare se schimbă.
Fig.1. Interacţiunile dintr-un grid bazat pe modele economice

După cum reiese şi din figura 1, utilizatorii grid-ului interacţionează cu broker-ul de


resurse grid (eng. Grid Resource Broker) care ascunde complexitatea managementului şi
planificării resurselor. Broker-ul descoperă resursele utilizând serviciul de informare grid
(eng. Grid Information Service - GIS), negociază cu resursele grid sau cu agenţii lor pentru
costurile serviciilor, efectuează selecţia resurselor, mapează şi planifică task-urile cu
resursele, împarte în faze aplicaţia şi datele pentru procesarea lor distribuită iar în final, adună
rezultatele şi le transmite utilizatorilor.
De asemenea, GRB este responsabil cu monitorizarea progresului execuţiei aplicaţiei
precum şi cu managementul şi adaptarea la schimbările din grid (e.g. defecte ale resurselor).

3 Desfăşurarea lucrări
Iniţiere în tehnologia GRID. Instalare şi configurare aşa cum a fost prezentat în
breviarul teoretic.

4 Concluzii
Impulsionată atât de dezvoltarea reţelelor de mare viteză cât şi de creşterea puterii de
calcul a microprocesoarelor, procesarea grid are un impact remarcabil nu numai la nivel
academic, ci din ce în ce mai mult şi la nivelul întreprinderilor din toate domeniile de
activitate. Cu tot avansul tehnologic însă, mai puţin de 5% din puterea de procesare a
serverelor Windows şi calculatoarelor desktop, respectiv 15-20% pentru server-ele UNIX [1]
este utilizată. Întreprinderile realizează că procesarea grid oferă rate ale profitului
extraordinare, cu o perioadă de înapoiere mică şi cu un cost total scăzut faţă de alte soluţii
tehnologice.
În cazul structurii de sistem distribuit cu aplicaţii în tranzacţii on-line, ideea este de a
identifica o bază de modele economice (al căror succes a fost probat în practică, reprezentând
o extindere naturală a sistemelor care implică scopuri, resurse şi acţiuni, cu mecanisme de
piaţă) care să sprijine managementul şi schimbul resurselor într-un grid destinat tranzacţiilor
on-line. Trebuie realizată o arhitectură scalabilă bazată pe serviciile oferite de sistemele grid
existente (dezvoltate folosind unelte ca Globus Toolkit) care să furnizez mecanisme pentru
rezolvarea cerinţelor utilizatorilor. Când răspunsul este generat este la fel de important ca şi ce
răspuns este produs, sistemele de timp real interacţionând cu lumea reală într-un mod care
implică timpul.
Buyya propune diferite modele economice, variind de la cele ale pieţei de materii
prime pană la cele bazate pe licitaţii, pentru a putea astfel stabili strategia de preţuri.
Modelarea sistemului va utiliza reţele Petri, acestea permiţând atât o analiză calitativă (cu
scopul de a demonstra corectitudinea modelului conceptual aferent sistemului modelat) cât şi
o analiză cantitativă (permite evaluarea eficienţei sistemului modelat).

Bibliografie

[1] A. Abbas - Grid Computing: A Practical Guide to Technology and Applications,


Editura Charles River Media, 2005, ISBN 1- 58450-276-2
[2] R. Buyya, D. Abramson, J. Giddy - A case for economy grid architecture for
service oriented grid computing, IEEE, Parallel and Distributed Processing Symposium.,
Proceedings 15th International, pg. 776 - 790
[3] W. Jia, W. Zhou - Distributed Network Systems. From Concepts to
Implementations, Editura Springer, 2005, ISBN 0-387-23839-5, pg. 435-470
[4] http://www.buyya.com/ecogrid/, 11.2005
[5] http://www-1.ibm.com/grid/about_grid/ibm_grid/get_started.html
http://www-128.ibm.com/developerworks/grid/library/groverview/, 03.2006
[6] http://en.wikipedia.org/wiki/Grid_computing, 02.2006

S-ar putea să vă placă și