Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica Progettazione ed Implementazione di un Protocollo di Replicazione Semi-Attiva tesi di laurea Progettazione ed Implementazione di un Protocollo di Replicazione Semi-Attiva Anno Accademico 2005/2006 relatore Ch.mo prof. Domenico Cotroneo correlatore Ing. Armando Migliaccio candidato Paolo Maresca Matr. 534/939 Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica Progettazione ed Implementazione di un Protocollo di Replicazione Semi-Attiva Contesto e Problematica La tolleranza ai guasti nei moderni sistemi distribuiti grazie alla replicazione software La ricerca di affidabilità e disponibilità per i servizi automatizzati in rete • la rete introduce la problematica dei guasti di nodi e canali • tolleranza ai guasti • replicazione software vs. replicazione hardware La replicazione software è una delle soluzioni più utilizzate per tollerare i guasti • le principali tecniche di replicazione • le garanzie di consistenza • la comunicazione di gruppo Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica Progettazione ed Implementazione di un Protocollo di Replicazione Semi-Attiva La replicazione Semi-Attiva Una tecnica di replicazione che non prevede entità totalmente passive La tecnica di replicazione prevede una distinzione di ruoli delle n repliche del servizio • • • processamento deterministico e non deterministico Replica Leader Repliche Follower L’elezione del leader del gruppo non segue uno schema fisso o predetermintato dalla specifica • un guasto del leader provoca l’elezione di uno nuovo • membership e aggiornamento sono tenuti con le primitiva del GCT I vantaggi: • si supera la difficoltà legata all’elaborazione non deterministica • bassa ridondanza di elaborazione • tolleranza ai guasti Gli svantaggi: • difficoltà implementativa Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica Progettazione ed Implementazione di un Protocollo di Replicazione Semi-Attiva SARP(Semi Active Replication Protocol) Le caratteristiche salienti del protocollo di replicazione progettato, implementato e verificato sperimentalmente È un protocollo interoperabile per la replicazione software semi attiva • • • Garantisce la replicazione del servizio su macchine distribuite eterogenee per hardware e/o software Garantisce la tolleranza ai guasti di tipo crash per il servizio replicato Garantisce la totale trasparenza al client rispetto alla replicazione del servizio Si raggiunge la capacità di replicare il servizio su nodi eterogenei grazie alle scelte implementative, in particolare: • • • Si è scelto il linguaggio Java per l’implementazione che garantisce la portabilità del codice Si è scelto utilizzare un middleware CORBA tra clienti e serventi che garantisce trasparenza all’eterogeneità dei nodi Si è scelto di utilizzare il GCT Appia per garantire la consistenza forte delle repliche o Appia assicura flessibilità Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica Progettazione ed Implementazione di un Protocollo di Replicazione Semi-Attiva L’architettura di SARP Una descrizione di alto livello dell’architettura e delle funzionalità implementate dai componenti architetturali Il protocollo SARP è basato su una architettura two-tier • Prevede un ulteriore livello di gestione dello scenario di replicazione, che: 1) 2) • • Sovraintenda il livello di replicazione del servizio Gestisca a seguito di guasti del leader, l’elezione di uno nuovo Il livello di gestione possiede entità anch’esse replicate per evitare single point of failure Il livello di gestione non è interposto tra clienti e serventi Le principali componenti architetturali sono: CMC (Connection Manager Control): gestisce la replicazione dei gestori CRC (Connection Replica Control): prevede un duplice comportamento, si comporta da server quando appartiene al manager-tier e da client quando appartiene al replication-tier CCS (Connection Client Service): gestisce la comunicazione basata su CORBA e quella basata su Appia Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica Progettazione ed Implementazione di un Protocollo di Replicazione Semi-Attiva L’esecuzione del Protocollo Uno scenario che cattura una esecuzione del protocollo in presenza di guasti misti Si sottolinea che: I processi g1,g2,g3 sono le repliche di gestione del sistema I processi p1,p2,p3 sono le repliche del servizio Il processo c1 è il client che verifica sperimentalmente il protocollo Con <reqx,opx> e <reqx,resx> si indicano le coppie per richiesta e risposta Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica Progettazione ed Implementazione di un Protocollo di Replicazione Semi-Attiva I Risultati Sperimentali 1/2 Una vista dell’analisi sui risultati sintetici ottenuti dalle misure sperimentali di latenza Guasti Leader Si confrontano i risultati ottenuti dalle tre tipologie di esperimento: • Assenza di guasti • Guasti solo dei leader • Guasti misti di leader e follower Latenza Media (µsec) Confronto delle Latenze Medie Guasti misti L&F 92000,000000 Assenza Guasti 90000,000000 88000,000000 86000,000000 84000,000000 82000,000000 80000,000000 78000,000000 76000,000000 74000,000000 r=3 r=5 r=7 r=9 r=11 r=13 #repliche Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica Progettazione ed Implementazione di un Protocollo di Replicazione Semi-Attiva I Risultati Sperimentali 2/2 Si confrontano le frequenze relative delle classi di campioni di latenza • l’analisi non presenta gli outliers • confronta su 200 classi le tre distribuzioni di frequenza Frequenza Relativa Una vista dell’analisi statistica operata sui risultati sintetici ottenuti dalle misure sperimentali Confronto Distribuzioni di Frequenze Relative Assenza Guasti Guasti misti L&F 0,045 Guasti Leader. 0,04 0,035 0,03 0,025 0,02 0,015 0,01 0,005 0 1 -0,005 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106 113 120 127 134 141 148 155 162 169 176 183 190 197 #classi Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica Progettazione ed Implementazione di un Protocollo di Replicazione Semi-Attiva Appia e la Comunicazione di Gruppo Una panoramica sulla offerta per la comunicazione di gruppo del GCT Appia Appia è un protocol Kernel estremamente flessibile: • Ha core ed API scritti in Java • Il core implementa i protocolli mediante stack componibili da micro protocolli: la QoS • Consente di implementare nuovi micro protocolli • La comunicazione avviene mediante lo scambio di eventi Appia offre servizi standard per la comunicazione di gruppo, poi personalizzabili • Primitive per la comunicazione di gruppo: o Reliable Multicast / Broadcast o View Synchronous Multicast • La reliability offerta dalle primitive standard può essere variata sostituendo opportunamente i micro protocolli Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica Progettazione ed Implementazione di un Protocollo di Replicazione Semi-Attiva Le Conclusioni Gli obiettivi che si sono raggiunti e i possibili sviluppi che si ipotizzano Contributi della Tesi • Studio e Analisi del GCT Appia • Realizzazione di una architettura interoperabile per la replicazione software • Valutazione Sperimentale dell’implementazione prodotta Sviluppi Futuri • utilizzo del protocollo come architettura-testbed o al variare dei GCT o al variare delle proprietà di ordinamento delle primitive di comunicazione di gruppo