UN’INFRASTRUTTURA DI SUPPORTO PER
SERVIZI DI FILE HOSTING
Matteo Corvaro
Matricola 0000244226
Corso di Reti di Calcolatori LS – Prof. A. Corradi
A.A. 2006/2007
Servizi di FILE HOSTING
Caratteristiche
Indicatori di
QoS
• Disponibilità dei propri dati da qualsiasi
locazione
• Risparmio di spazio di memorizzazione
locale
• Condivisione dei dati
• Disponibilità e correttezza dei dati
• Velocità di risposta da parte del server
• Sicurezza e privacy
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
Trasparenza
Scalabilità
Fault-tolerance
LATO
CLIENT
LATO
SERVER
Disponibilità
Integrità
Architettura
DATA SERVER
LIVELLO DI
STORAGE
CLIENT SIDE
SERVER SIDE
MIDDLEWARE
LOGIC CLUSTER
MANAGER
SERVER
MIDDLEWARE
LIVELLO DI
CONTROLLO
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/upload
2. Trasferimento vero e proprio dei dati
Manager Server
M
I
D A
D R
L E
E
W
FASE 1
Richiesta locazione di upload/download
Data Server
FASE 2
Trasferimento 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à
Collo di bottiglia rappresentato dal manager server per le capacità
computazionali e per la congestione di rete
• Aumento sia dei client che dei data server da gestire 
• Abbiamo ipotizzato che il manager sia eseguito su un nodo
con capacità computazionali e di rete infinite nonchè privo di
malfunzionamenti 
Aumentando il numero di
macchine che eseguono i
data server è possibile
ottenere “prestazioni”
maggiori
Aumentando il numero di
client il componente server
che viene maggiormente
stressato è il manager
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
Scarica

presentazione