Supporto per servizi di File Hosting Presentazione di progetto per lesame di Reti di Calcolatori LS...

13
Supporto per servizi di File Hosting Presentazione di progetto per l’esame di Reti di Calcolatori LS Valerio Guagliumi - 0000236769

Transcript of Supporto per servizi di File Hosting Presentazione di progetto per lesame di Reti di Calcolatori LS...

Page 1: Supporto per servizi di File Hosting Presentazione di progetto per lesame di Reti di Calcolatori LS Valerio Guagliumi - 0000236769.

Supporto per servizi di File Hosting

Presentazione di progetto per l’esame di Reti di Calcolatori LSValerio Guagliumi - 0000236769

Page 2: Supporto per servizi di File Hosting Presentazione di progetto per lesame di Reti di Calcolatori LS Valerio Guagliumi - 0000236769.

I servizi di File Hosting

Permettono agli utenti di condividere i propri file

Accessibili tramite operazioni di: Upload – l’utente trasmette il

file da condividere Download – l’utente riceve

un file ospitato Requisiti di:

Disponibilità: tipicamente attivi 24 ore su 24 con migliaia di richieste servite ogni minuto

Correttezza: i file devono essere mantenuti integri

Page 3: Supporto per servizi di File Hosting Presentazione di progetto per lesame di Reti di Calcolatori LS Valerio Guagliumi - 0000236769.

Architettura del sistema

Uso di gruppi di replicazione per integrità e disponibilità Scalabilità attraverso l’aggiunta di nodi o gruppi di replicazione

(ogni gruppo serve un diverso insieme di file) Un nodo Proxy fa da front-end e smista le richieste degli utenti ai

nodi attivi di ciascun gruppo

Page 4: Supporto per servizi di File Hosting Presentazione di progetto per lesame di Reti di Calcolatori LS Valerio Guagliumi - 0000236769.

Monitoraggio dei nodi

Monitoraggio decentralizzato dello stato di attività di ciascun nodo di replicazione a carico dei nodi stessi

Ogni nodo è controllato dal nodo precedente (controllore) in un anello attraverso messaggi IS_ALIVE

In caso di mancata risposta, il controllore: Invia IS_DEAD al Proxy per informarlo della caduta Passa autonomamente a interrogare il nodo successivo

Page 5: Supporto per servizi di File Hosting Presentazione di progetto per lesame di Reti di Calcolatori LS Valerio Guagliumi - 0000236769.

Falsa caduta di un nodo

Ritardi o errori di comunicazione possono portare a “false cadute” di un nodo

Il nodo deve essere informato della sua rimozione dal gruppo in modo che possa chiedere un reinserimento

Quindi: Ogni nodo conosce l’ID del suo

controllore Alla caduta di un nodo, il controllore

invia al successivo nodo IS_ALIVE_NEW_ID registrandosi come suo nuovo controllore

Un nodo che riceve IS_ALIVE da un ID diverso da quello del suo legittimo controllore risponde con WRONG_ID

Page 6: Supporto per servizi di File Hosting Presentazione di progetto per lesame di Reti di Calcolatori LS Valerio Guagliumi - 0000236769.

Inizializzazione di un gruppo

Durante una fase di inizializzazione il Proxy comunica a ciascun membro attivo di un gruppo quale nodo dovrà controllare

Le fasi di inizializzazione possono avvenire in diversi casi: All’avvio/riavvio del Proxy All’avvio/riavvio di un nodo, tramite messaggio INIT_REQUEST

dal nodo Un nodo riscontra un errore (e invia INIT_REQUEST), come:

Falsa caduta di un nodo Caduta contemporanea di più nodi consecutivi Gruppo con un solo nodo attivo

Inizializzazione in due fasi: Il Proxy blocca l’invio di IS_ALIVE su tutti i nodi attivi del gruppo Il Proxy comunica a ciascun nodo chi deve controllare

Page 7: Supporto per servizi di File Hosting Presentazione di progetto per lesame di Reti di Calcolatori LS Valerio Guagliumi - 0000236769.

Coordinamento delle copie

Operazioni periodiche dicoordinamento delle copie di ungruppo di replicazione eseguiteper: Verificare l’integrità e

correggere il contenuto delle copie corrotte

Propagare tutti i file temporaneamente salvati su un solo nodo (i file ricevuti in upload vengono memorizzati localmente e poi propagati durante il successivo coordinamento)

Contenuto PRIMA del coordinamento File

NodoA NodoB NodoC

text.txt - - 98 A9 1B…

video.wmv 80 11 FC… 40 11 FC… 80 11 FC…

archive.zip 12 2D D6 - -

Contenuto DOPO il coordinamento File

NodoA NodoB NodoC

text.txt 98 A9 1B… 98 A9 1B… 98 A9 1B…

video.wmv 80 11 FC… 80 11 FC… 80 11 FC…

archive.zip 12 2D D6 12 2D D6 12 2D D6

Page 8: Supporto per servizi di File Hosting Presentazione di progetto per lesame di Reti di Calcolatori LS Valerio Guagliumi - 0000236769.

Coordinamento – Ruolo del Proxy

Per non congestionare il Proxy, il coordinamento viene eseguitoautonomamente dal gruppo di replicazione.

Il Proxy si occupa solo di: Decidere quando eseguire un coordinamento (numero dei nodi

attivi, tempo dall’ultimo coordinamento) Scegliere un nodo del gruppo come coordinatore (messaggio

COORD_START) e come partecipanti gli altri nodi attivi Interrogare il gestore durante il coordinamento per conoscerne lo

stato (messaggi COORD_STATUS e risposte) In caso di

caduta del coordinatore risposta di errore (caduta di un nodo partecipante, errori di

comunicazione…)riavviare l’operazione su uno dei nodi attivi

Page 9: Supporto per servizi di File Hosting Presentazione di progetto per lesame di Reti di Calcolatori LS Valerio Guagliumi - 0000236769.

Coordinamento – Il coordinatore

Il coordinatore: Richiede ad ogni partecipante la sua

lista dei file e, per ciascuno, un riassunto del contenuto (es. hash)

Se tutti rispondono, per ogni file:1. Elegge il contenuto valido (quello più

diffuso)2. Se necessario scarica il file corretto da

uno dei partecipanti con il contenuto valido

3. Invia ai partecipanti senza il file o con file corrotto il file integro

4. Attende la risposta di verifica dell’integrità del file trasferito

Page 10: Supporto per servizi di File Hosting Presentazione di progetto per lesame di Reti di Calcolatori LS Valerio Guagliumi - 0000236769.

Operazioni di Upload/Download

Le richieste degli utenti che raggiungono il Proxy vengono redirette ad uno dei nodi di replicazione

Oltre all’indirizzo del nodo, il Proxy trasmette all’utente i parametri di invocazione

L’utente contatta il nodo scelto passandogli i parametri di invocazione (ID e timestamp del file e tipo di trasferimento)

Il progettista deve: Implementare la connessione Proxy-utente e nodo-

utente (es.: usando HTTP, FTP, Socket…) Specificare la codifica per i parametri di invocazione

(es.: cifratura per opacità, autenticazione Proxy…)

Page 11: Supporto per servizi di File Hosting Presentazione di progetto per lesame di Reti di Calcolatori LS Valerio Guagliumi - 0000236769.

Smistamento delle richieste

Ogni richiesta viene smistata: Scegliendo un gruppo di replicazione Scegliendo un nodo del gruppo

Entrambe sono guidate da politiche specificate dal progettista (mappaggio dei file sui gruppi e bilanciamento del carico)

La seconda ha un vincolo:Una operazione di download di un file non ancorapropagato deve essere smistata sul nodo che ha il file

Quindi il Proxy deve sapere quali file sono stati propagati e quali no

Page 12: Supporto per servizi di File Hosting Presentazione di progetto per lesame di Reti di Calcolatori LS Valerio Guagliumi - 0000236769.

Files non propagati Per sapere quali file sono stati propagati il Proxy tiene traccia:

Delle richieste di upload smistate, e per ciascuna il nodo incaricato Dei coordinamenti eseguiti con successo

Ogni coordinamento è associato ad un timestamp Tutti i file con un timestamp successivo non vengono considerati nel

coordinamento Al termine di ogni coordinamento cancella dalla lista dei file non

propagati tutti quelli con timestamp precedente

Page 13: Supporto per servizi di File Hosting Presentazione di progetto per lesame di Reti di Calcolatori LS Valerio Guagliumi - 0000236769.

Conclusioni

Il sistema sviluppato fornisce un semplice esempio di supporto al File Hosting affidabile

Possibili sviluppi futuri nell’ambito della gestione di risorse limitate: Gestione dello spazio fisico disponibile, scarto di

file in eccesso… Gestione delle richieste tramite code e politiche di

scheduling per garanzie di qualità di servizio