7 CAPITOLO 1. GRID COMPUTING
Capitolo 1
Grid Computing
Scopo del capitolo è di introdurre i principali concetti che definiscono il paradigma del
Grid Computing, partendo da una panoramica dei primi approcci, degli obiettivi da
raggiungere e dalla proposta architetturale, arrivando alla definizione delle componenti
chiave del modello, ovvero i servizi, le risorse, le organizzazioni virtuali e l’infrastruttura
di sicurezza.
1.1 Breve storia e definizioni
Il concetto di Grid viene definito negli anni '90, da Ian Foster e Carl Kesselman; i due
ricercatori comparano lo status delle tecnologie di calcolo alla situazione dell’infrastruttura
elettrica del 1910, quando era possibile avere corrente solamente utilizzando sistemi
autonomi, non coordinati. L’evoluzione ha portato alla costruzione di una “electricity grid”
e i generatori di potenza elettrica sono stati distribuiti geograficamente; grazie a questo, da
allora, gli utenti usufruiscono dell’elettricità senza preoccuparsi di dove essa venga
prodotta o di dove risieda.
Allo stesso modo, nell’epoca moderna, nasce la necessità di creare infrastrutture
condivise per il calcolo, un problema affrontabile con lo stesso approccio. Secondo Foster
CAPITOLO 1. GRID COMPUTING 8
e Kesselmann: “una griglia computazionale è un’infrastruttura hardware e software che
fornisce un accesso affidabile, consistente, diffuso e poco costoso a risorse di calcolo di
fascia alta” (13). L’idea è di poter accedere ad una rete condivisa su scala globale, nella
quale le risorse di calcolo sono fisicamente sparse ed eterogenee, ma appaiono
all'utilizzatore come un sistema unico e solido, in maniera del tutto trasparente.
Qualche anno dopo, nel 2000, gli stessi autori rivedono la definizione, denotando che il
Grid computing è collegato alla “condivisione coordinata di risorse e risoluzione di
problemi per organizzazioni virtuali, dinamiche e multi-istituzionali” (14). Foster e
Kesselman vedono nel Grid computing uno strumento in cui le varie parti (produttore e
consumatore) possono negoziare accordi per la condivisione di risorse ed il pool di risorse
risultante si possa usare per un qualche scopo.
La definizione infatti prosegue così: “La condivisione a cui siamo interessati non è
primariamente uno scambio di file, ma piuttosto un accesso diretto a computer, software,
dati ed altre risorse, come richiesto da vari metodi emersi nell’industria, nella scienza e
nell’ingegneria, per la risoluzione collaborativa di problemi e per strategie di
intermediazione delle risorse. Tale condivisione è, necessariamente, altamente controllata,
con fornitori ed utilizzatori delle risorse che definiscono chiaramente e con attenzione
cosa si condivide, chi detiene i permessi per farlo e le condizioni sotto le quali la
condivisione avviene. Un insieme di individui ed istituzioni definito da tali regole di
condivisione formano quella che chiamiamo un’organizzazione virtuale”.
Nel 2002, Foster arriva ad una definizione più schematica, che definisce la Grid come
un sistema che rispetta tre regole:
1. “Coordina risorse che non sono soggette ad un controllo centralizzato…” (una
Grid integra e coordina risorse ed utenti che vivono all’interno di domini differenti,
alcuni esempi sono: il computer di un utente rispetto alla centrale di calcolo che
utilizza, unità amministrative differenti della stessa compagnia, compagnie
differenti; inoltre una Grid si fa carico di problemi di sicurezza, politiche,
pagamenti, iscrizioni, ecc. Se così non fosse, avremmo a che fare con un sistema di
gestione locale)
2. “… usando protocolli ed interfacce standard, open e general-purpose…” (una Grid
è costruita da protocolli ed interfacce aventi vari obiettivi, tra cui il farsi carico di
9 CAPITOLO 1. GRID COMPUTING
aspetti fondamentali, come l’autenticazione, l’autorizzazione, la ricerca delle
risorse, l’accesso alle risorse. E’ importante che tali protocolli ed interfacce siano
standard ed open, in caso contrario avremmo a che fare con un sistema application-
specific)
3. “…per fornire qualità di servizio non banali” (una Grid permette qualità di
servizio ad esempio in termini di tempo di risposta, banda passante, availability,
sicurezza, risposte efficienti a problemi complessi) (14)
Il Grid computing affonda le proprie radici negli approcci già esistenti di calcolo
distribuito, conosciuti con i nomi di “metacomputing”, “scalable computing”, “global
computing”. I primi approcci sottolineano l'inutilità di lasciare inattive le macchine,
dedicandosi a una ricerca di ottimizzazione nell’uso delle risorse, ma si tenta anche di
collegare tra loro i supercomputer esistenti (progetto I-Way, 1995). Nei primi anni '90
nasce Globus ; con il Globus toolkit (15) (16) (17), arrivato oggi alla versione 5, è
possibile sviluppare sistemi Grid, contiene infatti le implementazioni dei principali
standard per la condivisione di risorse e servizi in maniera scalabile. In seguito si è poi
andati molto oltre le aspettative delle origini: le reti hanno conosciuto grande sviluppo ed
una rapida crescita, diventando la tecnologia chiave, il mezzo per progettare
un'infrastruttura di tipo Grid, alimentando l'idea di poter utilizzare la rete come un risorsa
di calcolo affidabile ed infinitamente scalabile, utilizzabile ovunque.
Nel 1999 nasce INFN-Grid (18), un progetto che ha permesso di unire le varie sedi
INFN in Italia; in quest’ambito è avvenuto lo sviluppo ed il rilascio di servizi Grid orientati
al miglioramento della condivisione delle risorse tra gruppi di ricerca coinvolti in
esperimenti e progetti a livello mondiale. Attualmente il progetto si sta orientando verso la
standardizzazione ed integrazione di piattaforme di ricerca nazionali ed internazionali, con
l'obiettivo di creare un ambiente unico e coerente di servizi Grid interoperabili, che funga
da supporto per la comunità scientifica italiana. Le infrastrutture per le quali INFN cerca
un’integrazione sono le più famose tra quelle nate nell’ultimo decennio:
European DataGrid (19), progetto nato nel 2000, ha portato alla costruzione di
un'infrastruttura di supporto ai maggiori esperimenti scientifici moderni in materia
di fisica delle particelle, esperimenti condotti presso il CERN di Ginevra
CAPITOLO 1. GRID COMPUTING 10
il progetto di ricerca EGEE (20) (Enabling Grids for E-sciencE), nato nel 2004 ed
ora confluito nel progetto EGI (9), collega 45 stati nel mondo e ha dato vita,
partendo dai servizi realizzati in Globus e DataGrid, al middleware gLite (2)
LHC Computing Grid (3), la “recente” rete per l'elaborazione dei dati provenienti
dal famoso acceleratore del CERN, nella quale il centro di calcolo CNAF-INFN di
Bologna rappresenta uno dei principali nodi
EGI (European Grid Infrastructure) (9), progetto nato nel 2010 allo scopo di creare
un’infrastruttura europea avanzata e sostenibile, prendendo spunto dal successo di
EGEE (20), Baltic Grid (21), See-Grid-Sci (22) ed in collaborazione con NDGF
(23). I ricercatori che usufruiscono delle risorse EGI sono oltre 10mila, si tratta di
un’infrastruttura che inizialmente era solo per i fisici, ma è stata poi estesa
1.2 Struttura e componenti
Un progetto per la realizzazione di un’infrastruttura di tipo Grid, deve tenere conto di sei
elementi chiave e delle loro interazioni:
1. La rete: è il supporto fisico necessario per l'accesso alle risorse. Nell’ambito del
progetto EGI, ad esempio, si fa uso di una rete europea, in fibra ottica, gestita da
GEANT (24) (connette 40 milioni di utenti, 8mila istituzioni ed oltre 40 paesi.) e dal
GARR (25) in Italia
2. Computer farm: costituite da cluster di server distribuiti per l’Europa e connessi
dalla rete GEANT
3. I dati: creati, consumati e condivisi in quantità ingenti, per risolvere i problemi
della scienza moderna
4. Il middleware: uno strato software che funge da collante, permettendo agli utenti
di accedere ai cluster e di condividere dati in maniera semplice e sicura
5. Le persone: coloro che si occupano del mantenimento della Grid, a tutti i livelli
6. Gli utenti: che utilizzano i servizi offerti
Un aspetto molto importante è costituito dai protocolli e dalla necessità di regole
standardizzate con le quali gestire le interazioni tra utenti e servizi, assicurando il corretto
raggiungimento di obiettivi quali interoperabilità, portabilità, condivisione, sicurezza e
11 CAPITOLO 1. GRID COMPUTING
scalabilità della Grid; i supporti fisici coinvolti possono essere del tutto eterogenei, i
protocolli si occupano di rendere queste differenze del tutto trasparenti, assicurando una
comunicazione sicura tra le parti.
Per implementare un’infrastruttura Grid è necessario il superamento del semplice
modello client-server: serve una gestione coordinata su larga scala, con un sistema di
autorizzazioni multi-dominio per supportare organizzazioni virtuali, ovvero gruppi di
utenti geograficamente sparsi ma accomunati da un interesse. E’ necessario astrarre
dall’eterogeneità delle risorse fisiche, fornendo servizi, tramite middleware, per
permettere agli utenti di utilizzare queste risorse eterogenee in maniera uniforme. Servono
protocolli e interfacce standard e open, che permettano la comunicazione tra componenti
hardware e software eterogenei e, infine, serve assicurare qualità del servizio. I protocolli
possono riguardare vari aspetti ma in generale è bene che siano suddivisi per livelli, un
protocollo è ben progettato quando è molto efficiente nel singolo contesto che gli compete.
Un'architettura che soddisfa questi requisiti (proposta in (26)) è modellata ispirandosi
al modello dell’Internet Protocol (come illustrato in figura 1.1) e nei vari livelli include
l’implementazione degli standard che permettono l'interazione delle componenti Grid. La
comunicazione è possibile sia tra livelli diversi che all'interno dello stesso; di seguito i
dettagli relativi ai singoli livelli:
Il Fabric layer permette l’accesso alle risorse, implementando operazioni locali,
specifiche e trasparenti, che avvengono come risultato di operazioni condivise ai
livelli superiori. (ES: farm, storage, database, filesystem, network link).
Implementa funzionalità quali: statistiche dei programmi, monitoring, I/O, gestione
del disco e della rete
Il Connectivity layer rappresenta un equivalente del livello di trasporto dell'IP; si
occupa di rendere sicura la comunicazione fra le risorse del fabric layer definendo i
protocolli di comunicazione (servizi di trasporto, naming e routing.
IP,DNS,TCP/IP) e meccanismi sicuri di autenticazione (servizi di “single sign-on”,
delegation, integrazione, crittografia)
Il Resource layer si basa sul connectivity per definire protocolli e librerie di
supporto alla negoziazione, il monitoraggio e la gestione delle operazioni di
condivisione di risorse individuali, compreso l'accounting (le politiche relative alla
CAPITOLO 1. GRID COMPUTING 12
spesa per il consumo delle risorse da parte degli utenti). Il livello è formato da due
componenti:
o protocolli di informazione, usati per ottenere informazioni sulla struttura e lo
stato di una risorsa (workload corrente, configurazione, policy d'uso)
o protocolli di gestione, usati per negoziare l'accesso ad una data risorsa
condivisa, specificando ad esempio la QoS (Quality Of Service) e le operazioni
da compiere
Il Collective layer contiene protocolli e servizi che coordinano risorse multiple in
maniera concorrente, ad esempio servizi di directory per rendere disponibili le
risorse alle VO, di allocazione e scheduling, monitoraggio, replicazione, gestione
delle sottomissioni e del carico di lavoro
L'Application layer include le applicazioni disponibili all'interno di una VO. Le
applicazioni possono usufruire di protocolli e servizi definiti su un qualsiasi layer,
questo permette ad un client di poter sottomettere un job Grid usando vari approcci;
ad esempio al Collective layer si può sottomettere il job al Workload Manager,
usufruendo di servizi di code, di sottomissione periodica, di gestione dei file di I/O,
di servizi di logging; al Resource layer direttamente ad uno scheduler di risorse, a
livello Connectivity ad un cluster remoto e a livello Fabric ad un cluster locale
13 CAPITOLO 1. GRID COMPUTING
Figura 1.1: Architettura Grid a confronto con architettura Internet Protocol
1.3 Service Oriented Architecture
L’idea fondamentale della Grid è che non c’è più un insieme di applicazioni indipendenti e
isolate, ma c’è una collezione di servizi consumabili su richiesta, pubblicata su
un’infrastruttura di comunicazione. Si parla quindi di SOA, Service Oriented Architecture;
le entità coinvolte in quest'ottica sono collegate tra loro secondo il paradigma del “find,
bind, execute”.
In questo contesto, i servizi devono necessariamente essere:
Ricercabili e indirizzabili
Trasparenti a livello di formati e località
Auto-contenuti e modulari
Interoperabili (compatibili con varie piattaforme e linguaggi)
Debolmente accoppiati (chi usa il servizio lo conosce poco prima di invocarlo, usa
dei messaggi per dialogarci)
Migrabili
CAPITOLO 1. GRID COMPUTING 14
Auto-riparabili
Sicuri
L’OASIS (Organization for the Advancement of Structured Information Standards) (27)
definisce così la SOA (28): “Un paradigma per l'organizzazione e l'utilizzazione delle
risorse distribuite che possono essere sotto il controllo di domini di proprietà differenti.
Fornisce un mezzo uniforme per offrire, scoprire, interagire ed usare le capacità di
produrre gli effetti voluti consistentemente con presupposti e aspettative misurabili.”
Il tentativo di realizzare un'architettura service-oriented standard, riusabile in tutti i
casi, non rappresenta un approccio del tutto efficiente, ma, per favorire lo sviluppo di
architetture Grid specifiche, si rende necessario un modello di riferimento, per questo
nasce il SOA Reference Model (28), in cui tutto è incentrato sul servizio, definito come un
set di funzionalità di cui le altre entità possono usufruire. La descrizione del servizio è
formata da:
Data-Model: l’espressione logica dei dati implicati nel servizio
Policy: asserzioni o obblighi che il consumatore deve accettare o fornire
Contract: vincoli sintattici, semantici e logici imposti nell'uso del servizio
Advertisement: rende possibile agli utenti consumer la ricerca (discovery) del
servizio sul layer fabric, non necessita autorizzazione
In un’ottica di SOA che assicuri scalabilità globale, le risorse e i servizi vanno
differenziati in maniera marcata, per renderli indipendenti ma comunque interoperabili,
con trasparenza. Vanno definiti meglio, quindi, i concetti di servizio, di risorsa ed i
protocolli ad essi associati.
1.4 I Web Service e le risorse
La definizione formale di Web Service (WS) (29) viene fornita dal W3C (World Wide Web
Consortium) (30), ed è la seguente: “Un Web Service è un sistema software progettato per
supportare l'interoperabilità tra diversi elaboratori su di una medesima rete. Possiede un
interfaccia descritta in un formato interpretabile da una macchina (nello specifico WSDL).
Altri sistemi interagiscono con un Web Service come prescritto dalla sua descrizione