H A F S High Availability File System. Obiettivi Realizzare un servizio di File System che sia: Accessibile Fruibile in remoto e condiviso da tutti gli.

Slides:



Advertisements
Presentazioni simili
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità D1 Architetture di rete.
Advertisements

Unità D1 Architetture di rete.
ISA Server 2004 Enterprise Edition Preview. ISA Server 2004.
I.Stat per i censimenti Stefania Bergamasco | Dipartimento per l'integrazione, la qualità e lo sviluppo delle reti di produzione e di ricerca.
Gestione dei laboratori Come rendere sicura la navigazione internet e l'uso della rete Lorenzo Nazario.
Progetto Mini di Sistemi Distribuiti – AA 2007/08 Secure Group Communication with GDH.1 Alessandro Licata Caruso Matr:
Time Sharing Il termine “Time Sharing” proviene dall'inglese e significa letteralmente “partizione di tempo”. Questa è una tecnica sviluppatasi negli.
Cluster openMosix Linux Day ’04 Caserta Ing. Diego Bovenzi.
Lezione 5 Domande: Laverage path length di Chord con 2^b identificatori e N=2^b nodi è (giustificare la risposta) Laverage path length di Chord con 2^b.
Strutture dei sistemi di calcolo Funzionamento di un sistema di calcolo Struttura di I/O Struttura della memoria Gerarchia delle memorie Architetture di.
Reti di Calcolatori IL LIVELLO RETE.
SARAH Shop Assistant in Reti Ad-Hoc Presence Awareness, modalità disconnessa e dinamiche di update Antonio Gaetani.
Presentazione del progetto di: Reti di calcolatori L-S Matteo Corbelli.
Supporto per servizi di File Hosting Presentazione di progetto per lesame di Reti di Calcolatori LS Valerio Guagliumi
Qualità di servizio in ambiente wireless Progetto per il corso di Reti di Calcolatori L-S Prof. Antonio CorradiValentina Maraldi.
Progetto Di Uninfrastruttura Che Permetta La Modifica Di Dati Condivisi Distribuiti Su Più Nodi Reti di calcolatori L-S Gozzi Daniele
Proxy-based infrastructure for LBS availability Reti di Calcolatori L-S Andrea Licastro
1 Packet Manager Sistema di gestione di pacchetti software per il progetto dell'esame di Reti di Calcolatori LS Progetto realizzato da Fabio Parisini.
PERMESSO PERsistent MESSaging in ad hOc networks Corso di Reti di Calcolatori L-S AA Presentazione di Roberto Gamboni Progetto di Giuseppe Vitalone,
JARS JavaActiveReplicationSupport Anno Accademico Bellocchi Marco Maria.
Progetto di una architettura per lesecuzione distribuita e coordinata di azioni Progetto per lesame di Reti di Calcolatori L-S Prof. Antonio Corradi Finistauri.
DEIS Università di Bologna
High-Available Service Manager Diego Costantini Università degli studi di Bologna Corso di Laurea Specialistica.
Reti di Calcolatori L-S Un Sistema Decentrato di Allocazione del Carico per Applicazioni di Calcolo Distribuito Mauro Bampo.
Distributed File System Service Dario Agostinone.
Benvenuti a Un incontro informativo di grande valore ed alto contenuto sulla Virtualizzazione e sistemi ad alta disponibiltà per le PMI.
U N INFRASTRUTTURA DI SUPPORTO PER SERVIZI DI FILE HOSTING Matteo Corvaro Matricola Corso di Reti di Calcolatori LS – Prof. A. Corradi A.A.
Il modello di riferimento OSI
Configurazione in ambiente Windows Ing. A. Stile – Ing. L. Marchesano – 1/23.
Servizi Grid ed agenti mobili : un ambiente di sviluppo e delivering
Architettura di storage ad alta affidabilita e bilanciamento di carico per volumi centrali e di esperimento A.Brunengo, M.Corosu INFN Sezione di Genova.
Reti di calcolatori LS Manni Tiziano  IT e nuovi scenari applicativi …  … portabilità dei dati …  … condivisione dati …  … disponibilità.
Progetto Message Queues Service Olivelli Enrico Corso di Reti di Calcolatori LS A.A
10 azioni per lo scheduling su Grid Uno scheduler per Grid deve selezionare le risorse in un ambiente dove non ha il controllo diretto delle risorse locali,
Un sistema per la replicazione ottimistica in una rete di pari Progetto di Reti di calcolatori LS Federico Grassi a.a. 2004/2005.
Sistema pubblico di connettività Cooperazione Applicativa Cooperazione Applicativa Roberto Benzi 30 giugno 2005.
Producer – Consumer System Di Carlo Matteo CdLS Ingegneria Informatica (0234) Reti di Calcolatori LS A.A. 2004/2005.
MCSA Mobile Code System Architecture Infrastruttura a supporto della code mobility Pierfrancesco Felicioni Reti di Calcolatori L.S. 2005/2006.
Progetto di: Daniele De Angelis Corso di: Reti di Calcolatori LS Un sistema fault tolerance per protocollo Diffie-Hellman.
Studio di una soluzione distribuita per la gestione di un centro sondaggi.
Supporto per la replicazione attiva di servizi Progetto per il corso di Reti di Calcolatori LS Montanari Mirko Matr:
Sistema di replicazione master-multislave con server di backup per un servizio di chat di Marco Andolfo matr
Infrastruttura per la gestione distribuita di un sistema di prenotazione Progetto di: Fabio Fabbri Matricola
Progetto e prototipazione di una infrastruttura di comunicazione per il supporto al monitoraggio distribuito del traffico di rete Progetto di Reti di Calcolatori.
Progetto di un Group Communication System Reti di Calcolatori LS A.A Giampaolo Capelli.
STUDIO SULLA REPLICAZIONE DEGLI AGENTI NEL SISTEMA SOMA Andrea Sambi.
Bonjour Post-It servizio di post-it distribuito di Elisa Rondini.
P2P Reliable Multicast Messenger Progetto e realizzazione di un software peer to peer per comunicazioni di gruppo.
Progetto di un sistema di comunicazione di gruppo con multicast causale Reti di Calcolatori L-S Marco Canaparo Matricola
Servizio di newsgroup con replicazione dei server Studente: Letizia Cheng Cheng Sun Matricola: Reti di Calcolatori LS – Prof. A. Corradi A.A. 2003/2004.
Sistema distribuito per il controllo remoto di Software SCADA HMI Presentazione di Paolo di Francia Reti di Calcolatori LS a.a
Progetto di un Gestore di Nomi Corso di Reti di Calcolatori L-S prof. Antonio Corradi A.A 2003/2004 Autore: Molesini Ambra.
MUSE 2 WIFI MUSic Everywhere with WIFI presentazione di Pierangeli Diego Membri del gruppo: Bambini Stefano Bergamini Andrea Pierangeli Diego AA 2006/2007.
Reti di calcolatori LS1 Service Middleware Reti di calcolatori LS progetto di Andrea Belardi Infrastruttura dedicata alla gestione di servizi disponibili.
Sistemi operativi di rete Ing. A. Stile – Ing. L. Marchesano – 1/18.
Progetto e Realizzazione di un servizio di Chat Progetto di: Nicoli Leonardo Corso di: Reti di Calcolatori L-S.
Middleware per la sincronizzazione di ambienti eterogenei Progetto di Reti di Calcolatori LS Emanuele Crescentini matr Ingegneria Informatica LS.
Progetto RE.VE.N.GE. MQ REliable and VErsatile News delivery support for aGEncies Sistema di Distribuzione Reti di Calcolatori LS – Prof. Antonio Corradi.
Reti di Calcolatori LS - Fabio Poli 15 Giugno 2006 Sviluppo di un player di Campo Minato multigiocatore con supporto di Chat MultiCast.
Università degli Studi di Bologna Facoltà di Scienze Matematiche Fisiche e Naturali Corso di Laurea in Scienze dell’Informazione Università degli Studi.
Alex Marchetti Infrastruttura di supporto per l’accesso a un disco remoto Presentazione del progetto di: Reti di calcolatori L-S.
SnippetSearch Database di snippet bilanciato e replicato di Gianluigi Salvi Reti di calcolatori LS – Prof. A.Corradi.
1 MUSE2 Reti di Calcolatori L-S Progetto di un servizio di audio streaming in reti wireless Progetto di un servizio di audio streaming in reti wireless.
JDICS Java Dynamic Infrastructure for C/S systems Laura Galli matr Reti di calcolatori LS, Prof. A.Corradi A.A
Gestione Sicura dei Dati
Pari Gioia Reti Di Calcolatori LS A.A. 2003/04.
Riunione CCR 21/12/2005 Gruppo Storage Relazione sulla analisi di infrastrutture Fibre Channel e presentazione attivita’ per il 2006 Alessandro Brunengo.
Le basi di dati.
Gruppo ITAS Servizio Elaborazione Dati IAM. Gruppo ITAS Servizio Elaborazione Dati IAM ITAS e IAM Obiettivi  identity management (primario)  access.
Transcript della presentazione:

H A F S High Availability File System

Obiettivi Realizzare un servizio di File System che sia: Accessibile Fruibile in remoto e condiviso da tutti gli utenti Affidabile Che scongiuri il rischio di una perdita definitiva dei dati in esso contenuti Sempre Attivo Che eviti anche le inaccessibilità puramente temporanee ai contenuti

Analisi Accessibilità Per soddisfare il primo requisito è sufficiente prevedere una qualche interfaccia remota attraverso cui ogni client possa esporre le proprie richieste ed ottenere i servizi. Ad esempio NFS. Affidabilità Il passo necessario e sufficiente per garantire al sistema un certo livello di affidabilità (intesa come preservamento dei contenuti allinsorgere di guasti) è dotarlo di una qualche forma di replicazione delle risorse. Ad esempio RAID. Disponibilità Per garantire una robustezza ai guasti tale da scongiurare ogni temporanea interruzione del servizio è necessaria non solo una replicazione delle risorse finali (file) ma anche delle infrastrutture computazionali che erogano il servizio medesimo.

Cluster Larchitettura che meglio si adatta allo scopo è il cluster ad alta disponibilità Esso è composto da un certo numero di macchine (nodi) che forniscono lo stesso medesimo servizio (replicazione) e che rispondono al cliente in maniera coordinata. Lorganizzazione paritetica allinterno del cluster fa si che il guasto su un membro non influenzi (negativamente) la funzionalità dellintero sistema (nello specifico che non provochi uninterruzione del servizio)

Architettura Nodo del cluster Il riquadro grigio vuole rappresentare il fatto che dallesterno il gruppo di nodi appare come un tutto unico Canale di Gruppo Canale di comunicazione comune (interno ed esterno al cluster) usato dai nodi per il coordinamento e dai client per la discovery Canale Privato Usato nelle comunicazioni impegnative (ad es. trasferimento file) per non impegnare il canale comune Client Proxy Intermediario del client nella comunicazione con il cluster. Attraverso il canale di gruppo effettua la discovery della composizione e la connessione ad uno specifico nodo dal quale ottiene il servizio. I canali secondari sono attivati in caso di fault del nodo cui si è attualmente connessi. canale di gruppo canali secondari connessione ad uno specifico nodo

Client Proxy Client Proxy è lagente del cluster che permette al client un interfacciamento trasparente allallocazione ed alla composizione Allavvio effettua una discovery sul canale di gruppo ed elegge uno specifico nodo da cui fruirà dei servizi In caso di guasto effettua una migrazione automatica verso un sostituto e riprende le operazioni Il client si confronta solamente con il Client Proxy ignorando le dinamiche sottostanti

Costituzione del gruppo RequestForJoin ID = 1 RequestForJoin JoinAccept ID = 2 La definizione del livello di priorità (ID) avviene sulla base degli ID di tutti gli altri nodi già appartenenti al gruppo. In particolare viene scelto un valore superiore al più grande degli ID già esistenti. Nella JoinAccept ogni nodo deve comunicare il proprio livello di priorità (ID) e la lista (comprensiva di IDs) di tutti gli altri appartenenti al gruppo. Il canale di gruppo è un supporto standard preesistente che implementi il protocollo di Multicast. La richiesta di Join viene naturalmente persa nel canale perché il cluster non è stato ancora costruito! Allo scadere del timeout il nodo si ritiene il primo componente e costituisce da solo il cluster. Subentra un secondo nodo…

Inizializzazione del nodo ID = 1ID = 2 Nel momento in cui lentrante si rende conto di essere entrato a far parte di un gruppo precostituito, provvede alla replica su sé stesso dei contenuti attualmente conservati dal cluster. ListResponse Innanzitutto richiede a tutti i componenti la list completa del tree che il singolo conserva. In questo modo se la replicazione non è (come nella demo) a massima ridondanza si ottiene comunque il tree virtuale completo del cluster come visto da un client. ListRequest Costituitosi il tree virtuale completo può ora procedere al recupero dei contenuti ed alla replica degli stessi nel suo spazio disco, ciò è effettuato su un canale di comunicazione privato per non sovraccaricare il canale di gruppo impropriamente

Costituzione del gruppo ID = 1ID = 2 Non dettagliamo ulteriormente il protocollo! ID = 3

Gestione del gruppo HeartBeatPulseHeartBeatStim. HeartBeatPulseHeartBeatReport Il protocollo di HeartBeat consente in ogni istante di verificare la corretta composizione del cluster. Ogni nodo è tenuto a rispondere prontamente ad una stimolazione con un pulse Nel report liniziatore fornisce agli altri componenti la nuova composizione del gruppo quale è quella cui è pervenuto a seguito dellHeartBeat.

Gestione del gruppo su fault HeartBeatStim.HeartBeatPulseHeartBeatReport Il nodo 2 sperimenta un fault ed esce dal gruppo in maniera not-graceful (senza avvisare!) La stimolazione può raggiungere quindi il solo nodo 3… …ed alliniziatore arriva solo il pulse di 3! Allo scadere del timeout il nodo rileva labbandono di 2 e notifica la nuova composizione Ogni nodo concorda ora evidentemente sulla composizione del cluster

Ingresso di un Client Who Is ?? Effettua una discovery per comprendere quali e quanti siano i nodi facenti parte il cluster Ogni attività è riferita a ClientProxy !! Who Is ?? Ogni nodo risponde comunicando le proprie caratteristiche e la lista degli altri componenti ME !! Nota la composizione del cluster il Client Proxy elegge uno qualsiasi dei nodi ed effettua una connessione dedicata

List del File System Client Proxy richiede un servizio di list al suo nodo… ListRequest Il nodo intraprende il protocollo di list distribuito per ottenere lo snapshot del file system virtuale dellintero cluster ListRequest List Response Ottenute tutte le risposte il nodo costituisce lo snapshot e lo comunica in risposta al client.

Download di un File Individuato il file da scaricare il client ne effettua la richiesta al nodo… Download Req /Dir1/File2 Lock Request /Dir1/File2 Lock Request /Dir1/File2 Il nodo intraprende il protocollo di lock distribuito di Ricart Agrawala… Ogni nodo deve rispondere se e soltanto se non ha già in lock quella risorsa o se sta richiedendola ma ha una priorità inferiore Lock Agree /Dir1/File2 Lock Agree /Dir1/File2

Download di un File Ogni nodo deve rispondere se e soltanto se non ha già in lock quella risorsa o se sta richiedendola ma ha una priorità inferiore Il cluster concorda dunque sul fatto che il nodo 2 ha acquisito il lock su /Dir1/File2 Terminato il trasferimento al client, il nodo rilascia infine il lock sulla risorsa. Lock Release /Dir1/File2 Lock Release /Dir1/File2

Create di un File Il cliente esibisce lintenzione di creare il nuovo file comunicando al nodo anche il contenuto binario dello stesso Create File /Dir1/File3 Lock On Create /Dir1/File3 Il protocollo di lock per creazione differisce un po dal precedente. Il nodo effettua la richiesta di lock Lock On Create /Dir1/File3 Ogni nodo risponde con un Agree se e solo se non ha la risorsa. Lock Agree /Dir1/File3 Lock Agree /Dir1/File3

Create di un File Lock Release /Dir1/File3 Acquisito il lock il nodo salva il file in locale ed instaura delle connessioni dedicate per replicarlo su tutti i nodi Infine rilascia il lock e comunica che la creazione è stata completata con successo. Lock Release /Dir1/File3 Creation OK! /Dir1/File3

Create di un File Create Denied /Dir1/File2 Vediamo ora che succede se si cerca di creare un file già esistente… Create File /Dir1/File2 Lock On Create /Dir1/File3 Lock On Create /Dir1/File2 Lock Agree /Dir1/File2 Lock Reject /Dir1/File2 Poniamo il caso che il nodo su cui si effettua la richiesta non possegga copia della risorsa e non si accorga del conflitto. Il nodo 3 è lunico a possedere la risorsa (eccezione alla replicazione). Il protocollo prevede la possibilità di reject. In presenza di almeno una reject il nodo abortisce loperazione e comunica il fallimento al client

Fault tolerance di Client Proxy Supponiamo che il nodo 2, quello cui è collegato direttamente Client Proxy sperimenti un fault ed esca dal cluster

Fault tolerance di Client Proxy Allinsorgere di una nuova esigenza di servizio Client Proxy si accorge che la connessione è caduta Automaticamente e senza darne notifica al client il proxy seleziona un altro nodo dalla lista ed effettua la connessione E opportuno che di tanto in tanto ClientProxy aggiorni la tabella di composizione del cluster richiedendola al suo nodo!

Conclusioni Il sistema realizzato soddisfa i requisiti Accessibile Protocolli di Internet Affidabile Mediante replicazione (avanzata) il rischio di perdere i dati è drasticamente ridotto Sempre attivo 24/7 A meno che tutti i nodi non cadano contemporaneamente! La disponibilità è tanto maggiore al crescere del numero di nodi

Conclusioni Tuttavia… Manca un passo di controllo di consistenza Prima di fornire il file al client sarebbe opportuno che il nodo verificasse che la propria copia sia identica a tutte quelle del cluster attraverso, ad esempio, confronto dellimpronta hash (variante del modello di voting nella replicazione a copie attive) Scarsa affidabilità del supporto multicast Alla prova dei fatti si è notato che il supporto multicast di Windows XP produce, in alta congestione, consistenti perdite di messaggi Scarsissima scalabilità I protocolli proprietari implementati richiedono potenza di calcolo Quando il numero di file e directory supera una certa soglia le perdite nel supporto di multicast rendono il sistema inutilizzabile

Conclusioni A posteriori Si suggerisce unimplementazione differente: Ridurre luso del multicast alla sola discovery iniziale Realizzare la comunicazione di gruppo come composizione di tante comunicazioni punto-punto Eventualmente utilizzare RMI,.NET Remoting o CORBA per trasformare le procedure di comunicazione in invocazioni di metodi In questo modo: Gestione delle perdite di messaggi sui livelli sottostanti Overhead di comunicazione ottimizzato Architettura logica semplificata notevolmente (più snella)

Repository di componenti grafici Lock Agree /Dir1/File3