La clessidra di Globus • Focus su problemi architetturali Applicazioni – Propone un insieme di servizi di base Diversi servizi globali come nucleo dell’infrastruttura – Utilizzo per la costruzione di soluzioni ad alto livello Servizi di • Principi progettuali – Permettere il controllo locale – Supporto per l’adattatività – Modello “IP hourglass” base Globus SO locali Globus Toolkit • Esistono varie versioni del Globus Toolkit – GT2.4, GT3.0 GT3.2 sono le ultime • Cominciamo con GT2.4 – si basa su quattro moduli • • • • Security Resource Management Information Service Data Management Servizi di base del Globus Toolkit • • • • • Sicurezza (GSI) Gestione delle risorse (GRAM) Servizi di informazione (GIS) Gestione dei dati (GASS, GridFTP, GRM) Comunicazione (I/O, Nexus) GT2: Protocolli Chiave • Il Globus Toolkit v2 è basato su quattro protocolli chiave Collective layer – Security: Grid Security Infrastructure (GSI) Resource layer – Resource management: Grid Resource Allocation Management (GRAM) – Information Service: Monitoring and Discovery Service (GRIP) – Data Transfer: Grid File Transfer Protocol (GridFTP) Anche protocolli chiave del collective layer – Info Services, Replica Management, etc Globus Toolkit 2 • La visione d’insieme Resource Management • GRAM (Globus Resource Allocation Manager) • È il componente di più basso livello del modulo • Sistema di tipo client-server • Permette di eseguire programmi su risorse remote • DUROC (Dynamically-Updated Request Online Coallocator) • Co-allocatore di richieste • GASS (Globus Access to Secondary Storage) • Accesso a file remoti GRAM • • • • • Permette di eseguire i job in remoto Interpreta le richieste in linguaggio RSL Permette di monitorare lo stato dei job Aggiorna l’Information Service Fornisce un’interfaccia comune per l’interazione con i sistemi di gestione locali GRAM: il server Sul server agisce il Gatekeeper, in ascolto sulla porta 2119. E’ un processo di root avviato dal demone xinetd solo all’arrivo di una richiesta. I suoi compiti sono: – Mutua autenticazione con il proxy del client – Mappa client in un utente locale (gridmap-file) – Istanzia Job-manager con diritti utente locale, passando gli argomenti necessari ai processi GRAM: il server Il Job Manager avvia processi del job interfacciandosi con il sistema locale e comunica lo stato dei processi all’esterno. I suoi compiti sono – Parsing RSL – Interfacciamento con il sistema locale – Comunicazione diretta con il client per stato dei processi GRAM GRAM server GRAM client PROXY Job request GSI GATEKEEPER JOB MANAGER JOB MANAGER JOB MANAGER RSL GASS LOCAL RESOURCE MANAGER FIle_stage_in, out GASS Process Process Process DUROC Quando è necessario allocare più risorse contemporaneamente è necessario un coallocatore che smisti le richieste alle varie risorse, scomponendo le richieste e riassemblando il risultato. DUROC Local resource managers GRAM GRAM GRAM LSF Condor PBS Il gram-reporter si occupa di aggiornare l’Information Service con le informazioni riguardo le risorse utilizzate. GASS Quest’utility semplifica lo spostamento di file necessari ad un eseguibile Elimina il bisogno di: effettuare il login su ogni risorsa sulla quale è presente un file necessario e trasferirlo tramite FTP installare un filesystem distribuito Mette a disposizione un protocollo tramite il quale accedere alle risorse remote Information Service La natura dinamica del GRID implica che le applicazioni devono essere in grado di adattarsi ai cambiamenti dei componenti Il Globus Metacomputing Directory Service (MDS) supporta questo fornendo un’informazione continuamente disponibile ed aggiornata sui componenti, quali: architettura, tipo e versione di SO, quantità di memoria larghezza di banda e latenza … Information Service • GRIS (grid resource information service): Database LDAP che risiede su una risorsa e provvede a raccoglierne tutte le caratteristiche dinamiche e permanenti • GIIS (grid index information service) Server di livello superiore che contiene le informazioni relative a diversi GRIS. Gerarchia di GIIS server • IP (information provider) Componente che risiede sulla risorsa e viene consultato da un GRIS quando ha bisogno di informazioni su un aspetto di essa, puo’ essere personalizzato Information Service Lungo la via • La base eterogenea di protocolli era troppo complessa (LDAP, GRAM, GridFTP,…) • I servizi base non bastavano più: troppi nuovi servizi troppo complessi da gestire • Comparsa dei Web Services (WSDL, SOAP)…che però non bastano per realizzare una base comune di servizi Grid! Evoluzione del GT2 nel GT3 • Cosa è successo ai protocolli base del GT2? – Sicurezza: adattamento dei certificati proxy X.509 per l’integrazione degli standard dei WS – LDAP: integrato come astrazione di serviceData – GRAM: ManagementJobFactory e relativi servizi – GridFTP: immutato nel GT3, ma evolverà • Realizzazione di servizi collettivi in termini di OGSI: Reliable File Transfert, Replica Location Service, etc OGSA ed il GT • Tecnicamente, OGSA permette di: – Riscrivere i protocolli (GRAM, MDS, GridFTP), conservando tutti i principi base del GT – Integrazione di molti hosting environment: componentizzazione, distribuzione, etc – Insieme di servizi standard • Praticamente, il Globus Project procede così: – Sviluppo di un’implementazione OGSA open source – Partnership con varie istituzioni per lo sviluppo dei servizi (OGSA-DAI) – Verifica dell’interesse delle industrie GT3 Core GT3 Core - OGSI Specification • La specifica definisce come le entità possono creare, scoprire ed interagire con un Grid Service GT3 Core - OGSI Specification • GT3 include un insieme di primitive che implementano interfacce e comportamenti definiti dall’ultima versione delle specifiche OGSI • L’implementazione supporta programmazione di tipo dichiarativo in cui un utente GT3 può comporre Grid Service utilizzando le primitive che desiderano nel loro codice GT3 Core - OGSI Specification GridService portType • definisce il comportamento fondamentale di un Grid Service – Introspezione – Scoperta – Gestione del ciclo di vita “soft state” • Necessario in base alle specifiche GT3 Core - OGSI Specification Factory portType • Le factory creano i servizi • Le factory sono tipicamente servizi persistenti • La factory è un’interfaccia OGSI opzionale (I Grid Service possono essere istanziati anche con altri meccanismi) GT3 Core - OGSI Specification Notification portType • Una sottoscrizione al notification crea un NotificationSubscription service • NotificationSink non sono richieste per implementare la GridService portType • Notifiche possono essere associate ai service Data Element • Le Notification portType sono opzionali GT3 Core - OGSI Specification Service group portType • Un ServiceGroup è un Grid service che mantiene informazioni su un gruppo di Grid services • Il modello classico del registro può essere implementato tramite ServiceGroup portType • Un Grid service può appartenere a più di un ServiceGroup • I membri di un ServiceGroup possono essere omogenei o eterogenei • ServiceGroup portType è un’interfaccia OGSI opzionale GT3 Core - OGSI Specification HaldleResolver portType • Definisce un meccanismo per risolvere un GSH in un GSR – Un GSH punta ad un Grid Service – Un GSR specifica come comunicare con il Grid Service • HandleResolver portType è un’interfaccia OGSI opzionale