presentazione: progetto e realizzazione di un sistema robusto di gestione dei dati per ambienti di...

63
PROGETTO E REALIZZAZIONE DI UN SISTEMA ROBUSTO DI GESTIONE DEI DATI PER AMBIENTI DI ESECUZIONE DISTRIBUITA Candidato: Paolo Morandini Relatore: Prof. Alberto Bartoli Correlatore: Ph.D. Carlos Kavka Anno Accademico 2012-2013 Tesi realizzata presso ESTECO S.p.A.

Upload: paolo-morandini

Post on 05-Jul-2015

77 views

Category:

Technology


1 download

DESCRIPTION

Progetto e realizzazione di un sistema robusto di gestione dei dati per ambienti di esecuzione distribuita.

TRANSCRIPT

Page 1: Presentazione: Progetto e realizzazione di un sistema robusto di gestione dei dati per ambienti di esecuzione distribuita

PROGETTO E REALIZZAZIONE DI UN SISTEMA ROBUSTO DI GESTIONE DEI DATI

PER AMBIENTI DI ESECUZIONE DISTRIBUITA

Candidato:

Paolo Morandini

Relatore: Prof. Alberto Bartoli

Correlatore: Ph.D. Carlos Kavka

Anno Accademico 2012-2013Tesi realizzata presso ESTECO S.p.A.

Page 2: Presentazione: Progetto e realizzazione di un sistema robusto di gestione dei dati per ambienti di esecuzione distribuita

LE MOTIVAZIONI

!

Interesse aziendale presso ESTECO S.p.A.

Il gruppo di Ricerca e Sviluppo è interessato alle possibilità

offerte dai sistemi distribuiti.

Page 3: Presentazione: Progetto e realizzazione di un sistema robusto di gestione dei dati per ambienti di esecuzione distribuita

LE MOTIVAZIONI

Page 4: Presentazione: Progetto e realizzazione di un sistema robusto di gestione dei dati per ambienti di esecuzione distribuita

LE MOTIVAZIONI

!

Workflow di ottimizzazione distribuito

Page 5: Presentazione: Progetto e realizzazione di un sistema robusto di gestione dei dati per ambienti di esecuzione distribuita

LE MOTIVAZIONI

!

CAD/CAE richiedono sempre uno o più file di input

Page 6: Presentazione: Progetto e realizzazione di un sistema robusto di gestione dei dati per ambienti di esecuzione distribuita

LE MOTIVAZIONI

!

Le organizzazioni coinvolte non condividono filesystem

Page 7: Presentazione: Progetto e realizzazione di un sistema robusto di gestione dei dati per ambienti di esecuzione distribuita

!

!

!

!

Nodi eterogenei in hardware e software

LO SCENARIO CONSIDERATO

Page 8: Presentazione: Progetto e realizzazione di un sistema robusto di gestione dei dati per ambienti di esecuzione distribuita

LO SCENARIO CONSIDERATO

!

!

!

!

Massimo poche decine di nodi

Page 9: Presentazione: Progetto e realizzazione di un sistema robusto di gestione dei dati per ambienti di esecuzione distribuita

LO SCENARIO CONSIDERATO

!

!

!

!

Topologia complessa della rete

Page 10: Presentazione: Progetto e realizzazione di un sistema robusto di gestione dei dati per ambienti di esecuzione distribuita

LO SCENARIO CONSIDERATO

!

!

!

!

Alcuni nodi hanno server HTTP FTP SMB/CIFS

Page 11: Presentazione: Progetto e realizzazione di un sistema robusto di gestione dei dati per ambienti di esecuzione distribuita

I REQUISITI

Nascondere la complessità (interfaccia JMS)

Page 12: Presentazione: Progetto e realizzazione di un sistema robusto di gestione dei dati per ambienti di esecuzione distribuita

I REQUISITI

Nascondere la complessità (interfaccia JMS)

Verificare i trasferimenti

Page 13: Presentazione: Progetto e realizzazione di un sistema robusto di gestione dei dati per ambienti di esecuzione distribuita

I REQUISITI

Nascondere la complessità (interfaccia JMS)

Verificare i trasferimenti

Atomicità e persistenza dei trasferimenti

Page 14: Presentazione: Progetto e realizzazione di un sistema robusto di gestione dei dati per ambienti di esecuzione distribuita

I REQUISITI

Nascondere la complessità (interfaccia JMS)

Verificare i trasferimenti

Atomicità e persistenza dei trasferimenti

Adattamento dinamico a ingresso/uscita nodi

Page 15: Presentazione: Progetto e realizzazione di un sistema robusto di gestione dei dati per ambienti di esecuzione distribuita

I REQUISITI

Nascondere la complessità (interfaccia JMS)

Verificare i trasferimenti

Atomicità e persistenza dei trasferimenti

Adattamento dinamico a ingresso/uscita nodi

Usare molteplici protocolli esistenti

Page 16: Presentazione: Progetto e realizzazione di un sistema robusto di gestione dei dati per ambienti di esecuzione distribuita

I REQUISITI

Nascondere la complessità (interfaccia JMS)

Verificare i trasferimenti

Atomicità e persistenza dei trasferimenti

Adattamento dinamico a ingresso/uscita nodi

Usare molteplici protocolli esistenti

Uso di una quantità predicibile di risorse

Page 17: Presentazione: Progetto e realizzazione di un sistema robusto di gestione dei dati per ambienti di esecuzione distribuita

I REQUISITI

Nascondere la complessità (interfaccia JMS)

Verificare i trasferimenti

Atomicità e persistenza dei trasferimenti

Adattamento dinamico a ingresso/uscita nodi

Usare molteplici protocolli esistenti

Uso di una quantità predicibile di risorse

Portabilità sulle tre piattaforme principali

Page 18: Presentazione: Progetto e realizzazione di un sistema robusto di gestione dei dati per ambienti di esecuzione distribuita

!

Si valuta la possibilità di progettare e sviluppare

un sistema "ad hoc" di distribuzione dei file

!

LA SOLUZIONE

Page 19: Presentazione: Progetto e realizzazione di un sistema robusto di gestione dei dati per ambienti di esecuzione distribuita

!

Si valuta la possibilità di progettare e sviluppare

un sistema "ad hoc" di distribuzione dei file

Tale sistema verrà installato su ogni calcolatore

interessato dall’esecuzione distribuita, sia esso di calcolo o

appositamente inserito per la condivisione delle risorse

LA SOLUZIONE

Page 20: Presentazione: Progetto e realizzazione di un sistema robusto di gestione dei dati per ambienti di esecuzione distribuita

LA SOLUZIONE

Page 21: Presentazione: Progetto e realizzazione di un sistema robusto di gestione dei dati per ambienti di esecuzione distribuita

LE TECNOLOGIE

Si è deciso di utilizzare gli Enterprise Integration Patterns

Possibili implementazioni:

• Apache Camel • Spring Integration • Mule ESB

Page 22: Presentazione: Progetto e realizzazione di un sistema robusto di gestione dei dati per ambienti di esecuzione distribuita

LE TECNOLOGIE

Si è deciso di utilizzare gli Enterprise Integration Patterns

Possibili implementazioni:

• Apache Camel

• Spring Integration • Mule ESB

Page 23: Presentazione: Progetto e realizzazione di un sistema robusto di gestione dei dati per ambienti di esecuzione distribuita

LA PROPOSTA

Suddividere il problema in tre sotto-problemi

Page 24: Presentazione: Progetto e realizzazione di un sistema robusto di gestione dei dati per ambienti di esecuzione distribuita

LA PROPOSTA

Suddividere il problema in tre sotto-problemi

Ricerca dei file

Page 25: Presentazione: Progetto e realizzazione di un sistema robusto di gestione dei dati per ambienti di esecuzione distribuita

LA PROPOSTA

Suddividere il problema in tre sotto-problemi

Ricerca dei file

Pianificazione del trasferimento

Page 26: Presentazione: Progetto e realizzazione di un sistema robusto di gestione dei dati per ambienti di esecuzione distribuita

LA PROPOSTA

Suddividere il problema in tre sotto-problemi

Ricerca dei file

Pianificazione del trasferimento

Esecuzione e verifica del trasferimento

Page 27: Presentazione: Progetto e realizzazione di un sistema robusto di gestione dei dati per ambienti di esecuzione distribuita

LA PROPOSTA - INTERFACCIA

Il sistema realizzato è il Distributed Data Manager

Page 28: Presentazione: Progetto e realizzazione di un sistema robusto di gestione dei dati per ambienti di esecuzione distribuita

LA PROPOSTA - INTERFACCIA

Unico eseguibile installato su ogni calcolatore

Page 29: Presentazione: Progetto e realizzazione di un sistema robusto di gestione dei dati per ambienti di esecuzione distribuita

RICERCA DEI FILE

Richiesto un file identificato da UUID (o simile)

Page 30: Presentazione: Progetto e realizzazione di un sistema robusto di gestione dei dati per ambienti di esecuzione distribuita

RICERCA DEI FILE

Richiesto un file identificato da UUID (o simile)

A tutti i nodi: "Chi ha UUID?"

Tramite architettura Publisher/Subscribe, ogni nodo si registra per la ricezione dei messaggi di ricerca

!

Non è necessario che tutti abbiano accesso ad un unico server con il servizio JMS, esistono broker distribuiti

Page 31: Presentazione: Progetto e realizzazione di un sistema robusto di gestione dei dati per ambienti di esecuzione distribuita

RICERCA DEI FILE

Richiesto un file identificato da UUID (o simile)

A tutti i nodi: "Chi ha UUID?"

Se uno risponde : "Io ho UUID" Localizzato

La risposta avviene tramite coda di messaggi, con garanzia di ricezione da parte del destinatario

Page 32: Presentazione: Progetto e realizzazione di un sistema robusto di gestione dei dati per ambienti di esecuzione distribuita

RICERCA DEI FILE

Richiesto un file identificato da UUID (o simile)

A tutti i nodi: "Chi ha UUID?"

Se uno risponde : "Io ho UUID" Localizzato

Altrimenti: riprovo, dopo N tentativi abbandono

Page 33: Presentazione: Progetto e realizzazione di un sistema robusto di gestione dei dati per ambienti di esecuzione distribuita

PIANIFICAZIONE DEL TRASFERIMENTO

Come spostare il FILE da A a B?

Page 34: Presentazione: Progetto e realizzazione di un sistema robusto di gestione dei dati per ambienti di esecuzione distribuita

PIANIFICAZIONE DEL TRASFERIMENTO

Come spostare il FILE da A a B?

Dijkstra su grafo aggiornato dinamicamente

Page 35: Presentazione: Progetto e realizzazione di un sistema robusto di gestione dei dati per ambienti di esecuzione distribuita

PIANIFICAZIONE DEL TRASFERIMENTO

Come spostare il FILE da A a B?

Dijkstra su grafo aggiornato dinamicamente

Nodi aggiornano il grafo tentando connessioni

Page 36: Presentazione: Progetto e realizzazione di un sistema robusto di gestione dei dati per ambienti di esecuzione distribuita

PIANIFICAZIONE DEL TRASFERIMENTO

Come spostare il FILE da A a B?

Dijkstra su grafo aggiornato dinamicamente

Nodi aggiornano il grafo tentando connessioni

I file vengono divisi in chunk

Page 37: Presentazione: Progetto e realizzazione di un sistema robusto di gestione dei dati per ambienti di esecuzione distribuita

ESECUZIONE DEL TRASFERIMENTO

Effettua download o upload (multiprotocollo)

Page 38: Presentazione: Progetto e realizzazione di un sistema robusto di gestione dei dati per ambienti di esecuzione distribuita

ESECUZIONE DEL TRASFERIMENTO

Effettua download o upload (multiprotocollo)

Verifica correttezza chunk (MD5)

Page 39: Presentazione: Progetto e realizzazione di un sistema robusto di gestione dei dati per ambienti di esecuzione distribuita

ESECUZIONE DEL TRASFERIMENTO

Effettua download o upload (multiprotocollo)

Verifica correttezza chunk (MD5)

Unisce i chunk in un file

Page 40: Presentazione: Progetto e realizzazione di un sistema robusto di gestione dei dati per ambienti di esecuzione distribuita

IL COMPORTAMENTO

File Request

Search

LocatedMatch

Abort

Try Route

OK Route

Split Chunks

Do Transfer

Transfer End

Hash OK

Next Transfer Merge File

Delivered

File Request

Search

LocatedMatch

OK Route

Try Route

Split Chunks

Do Transfer

Transfer End

Hash OK

Next Transfer Merge File

Delivered

Hash Fail

Delete & Retry

!

In caso di trasferimento corrotto?

Page 41: Presentazione: Progetto e realizzazione di un sistema robusto di gestione dei dati per ambienti di esecuzione distribuita

IL COMPORTAMENTO

File Request

Search

LocatedMatch

Abort

Try Route

OK Route

Split Chunks

Do Transfer

Transfer End

Hash OK

Next Transfer Merge File

Delivered

File Request

Search

LocatedMatch

OK Route

Try Route

Split Chunks

Do Transfer

Transfer End

Hash OK

Next Transfer Merge File

Delivered

Hash Fail

Delete & Retry

!

Rilevo trasferimento corrotto

Page 42: Presentazione: Progetto e realizzazione di un sistema robusto di gestione dei dati per ambienti di esecuzione distribuita

IL COMPORTAMENTO

File Request

Search

LocatedMatch

Abort

Try Route

OK Route

Split Chunks

Do Transfer

Transfer End

Hash OK

Next Transfer Merge File

Delivered

File Request

Search

LocatedMatch

OK Route

Try Route

Split Chunks

Do Transfer

Transfer End

Hash OK

Next Transfer Merge File

Delivered

Hash Fail

Delete & Retry

!

Elimino i dati e riprovo

Page 43: Presentazione: Progetto e realizzazione di un sistema robusto di gestione dei dati per ambienti di esecuzione distribuita

IL RECUPERO DA GUASTI PARZIALI

Molti trasferimenti in corso

Page 44: Presentazione: Progetto e realizzazione di un sistema robusto di gestione dei dati per ambienti di esecuzione distribuita

IL RECUPERO DA GUASTI PARZIALI

Interruzione (crash) Relay 1

Page 45: Presentazione: Progetto e realizzazione di un sistema robusto di gestione dei dati per ambienti di esecuzione distribuita

IL RECUPERO DA GUASTI PARZIALI

Relay 1 online, solo messaggistica JMS

Page 46: Presentazione: Progetto e realizzazione di un sistema robusto di gestione dei dati per ambienti di esecuzione distribuita

IL RECUPERO DA GUASTI PARZIALI

Ripristino completo del nodo Relay 1

Page 47: Presentazione: Progetto e realizzazione di un sistema robusto di gestione dei dati per ambienti di esecuzione distribuita

L’ADATTAMENTO DINAMICO

Cosa succede se cambia la

topologia della rete?

!

Il grafo rilevato viene

correttamente aggiornato?

Page 48: Presentazione: Progetto e realizzazione di un sistema robusto di gestione dei dati per ambienti di esecuzione distribuita

L’ADATTAMENTO DINAMICO

HTTP Server on Workstation

Page 49: Presentazione: Progetto e realizzazione di un sistema robusto di gestione dei dati per ambienti di esecuzione distribuita

L’ADATTAMENTO DINAMICO

HTTP Server Failure?

Page 50: Presentazione: Progetto e realizzazione di un sistema robusto di gestione dei dati per ambienti di esecuzione distribuita

L’ADATTAMENTO DINAMICO

Page 51: Presentazione: Progetto e realizzazione di un sistema robusto di gestione dei dati per ambienti di esecuzione distribuita

L’IMPATTO DEL CHUNKINGSp

eed

[MiB

/s]

Diretto 1 Relay 2 Relay

Senza Chunking Con Chunking

Page 52: Presentazione: Progetto e realizzazione di un sistema robusto di gestione dei dati per ambienti di esecuzione distribuita

IL RILASCIO DELLE RISORSE

Page 53: Presentazione: Progetto e realizzazione di un sistema robusto di gestione dei dati per ambienti di esecuzione distribuita

IL RILASCIO DELLE RISORSE

Page 54: Presentazione: Progetto e realizzazione di un sistema robusto di gestione dei dati per ambienti di esecuzione distribuita

IL RILASCIO DELLE RISORSE

Page 55: Presentazione: Progetto e realizzazione di un sistema robusto di gestione dei dati per ambienti di esecuzione distribuita

IL RILASCIO DELLE RISORSE

Page 56: Presentazione: Progetto e realizzazione di un sistema robusto di gestione dei dati per ambienti di esecuzione distribuita

LE CONCLUSIONI

Nascondere la complessità (interfaccia JMS)

Verificare i trasferimenti

Atomicità e persistenza dei trasferimenti

Adattamento dinamico a ingresso/uscita nodi

Usare molteplici protocolli esistenti

Uso di una quantità predicibile di risorse

Portabilità sulle tre piattaforme principali

Page 57: Presentazione: Progetto e realizzazione di un sistema robusto di gestione dei dati per ambienti di esecuzione distribuita

LE CONCLUSIONI

Nascondere la complessità (interfaccia JMS)

Verificare i trasferimenti

Atomicità e persistenza dei trasferimenti

Adattamento dinamico a ingresso/uscita nodi

Usare molteplici protocolli esistenti

Uso di una quantità predicibile di risorse

Portabilità sulle tre piattaforme principali

Page 58: Presentazione: Progetto e realizzazione di un sistema robusto di gestione dei dati per ambienti di esecuzione distribuita

LE CONCLUSIONI

Nascondere la complessità (interfaccia JMS)

Verificare i trasferimenti

Atomicità e persistenza dei trasferimenti

Adattamento dinamico a ingresso/uscita nodi

Usare molteplici protocolli esistenti

Uso di una quantità predicibile di risorse

Portabilità sulle tre piattaforme principali

Page 59: Presentazione: Progetto e realizzazione di un sistema robusto di gestione dei dati per ambienti di esecuzione distribuita

LE CONCLUSIONI

Nascondere la complessità (interfaccia JMS)

Verificare i trasferimenti

Atomicità e persistenza dei trasferimenti

Adattamento dinamico a ingresso/uscita nodi

Usare molteplici protocolli esistenti

Uso di una quantità predicibile di risorse

Portabilità sulle tre piattaforme principali

Page 60: Presentazione: Progetto e realizzazione di un sistema robusto di gestione dei dati per ambienti di esecuzione distribuita

LE CONCLUSIONI

Nascondere la complessità (interfaccia JMS)

Verificare i trasferimenti

Atomicità e persistenza dei trasferimenti

Adattamento dinamico a ingresso/uscita nodi

Usare molteplici protocolli esistenti

Uso di una quantità predicibile di risorse

Portabilità sulle tre piattaforme principali

Page 61: Presentazione: Progetto e realizzazione di un sistema robusto di gestione dei dati per ambienti di esecuzione distribuita

LE CONCLUSIONI

Nascondere la complessità (interfaccia JMS)

Verificare i trasferimenti

Atomicità e persistenza dei trasferimenti

Adattamento dinamico a ingresso/uscita nodi

Usare molteplici protocolli esistenti

Uso di una quantità predicibile di risorse

Portabilità sulle tre piattaforme principali

Page 62: Presentazione: Progetto e realizzazione di un sistema robusto di gestione dei dati per ambienti di esecuzione distribuita

LE CONCLUSIONI

Nascondere la complessità (interfaccia JMS)

Verificare i trasferimenti

Atomicità e persistenza dei trasferimenti

Adattamento dinamico a ingresso/uscita nodi

Usare molteplici protocolli esistenti

Uso di una quantità predicibile di risorse

Portabilità sulle tre piattaforme principali

Page 63: Presentazione: Progetto e realizzazione di un sistema robusto di gestione dei dati per ambienti di esecuzione distribuita

LE CONCLUSIONI

Nascondere la complessità (interfaccia JMS)

Verificare i trasferimenti

Atomicità e persistenza dei trasferimenti

Adattamento dinamico a ingresso/uscita nodi

Usare molteplici protocolli esistenti

Uso di una quantità predicibile di risorse

Portabilità sulle tre piattaforme principali