Grid monitoring: sviluppi futuri
Sergio Andreozzi [INFN-CNAF]
Natascia De Bortoli [INFN-Napoli]
Sergio Fantinel [INFN-LNL]
Gennaro Tortone [INFN-Napoli]
Technical Board INFN-GRID
Bologna, 16-17 giugno 2003
Introduzione

Il monitoring e’ un’attività strategica per il calcolo distribuito

Scenari di utilizzo:





performance analisys
resources/services fault detection
“problems spotting”
statistics and capacity planning
auditing system
GRID service
Obiettivi

da monitoring tool a monitoring service
Monitoring Tool
Grid Information Service
Grid Monitoring Service
Motivazioni

caratterizzazione delle informazioni di monitoring (eventi)




a differenza dei dati forniti da un GIS, alcuni eventi di monitoring
sono generati con una frequenza maggiore (es. 30 s) – non ha
senso parlare di “soft-state”
l’aggiunta di un nuovo tipo di evento deve comportare poche
modifiche al sistema – nel caso del monitoring basato sul GIS
occorre modificare lo schema per tutte le risorse
il formato degli eventi prodotti non deve dipendere da un
particolare protocollo – architettura indipendente dalla tecnologia
l’aggiunta delle funzionalita’ e’ possibile modificando un solo layer
di software – nel caso del monitoring basato sul GIS sia le
funzionalita’ di base che la scalabilita’ sono “ereditate”
General design
Consumer
4) Query
or
Subscribe
3) Event producer & Event schema
information
2) Lookup
5) Event
data
Producer
Directory
Service
1) Event publication
information
Attivita’ di sviluppo analoghe

R-GMA (DataGRID WP3)

il modello di rappresentazione degli eventi e’ il database
relazionale:




event producer: SQL INSERT/UPDATE
event consumer: SQL SELECT
utilizzo di servlet Java per l’implementazione dei vari componenti:
Consumer, Producer e Registry – application server su ogni tipo di
risorsa / molto codice e’ stato scritto per adattare la tecnologia
scelta alla problematica di base (servlet = generic server extension)
gli sviluppi futuri di R-GMA sono orientati all’utilizzo di SQL per
query distribuite – ma questo e’ lo scopo di un Grid Information
Service non di un Grid Monitoring Service
Proposal di un Grid Monitoring Service




premesse generali
architettura e funzionalita’ dei componenti
tecnologie
scenario di utilizzo: GOC monitoring
Premesse generali

l’architettura del monitoring e’ distribuita



utilizzo del modello GMA (Grid Monitoring Architecture) composto da
producer/consumer/registry;
la raccolta puo’ essere abilitata “ad hoc” secondo le richieste





non esistono database centrali o monitoring server nell’architettura di base
data challanges, stress test, …
deve essere garantita la scalabilita’ del monitoring service
il linguaggio di programmazione da utilizzare deve essere portabile
(es. Java, C, …)
gli eventi di monitoring devono essere standard e portabili (es. XML) in
modo da consentire la futura integrazione con altri sistemi o tool di
monitoring e controllo (es. Nagios)
l’installazione e la configurazione dei sensor di monitoring sulle risorse
deve essere semplice in modo da minimizzare l’impatto sui sitemanager
Architettura
(1/7)
registry
consumer
consumer
event proxy
sensor manager
sensor A
sensor B
sensor manager
sensor C
sensor A
sensor B
sensor D
sensor E
sensor C
Architettura

(2/7)
sensor


programma che genera eventi
a livello implementativo il sensor puo’ essere:




si dividono in:



una classe (Java)
uno script (Bash, Perl, …)
un programma eseguibile
host sensors: effettuano misure sull’host monitorato: ad es. CPU load, available
memory, ecc.
network sensors: utilizzano SNMP per interrogare i dispositivi di rete (router,
switch, …)
il funzionamento avviene secondo una delle seguenti modalita’:


continuous mode: l’evento viene generato ad ogni esecuzione del sensor; la
generazione degli eventi e’ sincrona
threshold mode: l’evento viene generato quando la misura effettuata e’
maggiore (o minore) di una determinata soglia; la generazione degli eventi e’
asincrona
Architettura
(3/7)
schema XML di un evento
<event>
<host name=”pluto.infn.it” ip=”192.135.13.1” timezone=”GMT+2” />
<header name=”system.processes” type=”continuous”
timestamp=”109832123” sample_period=”60” />
<body>
<measurement type=”system.process”>
<detail type=”total” value=”100” units=”abs” />
<detail type=”running” value=”30” units=”abs” />
<detail type=”sleeping” value=”69” units=”abs” />
<detail type=”zombie” value=”1” units=”abs” />
</measurement>
</body>
</event>
Architettura

(4/7)
sensor manager


componente responsabile della gestione dei sensor installati sull’host da
monitorare
un sensor gestito da un sensor manager e’:




off: se non ne e’ schedulata l’esecuzione
active: se ne e' schedulata l'esecuzione da parte del system manager;
on-line: se gli eventi che produce vengono trasmessi dal sensor manager
all‘event proxy;
ha il compito di:




cambiare lo stato dei sensor (off  active, active  on-line)
creare i thread di esecuzione dei sensor impostando l’intervallo di campionamento
inviare il messaggio di keep-alive dell’host al proprio event proxy
effettuare il caching dell’ultimo evento generato da ogni sensor per supportare il
funzionamento in modalita’ query
Architettura

(5/7)
event proxy



componente che si interfaccia con i vari consumer.
e’ possibile installare anche piu’ event proxy al fine di aumentare la
scalabilita’ del servizio di monitoring
ha il compito di:




dichiarare al registry gli eventi offerti dai sensor manager
accettare i subscribe/unsubscribe da parte dei consumer
attivare il forward degli eventi generati dai sensor ai consumer che hanno
effettuato il subscribe di quel tipo di evento
le modalita’ di forward degli eventi sono:


streaming: dopo il subscribe da parte di un consumer gli eventi vengono inviati
uno dopo l’altro fino all’unsubscribe
query: non viene effettuato il subscribe; l’event proxy invia al consumer l’ultimo
evento generato del tipo richiesto
Architettura

(6/7)
consumer


viene utilizzato da un client per la richiesta di eventi
le azioni previste per il subscribe di eventi sono le seguenti:






query al registry per l’individuazione degli event proxy che forniscono gli eventi
richiesti
dichiarazione degli eventi a cui e’ interessato tramite un documento XML inviato a
ciascun event proxy individuato; il documento deve specificare la modalita’ di
forward degli eventi (query o streaming)
subscribe a ciascun event proxy
ricezione degli eventi richiesti (in query o streaming)
durante la ricezione (periodicamente) invia il messaggio di keep-alive agli event
proxy
per terminare la connessione effettua l’unsubscribe verso ciascun event proxy
tramite un documento XML
Architettura

(7/7)
registry


viene utilizzato dai consumer per localizzare gli event proxy che forniscono
gli eventi richiesti
il deployment avvenire a livello:






virtual organization
site
…
contiene le registrazioni di keepalive degli event proxy insieme agli eventi
forniti
e’ un directory service; una possibile implementazione potrebbe essere un
OpenLDAP server
esempio di schema del registry:







ep_name
ep_address
event_type
vo_name
site
validfrom
validto
:
:
:
:
:
:
:
DNS name dell'Event Proxy
IP address dell'Event Proxy
tipo di evento prodotto [attributo multivalue]
virtual organization [attributo multivalue]
site
timestamp di generazione della entry
timestamp di scadenza della entry
Interazioni tra componenti
registry
consumer
eventi
query
event proxy
keep-alive
sensor manager
sensor A
sensor B
sensor C
Tecnologie

XML

JMS (Java Message Service)





specifica SUN per l’invio/ricezione di messaggi tra applicazioni
messaging models: queues e topics
message selection/priority
tipi di messaggi: Text, Byte, Object
API disponibili per Java,C++,…
JMS messaging models
Publisher3
Publisher3
publish
queue
Publisher2
Publisher1
consume
Subscriber2
topic
Publisher2
msg n
:
:
:
msg 7
msg 6
msg 5
msg 4
msg 3
msg 2
msg 1
publish
Publisher1
consume
consume
Subscriber1
Subscriber2
msg n
:
:
:
msg 7
msg 6
msg 5
msg 4
msg 3
msg 2
msg 1
consume
Subscriber1
Scenario di utilizzo: GOC monitoring
NAGIOS
NAGIOS
consumer
consumer
cfg
registry
event proxy
event proxy
event proxy
s.m.
s.m.
s.m.s.m.
s.m.
s.m.s.m.
s.m.
s.m.s.m.
s.m.
s.m.
s.m.
s.m.
s.m.s.m.
s.m.
s.m.s.m.
s.m.
s.m.s.m.
s.m.
s.m.
s.m.
s.m.
s.m.s.m.
s.m.
s.m.s.m.
s.m.
s.m.s.m.
s.m.
s.m.
Scarica

Grid monitoring: sviluppi futuri