Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Configurare NFS

Utilizzare NFS per la gestione di file e directory remote, al fine di condividere contenuti tra due o più server, utilizzando Ubuntu.
Utilizzare NFS per la gestione di file e directory remote, al fine di condividere contenuti tra due o più server, utilizzando Ubuntu.
Link copiato negli appunti

NFS (Network File System) è un protocollo di rete utilizzato in ambiente Unix per la condivisione di file. Sviluppato originariamente da Sun Microsystems nel 1984 come progetto sperimentale, divenne presto uno standard pubblico. NFS è stato il primo file system di rete ad essere basato sul protocollo IP, favorendone la diffusione e promuovendo l'interoperabilità tra sistemi eterogenei. Giunto ormai alla versione 4.2, NFS continua ad essere attivamente supportato dalla IETF (Internet Engineering Task Force).

Oltre che in ambiente Unix (come Solaris) ed ambienti Unix-like (come GNU/Linux), NFS è disponibile anche in Mac OS e Windows (grazie al modulo "Microsoft Windows Services for UNIX").

Installazione del server

Il server NFS è contenuto nel pacchetto nfs-kernel-server. Pertanto, per installarlo è sufficiente digitare il comando:

# apt-get install nfs-kernel-server

Configurazione del server

Dopo aver installato il server, procediamo specificando le directory da condividere. Nella terminologia di NFS, esse si chiamano "export". La lista degli export si trova nel file /etc/exports. Per aggiungere un export, è sufficiente aprire il file /etc/exports con un editor di testo, ad esempio:

# nano /etc/exports

La struttura del file è molto semplice: ogni riga corrisponde ad un export, specificando il percorso locale della directory da esportare, le modalità di accesso ed i client autorizzati a collegarsi. Ad esempio, la riga:

/var/share/public *(rw,sync,no_root_squash)

permette di condividere la directory /var/share/public con tutti i client presenti in rete (come indicato dal carattere *) con accesso in lettura e scrittura (rw, Read/Write).

Le altre due opzioni, sync e no_root_squash controllano aspetti più avanzati. L'opzione sync obbliga il server ad attendere che i dati inviati da un client siano effettivamente scritti su disco prima di terminare la transazione. In altre parole, quando l'opzione sync è attiva, ogni operazione di scrittura dovrà essere confermata dal file system locale prima di essere considerata conclusa. Questa è ovviamente la scelta più sicura per proteggere l'integrità dei dati. Si pensi al caso in cui un client abbia inviato dei dati al server, per essere scritti su file. Senza l'opzione sync, il server potrebbe rispondere affermativamente, indicando al client che i dati sono stati ricevuti, anche se in realtà questi non sono ancora stati scritti su disco. Un black out, un crash o un altro errore improvviso che avvenga prima della effettiva scrittura su disco potrebbe portare ad uno stato inconsistente.

L'opzione no_root_squash impedisce all'utente root di un client di assumere i privilegi di root anche sul server. Questa opzione permette di evitare errori potenzialmente dannosi, proteggendo i file sul server.

Come detto sopra, è possibile restringere l'accesso ai client, discriminandoli attraverso indirizzo IP o nome host. Ad esempio, se si volesse restringere l'accesso all'export dell'esempio sopra al solo client con indirizzo IP 192.168.0.4, la riga in /etc/exports/ diventerebbe:

/var/share/public 192.168.0.4(rw,sync,no_root_squash)

La sintassi del file exports permette anche di indicare opzioni diverse per host diversi. Ad esempio, se si volesse dare accesso in lettura e scrittura al client 192.168.0.4 ed acesso in sola lettura a tutti gli altri, la riga sarebbe:

/var/share/public 192.168.0.4(rw,sync,no_root_squash) *(ro,sync,no_root_squash)

Si noti l'uso dell'opzione ro nel secondo gruppo.

La struttura generica di una riga di export è quindi:

<percorso> <host1>(<opzioni1>) ... <hostN>(<opzioniN>)

Avvio del server

Dopo aver configurato correttamente il file /etc/exports, è possibile avviare il server NFS con il comando:

# service nfs-kernel-server start

Configurazione del client

Per prima cosa, installare il pacchetto con il client, nel caso in cui non sia già installato, con il comando:

# apt-get install nfs-common

Dopo aver installato il client, basterà "montare" l'export su un mount point locale. In ambiente Unix, i volumi vengono "montati" in un punto del file system radice (/). A differenza di Windows, dove i volumi sono identificati da lettere (C:, D:, ecc.), in ambiente Unix essi sono identificati da un percorso a partire da /. In GNU/Linux di solito i mount point si trovano in /mnt oppure /media. Ecco perché, ad esempio, per accedere al contenuto di un CD-ROM dovremmo aprire la directory /media/cdrom. Tuttavia, questa non è una regola fissa, ed esistono diversi tecnologie in ambiente GNU/Linux per montare automaticamente i volumi connessi al sistema, ed ognuna può essere configurata in modo diverso (ad esempio, una pendrive portebbe essere mappata su /run/media/).

I volumi NFS non fanno eccezione. Per poter accedere ad un export NFS bisognerà quindi creare prima un mount point, ovvero una directory locale vuota sulla quale verrà montato l'export voluto. Nell'esempio che segue, verrà creato un mount point in /mnt/public, sul quale verrà montato l'export dell'esempio sopra. Si supponga che l'indirizzo IP del server sia 192.168.0.200; ecco come procedere:

  • Creazione del mount point (da effettuare solo la prima volta):
    # mkdir /mnt/public
  • Mount della directory condivisa:
    # mount 192.168.0.200:/var/share/public /mnt/public

Se tutto è stato configurato correttamente, la directory /mnt/public mostrerà il contenuto della directory /var/share/public del server.

Attenzione: questa operazione non è permanente. Ciò significa che al riavvio del client la directory /mnt/public non sarà automaticamente collegata alla /var/share/public del server. Per rendere permanente questa operazione, si può aggiungere una riga al file /etc/fstab (File System Table), il file usato da Linux all'avvio per montare automaticamente i volumi.

Apriamo quindi il file /etc/fstab con un editor di testo, ad esempio:

# nano /etc/fstab

Quindi aggiungiamo una riga per ogni export da montare. Ad esempio:

192.168.0.200:/var/share/public /mnt/public nfs rsize=8192,wsize=8192,timeo=14,intr

Le opzioni alla fine specificano la dimensione dei buffer di lettura e scrittura, il timeout della connessione ed il modo con cui gestire le richieste nel caso in cui la connessione con il server venga interrotta. I valori qui riportati sono i più comuni e dovrebbero adattarsi alle esigenze di una rete domestica.

Per verificare che il file fstab sia corretto, basterà digitare il comando:

# mount -a

Se l'operazione va a buon fine, il comando ritornerà immediatamente al prompt senza restituire alcun errore.

Si può visualizzare la lista dei volumi correntemente montati con il comando:

# df -h

In seguito alle operazioni finora effettuate, esso dovrebbe mostrare una riga a conferma che la directory /var/share/public esportata dal server 192.168.0.200 è stata effettivamente montata sul mount point locale /mnt/public.

Ti consigliamo anche