SDB:Network file system

Network File System (NFS) è un protocollo sviluppato inizialmente da Sun Microsystems nel 1984 e definito dagli RFC 1094, 1813, e 3530 (rende obsoleto il 3010), per un file system distribuito che consente ai computer di accedere ai file disponibili attraverso una rete con la stessa facilità con cui sarebbero accessibili se fossero su dischi locali. NFS è uno dei tanti protocolli basati sul sistema Open Network Computing Remote Procedure Call (ONC RPC).

Il termine "network file system" viene anche usato spesso come termine generico per un qualsiasi file system di rete.

Installazione di NFS kernel server

Un'installazione di NFS, completamente funzionante come server, richiede di solito il pacchetto nfs-kernel-server dai repository di openSUSE. È sufficiente installarlo con YaST, o da riga di comando, digitando (come root):

zypper in nfs-kernel-server

Il suddetto pacchetto verrà comunque installato automaticamente se si sceglie di usare (o di avere a disposizione) il modulo di YaST2 per la configurazione del server NFS. In tal caso sarà sufficiente installare il pacchetto yast2-nfs-server con YaST, o da riga di comando, digitando (come root):

zypper in yast2-nfs-server

Configurare il file /etc/exports

Modificare il file /etc/exports è alquanto semplice. Ogni riga contiene un punto di montaggio da esportare (una directory) e un elenco di client, separati da spazi o tabulazioni, a cui è consentito effettuare il montaggio del file system da quel punto. Ogni client presente in elenco può essere immediatamente seguito da un elenco, racchiuso tra parentesi (tonde) e separato da virgole, di opzioni di esportazione per quel client. Non sono ammessi spazi o tabulazioni tra un client e l'elenco di opzioni ad esso relativo. Esempi:

/esporta/questa/directory   (ro)

Con questa riga si condivide la directory in modalità sola lettura (read-only, ro) con tutti gli host, inclusi quelli che possono raggiungere il server da Internet! Si puà anche inserire il carattere * immediatamente prima di (ro).

/esporta/questa/directory   192.168.1.0/24(rw,async)

Con questa riga si condivide la directory in modalità lettura e scrittura (read-and-write, rw) con tutti gli host che appartengono alla rete 192.168.1.0, con maschera di sottorete 255.255.255.0. Utilizzando l'opzione async di solito si migliorano le prestazioni, ma per contro un riavvio non ortodosso del server (cioè un crash di sistema) può causare la perdita o la corruzione dei dati che si stavano condividendo.

Per un elenco più ampio di opzioni si può consultare man exports.

Versioni e variazioni

La versione 2 del protocollo originale utilizzava unicamente UDP e prevedeva che i server non dovessero conservare memoria degli accessi degli utenti. In passato quindi eventuali meccanismi di blocco delle risorse (Lock) dovevano essere implementati esternamente al protocollo.

La versione 3 introdusse il supporto all'utilizzo di TCP per il trasporto delle informazioni. Mentre alcune aziende informatiche avevano già esteso la versione 2 di NFS per supportare TCP in trasmissione, Sun Microsystems introdusse il TCP in trasmissione per NFS contemporaneamente all'introduzione della Versione 3 del protocollo. L'utilizzo di TCP come metodo di trasporto rese l'implementazione di NFS in ambito WAN più facile da realizzare.

La versione 4, influenzata da AFS e CIFS, include miglioramenti nelle prestazioni, aggiunge un supporto più robusto alla sicurezza e introduce un protocollo "a stati" (stateful, che tenga conto dello stato dei client). La versione 4 del protocollo è stata la prima versione ad essere sviluppata con l'Internet Engineering Task Force (IETF), dopo che Sun Microsystems si ritirò dallo sviluppo dei protocolli di NFS.

Sono stati aggiunti ad NFS vari protocolli side-band, tra cui:

  • Il protocollo per la gestione dei lock di rete consultivi (lock advisory) a blocchi di byte (byte-range advisory Network Lock Manager -NLM-), che venne aggiunto per supportare lo standard System V UNIX delle API per il file locking.
  • Il protocollo per il controllo delle quote sul file system di rete (remote quota reporting, RQUOTAD), per consentire agli utenti di NFS di tenere sotto controllo le quote disco ad essi assegnate per l'archiviazione dei dati sui server NFS.

WebNFS è un'aggiunta alle specifiche di NFS Versione 2 e Versione 3 che permette a quest'ultimo di venire integrato più facilmente in un Web browser e che consente al protocollo di funzionare correttamente attraverso i firewall. (Traduzione in parte tratta da Wikipedia, l'enciclopedia libera).

Piattaforme supportate

NFS è fortemente legato ai sistemi UNIX, ma si può utilizzare su qualsiasi piattaforma, tra cui, per esempio, i sistemi operativi Macintosh, Windows e Novell NetWare. Server Message Block (SMB, anche note come CIFS) e NetWare Core Protocol (NCP), protocolli simili ad NFS, sono implementazioni equivalenti di un file system di rete (network file system) su altri sistemi operativi. La compatibilità tra piattaforma diverse rende NFS l'implementazione ideale di un file system di rete.

Montaggio automatico di condivisioni NFS in avvio di sistema

È piuttosto diffuso riscontrare alcune difficoltà nel far sì che il sistema monti automaticamente le condivisioni NFS all'avvio. A tal fine si DEVE abilitare il demone nfs come qui di seguito:

# chkconfig nfs

Qualora nel risultato del comando compaia la scritta off, sarà allora necessario dare:

# chkconfig nfs on

Il file /etc/fstab sulla stessa macchina che effettua il montaggio deve includere (almeno):

hostremoto:/percorso/da/esportare   /locale/puntodimontaggio   nfs   auto    0   0

Si possono anche includere le seguenti opzioni:

auto,tcp,ro,intr

Si veda man nfs per ulteriori opzioni di mount. Inoltre, è opportuno verificare che il firewall del proprio sistema sia configurato correttamente, incluse tutte le porte UDP e TCP opportune. Assicurati inoltre che il tuo router/firewall esterno stia effettuando correttamente l'inoltro (forwarding) delle porte (se il server NFS in esecuzione è disponibile su Internet (WAN)).

Vedi anche

Collegamenti esterni