1 / 18

Distributed File System Service

Distributed File System Service. Dario Agostinone. Introduzione. Fornire la possibilità di gestire un file system remoto Creare/Rimuovere cartelle Creare/Rimuovere file Accedere in lettura/scrittura Obbiettivi : Garantire l’accesso ai file anche a fronte di guasti del sistema

azizi
Download Presentation

Distributed File System Service

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Distributed File System Service Dario Agostinone

  2. Introduzione • Fornire la possibilità di gestire un file system remoto • Creare/Rimuovere cartelle • Creare/Rimuovere file • Accedere in lettura/scrittura • Obbiettivi : • Garantire l’accesso ai file anche a fronte di guasti del sistema • Problematiche affrontate : • Coordinazione • Replicazione • Accesso Concorrente

  3. Il Problema • Gestione del file system in un contesto distribuito: • Visione trasparente rispetto all’allocazione delle risorse • Problemi di consistenza, esempio • Creare un file in una cartella esistente • Gestione univoca dei nomi • Accesso e modifica dei file: • Gestione della concorrenza • Gestione delle sessioni di modifica • Fasi di sviluppo • Definizione dell’architettura logica : • DFSS • FRS • Scelte progettuali • Implementazione del prototipo

  4. Client Proxy ServiceManager 1 ServiceManager N DFSS Responsabilità • Gestione delle cartelle • Creazione • Rimozione • Gestione dei file • Accettazione e validazione delle richieste • Caratteristiche: • Sistema totalmente distribuito • Utilizzo di un intermediario per l’accesso ai file • Gruppo dei servitori dinamico • Client: • Richiesta di servizi DFSS • Richiesta di registrazione come server del servizio

  5. DFSS Nuovo Repository Repository Server Repositories FRS • Responsabilità: • Gestione della memorizzazione dei file • Accesso concorrente • Gestione dei proxy • Caratteristiche: • Sistema centralizzato • Insieme di repository • Client: • DFSS • Nuovo repository

  6. Utilizzo del servizio • Client effettua la richiesta ad un Service Manager DFSS • Attesa sincrona non bloccante, tramite Callback • La richiesta viene validata ed inserita in coda • Ogni server gestisce una lista contenente l’intero File System • Validazione senza interpellare gli altri server • Ogni operazione di creazione/rimozione richiede un aggiornamento di tutti i server • Chiamata al FRS in modo trasparente all’utente

  7. ServiceManager 1 ServiceManager N ServiceManager 2 ServiceManager 3 Coordinazione • Ogni Service Manager conosce tutti gli altri • Comunicazione tramite scambio di messaggi • Ordinamento causale tramite vector clock • Ogni Service Manager ha una coda di messaggi associata

  8. Gestione delle richieste Richiesta Aggiornamento Callback Validazione Esecuzione Queue • Aggiornamento, messaggi inviati in modo asincrono • Nelle operazioni di accesso ai file, la risposta al cliente viene gestita direttamente da FRS FRS

  9. Funzionamento FRS • Arrivo di una richiesta da parte di un service manager • Viene creato il file sui due repository • Viene creato il descrittore • L’ID viene inviato come risultato dell’operazione Creazione di un file Richiesta DFSS • Ad ogni file è associato un descrittore, contenente : • ID del file • Repositories in cui è memorizzato • Stato • Numero di processi in lettura ID del file creato

  10. Gestione delle sessioni • Ad ogni accesso al file è associata una sessione • Lettura • Scrittura • La sessione inizia quando il Client ottiene il proxy • Termina al suo rilascio • Ottenimento del proxy: • Arriva una richiesta dal DFSS • Accesso al descrittore del file • Creazione del proxy • Invio del proxy al cliente Richiesta DFSS

  11. Gestione della concorrenza • Lettura concorrente, scrittura esclusiva • Stati di un file : • Free • Lock • Zombie • Lettura : • FREE, accettata solo se non vi sono processi in scrittura in attesa • LOCK, richiesta accodata • ZOMBIE, richiesta rifiutata • Scrittura : • FREE, accettata se non vi sono processi in lettura sul file • LOCK, richiesta accodata • ZOMBIE, richiesta rifiutata

  12. Tolleranza ai guasti (1) • Memorizzazione dei dati durante l’esecuzione • Tolleranza del livello DFSS : • Il servizio replicato su tutti i server • Gestione della riattivazione di un server • Il nuovo server contatta un server già appartenente al servizio • Il server aggiunge localmente il nuovo nodo • Avverte gli altri server del nuovo server aggiunto • Avvia l’apprendimento • Il nuovo server potrà gestire nuove richieste solo al termine dell’apprendimento DFSS

  13. Tolleranza ai guasti (2) • FRS, servizio centralizzato • Server centrale replicato • Memorizzazione dati in esecuzione su memoria stabile comune • Controllo tramite messaggi ad HOC • Memorizzazione dei file : • Memorizzazione su due repository diversi • Accesso in lettura sempre sul primo, cambio in caso di guasto • Scrittura su entrambe le copie • In caso di errori di inconsistenza fra le due copie si sceglie quella più recente

  14. Tolleranza ai guasti (3) • Gestione delle sessioni • Lettura • Guasto del client : rieffettua la richiesta, timeout da parte del proxy per liberare la risorsa • Guasto del repository, redirezione sul secondario • Scrittura , operazione atomica • Guasto del client : perdità di tutte le modifiche, time out del proxy per liberare la risorsa • Guasto del repository : si continua scrivendo solo sull’altro • Esecuzione monitorata dal Repository Server tramite informazioni di log

  15. DFSS Service Manager Queue Manager Call Manager Message Manager Group Manager Data Manager Visione dettagliata (1) • Service Manager (DFSS) • Politiche gestione della coda • Gestione delle richieste • Gestione dei Messaggi • Conoscenza del gruppo • Memorizzazione dei dati

  16. Repository Server Data Manager Resource Manager Queue Manager Execution Monitor Visione dettagliata (2) • Repository Server • Persistenza dei dati • Gerstione dei descrittori dei file • Gestione della coda • Controlla l’esecuzione dei proxy tramite log

  17. Prototipo • Implementato con Java RMI • Implementazione di un semplice client • DFSS • Coda FIFO delle richieste • Vector Clock -> Hashtable • Persistenza implementata senza memoria stabile • FRS • ID di un file = al path del file • Intermediari implementati come oggetti remoti che accedono ai file richiesti, che eseguono all’interno dei Repository • Repository Server senza gestione dei guasti

  18. Conclusioni • Vantaggi • Sistema robusto • Buon grado di scalabilità • Svantaggi • FRS, possibile collo di bottiglia • Sviluppi futuri • Gestione della QOS • Multiutenza • Protezione • Critiche personali

More Related