File System Distribuiti
Seminario appartenente al corso di Sistemi Operativi
a cura di
Guido Bartoli, Ernesto Di Iorio, Augusto 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 DistribuitiBartoli,DiIorio,Pucci
2
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 DistribuitiBartoli,DiIorio,Pucci
3
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 DistribuitiBartoli,DiIorio,Pucci
4
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 DistribuitiBartoli,DiIorio,Pucci
5
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 DistribuitiBartoli,DiIorio,Pucci
6
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 DistribuitiBartoli,DiIorio,Pucci
7
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 DistribuitiBartoli,DiIorio,Pucci
8
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 DistribuitiBartoli,DiIorio,Pucci
9
…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 DistribuitiBartoli,DiIorio,Pucci
10
…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 DistribuitiBartoli,DiIorio,Pucci
11
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 DistribuitiBartoli,DiIorio,Pucci
12
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 DistribuitiBartoli,DiIorio,Pucci
13
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 DistribuitiBartoli,DiIorio,Pucci
14
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 DistribuitiBartoli,DiIorio,Pucci
15
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 DistribuitiBartoli,DiIorio,Pucci
16
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 DistribuitiBartoli,DiIorio,Pucci
17
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 DistribuitiBartoli,DiIorio,Pucci
18
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 DistribuitiBartoli,DiIorio,Pucci
19
Dislocazione dei file nella rete
Client 1
C
M: File Master
C: Copia del file
Client 2
C
Client 3
C
Client 4
C
M
Server
-File System DistribuitiBartoli,DiIorio,Pucci
20
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 DistribuitiBartoli,DiIorio,Pucci
21
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 DistribuitiBartoli,DiIorio,Pucci
22
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 DistribuitiBartoli,DiIorio,Pucci
23
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 DistribuitiBartoli,DiIorio,Pucci
24
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 DistribuitiBartoli,DiIorio,Pucci
25
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 DistribuitiBartoli,DiIorio,Pucci
26
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 DistribuitiBartoli,DiIorio,Pucci
27
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 DistribuitiBartoli,DiIorio,Pucci
28
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 DistribuitiBartoli,DiIorio,Pucci
29
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 DistribuitiBartoli,DiIorio,Pucci
30
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 DistribuitiBartoli,DiIorio,Pucci
31
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 DistribuitiBartoli,DiIorio,Pucci
32
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 DistribuitiBartoli,DiIorio,Pucci
33
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 DistribuitiBartoli,DiIorio,Pucci
34
Servizio con informazione di stato
1. Il client richiede l’accesso 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.
-File System DistribuitiBartoli,DiIorio,Pucci
35
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 DistribuitiBartoli,DiIorio,Pucci
36
Servizio senza informazione di stato
1. La richiesta fatta dal client identifica completamente
il file e la sua posizione all’interno 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.
-File System DistribuitiBartoli,DiIorio,Pucci
37
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 DistribuitiBartoli,DiIorio,Pucci
38
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 DistribuitiBartoli,DiIorio,Pucci
39
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 DistribuitiBartoli,DiIorio,Pucci
40
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 DistribuitiBartoli,DiIorio,Pucci
41
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 DistribuitiBartoli,DiIorio,Pucci
42
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 DistribuitiBartoli,DiIorio,Pucci
43
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 DistribuitiBartoli,DiIorio,Pucci
44
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 DistribuitiBartoli,DiIorio,Pucci
45
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 DistribuitiBartoli,DiIorio,Pucci
46
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 DistribuitiBartoli,DiIorio,Pucci
47
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 DistribuitiBartoli,DiIorio,Pucci
48
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 DistribuitiBartoli,DiIorio,Pucci
49
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 DistribuitiBartoli,DiIorio,Pucci
50
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 DistribuitiBartoli,DiIorio,Pucci
51
La Newcastle Connection

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.



(continua…)
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 DistribuitiBartoli,DiIorio,Pucci
52
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 DistribuitiBartoli,DiIorio,Pucci
53
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 DistribuitiBartoli,DiIorio,Pucci
54
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 DistribuitiBartoli,DiIorio,Pucci
55
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 DistribuitiBartoli,DiIorio,Pucci
56
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 DistribuitiBartoli,DiIorio,Pucci
57
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 DistribuitiBartoli,DiIorio,Pucci
58
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 DistribuitiBartoli,DiIorio,Pucci
59
Architettura
-File System DistribuitiBartoli,DiIorio,Pucci
60
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 DistribuitiBartoli,DiIorio,Pucci
61
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 DistribuitiBartoli,DiIorio,Pucci
62
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 DistribuitiBartoli,DiIorio,Pucci
63
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 DistribuitiBartoli,DiIorio,Pucci
64
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 DistribuitiBartoli,DiIorio,Pucci
65
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 DistribuitiBartoli,DiIorio,Pucci
66
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 DistribuitiBartoli,DiIorio,Pucci
67
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 DistribuitiBartoli,DiIorio,Pucci
68
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 DistribuitiBartoli,DiIorio,Pucci
69
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 DistribuitiBartoli,DiIorio,Pucci
70
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 DistribuitiBartoli,DiIorio,Pucci
71
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 DistribuitiBartoli,DiIorio,Pucci
72
-File System DistribuitiBartoli,DiIorio,Pucci
73
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 DistribuitiBartoli,DiIorio,Pucci
74
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.
-File System DistribuitiBartoli,DiIorio,Pucci
75
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 DistribuitiBartoli,DiIorio,Pucci
76
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 DistribuitiBartoli,DiIorio,Pucci
77
-File System DistribuitiBartoli,DiIorio,Pucci
78
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 DistribuitiBartoli,DiIorio,Pucci
79
Scarica

DFS