La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

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

Presentazioni simili


Presentazione sul tema: "File System Distribuiti Seminario appartenente al corso di Sistemi Operativi a cura di Guido Bartoli, Ernesto Di Iorio, Augusto Pucci."— 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,Pucci2 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) è unimplementazione 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.

3 -File System Distribuiti- Bartoli,DiIorio,Pucci3 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)

4 -File System Distribuiti- Bartoli,DiIorio,Pucci4 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 nellesecuzione da parte della CPU dei vari protocolli di comunicazione). Obiettivo: raggiungere prestazioni paragonabili a quelle di un file system convenzionale.

5 -File System Distribuiti- Bartoli,DiIorio,Pucci5 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.

6 -File System Distribuiti- Bartoli,DiIorio,Pucci6 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.

7 -File System Distribuiti- Bartoli,DiIorio,Pucci7 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.

8 -File System Distribuiti- Bartoli,DiIorio,Pucci8 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.

9 -File System Distribuiti- Bartoli,DiIorio,Pucci9 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 unaltra, ma automaticamente il sistema operativo riesce a mapparli nuovamente sullo stesso nome (supportato dal mapping dinamico).

10 -File System Distribuiti- Bartoli,DiIorio,Pucci10 …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).

11 -File System Distribuiti- Bartoli,DiIorio,Pucci11 …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.

12 -File System Distribuiti- Bartoli,DiIorio,Pucci12 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.

13 -File System Distribuiti- Bartoli,DiIorio,Pucci13 Schemi di nominazione: Approcci fondamentali Network file system (NFS): offre funzionalità per unire le directory remote con quelle locali, dando allutente limpressione 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. Lintegrazione, anche se supportata, è limitata e non uniforme perché ogni macchina può aggiungere diverse directory remote al proprio albero. Struttura complessa e difficile da mantenere.

14 -File System Distribuiti- Bartoli,DiIorio,Pucci14 Schemi di nominazione: Approcci fondamentali Terzo approccio: permette lintegrazione 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.

15 -File System Distribuiti- Bartoli,DiIorio,Pucci15 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 ununità 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.

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

17 -File System Distribuiti- Bartoli,DiIorio,Pucci17 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

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

19 -File System Distribuiti- Bartoli,DiIorio,Pucci19 Introdurre il caching Per migliorare le prestazioni si aggiunge un meccanismo di caching al servizio remoto di base Se lutente 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)

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

21 -File System Distribuiti- Bartoli,DiIorio,Pucci21 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

22 -File System Distribuiti- Bartoli,DiIorio,Pucci22 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

23 -File System Distribuiti- Bartoli,DiIorio,Pucci23 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…

24 -File System Distribuiti- Bartoli,DiIorio,Pucci24 Caching in memoria centrale I client possono fare a meno dei dischi Maggiore velocità nellaccesso 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à

25 -File System Distribuiti- Bartoli,DiIorio,Pucci25 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

26 -File System Distribuiti- Bartoli,DiIorio,Pucci26 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

27 -File System Distribuiti- Bartoli,DiIorio,Pucci27 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à

28 -File System Distribuiti- Bartoli,DiIorio,Pucci28 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

29 -File System Distribuiti- Bartoli,DiIorio,Pucci29 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

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

31 -File System Distribuiti- Bartoli,DiIorio,Pucci31 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

32 -File System Distribuiti- Bartoli,DiIorio,Pucci32 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

33 -File System Distribuiti- Bartoli,DiIorio,Pucci33 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

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

35 -File System Distribuiti- Bartoli,DiIorio,Pucci35 Servizio con informazione di stato 1.Il client richiede laccesso ad un file che deve essere aperto. 2.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). 3.Questo indice viene utilizzato per gli accessi successivi fino al termine della sessione.

36 -File System Distribuiti- Bartoli,DiIorio,Pucci36 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)

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

38 -File System Distribuiti- Bartoli,DiIorio,Pucci38 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.

39 -File System Distribuiti- Bartoli,DiIorio,Pucci39 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 allutente, 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.

40 -File System Distribuiti- Bartoli,DiIorio,Pucci40 Aggiornamento delle Repliche Per lutente, le repliche indicano la stessa entità logica, quindi laggiornamento deve riflettersi su tutte le copie fisiche del file per mantenere la consistenza dellinformazione La coerenza consiste nellevitare linsorgere 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)

41 -File System Distribuiti- Bartoli,DiIorio,Pucci41 Schema di replicazione di IBIS Utilizza una variante dellapproccio di copia primaria e supporta la replicazione su richiesta. Il dominio del mapping dei nomi è rappresentato da una coppia 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.

42 -File System Distribuiti- Bartoli,DiIorio,Pucci42 Replicazione su richiesta (IBIS) È una politica per il controllo automatico della replicazione (analoga al caching dellintero 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à linvalidazione di tutte le altre repliche. Per fare questo si utilizza un opportuno sistema di scambio messaggi, che però non garantisce linvalidazione 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.

43 -File System Distribuiti- Bartoli,DiIorio,Pucci43 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 (laNewcastle Connection). Obiettivo: costruire un sistema distribuito funzionalmente indistinguibile da un sistema UNIX centralizzato convenzionale.

44 -File System Distribuiti- Bartoli,DiIorio,Pucci44 Generalità di UNIX United Esiste ununica 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. Lunità componente è un albero di directory UNIX appartenente ad una macchina e la sua posizione allinterno della gerarchia è arbitaria.

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

46 -File System Distribuiti- Bartoli,DiIorio,Pucci46 Struttura delle directory UNIX United Rispetto ad unix1, il file f2 di unix2 è accessibile con /../unix2/f2, mentre, dallinterno 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 dallinterno di ognuna di esse.

47 -File System Distribuiti- Bartoli,DiIorio,Pucci47 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 lamministratore di quello specifico sistema.

48 -File System Distribuiti- Bartoli,DiIorio,Pucci48 La Newcastle Connection È uno strato software di connessione che separa il kernel UNIX dai programmi degli utenti allinterno 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.

49 -File System Distribuiti- Bartoli,DiIorio,Pucci49 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 lalbero di nominazione senza passare attraverso un altro sistema.

50 -File System Distribuiti- Bartoli,DiIorio,Pucci50 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.

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

52 -File System Distribuiti- Bartoli,DiIorio,Pucci52 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 daccesso remoti in base ad una coppia, 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 unalta robustezza.

53 -File System Distribuiti- Bartoli,DiIorio,Pucci53 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

54 -File System Distribuiti- Bartoli,DiIorio,Pucci54 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

55 -File System Distribuiti- Bartoli,DiIorio,Pucci55 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, luso successivo invece sì Su uno stesso punto di mount possono montarsi più parti di file system in cascata Il montaggio non è transitivo

56 -File System Distribuiti- Bartoli,DiIorio,Pucci56 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

57 -File System Distribuiti- Bartoli,DiIorio,Pucci57 Dettagli sul montaggio Il file handle contiene lidentificativo del file system e li-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 lelenco dei client non è necessariamente aggiornato o consistente Ogni sistema contiene generalmente anche una configurazione standard di montaggi remoti

58 -File System Distribuiti- Bartoli,DiIorio,Pucci58 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

59 -File System Distribuiti- Bartoli,DiIorio,Pucci59 Assenza dellinfo 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

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

61 -File System Distribuiti- Bartoli,DiIorio,Pucci61 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 è lultimo gradino dellintera architettura

62 -File System Distribuiti- Bartoli,DiIorio,Pucci62 Esempio: operazione su file Il client chiama una system call La call viene mappata su una operazione VFS sullappropriato 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

63 -File System Distribuiti- Bartoli,DiIorio,Pucci63 Sintesi di NFS Le system call UNIX (a parte open e close) si rimappano in RPC di NFS Laccesso 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

64 -File System Distribuiti- Bartoli,DiIorio,Pucci64 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

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

66 -File System Distribuiti- Bartoli,DiIorio,Pucci66 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.

67 -File System Distribuiti- Bartoli,DiIorio,Pucci67 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.

68 -File System Distribuiti- Bartoli,DiIorio,Pucci68 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.

69 -File System Distribuiti- Bartoli,DiIorio,Pucci69 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.

70 -File System Distribuiti- Bartoli,DiIorio,Pucci70 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.

71 -File System Distribuiti- Bartoli,DiIorio,Pucci71 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).

72 -File System Distribuiti- Bartoli,DiIorio,Pucci72 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.

73 -File System Distribuiti- Bartoli,DiIorio,Pucci73

74 -File System Distribuiti- Bartoli,DiIorio,Pucci74 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.

75 -File System Distribuiti- Bartoli,DiIorio,Pucci75 File identifer format Un file o una directory vice sono identificati da un identificatore di basso livello chiamato fid. Identifica il volume in cui si trova il file. Identifica il file nel volume 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.

76 -File System Distribuiti- Bartoli,DiIorio,Pucci76 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 linformazione 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. Mobilità dei volumi

77 -File System Distribuiti- Bartoli,DiIorio,Pucci77 Mobilità dei volumi [2] Loperazione di spostamento di un volume è atomica; Se un server si guasta, loperazione è 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.

78 -File System Distribuiti- Bartoli,DiIorio,Pucci78

79 -File System Distribuiti- Bartoli,DiIorio,Pucci79 Altre caratteristiche… Mobilità dei client: I client possono accedere a qualsiasi file nello spazio dei nomi condivisi da qualsiasi postazione di lavoro. Lunico 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 laccesso. Eterogeneità: Uninterfaccia chiara con Vice permette una più facile integrazione dellhardware e del sistema operativo di postazioni di lavoro diverse. Per faciliare leterogeneità, alcuni file della directory locale /bin rappresentano link simbolici a file eseguibili residenti di macchine specifiche residenti in vice.


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

Presentazioni simili


Annunci Google