NFS: Network File System

Con questo articolo spiegheremo come mettere in piedi un filesystem condiviso tra più macchine utilizzando NFS.

Come suggerisce il nome NFS permette di accedere a filesystem remoti attraverso la rete. E' un protocollo client-server ovvero il server mette a disposizione la risorsa che viene richiesta e “montata” sulla macchina client.

Molte distribuzioni GNU/Linux non includono di default il pacchetto pacchetto server e client di NFS, (ad es. Ubuntu) mentre altre si (es. Slackware, Red-Hat). Per maggiori informazioni sul nome del pacchetto da installare e sull'installazione dei pacchetti è consigliato vedere la documentazione relativa della propria distribuzione.

Server

Cosa importante è necessario avere a disposizione il pacchetto nfsd installato sulla macchina che fungerà da server.

Con l'utente root configuriamo il file /etc/exports dove andremo ad indicare la directory da rendere disponibile in rete, gli host che potranno utilizzare questo filesystem e le opzioni.

Ipotizziamo di avere diverse macchine web che devono rendere disponibili gli stessi contenuti. Una possibile configurazione potrebbe essere la seguente:

/var/www/htdocs    192.168.1.0/24(ro,sync,no_subtree_check)

In questo modo abbiamo indicato che la directory /var/www/htdocs deve essere disponibile alle macchine della subnet 192.168.1.0/24 in sola-lettura (opzione ro).

A questo punto dobbiamo restartare il demone nfsd attraverso il suo script oppure utilizzando il comando exportfs -ra.

Per vedere se abbiamo configurato correttamente, utilizziamo il comando exportfs che restuirà l'elenco dei filesystem e gli host che potranno utilizzarli:

# exportfs
/var/www/htdocs  192.168.1.0/24

Client

Adesso configuriamo le macchine client. Come prima cosa dobbiamo accertarci di avere il pacchetto con il client NFS installato. Un'altro passo importante è verificare che i client riescano a connettersi alla porta 2049/tcp del server. Per il test possiamo fare un semplice telnet:

$ telnet 192.168.0.1 2049

Da utente root utilizziamo il comando mount per montare il filesystem remoto:

# mount -t nfs 192.168.0.1:/var/www/htdocs /var/www/htdocs

Per montare il filesystem ad ogni riavvio della macchina possiamo editare /etc/fstab in questo modo:

192.168.0.1:/var/www/htdocs  /var/www/htdocs  nfs  defaults  0  0