NFS HowTo

Da TondoWiki.


Guida rapida alla configurazione di NFS - 26/11/2008

In questo articolo sono descritti i passi fondamentali per la configurazione di un server NFS (Network File System) e dei relativi client. Grazie a NFS è possibile esportare parti di filesystem locale per condividerne i dati con altri utenti della rete. Una condivisione NFS funziona solo tra sistemi Linux, mentre per la condivisione di dati in reti miste Windows-Linux si rimanda all'articolo relativo a Samba. Le prove necessarie alla stesura dell'articolo sono state realizzate con Ubuntu 8.04, ma il procedimento è facilmente riproducibile anche su altre distribuzioni Linux.


Indice


Configurazione Lato Server

Per prima cosa è necessario installare alcuni pacchetti essenziali:

~$ sudo apt-get install nfs-kernel-server nfs-common portmap

La configurazione di NFS lato server si fa modificando il file /etc/exports. Aprendolo con un editor di testo a piacere:

~$ sudo vim /etc/exports

Il file contiene le indicazioni per l'esportazione delle porzioni di filesystem che si vogliono condividere. Ogni condivisione si indica scrivendo una linea nel file seguendo la seguente sintassi:

 directory host01(option11,option12, ...) host02(option21,option22, ...)

Di seguito è descritto il significato dei parametri:

  • directory: è la porzione di filesystem che si vuole condividere (es.: /home , /mnt/dati oppure /home/utenteA )
  • hostXX: IP dell'host a cui si vuole condividere (es. 192.168.0.5 oppure 192.168.0.0/255.255.255.0 per condividere a una rete o sottorete)
  • optionXX: opzioni che regolano la condivisione per l'host specificato:
    • ro: condivisione in sola lettura.
    • rw: condivisione in lettura e scrittura.
    • no_root_squash/root_squash: con la prima opzione, se un utente accede con privilegi di root alla porzione di filesystem condivisa, tali privilegi vengono mantenuti sulla porzione di filesystem condivisa dal server; specificando root_squash invece si annulla tale comportamento.
    • no_subtree_check/subtree_check: nel caso si esporti solo una porzione di volume (e non tutto il filesystem del server), l'opzione subtree_check verifica che i file richiesti da un utente si trovino nella corretta parte del volume (quella condivisa), grazie a no_subtree_check è possibile disabilitare il check guadagnando in velocità di trasferimento.
    • sync/async: con l'opzione sync quando è in atto un'operazione di scrittura, NFS considera terminata la scrittura solo quando i file sono stati scritti completamente sul disco fisico di destinazione, con async si forza un comportamento asincrono e meno sicuro ma più veloce.


Configurazione Lato Client

Anche sui client vanno installati alcuni pacchetti necessari all'utilizzo di NFS:

~$ sudo apt-get install nfs-common portmap

Per utilizzare la condivisione realizzata sul server, un client non deve fare altro che montare l'export dove preferisce. Usando il comando mount si può quindi specificare il punto di mount e le relative opzioni:

~$ sudo mount -t nfs server:dirA dirB [-o options]

Dove:

  • server: è l'indirizzo IP (o lo pseudonimo) del server.
  • dirA: è il percorso della porzione di filesystem condivisa così come specificato nella configurazione del server (es.: /home , /mnt/dati oppure /home/utenteA ).
  • dirB: è il percorso relativo al punto (sul client) dove si vuole montare la porzione di filesystem condivisa (es.: /home , /mnt/DatiCondivisi oppure /home/utenteA ).
  • options: è un campo facoltativo in cui sono elencate, separate con la virgola, le opzioni di mount che si vogliono utilizzare.

Riavviando il client tali impostazioni di mount vengono perdute, sarà quindi necessario ridigitare il comando per utilizzare di nuovo la condivisione. In alternativa, si può aggiungere il mount automatico all'avvio del sistema modificando il file /etc/fstab:

~$ sudo vim /etc/fstab

Al file andrà aggiunta una riga del tipo:

server:dirA   dirB   nfs   options   0  0

I campi dirA, dirB e options sono i medesimi usati per il comando mount.

Approfondimenti

Strumenti personali