12) Quali sono le principali caratteristiche del Network File System?

Il Network File System è un FSD per un numero limitato di workstation in rete.

È integrato nel kernel SUN OS per efficienza ma vi sono anche realizzazioni al di fuori di Sun.

L'obiettivo è la condivisione di file in maniera trasparente ma efficiente, anche tra ambienti eterogenei.

Si realizza la trasparenza usando NFS tramite Virtual File System (VFS)

separa le operazioni generiche sul file system dalla loro implementazione definendo un'interfaccia omogenea e trasparente, sia per i file locali che per quelli remoti.

utilizza la struttura vnode, con un identificatore numerico di file (simile all' i-node UNIX) unico in tutta la rete.

Prevede non trasparenza dell’allocazione. Il superutente monta, cioè decide di rendere esplicitamente visibile un file system (la mount table identifica macchina ed i-node)

esempio:

mount deis33:/usr/antonio /usr1/pippo

a questo punto, tutta la gerarchia /usr/antonio è visibile dal file system di deis34 come /usr1/pippo. Da deis34 si vedono i file di deis33 e scompare la visibilità del direttorio locale.

prevede invece trasparenza nella comunicazione a livello utente: egli vede i file come se fossero locali.

ogni file system può contenere parti degli altri. I file relativi sono condivisi tra le diverse macchine.

Naming a parziale condivisione. Il cliente responsabile dei nomi:

il cliente non vede ciò che il server ha montato ma solo il file system locale del server.

il cliente può montare su parti di file system che sono già derivati da server (cascade mount).

Accesso con operazioni (con utilizzo di RPC) di:

Ricerca di un file all'interno di una directory

Lettura di un set di nomi di directory

Manipolazione di link e directory

Accesso ad attributi di file

Lettura e scrittura di file

Il server non ha stato (stateless server), cioè non ha informazioni sui file aperti dai clienti. Vi sono solo operazioni autocontenute di apertura, di lettura o scrittura del file all'interno di una singola chiamata RPC. Non ci sono operazioni di apertura e chiusura al server:

operazioni intrinsecamente stateful, come lock di file, non possono essere implementate con tale protocollo.

operazioni come lettura e scrittura di direttorio possono entrare in conflitto con inserimenti e distruzioni.

la scelta stateless per ragioni di facile trattamento guasti in caso di crash.

di un client: nessuna ripercussione sul server

di un server: nessun problema di recovery

Il client mantiene invece lo stato dell'interazione.

il cliente ha una propria visione dei file globali che dipende solo dai mount fatti (e non è nota ad alcun altra entità)

ogni operazioni di file (o direttorio) deve passare attraverso il cliente per la validazione.

NFS ha due meccanismi di cache del cliente a tempo

file, a memorizzazione locale di file (3 sec.)

file attribute (direttori 30 sec.)

oltre ad informazioni sui server e sugli i-node virtuali utilizzati recentemente.

Trasparenza: implementata mediante l’estensione della semantica locale. Ogni azione è propagata per mantenere la massima consistenza (scelta molto costosa, miglioramento attraverso l'uso di cache)

Implementazione:

Le versioni di NFS stabiliscono politiche per ottenere una migliore località

Uso di demoni per attuare le richieste:

nfsd daemon

gestione delle richieste clienti: /etc/nfsd

si possono ottenere servizi paralleli attraverso una molteplicità di demoni attivi in attesa delle risposte

ogni server specifica anche il numero di processi server, secondo il servizio che si vuole fornire

biod daemon

gestione della cache: /etc/biod gestisce la lettura a blocchi delle informazioni e il necessario trattamento di ottimizzazione

Tipicamente, quattro nfsd ed un biod

 

 


Back
Index
Next