Un’infrastruttura di supporto per servizi di file hosting
description
Transcript of Un’infrastruttura di supporto per servizi di file hosting
UN’INFRASTRUTTURA DI SUPPORTO PER SERVIZI DI FILE HOSTING
Matteo CorvaroMatricola 0000244226
Corso di Reti di Calcolatori LS – Prof. A. CorradiA.A. 2006/2007
Servizi di FILE HOSTING
Obiettivi• Progettare un’infrastruttura di supporto per garantire agli
utenti la migliore QoS possibile in base alle risorse dinamicamente disponibili in servizi di file hosting
Architettura
MIDDLEWARE
MIDDLEWARE
LOGIC CLUSTER
MANAGER SERVER
DATA SERVER
CLIENT SIDE SERVER SIDE
LIVELLO DI CONTROLLO
LIVELLO DI STORAGE
Caratteristiche dell’architettura• Logic cluster basato su un modello di high-availability cluster con
bilanciamento di carico▫ Manager centralizzato
• 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
Manager server• 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à▫ Registra i diversi data server e gestisce sia disconnessioni improvvise
che terminazioni lecite
• Ipotesi▫ Deployment su una macchina che non può presentare malfunzionamenti
né colli di bottiglia in termini di risorse (ipotesi restrittiva )▫ Manager raggiungibile ad un indirizzo noto ai client e immutabile
Non c’è trasparenza alla allocazione
Data 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 (data server) adattandole al carico richiesto dal servizio
Client middleware• 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
Algoritmo di Download & Upload• Algoritmo a due fasi con ritrasmissioni nel caso di errori di rete
1. Richiesta da parte del client di una locazione di download/upload2. Trasferimento vero e proprio dei dati
Manager Server
Data Server
MID
DLEWARE
FASE 1Richiesta locazione di upload/download
FASE 2Trasferimento file
Load-balancing• 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
Replicazione• Replicazione time-based decisa dal manager ed eseguita un maniera autonoma dai
data server coinvolti
• L’elenco dei file viene ripartito in due gruppi gerarchici in base al numero di proprietari▫ Unico proprietario - Più proprietari
• Si individuano i file replicabili in base allo stato delle risorse nel livello di storage• In ogni gruppo 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 la percentuale massima di spazio di memorizzazione disponibile per
operazioni di replica
Fault-tolerance e integrità dei dati• Il manager verifica lo stato dei diversi data server
▫ Invio di pacchetti heartbeat con un intervallo prefissato In caso di non risposta prima ritrasmissione e successivamente
dichiarazione di caduta del nodo• Meccanismi di ritrasmissione nell’algoritmo di
download/upload a due fasi da parte del middleware client
• Integrità dei dati trasmessi verificata con hash SHA-256• Gestione di download e upload in maniera transazionale
▫ Garanzia delle proprietà A.C.I.D.▫ Meccanismi di rollback e commit
Scalabilità
Conclusioni e sviluppi futuri• È stato realizzato un supporto per un servizio di file hosting basato su
un’architettura per high availability in grado di adattarsi dinamicamente alle risorse presenti garantendo una buona QoS ai client
• Nei test eseguiti su LAN sono state confermate le qualità di load-balancing e affidabilità
▫ Il sistema è comunque adattabile a diverse situazioni tramite alcune costanti modificabili (timeouts, grado di replicazione,…)
• Il collo di bottiglia principale è rappresentato dal manager server▫ Necessario prevedere meccanismi di replicazione e monitoraggio
Se il nodo cade? Quis custodiet custodes?
• Ulteriori sviluppi dovranno anche considerare la gestione della sicurezza in fatto di autenticazione ed autorizzazione dei diversi client e dei componenti dell’architettura server