La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

File System Distribuiti

Presentazioni simili


Presentazione sul tema: "File System Distribuiti"— Transcript della presentazione:

1 File System Distribuiti
Seminario appartenente al corso di Sistemi Operativi a cura di Guido Bartoli, Ernesto Di Iorio, Augusto Pucci

2 -File System Distribuiti- Bartoli,DiIorio,Pucci
Introduzione Un sistema distribuito è un insieme di macchine debolmente accoppiate (i processori non condividono né memoria né clock) connesse tramite una rete di comunicazione. Un file system distribuito (DFS) è un’implementazione distribuita di un file system su un sistema time-sharing, i cui client, server e dispositivi di memoria sono sparsi tra le varie macchine facenti parte del sistema stesso. Una macchina considera locali le proprie risorse e remote le restanti macchine e rispettive risorse. Ciascun client deve vedere il DFS come un file system centralizzato convenzionale. -File System Distribuiti- Bartoli,DiIorio,Pucci

3 -File System Distribuiti- Bartoli,DiIorio,Pucci
Struttura di un DFS Servizio Entità software in esecuzione su una o più macchine che fornisce una funzione a client non conosciuti a priori Server Software di servizio in esecuzione su una singola macchina Client Processo che può richiedere un servizio mediante una serie di operazioni a lui consentite (interfaccia del client) -File System Distribuiti- Bartoli,DiIorio,Pucci

4 -File System Distribuiti- Bartoli,DiIorio,Pucci
Prestazioni di un DFS Quantità di tempo necessaria per soddisfare le varie richieste di servizio. È spesso necessario calcolare un overhead aggiuntivo dovuto alla struttura distribuita (rallentamento nell’esecuzione da parte della CPU dei vari protocolli di comunicazione). Obiettivo: raggiungere prestazioni paragonabili a quelle di un file system convenzionale. -File System Distribuiti- Bartoli,DiIorio,Pucci

5 -File System Distribuiti- Bartoli,DiIorio,Pucci
Unità Componente “È il più piccolo insieme di file che può essere memorizzato su una singola macchina, indipendentemente da altre unità”. Lo spazio di memoria totale è formato da spazi più piccoli localizzati in posizioni remote, spesso corrispondenti agli insiemi dei file stessi. Tutti i file che appartengono alla stessa unità componente devono risiedere nella stessa locazione. -File System Distribuiti- Bartoli,DiIorio,Pucci

6 -File System Distribuiti- Bartoli,DiIorio,Pucci
Nominazione Naming: funzione di mapping tra oggetti logici e oggetti fisici. Gli utenti trattano oggetti logici rappresentati dai nomi dei file. Il sistema manipola blocchi fisici di dati, memorizzati sulle traccie di un disco. Mapping multilivello: gli oggetti hanno nomi diversi ad un livello diverso nel sistema. -File System Distribuiti- Bartoli,DiIorio,Pucci

7 Stutture di nominazione
Trasparenza di locazione: il nome di un file non rivela in nessun modo la locazione di memoria fisica del file. Indipendenza dalla locazione: il nome di un file non deve essere modificato se cambia la locazione di memoria fisica del file stesso. -File System Distribuiti- Bartoli,DiIorio,Pucci

8 Mapping dinamico e strutture di nominazione
Il mapping dinamico è uno schema di nominazione indipendente dalla locazione, in quanto può mappare lo stesso nome di file su locazione diverse in due momenti diversi. Uno schema di nominazione, indipendente dalla locazione, è anche trasparente, ma non è sempre vero il viceversa. -File System Distribuiti- Bartoli,DiIorio,Pucci

9 Mapping statico e strutture di nominazione
Schema di nominazione che supporta la trasparenza della locazione a livello utente, ma non la migrazione dei file. Migrazione dei file: i dischi possono essere spostati manualmente da una macchina ad un’altra, ma automaticamente il sistema operativo riesce a mapparli nuovamente sullo stesso nome (supportato dal mapping dinamico). -File System Distribuiti- Bartoli,DiIorio,Pucci

10 …trasparenza di locazione
Il nome di un file deve indicare gli attributi più significativi del file stesso, come il suo contenuto, piuttosto che la sua locazione. Fornisce agli utenti un modo per condividere convenientemente i dati. Il nome di un file indica un gruppo specifico, anche se nascosto, di blocchi fisici di dischi (trasparenza di locazione statica). Può mostrare corrispondenze tra unità componenti e macchine (trasparenza di locazione statica). -File System Distribuiti- Bartoli,DiIorio,Pucci

11 …indipendenza della locazione
I file indipendenti dalla locazione possono essere considerati come contenitori di dati logici che non vengono assegnati ad una specifica locazione di memoria. Separa la gerarchia di nominazione dalla gerarchia dei dispositivi di memoria e dalla struttura intercomputer. Consente una migliore condivisione dello spazio di memoria e dei dati. -File System Distribuiti- Bartoli,DiIorio,Pucci

12 Schemi di nominazione: Approcci fondamentali
Primo approccio: nomina i file mediante una combinazione dei loro nomi host e local. In IBIS: host:nome-locale, dove nome-locale indica un percorso di tipo Unix; -No trasparenza, no indipendenza locazione; La struttura del DFS viene rappresentata da un insieme di unità componenti isolate costituite da interi file system convenzionali. -File System Distribuiti- Bartoli,DiIorio,Pucci

13 Schemi di nominazione: Approcci fondamentali
Network file system (NFS): offre funzionalità per unire le directory remote con quelle locali, dando all’utente l’impressione di un albero di directory coerente. I montaggi delle directory avvengono su richiesta in base ad una tabella di punti di montaggio e nomi di strutture di file. L’integrazione, anche se supportata, è limitata e non uniforme perché ogni macchina può aggiungere diverse directory remote al proprio albero. Struttura complessa e difficile da mantenere. -File System Distribuiti- Bartoli,DiIorio,Pucci

14 Schemi di nominazione: Approcci fondamentali
Terzo approccio: permette l’integrazione totale dei componenti del file system. Una sola struttura globale di nomi si estende a tutti i file del sistema. Prova a rendere la struttura del DFS isomorfa a quella di un file system convenzionale. -File System Distribuiti- Bartoli,DiIorio,Pucci

15 Tecniche di implementazione
Il mapping necessita di aggregare i file in unità componenti e fornire la mappatura non sul singolo file, ma sulla base delle un’unità componente. E’ necessaria una tecnica che preveda di introdurre identificatori di file di basso livello indipendenti dalla locazione, ma che indichino a quale unità componente appartiene il file. E’ necessario un secondo livello di mapping che associa le unità componenti a macchine specifiche. -File System Distribuiti- Bartoli,DiIorio,Pucci

16 Tecniche di implementazione
Gli identificatori di basso livello hanno nomi strutturati. Tali nomi sono stinghe di bit formati normalmente da una parte che identifica l’unità componente, ed una che identifica il file nell’unità componente. Le parti individuali del nome sono uniche in ogni momento soltanto all’interno del parti restanti del contesto. -File System Distribuiti- Bartoli,DiIorio,Pucci

17 -File System Distribuiti- Bartoli,DiIorio,Pucci
Accesso ai File Remoti Un utente richiede un file su un server remoto. Il server remoto viene individuato grazie allo schema di nominazione Il server remoto può fornire il file attraverso il metodo del servizio remoto -File System Distribuiti- Bartoli,DiIorio,Pucci

18 Servizio Remoto di Base
Le richieste di accesso dell’utente vengono gestite dal server che risponde con opportuni risultati Ogni richiesta di accesso ai file remoti comporta l’interazione col server Svantaggi Principali Basse prestazioni Eccessivo traffico sulla rete -File System Distribuiti- Bartoli,DiIorio,Pucci

19 -File System Distribuiti- Bartoli,DiIorio,Pucci
Introdurre il caching Per migliorare le prestazioni si aggiunge un meccanismo di caching al servizio remoto di base Se l’utente richiede dati non in memoria cache il server li trasferisce nella cache del client Gli accessi ai dati remoti avvengono solo quando sono stati copiati in locale La cache viene gestita secondo una politica di sostituzione (LRU o altro) -File System Distribuiti- Bartoli,DiIorio,Pucci

20 Dislocazione dei file nella rete
Client 1 C Client 2 C Client 3 C Client 4 M Server M: File Master C: Copia del file -File System Distribuiti- Bartoli,DiIorio,Pucci

21 -File System Distribuiti- Bartoli,DiIorio,Pucci
Granularità dei dati I dati sottoposti a caching sono in blocchi generalmente più grandi di quelli richiesti per il singolo accesso. Unità di caching più grandi comportano: Maggiore hit ratio Maggior costo per fallimento della ricerca sulla cache -File System Distribuiti- Bartoli,DiIorio,Pucci

22 Caratteristiche del caching
Vantaggi Diminuzione del traffico sulla rete Migliori tempi di risposta del sistema client Problemi Coerenza fra file master e copie nella cache dei client Consistenza delle copie cache -File System Distribuiti- Bartoli,DiIorio,Pucci

23 Supporti per il caching
Come memoria cache si possono usare sia la memoria centrale che il disco La cache su disco offre maggiore affidabilità in caso di guasto e di ripristino del sistema Ma anche il caching in memoria centrale presenta diversi vantaggi… -File System Distribuiti- Bartoli,DiIorio,Pucci

24 Caching in memoria centrale
I client possono fare a meno dei dischi Maggiore velocità nell’accesso ai dati La tecnologia attuale produce memorie sempre più grandi a costi più bassi La cache del server è in memoria centrale, dunque si usa una stessa tecnologia, maggiore omogeneità -File System Distribuiti- Bartoli,DiIorio,Pucci

25 Aggiornamento della cache
Quando un client apporta delle modifiche su un file remoto sottoposto a caching occorre regolare la sincronizzazione fra copia master e copia cache Esistono diverse politiche: Scrittura diretta, ritardata e su chiusura -File System Distribuiti- Bartoli,DiIorio,Pucci

26 -File System Distribuiti- Bartoli,DiIorio,Pucci
Scrittura diretta A ogni modifica dei dati in cache si apporta la modifica alla copia master sul server Molto affidabile Si perdono tutti i vantaggi del caching in scrittura usando di fatto il servizio remoto per la scrittura -File System Distribuiti- Bartoli,DiIorio,Pucci

27 -File System Distribuiti- Bartoli,DiIorio,Pucci
Scrittura ritardata Le modifiche alla copia cache vengono scritte nella cache e applicate alla master solo in un secondo tempo Maggiore rapidità nella scrittura Le modifiche successive si sovrascrivono e solo le più recenti devono applicarsi Minore affidabilità -File System Distribuiti- Bartoli,DiIorio,Pucci

28 -File System Distribuiti- Bartoli,DiIorio,Pucci
Scrittura su chiusura Le modifiche sulla copia cache vengono apportate alla copia master solo su chiusura del file remoto Utile solo se i file restano aperti abbastanza a lungo e vengono spesso apportate modifiche -File System Distribuiti- Bartoli,DiIorio,Pucci

29 Coerenza fra cache e master
Se i dati in cache del client non sono coerenti con la copia master dei dati questi devono essere scartati e sottoposta a caching una copia aggiornata Due approcci possibili al problema: Approccio iniziato dal client oppure Approccio iniziato dal server -File System Distribuiti- Bartoli,DiIorio,Pucci

30 Approccio iniziato dal client
Il client si occupa di controllare la validità dei suoi dati Lo può fare a ogni accesso al file Oppure all’apertura del file Oppure a intervalli di tempo fissi Questo approccio rallenta l’accesso alla cache e carica rete e server -File System Distribuiti- Bartoli,DiIorio,Pucci

31 Approccio iniziato dal server
Il server conosce chi sottopone cosa a caching Quando si hanno potenziali incoerenze è il server che ne informa i client Solo le sessioni di scrittura vengono ritardate -File System Distribuiti- Bartoli,DiIorio,Pucci

32 -File System Distribuiti- Bartoli,DiIorio,Pucci
Vantaggi del Caching Minore carico sul server e sulla rete Maggiore scalabilità Accessi più veloci ai dati remoti Minore overhead sulla rete, dovuto alle dimensioni dei blocchi sottoposti a caching Maggiore ottimizzazione del server -File System Distribuiti- Bartoli,DiIorio,Pucci

33 -File System Distribuiti- Bartoli,DiIorio,Pucci
Svantaggi del Caching Maggiore complessità del sistema Necessita presenza di dischi o di grossa quantità di memoria Problema della coerenza della cache in caso di frequenti scritture -File System Distribuiti- Bartoli,DiIorio,Pucci

34 -File System Distribuiti- Bartoli,DiIorio,Pucci
Tipi di Servizio Esistono fondamentalmente due tipi di approcci diversi per l’accesso alle informazioni disponibili su un server: Servizio con informazione di stato Servizio senza informazione di stato -File System Distribuiti- Bartoli,DiIorio,Pucci

35 Servizio con informazione di stato
Il client richiede l’accesso ad un file che deve essere aperto. Il server fornisce un identificativo di connessione unico per quel client ed il file aperto (puntatore alla tabella di i-nodes presente in memoria centrale). Questo indice viene utilizzato per gli accessi successivi fino al termine della sessione. -File System Distribuiti- Bartoli,DiIorio,Pucci

36 Servizio con informazione di stato
Pro migliori prestazioni dei server. (informazione sottoposta a caching in memoria centrale) se un file è stato aperto per accesso sequenziale, il server ne conosce lo stato e può quindi leggerne in anticipo i blocchi successivi. indispensabile se i server utilizzano lo stesso metodo di validazione della cache (ad esempio i descrittori di file e gli offset impliciti di UNIX). Contro in caso di guasto di un server, la sua tabella degli inode viene perduta e le richieste in esecuzione terminate; lo stato può essere recuperato solo mediante un protocollo di ripristino basato su un dialogo con i client. se sono i client ad andare in crash, il server deve esserne informato per poter terminare i processi client rimasti in sospeso (rilevamento e terminazione degli orfani) -File System Distribuiti- Bartoli,DiIorio,Pucci

37 Servizio senza informazione di stato
La richiesta fatta dal client identifica completamente il file e la sua posizione all’interno del server. Il server non mantiene una tabella dei file aperti e non è necessario né aprire o chiudere connessioni, né inviare messaggi remoti. Le operazione sui file (comprese quelle di cancellazione) sono indipendenti ed idempotenti, cioè daranno sempre lo stesso effetto in qualsiasi momento vengano eseguite. -File System Distribuiti- Bartoli,DiIorio,Pucci

38 Servizio senza informazione di stato
Pro In caso di guasto, una volta riparato, il server può continuare a rispondere alle richieste autocontenute che vengono ritrasmesse automaticamente dai client. Contro Messaggi di richiesta e tempi di elaborazione più lunghi per mancanza di informazione precaricata in memoria. -File System Distribuiti- Bartoli,DiIorio,Pucci

39 -File System Distribuiti- Bartoli,DiIorio,Pucci
Replicazione dei file La replicazione di file su più macchine indipendenti migliora la disponibilità in caso di guasto e può aumentare le prestazioni generali quando si scelgono file su server più vicini al client richiedente. Deve essere una struttura trasparente ed invisibile sia all’utente, sia ai livelli superiori di ciascun server. Viene controllata stabilendo il grado e la disposizione delle repliche. Può essere vista anche come una serie di accessi virtuali allo stesso file logico. -File System Distribuiti- Bartoli,DiIorio,Pucci

40 Aggiornamento delle Repliche
Per l’utente, le repliche indicano la stessa entità logica, quindi l’aggiornamento deve riflettersi su tutte le copie fisiche del file per mantenere la consistenza dell’informazione La coerenza consiste nell’evitare l’insorgere di un blocco indefinito del sistema, dovuto alla richiesta di una risorsa non disponibile La disponibilità rappresenta un indice delle prestazioni di un DFS, cioè la capacità di reperire in breve tempo i file sui server, utilizzando eventualmente copie più reperibili di essi. Si cerca di ottenere un compromesso accettabile tra coerenza e disponibilità. (Il sistema Locus, ad esempio, nel caso in cui la rete venga partizionata, utilizza estensivamente la replicazione a scapito della coerenza) -File System Distribuiti- Bartoli,DiIorio,Pucci

41 Schema di replicazione di IBIS
Utilizza una variante dell’approccio di copia primaria e supporta la replicazione su richiesta. Il dominio del mapping dei nomi è rappresentato da una coppia <id-replica-primaria,id-replica-locale> relativa ad un singolo sistema componente. Se localmente non sono presenti repliche, la coppia viene sostituita con un valore speciale che lega quindi il mapping ad ogni singola macchina. Se la replica locale coincide con quella primaria, i due id saranno identici. -File System Distribuiti- Bartoli,DiIorio,Pucci

42 Replicazione su richiesta (IBIS)
È una politica per il controllo automatico della replicazione (analoga al caching dell’intero file). La lettura di una replica remota si appoggerà alla cache locale, generando quindi una nuova replica non primaria. Gli aggiornamenti si applicano solo alla copia primaria e ciò causerà l’invalidazione di tutte le altre repliche. Per fare questo si utilizza un opportuno sistema di scambio messaggi, che però non garantisce l’invalidazione atomica e serializzata di tutte le repliche non primarie. Una replica vecchia può essere considerata valida ed in caso di accessi di scrittura remoti, la copia primaria viene trasferita sulla macchina richiedente. -File System Distribuiti- Bartoli,DiIorio,Pucci

43 Esempio di sistema DFS: UNIX United
Progetto della “University of Newcastle upon Tyne” in Inghilterra. Rappresenta il primo tentativo di adattare il file system UNIX ad un DFS, senza modificarne il kernel originale. Ciascuno dei sistemi UNIX interconnessi (sistema costituente) contiene un sottosistema software (la “Newcastle Connection”). Obiettivo: costruire un sistema distribuito funzionalmente indistinguibile da un sistema UNIX centralizzato convenzionale. -File System Distribuiti- Bartoli,DiIorio,Pucci

44 Generalità di UNIX United
Esiste un’unica struttura di nominazione globale per tutti i sottosistemi. Ogni sottosistema è visto come una directory. Ogni utente può leggere o scrivere qualsiasi file, utilizzare qualsiasi comando o dispositivo presente nel sistema. L’unità componente è un albero di directory UNIX appartenente ad una macchina e la sua posizione all’interno della gerarchia è arbitaria. -File System Distribuiti- Bartoli,DiIorio,Pucci

45 Generalità di UNIX United (continua…)
La radice del file system locale corrente è sempre accessibile mediante il comando “/” ed essa non ha padri nell’albero. Un file system può accedere all’unità componente padre utilizzando “/..”. Non esiste la nozione di path-name assoluto: ogni percorso è relativo alla directory di lavoro corrente oppure all’attuale unità corrente. -File System Distribuiti- Bartoli,DiIorio,Pucci

46 Struttura delle directory UNIX United
Rispetto ad unix1, il file f2 di unix2 è accessibile con “/../unix2/f2”, mentre, dall’interno di unix3, bisogna utilizzare “/../../unix2/f2”. Se la radice corrente è quella indicata con la freccia, f3 è raggiunto con “/f3”, f1 con “/../f1”, f2 con “/../../unix2/f2” e f4 con “/../../unix2/dir/unix4/f4” Le directory tradizionali (“/dev”, “/temp”, ecc…) sono mantenute separatamente per ogni macchina e vengono nominate dall’interno di ognuna di esse. -File System Distribuiti- Bartoli,DiIorio,Pucci

47 Sicurezza e protezione in UNIX United
Ogni sistema componente ha il proprio insieme di utenti ed il proprio amministratore, responsabile del loro accreditamento. Gli accessi sono controllati mediante gli schemi di protezione standard di UNIX. Gli utenti che devono accedere ai file remoti non possono aprire sessioni separate, se non dopo essersi accordati con l’amministratore di quello specifico sistema. -File System Distribuiti- Bartoli,DiIorio,Pucci

48 La Newcastle Connection
È uno strato software di connessione che separa il kernel UNIX dai programmi degli utenti all’interno di un sistema componente. Intercetta le system call dirette ai file e filtra quelle verso i sistemi remoti, accettando quelle provenienti da altri sistemi. Utilizza il protocollo di comunicazione RPC. -File System Distribuiti- Bartoli,DiIorio,Pucci

49 La Newcastle Connection (continua…)
Il servizio viene implementato utilizzando processi daemon a livello utente, che rischiano però di rallentare le operazioni in remoto. Ogni strato di connessione memorizza uno scheletro della struttura generale di nominazione. Ciascun sistema memorizza localmente il proprio file system, insieme a frammenti della struttura dei sistemi “vicini”. Questi frammenti possono sovrapporsi ed è perciò fondamentale mantenere la coerenza dei dati. Sistema vicino: sistema che può essere raggiunto attraversando l’albero di nominazione senza passare attraverso un altro sistema. -File System Distribuiti- Bartoli,DiIorio,Pucci

50 La Newcastle Connection (continua…)
Alcune foglie delle strutture parziali locali corrispondono alle radici remote di altre parti del file system globale. Queste vengono contrassegnate usando un marcatore speciale. Al momento della richiesta di un file, quando si incontrano le foglie contrassegnate, gli attraversamenti proseguono in remoto. Dopo aver individuato ed aperto il file richiesto, ad esso si accede mediante descrittori di file UNIX. Lo strato di connessione contrassegna quelli riferiti a file remoti, mentre conserva in una tabella gli indirizzi di rete e le informazioni di instradamento. -File System Distribuiti- Bartoli,DiIorio,Pucci

51 La Newcastle Connection (continua…)
Con riferimento alla figura precedente, qui sono evidenziati gli scheletri parziali mantenuti rispettivamente dai sistemi unix1, unix2 ed unix3. -File System Distribuiti- Bartoli,DiIorio,Pucci

52 La Newcastle Connection (continua…)
Un insieme di processi file-server sul sistema di arrivo gestisce gli accessi effettivi ai file remoti. Ogni client comunica direttamente con un processo file-server dedicato. La connessione iniziale viene creata mediate un processo spawner richiamabile da qualsiasi processo esterno. Il processo spawner controlla i diritti d’accesso remoti in base ad una coppia <id-macchina,id-utente>, dopodiché procede alla conversione dei nomi remoti in quelli locali. Se il processo client esegue un fork, anche il suo processo di servizio lo eseguirà. Se server e client si guastano contemporaneamente, lo strato di connessione tenta di mascherare ed isolare i guasti dovuti alla struttura distribuita del sistema. Queste azioni di ripristino speciali non garantiscono un’alta robustezza. -File System Distribuiti- Bartoli,DiIorio,Pucci

53 -File System Distribuiti- Bartoli,DiIorio,Pucci
Network File System NFS è la soluzione proposta da Sun al problema del DFS NFS è sia una specifica che un sistema software implementato NFS è il più venduto e diffuso DFS nonostante risenta di diverse limitazioni e problemi -File System Distribuiti- Bartoli,DiIorio,Pucci

54 -File System Distribuiti- Bartoli,DiIorio,Pucci
Panoramica su NFS Nella rete non si fa distinzione fra macchine client e server Fra qualunque coppia di macchine può condividersi parte del file system Le macchine restano indipendenti: la condivisione di un file system non ha effetti sul client -File System Distribuiti- Bartoli,DiIorio,Pucci

55 Montaggio di File System
Una macchina può montare su una o più proprie directory parti del file system di altre macchine La directory su cui si monta temporaneamente diventa non più visibile nel suo vecchio contenuto Il montaggio non è trasparente, l’uso successivo invece sì Su uno stesso punto di mount possono montarsi più parti di file system in cascata Il montaggio non è transitivo -File System Distribuiti- Bartoli,DiIorio,Pucci

56 Come funziona il montaggio ?
Su ogni macchina abbiamo un processo server esterno al kernel Si specifica il nome della directory remota e della macchina su cui si trova La richiesta di montaggio viene instradata al server Il server controlla nella lista di esportazione se la macchina che la richiede è abilitata a montare quella directory Il server restituisce al client una file handle per accedere al file system remoto montato -File System Distribuiti- Bartoli,DiIorio,Pucci

57 Dettagli sul montaggio
Il file handle contiene l’identificativo del file system e l’i-node relativo alla directory montata Ogni server mantiene un elenco dei client e delle parti di file system remoto da loro montate NFS è senza stato, quindi l’elenco dei client non è necessariamente aggiornato o consistente Ogni sistema contiene generalmente anche una configurazione standard di montaggi remoti -File System Distribuiti- Bartoli,DiIorio,Pucci

58 -File System Distribuiti- Bartoli,DiIorio,Pucci
RPC offerte da NFS Una volta noto il file handle della directory remota si può: Cercare un file su una directory Leggere elementi di una directory Manipolare directory e link Modificare attributi file Leggere e scrivere file -File System Distribuiti- Bartoli,DiIorio,Pucci

59 Assenza dell’info di stato
NFS funziona senza informazione di stato (mancano infatti open e close) I server non mantengono dati relativi ai client Ogni client deve specificare a ogni accesso tutti i parametri della RPC usata NFS non gestisce la concorrenza, garantisce solo che le scritture siano atomiche NFS di fatto non sfrutta il caching in scrittura, ma scrive secondo il modello del servizio remoto di base -File System Distribuiti- Bartoli,DiIorio,Pucci

60 -File System Distribuiti- Bartoli,DiIorio,Pucci
Architettura -File System Distribuiti- Bartoli,DiIorio,Pucci

61 Dettagli architetturali
File System di UNIX VFS (Virtual File System) rende trasparenti gli accessi a file system diversi VFS distingue fra diversi file system locali e quelli remoti VFS gestisce il v-node, una sorta di i-node univoco però su tutta la rete NFS server è l’ultimo gradino dell’intera architettura -File System Distribuiti- Bartoli,DiIorio,Pucci

62 Esempio: operazione su file
Il client chiama una system call La call viene mappata su una operazione VFS sull’appropriato v-node VFS riconosce il file come remoto e manda una RPC al servizio NFS sul server La RPC rimbalza sul VFS del server Il VFS del server riconosce la chiamata in locale e opera sul file system -File System Distribuiti- Bartoli,DiIorio,Pucci

63 -File System Distribuiti- Bartoli,DiIorio,Pucci
Sintesi di NFS Le system call UNIX (a parte open e close) si rimappano in RPC di NFS L’accesso ai file non implica sempre una RPC NFS pur essendo di fatto un servizio remoto sfrutta anche il caching (in lettura) Le operazioni sui file vengono effettuate sulle copie cache se queste sono coerenti con la master -File System Distribuiti- Bartoli,DiIorio,Pucci

64 -File System Distribuiti- Bartoli,DiIorio,Pucci
Caching Si fa il caching degli attributi dei file (informazioni relativi agli i-node) Si fa il caching dei blocchi di file E’ il kernel che controlla se sul server la coerenza o meno degli attributi dei file cached (approccio iniziato dal client) Ogni 60 secondi si scartano gli attributi dei file sottoposti a caching -File System Distribuiti- Bartoli,DiIorio,Pucci

65 -File System Distribuiti- Bartoli,DiIorio,Pucci
Lettura e Scrittura NFS sfrutta read-ahead e delayed-write I client mantengono i blocchi di scrittura ritardata finchè il server non da conferma dell’avvenuta scrittura La lettura sfrutta direttamente il meccanismo del caching per ottimizzare le prestazioni -File System Distribuiti- Bartoli,DiIorio,Pucci

66 -File System Distribuiti- Bartoli,DiIorio,Pucci
ANDREW: Generalità Distizione tra macchine client e macchine server. Vice: server dedicati che presentano ai client uno spazio di nomi condivisi in forma di gerarchia omogenea e che presenta caratteristica di trasparenza di locazione. Virtue: protocollo che i client utilizzano per comunicare con i vice. -File System Distribuiti- Bartoli,DiIorio,Pucci

67 -File System Distribuiti- Bartoli,DiIorio,Pucci
Architettura Le macchine client, dette anche stazioni di lavoro, hanno uno spazio di nomi di file locali ed uno spazio di nomi condivisi offerto dai vice. Cluster: insieme di stazioni di lavoro collegati su LAN con un rappresentante dei vice, chiamato cluster server. I cluster sono interconnessi tramite Wan. -File System Distribuiti- Bartoli,DiIorio,Pucci

68 Architettura: considerazioni.
La decomposizione in cluster viene effettuata soprattutto in riferimento a problemi di scala; Le stazioni di lavoro devono far riferimento al server sul loro cluster per la maggior parte del tempo, cercando di ridurre i riferimenti ai file intercluster. Si scarica lavoro dei server sui client, tenendo conto del fatto che la velocità della CPU del server è il reale collo di bottiglia del sistema. -File System Distribuiti- Bartoli,DiIorio,Pucci

69 Operazione sui file e semantica della consistenza
Sono sottoposti a caching i file in grosse porzioni; Si riduce il tempo di latenza di apertura dei file e permette che le scritture e le letture successive siano direttte alla copia del file nella cache. Venus: processo che sottopone a caching i file, provenienti dai vice, nel momento della loro apertura e che li memorizza sui server da cui provenivano, al termine della sessione di lavoro, ovvero nel momento della loro chisura. Venus gestisce mediante una politica LRU la cache. -File System Distribuiti- Bartoli,DiIorio,Pucci

70 Operazione sui file e semantica della consistenza
Venus può contattare vice solo quando un file viene aperto o chiuso. Le operazione sui file vengono fatte direttamente sulla copia del file nella cache della stazione di lavoro. Le modifiche fatte su un file non sono visibili fino a che il file non viene chiuso e Venus contatta vice per memorizzarlo. -File System Distribuiti- Bartoli,DiIorio,Pucci

71 Operazione sui file e semantica della consistenza
Callback: Venus presuppone che il contenuto della sua cache sia valida fino a quando non viene specificato diversamente. Se un file viene sottoposto a caching da un client, il server aggiorna le sue informazioni di stato registando il caching ed il client ha una callback (se il client non riceve la callback la copia del file nella sua cache è invalidata). Se qualche altro client apporta modifiche al file, il server avverte i client che avevano ottenuto la callback (si dice che il server rimuove la callback per il client). -File System Distribuiti- Bartoli,DiIorio,Pucci

72 Operazione sui file e semantica della consistenza
Il meccanismo della callback impone ad ogni server di mantenere informazioni di callback ed ad ogni client di mantenere informazioni di validità. Se la quantità di informazioni sulla callback gestite dal server è eccessiva, è possibile interrompere le callback e richiedere memoria, informando i client e revocando la validità delle loro cache. -File System Distribuiti- Bartoli,DiIorio,Pucci

73 -File System Distribuiti- Bartoli,DiIorio,Pucci

74 Spazio dei nomi condivisi
Volumi: unità componenti che compongono lo spazio dei nomi condivisi. I volumi di Andrew sono solitamente più piccoli di quelli del file system NFS: solitamente un volume contiene i file di un unico utente. I volumi vengono uniti tra loro per mezzo di un meccanismo simile al mount di Unix, ma la differenza di granularità è significativa, in quanto in Unix è possibile montare solo intere partizioni di disco contenenti un file system. -File System Distribuiti- Bartoli,DiIorio,Pucci

75 -File System Distribuiti- Bartoli,DiIorio,Pucci
File identifer format Un file o una directory vice sono identificati da un identificatore di basso livello chiamato fid. Identifica il file nel volume Identifica il volume in cui si trova il file. Permette di riutilizzare file handle. I fid sono trasparenti alla locazione, quindi gli spostamenti di file da server a server non invalidano il contenuto della directory che si trova nella cache. -File System Distribuiti- Bartoli,DiIorio,Pucci

76 -File System Distribuiti- Bartoli,DiIorio,Pucci
Mobilità dei volumi Le informazioni sulla locazione sono conservate in un database locazione-volume, del quale esiste una replica su ogni server. Quando un volume viene inviato da un server ad un altro, nel server originale rimane temporaneamente l’informazione relativa alla spedizione per cui non è necessario aggiornare il database della locazione in modo sincrono. Durante la fase di trasferimento il server di origine continua a gestire gli aggiornamenti del volume, che in seguito vengono spediti al nuovo server. -File System Distribuiti- Bartoli,DiIorio,Pucci

77 -File System Distribuiti- Bartoli,DiIorio,Pucci
Mobilità dei volumi [2] L’operazione di spostamento di un volume è atomica; Se un server si guasta, l’operazione è interrotta in abort. La replicazione per la sola lettura effettuata con la granularità di un intero volume, è supportata nei livelli superiori dello spazio dei nomi vice per i file eseguibili e quelli aggiornati poco frequentemente. Il database locazione-volume specifica il server contenente solo la copia di lettura-scrittura di un volume e una lista dei siti delle repliche di sola lettura. -File System Distribuiti- Bartoli,DiIorio,Pucci

78 -File System Distribuiti- Bartoli,DiIorio,Pucci

79 Altre caratteristiche…
Mobilità dei client: I client possono accedere a qualsiasi file nello spazio dei nomi condivisi da qualsiasi postazione di lavoro. L’unico effetto che si noterà sarà la riduzione delle prestazioni iniziali dovuta al caching dei file. Protezione: Liste di accesso per la protezione delle directory ed i normali bit di UNIX per la protezione dei file. Tali liste possono contenere informazioni sugli utenti a cui è consentito o meno l’accesso. Eterogeneità: Un’interfaccia chiara con Vice permette una più facile integrazione dell’hardware e del sistema operativo di postazioni di lavoro diverse. Per faciliare l’eterogeneità, alcuni file della directory locale /bin rappresentano link simbolici a file eseguibili residenti di macchine specifiche residenti in vice. -File System Distribuiti- Bartoli,DiIorio,Pucci


Scaricare ppt "File System Distribuiti"

Presentazioni simili


Annunci Google