Gridové služby

Martin Kuba, Superpočítačové Centrum Brno, ÚVT MU, makub@ics.muni.cz
Tento dokument obsahuje základní popis gridových služeb a architektury OGSA/WSRF.

Obsah

Vize Gridu

power lines

V roce 1998 Carl Kesselman a Ian Foster v knize "The Grid: Blueprint for a New Computing Infrastructure" zavedli pojem Grid. Slovo grid neznamená slovníkové "mřížka", vzniklo vyjmutím ze sousloví "electrical power grid", což se v češtině nazývá "elektrická rozvodná soustava".

Výpočetní grid popisují analogií s elektrickou rozvodnou sítí - kolem roku 1910 měla každá elektrifikovaná budova vlastní generátor elektřiny, nebylo možné použít víc než byla kapacita generátoru, celková kapacita všech generátorů nebyla efektivně využita, zavedení elektřiny bylo drahé. Ke skutečnému rozvoji používání elektřiny došlo až zavedením propojených velkých elektráren a rozvodné sítě ke spotřebitelům, která umožnila levný, všudypřítomný a standardizovaný zdroj el. energie.

Obdobně dnes každá organizace spravuje vlastní výpočetní kapacity (počítače, diskovou kapacitu, software, data, specializovaný hardware), které neumí efektivně sdílet s jinými.


Výpočetní grid je hardwareová a softwareová infrastruktura, která poskytuje spolehlivý, standardizovaný, všudypřítomný a levný přístup ke špičkovým výpočetním službám.

V roce 2001 v knize "The Anatomy of the Grid: Enabling Scalable Virtual Organizations" položili důraz na sdílení zdrojů zavedením pojmu virtuálních organizací, které definují jako

Virtuální organizace jsou dynamicky vytvářené skupiny uživatelů a organizací sdílející přístup k počítačům, softwaru, datům a ostatním zdrojům s přesným řízením přístupu a jasnou definicí co je sdíleno, kým je sdíleno a za jakých podmínek je sdíleno.

A v roce 2002 v reakci na zneužívání pojmu gridu marketingovými odděleními firem zpřesnili definici gridu v článku What is the Grid? A Three Point Checklist:

Tj. SUN Grid Engine a PBS (systémy pro správu klastrů) nesplňují první bod, celý WWW nesplňuje třetí bod. Naopak za první generaci gridů lze považovat Gnutellu (sdílení souborů), SETI@home (sdílení výpočetní kapacity), DataGridy (sdílení volné diskové kapacity).

Druhy gridů

výpočetní gridy
vytváří virtuální superpočítače sdružením velkého počtu počítačů, poskytují platformu pro vysoce výkonné počítání
datové/informační/znalostní gridy
Datové gridy kladou důraz na sdílení obrovských objemů dat. Informační a znalostní gridy navíc podporují kategorizaci dat, nalézání informací, ontologie, sdílení znalostí.
gridy pro spolupráci (collaborative grids)
poskytují virtuální prostředí pro spolupráci geograficky vzdálených jedinců a skupin, nebo vzdálené ovládání nástrojů a přístrojů

Využití gridu

Naše gridové aktivity

Už koncem 80. let 20. století se začalo se spojováním výkonu velkých počítačů, náš projekt MetaCentrum (v rámci CESNETu) byl založen již v roce 1996, dva roky před knihou Fostera a Kesselmana.

Superpočítačové Centrum Brno se účastnilo několika gridových projektů: EU DataGrid (2001-2003, zpracování řádově petabajtů dat z urychlovače v CERN), EGEE I,II,III (2004-2010, Enabling Grids for E-sciencE, nástupce DataGridu), a EU GridLab (2002-2004, návrh API pro výpočetní gridové aplikace), CoreGRID (2004-2008, Network of Excellence zaměřěná na gridy a P2P), MediGrid (2005-2009, medicínský grid s využitím ontologií/technologií sémantického webu). Na SuperComputing 2002 bylo součástí Global Grid Testbed Collaboration, které vyhrálo tři ceny - za "most geographically distributed" a "most heterogeneous" grid - 70 strojů na 5 kontinentech ve 14ti zemích, od Sony Playstation 2 přes Linuxové klastry po SMP - a "bandwidth challenge" - za tok 16.8 Gbit/s po dobu 30 minut při výpočtu srážky dvou černých děr. (překonáno 2003 - 23.21 Gbps, 2004 - 101.13 Gbps), 2005 - 131.57 Gbps, od roku 2006 se bandwidth challenges zaměřují na jiné rekordy, např. co nejvyšší využití 10Gbps linky nebo rychlost přenosu dat mezi disky)

V současné době se účastní projektu budování EGI (European Grid Infrastructure) v projektech EGI InSPIRE (Integrated Sustainable Pan-European Infrastructure for Researchers in Europe, 2010-2013) a EMI (European Middleware Initiative). Superpočítačové Centrum Brno je jakožto součást MetaCentra, které se stalo NGI (National Grid Infrastructure), součástí EGI.

Problémy v gridu

Heterogenitu lze řešit dvěma způsoby:

Generace gridů

  1. První generací byly Seti@HOME, Gnutella, atp., vytvořené pro každý případ zvlášť
  2. Druhou generací byl např. Globus 2, univerzální, ale zalořený na mnoha různých protokolech
  3. Třetí generací je OGSA (Open Grid Services Architecture), založená na webových službách
  4. další generací bude pravděpodobně Sémantický Grid s využitím peer-to-peer postupů

Globus 2

De facto standardem pro gridy je Globus Toolkit. Ve verzi 2 má každá služba vlastní protokol. (Stále přežívá jako pre-webservices část v Globus 3, 4).

Bezpečnost

Autentizace a zabezpečení přenosů je pomocí GSI (Grid Security Infrastructure), založené na PKI (Public Key Infrastructure). V podstatě je to SSL (Secure Sockets Layer) rozšířené o tzv. proxy credentials ("zástupné doklady") a jejich delegování.

Proxy credential sestává z nově vygenerovaného tajného klíče a dočasného (hodiny, dny) X509v3 certifikátu podepsaného původním certifikátem. Proxy credential může být buď plný, nebo omezený, je z něj možné vytvářet další proxy.

 Certifikační autorita: /C=CZ/O=CESNET/CN=CESNET CA
uživatel: /O=CESNET/O=Masaryk University/CN=Martin Kuba
jeho úloha: /O=CESNET/O=Masaryk University/CN=Martin Kuba/CN=proxy
z ní spuštěná úloha: /O=CESNET/O=Masaryk University/CN=Martin Kuba/CN=proxy/CN=proxy
atd.: /O=CESNET/O=Masaryk University/CN=Martin Kuba/CN=proxy/CN=proxy/CN=proxy
stroj: /O=CESNET/O=Masaryk University/CN=host/skirit.ics.muni.cz

Mapování z DN (Distinguished Name) z certifikátu na uživatele daného operačního systému se provádí staticky přes /etc/grid-security/grid-mapfile, nebo dynamicky na jeden z množiny účtů.


"/O=CESNET/O=Masaryk University/CN=Martin Kuba" makub
"/C=US/O=National Computational Science Alliance/CN=Miroslav Ruda" ruda
"/O=CESNET/O=Masaryk University/CN=Ludek Matyska" glab011
"/O=dutchgrid/O=users/O=vu/OU=cs/CN=Kees Verstoep" glab012
"/C=PL/O=GRID/O=PSNC/CN=Tomasz Piontek" glab013

GSI autentizace umožňuje tzv. single sign-on (tj. ráno jednou zadám heslo a pak už nemusím), byla dodána do mnoha programů - gsissh, gsiftp, gsicvs, ...

Osobní certifikát má platnost obvykle rok. První proxy certifikát obvykle 12 hodin. Odvozené proxy 2 hodiny. Lze si uložit proxy s platností 1 týden do služby MyProxy, odkud si jej mohou déle běžící úlohy obnovovat.

VOMS - Virtual Organization Membership Service

Součást evropského gridového middleware gLite. Služba vydává atributové certifikáty, které jsou pak vloženy do uživatelova proxy certifikátu. Atributové certifikáty obsahují informace o uživateli - do které VO patří, do kterých skupin patří v rámci VO, jaké role má v každé skupině. Skupiny tvoří stromovou strukturu, členství v podskupině implikuje členství v nadřízených skupinách. Naopak role jsou děděny do podskupin.

Následující příklad ukazuje obsah proxy certifikátu obsahujícího atributový certifikát, který potvrzuje členství uživatele ve VO jménem "voce" (Virtual Organization for Central Europe) bez žádných speciálních rolí:

$ voms-proxy-info -all
subject   : /DC=cz/DC=cesnet-ca/O=Masaryk University/CN=Martin Kuba/CN=proxy
issuer    : /DC=cz/DC=cesnet-ca/O=Masaryk University/CN=Martin Kuba
identity  : /DC=cz/DC=cesnet-ca/O=Masaryk University/CN=Martin Kuba
type      : proxy
strength  : 1024 bits
path      : /tmp/x509up_u203
timeleft  : 11:59:52
=== VO voce extension information ===
VO        : voce
subject   : /DC=cz/DC=cesnet-ca/O=Masaryk University/CN=Martin Kuba
issuer    : /DC=cz/DC=cesnet-ca/O=CESNET/CN=voms1.egee.cesnet.cz
attribute : /voce/Role=NULL
timeleft  : 11:59:52
uri       : voms1.egee.cesnet.cz:7001

Jiný příklad - atribut /cms/production/Role=writer sděluje, že uživatel je členem VO "cms", v ní je členem skupiny "production" a ve skupině "production" má roli "writer".

Služba VOMS neinterpretuje význam atributů v atributových certifikátech, jen zajišťuje jejich distribuci. Atributy jsou zpracovány buď přímo konečnou aplikací, např. aplikace pro spouštění úloh může mít nastaveno, že spustí úlohy jen pro členy určité VO. Nebo lze použít autorizační službu, např. Argus. Argus vnitřně používá jazyk XACML pro popis přístupových politik, ale má i zjednodušený jazyk SPL (Simplified Policy Language) pro psaní pravidel. Pravidlo může být např.:

resource "http://cnaf.infn.it/cream-ce-01" {
   action "submit-job" {
      rule deny { 
         pfqan = "/cms/Role=pilot"
      }
      rule permit { 
         vo = "cms" 
         subject-issuer = "CN=INFN CA,O=INFN,C=IT"
      }
   }
}

které dovoluje akci submit-job na zdroji identifikovaném pomocí URI http://cnaf.infn.it/cream-ce-01 uživatelům z VO cms prokazujících se certifikátem podepsaným INFN CA, ale kromě těch s rolí pilot.

Informační služby (MDS - Monitoring and Discovery Service)

Adresáře objektů (stroje, CPU, paměť, disky, běžící úlohy, uživatelé, fronty úloh, ...) přístupné protokolem LDAP (Lightweight Directory Access Protocol).

V LDAP stromu lze vyhledávat, např. najít všechny stroje s OS Linux a 4 procesory.

    grid-info-search -x -h mds.gridlab.org -s one -b 'Mds-Vo-Name=gridlab,o=Grid' \
                        '(objectClass=MdsComputer)(Mds-Cpu-Total-count=4)(Mds-Os-name=Linux)'

    dn: Mds-Host-hn=skirit.ics.muni.cz,Mds-Vo-name=gridlab,o=Grid
    dn: Mds-Host-hn=eltoro.pcz.pl,Mds-Vo-name=gridlab,o=Grid
    dn: Mds-Host-hn=fs0.das2.cs.vu.nl,Mds-Vo-name=gridlab,o=Grid
  
MDS tree

Přenos dat (GridFTP - Grid File Transfer Protocol)

Oproti normálnímu FTP poskytuje "third party transfer", "striped transfer", GSI autentizaci. Striped transfer umožňuje obejít omezení rychlosti daná TCP/IP a propustností disků.

striped gridftp transfer

Správa zdrojů (GRAM - Grid Resource Allocation Manager)

Spouštění a ukončování úloh, speciální GRAM protokol.

Jazyk RSL (Resource Specification Language) syntakticky podobný LDAP filtrům:

    &(rsl_substitution = (GLOBUSRUN_GASS_URL https://nekde.cz:12345))
          (executable = $(GLOBUSRUN_GASS_URL) # /bin/echo)
          (arguments = "-n" "ahoj")
          (count=1)
          (memory>=64)
          (stdout = $(GLOBUSRUN_GASS_URL) # /dev/stdout)
          (stderr = $(GLOBUSRUN_GASS_URL) # /dev/stderr)

Na strojích běží démon zvaný Gatekeeper, každý obsluhuje jednu nebo více služeb zvaných jobmanager odpovídajících dávkovým systémům, např. jobmanager-fork (spouští přímo), jobmanager-pbs (spouští přes PBS). Těm se předávají RSL popisy úloh ke spuštění.

Přenos vstupu a výstupu úloh (GASS - Global Access to Secondary Storage)

Přenos stdin, stdout, stderr popř. dalších souborů pomocí na/z vzdáleného počítače s běžící úlohou

Další služby

OGSA - Open Grid Services Architecture

V článku "The Physiology of the Grid: An Open Grid Services Architecture for Distributed Systems Integration" I. Foster, C. Kesselman a S. Tuecke vyřešili problém množství protokolů zavedením otevřené architektury gridových služeb (OGSA) založené na webových službách. Webové služby

Autoři OGSA se rozhodli doplnit webové služby o tyto vlastnosti. První pokus byl Globus 3, který do webservices přidával silné objektově-oriantované rysy, ale setkal se s odmítnutím od komunity webových služeb. Globus 4 je založen na WSRF (Web Service Resource Framework), kde resource může mít definované atributy, které webová služba mít nemůže, tj.

Všechny služby v gridu by měly být gridovými službami, tím umožní onen standardizovaný přístup požadovaný ve vlastnostech gridu.

WSRF (Web Services Resources Framework) a přátelé

Webové služby představují rozhraní, nemohou proto mít přímo instance. Proto specifikace WSRF zavádí pojem web service resource, který vyjadřuje instanciovatelnou entitu přístupnou přes webovou službu. WSRF definuje datové struktury přenášené v hlavičkách SOAP zpráv (<SOAP-ENV:Header>) identifikující používanou instanci. Standard WSRF je vyvíjen zároveň s jeho implementací v Globus Toolkitu 4, a k němu patří WS-ResourceProperties, WS-ResourceLifetime, WS-ServiceGroup, WS-BaseFaults.

WS-Security a WS-SecureConversation se týkají autentizace, autorizace, věření, definování přístupových politik. WS-Addressing definuje adresaci webových služeb bez ohledu na komunikační mechanismus. Zasílání událostí se věnují WS-Notification, WS-Topics, WS-BrokeredNotification.

Příklady převodu na gridovou službu v GT3/4

GridFTP -> Reliable File Transfer (RFT) Service

GridFTP v Globusu 2 se příliš neliší od standardního FTP - má dva komunikační kanály, jeden pro přenos řídících povelů a druhý pro přenos dat. V OGSA verzi zůstane datový komunikační kanál kvůli efektivitě přenosu, ale řídící kanál je nahrazen gridovou službou.

MDS2 -> MDS4

Informační služba je implementována jako Registry gridová služba, která si drží seznam zaregistrovaných gridových služeb a agreguje jejich service data.

GRAM -> Managed Job Service

Místo specializovaného GRAM protokolu je použit standardní SOAP, jazyk RSL je předefinován do jazyka XML.

další služby

Další služby nutné pro funkci gridu (data management, resource management, information services and monitoring, security components) budou stavěny nad OGSA, mohou využívat (ale nemusí) základní služby z GT4 (RFT, Index Service, Managed Job Service).

bezpečnost v GT3/4

Shrnutí - rozdíl mezi webovými a gridovými službami

Gridové služby (ve smyslu OGSA služeb) tedy na rozdíl od webových služeb využívají WS-Resources, které: Na druhou stranu se vyskytly námitky, že OGSA jde proti službové orientaci a snaží se vybudovat objektově-orientovaný systém nad webovými službami.
add()
WSRF adresuje resources pomocí EPR (End Point Reference) definované ve WS-Addressing:
POST /wsrf/services/examples/core/factory/MathService HTTP/1.1
Content-Type: text/xml; charset=utf-8
User-Agent: Axis/1.2RC2
Host: 127.0.0.1:8080
SOAPAction: "http://www.globus.org/namespaces/examples/core/MathService_instance/MathPortType/addRequest"

<soapenv:Envelope
    xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/03/addressing">
   <soapenv:Header>
      <wsa:MessageID soapenv:mustUnderstand="0">uuid:1d476dc0-efc0-11d9-a10c-a41f33a5ecb5</wsa:MessageID>
      <wsa:To soapenv:mustUnderstand="0">http://147.251.3.64:8080/wsrf/services/examples/core/factory/MathService</wsa:To>
      <wsa:Action soapenv:mustUnderstand="0">http://www.globus.org/namespaces/examples/core/MathService_instance/MathPortType/addRequest</wsa:Action>
      <wsa:From soapenv:mustUnderstand="0">
         <wsa:Address>http://schemas.xmlsoap.org/ws/2004/03/addressing/role/anonymous</wsa:Address>
      </wsa:From>
      <ns1:MathResourceKey soapenv:mustUnderstand="0"
                xmlns:ns1="http://www.globus.org/namespaces/examples/core/MathService_instance"
                >14350892</ns1:MathResourceKey>
   </soapenv:Header>
   <soapenv:Body>
      <add xmlns="http://www.globus.org/namespaces/examples/core/MathService_instance">10</add>
   </soapenv:Body>
</soapenv:Envelope>

Sémantický grid

Existuje vize sémantického webu, kdy všechna data na webu jsou sémanticky označkována a tudíž přístupna strojovému zpracování (nikoliv jen zobrazení jako dosud).

Sémantický web je rozšíření současného webu, ve kterém je informacím přiřazen dobře definovaný význam, což umožní lidem a počítačům lépe spolupracovat. [Tim Berners-Lee, James Hendler, Ora Lassila, The Semantic Web, Scientific American, May 2001]

Vize sémantického gridu chce využít technologie sémantického webu pro popis nejen statických dat, ale i pro popis webových/gridových služeb a jimi zpracovávaných dat. Překrývá se to s aktivitami kolem sémantických webových služeb.

Ontologie

Sémantický web i grid jsou založeny na ontologiích. Ontologie je pojem z oboru umělé inteligence, a je definována jako "výslovný formální zápis konceptualizace", kde konceptualizace je systém pojmů modelující určitou část světa. Prakticky je webová ontologie taxonomie s logickými axiomy a jejich logickými důsledky. Taxonomie je hierarchie tříd se vztahy nadtřída-podtřída. Pro zápis ontologií definovalo W3C jazyk OWL - Web Ontology Language, založený na XML. Ontologie se skládá ze tříd, individuí, properties. Každý objekt v ontologii je jednoznačně určen svým URI. Ontologie je možno skládat.

Příklad - ontologie jídelního lístku v pizzeriích, definice tříd pro těsto, náplně, třída MargheritaPizza má omezující podmínky, může mít jako náplň jen mozzarelu a rajčata, a od obého musí mít alespoň jeden kousek.

ukazka trid v ontologii

Nad takto definovanými ontologiemi lze používat odvozovací stroje (reasonery), které dokážou odvodit vztahy v ontologii obsažené, ale výslovně neuvedené. Např. reasoner pozná, že všechna individua ve třídě MargheritaPizza musí nutně patřit i do tříd CheesyPizza a VegetarianPizza.

V roce 2009 byla definována nová verze jazyka OWL 2, která rozšiřuje sílu jazyka zejména řetězením properties, například je možné definovat pojem strýčka, což v OWL 1 nelze. Některé koncepty, např. děti sezdaných rodičů však ani v OWL 2 vyjádřit nelze. Některé z nich lze vyjádřit pomocí pravidel SWRL (Semantic Web Rule Language), některé reasonery (Pellet) se SWRL umí pracovat.

odvozeni

Sémantická anotace služeb

WSDL popisy webových služeb popisují jen syntaxi zpráv. Pokud jedna služba má operaci getHardDriveQuote a druhá getQuoteForHardDrive, nelze z WSDL bez lidské účasti poznat, zda obě dělají totéž. Pokud obě operace označíme konceptem třeba ComputerParts:#getHardDriveQuote příslušné ontologie, už to lze poznat.

Při zapojení reasoneru můžeme dokonce poznat, že i operace označená ComputerParts:#getSCSIDriveQuote je vhodná pro naše účely, protože v ontologii je příslušný koncept potomkem ComputerParts:#getHardDriveQuote.

Sémanticky označkovat můžeme krome operací samozřejmě i data, se kterými pracují. Dále můžeme sémanticky popsat i QoS (Quality of Service) a exekuční postupy.

Webové procesy a workflow

Z semanticky popsaných služeb můžeme strojově skládat celé procesy. Zakomponování služeb do procesu má následující fáze:

Odkazy