gLite 3.0
Lightweight Middleware for Grid Computing

Obsah

  1. Úvod
  2. WLCG-EGEE Grid
  3. gLite Architektúra
    3.1 Bezpečnosť
    3.2 Informácie a Monitorovanie
    3.3 Manažment úloh
    3.4 Manažment údajov
  4. Tutorial
    4.1 Pre-rekvizity
    4.2 Používateľské rozhranie
    4.3 Vykonávanie úlohy v Gride
  5. Terminológia
  6. Dokumentácia

1.  Úvod

Tento dokument predstavuje úvod do služieb, ktoré poskytuje WLCG/EGEE Grid a gLite middleware. Je určený pre užívateľov, ktorí majú malé, resp. nemajú žiadne skúsenosti s používaním gLite. Materiál neslúži ako príručka pre administrátorov, ani pre vývojárov, ale pomáha užívateľom porozumieť jednotlivé komponenty Gridu a dostupné rozhrania gridových služieb, ktoré umožňujú spúšťanie a vykonávanie úloh a manipuláciu s údajmi v gridovom prostredí.

2.  WLCG/EGEE Grid

V posledných rokoch pokroky v sieťových technológiách a distribuovanom počítaní umožnili vytvorenie produkčných gridových infraštruktúr ako je EGEE [1] v Európe, OSG [2] v USA a NAREGI [3] v Japonsku, ktoré ponúkajú svoje služby mnohým vedeckým aj priemyselným organizáciám. Gridové systémy sa usilujú o zjednotenie, virtualizovanie a manažovanie zdrojov a služieb, a to v rámci distribuovaných, dynamických virtuálnych organizácií. Pojem Virtuálna Organizácia (VO) je definovaný ako skupina jednotlivcov a/alebo inštitúcií, ktoré majú prístup k počítačom, softvéru, údajom a iným entitám za účelom spoločného riešenia problémov. Gridové infraštruktúry, tým, že umožňujú zdieľať výpočtové a dátové zdroje v rámci nejakej multi-inštitucionálnej VO, poskytujú aplikáciám úplne nové prostriedky na kolaboratívny výskum.

Projekt Enabling Grids for E-sciencE (EGEE) reprezentuje jednu z najväčších gridových infraštruktúr svojho druhu na svete. Pri zahájení projektu v roku 2004 boli vybrané dve pilotné aplikačné oblasti, ktoré mali za úlohu usmerňovať implementáciu a overovať funkcionalitu a výkonnosť vyvíjajúcej sa infraštruktúry. Prvú z nich predstavuje Worldwide LHC (Large Hadron Collider) Computing Grid (WLCG) [4], ktorá podporuje experimenty vo fyzike vysokých energií. LHC je konštruovaný v Cerne a predstavuje najväčší a najrýchlejší urýchľovač elementárnych častíc na svete. Druhou aplikačnou doménou sa stala biomedicína. Avšak v súčasnosti EGEE integruje aplikácie aj z mnohých iných vedných oblastí: biologické vedy, vedy o Zemi, astrofyzika a výpočtová chémia.

Pre každé gridové počítanie middleware predstavuje kritický komponent. Middleware, definovaný ako vrstva medzi fyzickými zdrojmi a aplikačnými programami, poskytuje množinu služieb, ktoré uľahčujú riadenie zdieľania zdrojov, tj. umožňujú zdroje objavovať, k zdrojom pristupovať, zdroje monitorovať a účtovať, a to nezávisle od ich geografického umiestnenia. gLite [5] predstavuje middleware vyvinutý pre gridovú infraštruktúru EGEE. Je to dielo spoločnej práce viac ako 80 ľudí z 12 výskumných centier. gLite verzia 3.0 je vytvorený ako kombinácia nízko-úrovňového jadra a vysoko-úrovňových služieb. Integruje komponenty vyvinuté najlepšími súčasnými middleware projektami ako sú: Condor [8] a Globus Toolkit [9], a komponenty navrhnuté v projektoch WLCG a VDT [10], ktoré sú rozšírené o služby vytvorené špeciálne v rámci projektu EGEE.

3.  gLite Architektúra

gLite 3.0 middleware poskytuje vysoko-úrovňové gridové služby, ktoré umožňujú: gLite služby reprezentujú Servisne Orientovanú Architektúru, ktorá dáva možnosť efektívnej spolupráce medzi gridovými službami a taktiež jednoduchšieho prispôsobenia novovznikajúcim gridovým štandardom (OGSA [12], WSRF [13] a iné). Všetky služby sú vnorené do jedného konzistentného bezpečnostného rámca.

Ako je možné vidieť na Obr. 1., gLite 3.0 služby sú tematicky rozdelené do 5 hlavných skupín:
  1. Security Services - služby pre bezpečnosť,
  2. Information and Monitoring Services - služby pre získavanie informácií a monitorovanie,
  3. Job Management Services - služby pre manažment úloh,
  4. Data Services - služby pre manažment dát,
  5. Access Services - služby prístupu.




Obr. 1.  gLite Architektúra

3.1  Bezpečnosť

Bezpečnostné služby zahrňujú: Bezpečnostná architektúra v EGEE využíva osvedčenú gridovú infraštruktúru Grid Security Infrastructure (GSI), ktorá sa zakladá na šifrovaní verejného kľúča, digitálnych certifikátoch X.509 a komunikačnom protokole bezpečnostnej vrstvy Secure Sockets Layer (SSL), s rozšírením pre jediný prihlasovací vstup a delegovanie. Používateľ na autentifikáciu vlastnej osoby sa musí preukázať digitálnym X.509 certifikátom vydaným niektorou dôveryhodnou certifikačnou autoritou (CA). Užívateľský certifikát - dvojica usercert.pem a userkey.pem, ktorého privátny kľúč je chránený heslom, slúži na vygenerovanie a podpísanie dočasného, tzv. Proxy certifikátu, ktorý sa používa pri skutočnej autentifikácii bez nutnosti zadávania hesla. Autorizačné rutiny kontrolujú či má používateľ právo pristupovať ku gridovým zdrojom, pričom informácie sa získavajú jednak zo súboru grid-mapfile a využíva sa taktiež služba Virtual Organization Membership Service (VOMS) [14], ktorá dopĺňa proxy certifikát o údaje virtuálnej organizácie, v ktorej je používateľ zaregistrovaný.

3.2  Informácie a Monitorovanie

Informačné a monitorovacie služby poskytujú mechanizmus na zverejňovanie, objavovanie a využívanie informácií o gridovej infraštruktúre a aplikáciach. Na ich báze sú postavené rôzne špecializované, vysoko-úrovňové služby na monitorovacie účely, napr. monitorovanie bežiacich úloh, monitorovanie výkonnosti, a iné. V gLite 3.0 sú zahrnuté dva informačné a monitorovacie systémy: Globus Monitoring and Discovery Service (MDS), ktorého hlavnou úlohou je vyhľadávanie gridových zdrojov a zverejňovanie ich stavu, a Relational Grid Monitoring Architecture (R-GMA), ktorý slúži na monitorovanie a zverejňovanie používateľských informácií a na účtovanie.

3.3  Manažment úloh

Služby pre manažment výpočtových úloh zabezpečujú spúšťanie úloh a realizáciu všetkých činností spojených s ich vykonávaním, bez toho aby bol požívateľ vystavený zložitým detailom gridového prostredia. Povinnosťou používateľa je iba úlohu definovať a po jej ukončení prevziať výsledky. Úloha, ktorá má byť spustená v gridovom prostredí sa popisuje pomocou vysoko-úrovňového jazyka Job Description Language (JDL) [17], ktorého základ tvorí Classified Advertisement (ClassAd) Language [18]. JDL umožňuje úlohu definovať a špecifikovať pre ňu požadované vlastnosti a obmedzenia, ktoré sa zoberú do úvahy pri výbere čo najvhodnejšieho zdroja na jej vykonanie. Detailný popis syntaxe JDL je uvedený v dokumente [18].

Hlavné služby, ktoré sa podieľajú na správe úloh sú nasledovné:

3.4  Manažment údajov

Služby pre manažment údajov zabezpečujú prenos údajov v gridovom prostredí, replikovanie dátových súborov na pamäťových elementoch, interakciu s dátovými katalógmi a iné manipulácie s údajmi.

Hlavné služby, z ktorých pozostáva správa údajov sú nasledujúce:

4.  Tutorial

Skôr ako začne používateľ pracovať s WLCG/EGEE infraštruktúrou, musí odsúhlasiť dodržiavanie pravidiel stanovených organizáciami WCLG/EGEE a VO, do ktorej chce vstúpiť, a musí dať k dispozícii svoje osobné dáta Registračnej službe.

4.1  Pre-rekvizity

Pred spustením úlohy do Gridu je nutné vykonať nasledujúce procedúry:
  1. Obdržať kryptografický certifikát X.509 od niektorej dôveryhodnej CA poverenej WLCG/EGEE.
  2. Zaregistrovať sa v niektorej WLCG/EGEE VO.
  3. Získať konto na počítači, ktorý slúži ako User Interface - používateľské rozhranie.
  4. Vygenerovať proxy certifikát, ktorý bude preukazovaný pri aktuálnej autentifikácii gridovým službám. Kvôli zredukovaniu rizika bezpečnosti, proxy má iba krátku životnosť (typicky 12 hodín). Pre dlho-trvajúce úlohy, aby nevypršala jeho platnosť, existuje obnovovací mechanizmus, poskytovaný MyProxy serverom, ktorý udržuje platnosť proxy certifikátu tak dlho ako je potrebné.
  5. Pred spustením vykonania úlohy je užitočné otestovať, ktoré výpočtové elementy, vyhovujúce špecifikovaným požiadavkám úlohy, sú dostupné.
Kroky 1 až 3 je potrebné zrealizovať iba raz pri požiadaní o prístup do Gridu, kroky 4-5 vždy keď pristupujeme ku Gridu po prvýkrát.

4.2  Používateľské rozhranie

Používateľské rozhranie - User Interface (UI), predstavuje vstupnú bránu do gridového prostredia WLCG/EGEE. Môže to byť ľubovoľný stroj, na ktorom má používateľ zavedené vlastné konto a kde má uloženú dvojicu certifikátov: usercert.pem a userkey.pem. Z UI je užívateľ autentifikovaný a autorizovaný pri používaní WLCG/EGEE zdrojov a môže využiť celú funkčnosť, ktorú ponúka informačný, workload a dáta manažment systém. UI poskytuje prostriedky CLI, ktoré zabezpečujú základné gridové operácie:
Na UI je dostupný taktiež API slúžiaci na vývoj gridových aplikácií.

4.3  Vykonávanie úlohy v Gride

Táto časť popisuje tok činností, ktoré prebiehajú pri vykonávaní úlohy v WLCG/EGEE Gride. Jednotlivé kroky procesu sú nasledovné:
  1. Po obdržaní digitálneho certifikátu, registrácii vo VO a vytvorení konta na UI môže užívateľ začať pracovať na WLCG/EGEE Gride. Prihlási sa na UI a vygeneruje proxy certifikát, ktorý bude používať na autentifikáciu vlastnej osoby v nasledujúcej bezpečnej interakcii.

    Vytvorenie proxy:
    $ voms-proxy-init   --voms gilda
    Your identity: /C=IT/O=GILDA/OU=Personal Certificate/L=BRATISLAVA/CN=BRATISLAVA01/Email=viet.ui@savba.sk
    Enter GRID pass phrase: ???
    Creating temporary proxy ..................................... Done
    Contacting voms.ct.infn.it:15001 [/C=IT/O=INFN/OU=Host/L=Catania/CN=voms.ct.infn.it] "gilda" Done
    Creating proxy ....................................................... Done
    Your proxy is valid until Tue Nov 28 03:37:12 2006

  2. Príklad popisu jednoduchej úlohy v jazyku JDL môže vyzerať nasledovne:
        Executable = "/bin/hostname";
        StdOutput = "std.out";
        StdErr = "std.err";
        OutputSandbox = {"std.out","std.err"};

    Uvedený súbor (hostname.jdl) popisuje úlohu, ktorá vykoná príkaz "/bin/hostname". Štandardný výstupný a chybový súbor sú presmerované na "std.out" a "std.err", keďže sú obsiahnuté v "OutputSandox". Po ukončení úlohy sú tieto výstupné súbory prenesené späť na UI. Vstupné súbory, ktoré treba skopírovať z UI na pracovné uzly musia byť špecifikované pomocou "InputSandox".

    Test na vhodné CE:
    $ glite-job-list-match   hostname.jdl
    Selected Virtual Organisation name (from proxy certificate extension): gilda
    Connecting to host glite-rb2.ct.infn.it, port 7772
    ********************************************************************************************
    COMPUTING ELEMENT IDs LIST
    The following CE(s) matching your job requirements have been found:
                                     *CEId*
    dgt01.ui.savba.sk:2119/jobmanager-lcgpbs-infinite
    dgt01.ui.savba.sk:2119/jobmanager-lcgpbs-long
    dgt01.ui.savba.sk:2119/jobmanager-lcgpbs-short
    grid-ce.bio.dist.unige.it:2119/jobmanager-lcgpbs-long
    grid-ce.bio.dist.unige.it:2119/jobmanager-lcgpbs-short
    grid010.ct.infn.it:2119/jobmanager-lcgpbs-infinite
    ********************************************************************************************

  3. Užívateľ predloží úlohu na vykonanie z UI službe Resource Broker (RB). Udalosť sa zaznamená službou Logging & Bookkeeping Service (LB) a stav úlohy sa nastaví na SUBMITTED.

    Spustenie úlohy:
    $ glite-job-submit   -o jobId hostname.jdl
    Selected Virtual Organisation name (from proxy certificate extension): gilda
    Connecting to host glite-rb2.ct.infn.it, port 7772
    Logging to host glite-rb2.ct.infn.it, port 9002
    ===================== glite-job-submit Success =====================
    The job has been successfully submitted to the Network Server.
    Use glite-job-status command to check job current status. Your job identifier is:
      - https://glite-rb2.ct.infn.it:9000/VvHO3XlQVF_Ya3DTx3PzrA
    The job identifier has been saved in the following file:
    /home/bratislava01/jobId
    =============================================================

  4. WMS vyhľadá najlepší vhodný CE na vykonanie úlohy. Spytuje sa BDII na stav výpočtových a pamäťových zdrojov, a v Katalógu súborov hľadá lokalizáciu potrebných vstupných súborov. Udalosť sa zaznamená službou LB a stav úlohy sa nastaví na WAITING.

  5. RB pripraví úlohu na spustenie - vytvorí wrapper script, ktorý bude zaslaný spolu s parametrami zvolenému CE. Udalosť sa zaznamená službou LB a stav úlohy sa nastaví na READY.

  6. CE prijme požiadavku a pošle úlohu na vykonanie lokálnemu LRMS. Udalosť je zaznamená službou LB a stav úlohy sa nastaví na SCHEDULED.

  7. RMS zabezpečí vykonanie úlohy na dostupných výpočtových uzloch (WN), pričom sú užívateľské súbory skopírované z RB na WN. Udalosť sa zaznamená službou LB a stav úlohy sa nastaví na RUNNING.

  8. Počas behu môže úloha priamo pristupovať ku gridovým súborom na SE použitím buď protokolu RFIO alebo gsidcap. Úloha vo všeobecnosti generuje nové výstupné súbory, ktoré môžu byť potom umiestnené v Gride a sprístupnené pre iných používateľov.

  9. Z UI je možné žiadať o informáciu o stave úlohy, požiadavka je adresovaná na LB. Takisto je možné zadávať požiadavky o získanie dynamickej alebo statickej informácie o stave WLCG/EGEE zdrojov a služieb prostredníctvom informačných systémov.

    Stav úlohy:
    $ edg-job-status   https://glite-rb2.ct.infn.it:9000/VvHO3XlQVF_Ya3DTx3PzrA
    ********************************************************************************************
    BOOKKEEPING INFORMATION:
    Status info for the Job : https://glite-rb2.ct.infn.it:9000/VvHO3XlQVF_Ya3DTx3PzrA
    Current Status: Running
    Status Reason: Job successfully submitted to Globus
    Destination: dgt01.ui.savba.sk:2119/jobmanager-lcgpbs-infinite
    reached: Mon Nov 27 15:42:40 2006 CEST
    ********************************************************************************************

  10. Ak úloha končí bez chyby, výstupné súbory špecifikované v OutputSanbox (väčšinou sú to malé súbory, nie nejaké veľké dátové súbory), sú prenesené späť na RB uzol. Udalosť sa zaznamená službou LB a stav úlohy sa nastaví na DONE. V tomto okamihu môže užívateľ vybrať výstupy úlohy a preniesť ich na UI. Udalosť sa zaznamená službou LB a stav úlohy sa nastaví na CLEARED.

    Stav úlohy:
    $ glite-job-status   https://glite-rb2.ct.infn.it:9000/VvHO3XlQVF_Ya3DTx3PzrA
    ********************************************************************************************
    BOOKKEEPING INFORMATION:
    Status info for the Job : https://glite-rb2.ct.infn.it:9000/VvHO3XlQVF_Ya3DTx3PzrA
    Current Status: Done (Success)
    Exit code: 0
    Status Reason: Job terminated successfully
    Destination: dgt01.ui.savba.sk:2119/jobmanager-lcgpbs-infinite
    reached: Mon Nov 27 15:42:40 2006 CEST
    ********************************************************************************************

    Výber výsledkov úlohy:
    $ glite-job-output   https://glite-rb2.ct.infn.it:9000/VvHO3XlQVF_Ya3DTx3PzrA
    Retrieving files from host: glite-rb2.ct.infn.it
    ( for https://glite-rb2.ct.infn.it:9000/VvHO3XlQVF_Ya3DTx3PzrA)
    ********************************************************************************************
    JOB GET OUTPUT OUTCOME
    Output sandbox files for the job:
     - https://glite-rb2.ct.infn.it:9000/VvHO3XlQVF_Ya3DTx3PzrA
    have been successfully retrieved and stored in the directory:
    /tmp/bratislava01_VvHO3XlQVF_Ya3DTx3PzrA
    ********************************************************************************************

    Kontrola výsledkov:
    $ ls  /tmp/bratislava01_VvHO3XlQVF_Ya3DTx3PzrA
    std.out
    std.err

    $ cat  /tmp/bratislava01_VvHO3XlQVF_Ya3DTx3PzrA
    dgt06.ui.savba.sk

  11. V prípade, že niekde pri spustení úlohy vznikne chyba, používateľ má možnosť úlohu zrušiť. Udalosť sa zaznamená službou LB a stav úlohy sa nastaví na CANCELED.

    Zrušenie úlohy:
    $ glite-job-cancel   -i jobId
    Are you sure you want to remove specified job(s)? [y/n]n : y
    ===================== glite-job-cancel Success ======================
    The cancellation request has been successfully submitted for the following job(s):
      - https://glite-rb2.ct.infn.it:9000/VvHO3XlQVF_Ya3DTx3PzrA
    ===============================================================

  12. Ak uzol, na ktorý je úloha zaslaná, nie je schopný z nejakých dôvodov úlohu prijať alebo vykonať, je možné úlohu automaticky znovu spustiť na inom CE, ktorý vyhovuje zadaným požiadavkám. V prípade, že je dosiahnutý maximálny počet znovu-spustení (počet je definovaný v JDL súbore), úloha je abortovaná. Udalosť sa zaznamená službou LB a stav úlohy sa nastaví na ABORTED. Užívateľ môže požiadať LB službu o záznam histórie úlohy.

  13. InputSandbox a OutputSandbox sú mechanizmy, ktoré umožňujú prenášať malé dátové súbory potrebné pri štarte úlohy a na kontrolu výsledkov. Veľké dátové súbory by sa mali čítať a zapisovať z/do nejakého SE a registrovať v Katalógu súborov, prípadne replikovať na nejakom inom SE. Na vykonávanie týchto funkcií slúžia prostriedky LCG Dáta Manažmentu a FTS služby (napr. "lcg-cr", "lcg-cp", resp. "globus-url-copy" a iné).

    Prenos súboru z SE do lokálneho adresára:
    $ globus-url-copy   gsiftp://storage.ui.savba.sk:2811/data/gilda/mydata.dat  file://$PWD/mydata.dat

5.  Terminológia

API                Application Programming Interface
BDII Berkeley Database Information Index
CA Certification Authority
CE Computing Element
CLI Command Line Interface
EGEE Enabling Grids for E-sciencE
GLUE Grid Laboratory Uniform Environment
GSI Grid Security Infrastructure
gsidcap GSIdCache Access Protocol
GUID Grid Unique IDentifier
JDL Job Description Language
LB Logging and Bookkeeping Service
LCG LHC Computing Grid
LFC LCG File Catalog
LFN Logical File Name
LHC Large Hadron Collider
LRMS Local Resource Manager System
MDS Monitoring and Discovery Service
OASIS Organisation for the Advancement of Structured Information Standards
OGSA Open Grid Services Architecture
RB Resource Broker
RFIO Remote File Input/Output
R-GMA Relational Grid Monitoring Architecture
SE Storage Element
SSL Secure Sockets Layer
SURL Storage URL
TURL Transport URL
URL Uniform Resource Location
UI User Interface
VO Virtual Organization
VOMS Virtual Organization Membership Service
WN Worker Node
WSRF WSRF Web Services Resource Framework

6.  Dokumentácia

Tento materiál bol vypracovaný na základe dokumentov projektov EGEE a gLite [1,5-7].

[1]
EGEE, Enabling Grids for E-sciencE.
http://eu-egee.org/
[2]
OSG, Open Science Grid.
http://www.opensciencegrid.org/
[3]
NAREGI, The National Research Grid Initiative.
http://www.naregi.org/index_e.html
[4]
WLCG, Worldwide LHC (Large Hadron Collider) Computing Grid.
http://cern.ch/LCG/
[5]
gLite, The Lightweight Middleware for Grid Computing.
http://cern.ch/glite/
[6]
gLite 3.0 User Guide.
https://edms.cern.ch/file/722398//gLite-3-UserGuide.html
[7]
gLite 3.0 User Tutorials.
https://grid.ct.infn.it/twiki/bin/view/GILDA/UserTutorials
[8]
Condor-High Throughput Computing.
http://www.cs.wisc.edu/condor/
[9]
The Globus Alliance.
http://www.globus.org/
[10]
VDT, Virtual Data Toolkit.
http://vdt.cs.wisc.edu/
[11]
OGF, Open Grid Forum.
http://www.ogf.org/
[12]
OGSA, The Open Grid Services Architecture Version 1.0. I. Foster, et al.: Informational Document,Global Grid Forum (GGF), January 29, 2005.
http://www.gridforum.org/documents/GWD-I-E/GFD-I.030.pdf
[13]
WSRF, Web Services Resource Framework.
http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=wsrf
[14]
R. Alfieri, et al.: VOMS - an Authorization System for Virtual Organizations. In Grid Computing. First European Across Grids Conference, 2004.
[15]
MDS 2.2 Features in the Globus Toolkit 2.2 Release.
http://www.globus.org/toolkit/mds/#mds_gt2
[16]
R-GMA, Relational Grid Monitoring Architecture.
http://www.r-gma.org/index.html
[17]
F. Pacini: Job Description Language (JDL) HowTo.
http://www.infn.it/workload-grid/docs/DataGrid-01-TEN-0102-0_2-Document.pdf
[18]
Condor Classified Advertisements.
http://www.cs.wisc.edu/condor/classad