Reti di calcolatori LS Manni Tiziano 0000279932 IT e nuovi scenari applicativi … … portabilità dei dati … … condivisione dati … … disponibilità e sicurezza … … gestione utenti e cartelle condivise e/o private Realizzare un file system remoto per garantire al cliente la migliore QoS possibile in base alle risorse dinamicamente disponibili. Scalabilità Disponibilità LATO SERVER Trasparenza LATO CLIENT M I D D L E W A R E Affidabilità Fault-tolerance File System Remoto DATA SERVER LIVELLO DI STORAGE CLIENT SIDE SERVER SIDE MIDDLEWARE LOGIC CLUSTER MANAGER SERVER MIDDLEWARE LIVELLO DI CONTROLLO Struttura ad anello dei manager… Ogni manager server gestisce e coordina una isola di data server … … un DB mantiene l’indice logico dei file presenti nel file system globale. e data server per mantenere i veri file fisici. Logic cluster basato su un modello di high-availability cluster con bilanciamento di carico Vantaggi Alta disponibilità Alte prestazioni Bilanciamento di carico Controllo dello stato dei data server a carico del manager (heartbeat) Failover controllato sia dal middleware client che dal manager Replicazioni con politiche lazy Velocizzare tempo di risposta all’utente Possibili casi di non disponibilità dei dati Scelte implementative Java versione 6 / Multithread / Socket TCP Coordina l’intera architettura lato server Gestisce le richieste dei client bilanciando il carico sul livello di storage Esegue operazioni di monitoraggio e replicazione Mantiene un’immagine consistente del livello di storage sottostante e delle sue proprietà (anche con i manager vicini) Registra i diversi data server e gestisce sia disconnessioni improvvise che terminazioni lecite Ipotesi Ipotesi di gusto singolo da parte dei manager (ipotesi restrittiva ) Almeno un manager raggiungibile dagli indirizzi noti ai client. Aggiornamento delle locazioni mediante piggybacking da parte dei server Livello di storage dei dati Effettivo esecutore del servizio Accetta comandi sia dal manager che dal middleware client Il loro numero (dinamicamente variabile) determina le “prestazioni” lato server in fatto di: Capacità di replicazione Parallelismo di risposta ai diversi client Spazio disponibile L’amministratore può gestire le risorse adattandole al carico richiesto dal servizio (data server) Nasconde i dettagli della comunicazione con l’architettura server ai diversi client Consente l’integrazione trasparente di diversi client con il servizio di file hosting tramite un’interfaccia standard Gestisce eventuali errori di comunicazione (o di protocollo) tramite ritrasmissioni e negoziazioni con i diversi server. Implementa il load balancing fra i vari manager server disponibili. Ogni cliente sceglie un proprio manager. Eventuali modifiche sul file system vengono propagate nella struttura mediante l’anello. → per ogni modifica al file system abbiamo N-1 messaggi (con N il numero di manager partecipanti). ? Obiettivi Aumentare la velocità di risposta ai client Caricare al meglio i data server disponibili nel livello di storage Politiche nel caso di download Possesso del file Livello di congestione, cioè numero di connessioni già instaurate Connessioni massime ammesse, parametro settabile dall’amministratore Politiche nel caso di upload Livello di congestione e connessioni massime, come nel caso di download Spazio disponibile (e sufficiente) Si usa una media pesata dei due fattori, con lo spazio disponibile predominante Caricare file su un server con poco spazio limita le possibilità di replicazione Propagazione dello stato di carico dei data server isolato alle singole isole dei manager Propagazione dello stato di carico generale del sistema tra i manager attraverso l’anello con un sistema time-based. Ogni manager server è responsabile di controllare l’operatività … … dei data server presso lui registrati … … e del proprio manager successivo. Struttura ad anello dinamico: Vettore identificativo ultime modifiche ricevute Locazione dei manager per richiudere l’anello 1,2,3 ogni manager che vuole partecipare al sistema deve eseguirne la richiesta presso un manager già attivo ed operante. InfoJoin M2 M1 InfoJoin Manager de nuovo manager Replicazione time-based decisa dal manager ed eseguita un maniera autonoma dai data server coinvolti Si individuano i file replicabili in base allo stato delle risorse nel livello di storage Le possibili repliche sono ordinate in base alla maggiore dimensione dei file Si replicano prima file grandi, ottimizzando lo spazio disponibile nel livello di storage L’amministratore può controllare il grado di replicazione e quindi l’overhead Impostando il limite massimo di operazioni di replica per intervallo Impostando il numero di copie per i file. Collo di bottiglia rappresentato dal manager server per le capacità computazionali e per la congestione di rete • Aumento del numero dei manager e dei data server aumenta l’overhead • Modifiche da propagare in caso di modifica del file system • Propagazione dello stato di tutti i data server e manager server Aumentando il numero di macchine che eseguono i data server è possibile ottenere “prestazioni” maggiori Aumentando il numero di macchine che eseguono i manager server è possibile servire un numero maggiore di clienti mantenendo un livello di prestazioni accettabile. L’obiettivo prefissato è stato raggiunto: una infrastruttura di file hosting ad alta disponibilità e scalabilità … … mantenendo un buon livello di QoS sulla base delle risorse disponibili. Molte estensioni implementabili: Supporto multiutente; Sicurezza; Piggybacking e smart proxy; Servizio di nomi; Dump sincronizzato dei database.