Problemi in questa pagina? Segnalali in questa discussione
Introduzione
In ambiente Linux uno dei sistemi maggiormente utilizzati per la condivisione di dati in una rete di computer è rappresentato dal filesystem distribuito NFS (Network File System).
Verrà mostrato un esempio in cui la cartella /home di un computer che funge da server, viene condivisa con un computer client. In questo modo i contenuti della cartella sul server saranno accessibili direttamente dal client.
Si presume che gli indirizzi IP dei computer siano stati impostati o manualmente o, in presenza del DHCP, impostati direttamente nel router. Nell'esempio i computer avranno i rispettivi indirizzi IP:
server: 192.168.0.20
client: 192.168.0.40
Server
Installare il pacchetto nfs-kernel-server.
Aprire con i privilegi di amministrazione e con un editor di testo il file /etc/exports. Dovrà essere aggiunta una stringa con questa sintassi:
/percorso/cartella/condivisa indirizzo.ip.client(opzioni,di,condivisione)
Pertanto adattata all'esempio risulterà:se si desidera che i file siano accessibili in lettura/scrittura:
/home 192.168.0.40(rw,no_root_squash)
se si desidera che i file siano accessibili in sola lettura:
/home 192.168.0.40(ro,no_root_squash)
È possibile rendere accessibile la condivisione ad altri client aggiungendo ulteriori indirizzi IP con i relativi parametri. Per rendere la cartella disponibile a qualsiasi client occorre sostituire l'indirizzo IP con l'asterisco *
Per un ulteriore livello di sicurezza è possibile configurare opportunamente il file /etc/hosts.allow.
Salvare e chiudere il file /etc/exports.
Per attivare la condivisione digitare i seguenti comandi nel terminale:
su Ubuntu 16.04 e successivi:
sudo systemctl restart nfs-kernel-server
Il server sarà ora pronto a condividere la cartella /home. Nei successivi riavvi il servizio verrà avviato automaticamente.
Client
Installare il pacchetto nfs-common.
Creare una cartella nella quale verrà montata la cartella condivisa sul server per poter accedere ai dati in essa contenuti. Digitare nel terminale:
sudo mkdir -p /mnt/nfs/home
Montaggio manuale
Occorre digitare un comando da terminale con la seguente sintassi:
sudo mount indirizzo.ip.server:/percorso/cartella/condivisa /percorso/cartella/di/montaggio
Pertanto il comando diviene:
sudo mount 192.168.0.20:/home /mnt/nfs/home
Per smontare la cartella è sufficiente sostituire il comando mount con umount.
Per monitorare le directory condivise sul server può tornare comodo il comando showmount, in particolare se non ricordiamo esattamente il percorso della directory condivisa. Nel client verrebbe eseguito nel seguente modo:
showmount -e 192.168.0.20
e l'output risulterebbe di questo tipo:
Export list for 192.168.1.20: /home 192.168.1.40
Montaggio automatico all'avvio
Aprire con i privilegi di amministrazione e con un editor di testo il file /etc/fstab.
Dovrà essere aggiunta una stringa con la seguente sintassi:
indirizzo.ip.server:/percorso/cartella/condivisa /percorso/cartella/di/montaggio nfs opzioni,di,montaggio 0 0
Ubuntu 16.04 e successivi
Con l'introduzione di systemd è apparso un malfunzionamento per il quale l'utilizzo della condivisione NFS causa lunghi tempi di attesa sia all'avvio che allo spegnimento del sistema.
Numerose sono le segnalazioni bug e le segnalazioni di possibili arginamenti al problema. Di seguito ne viene riportata una che prevede l'utilizzo di alcuni specifici parametri sul file /etc/fstab e la modifica di nfs-config.service.
Una volta aperto il file /etc/fstab con i privilegi di amministrazione e con un editor di testo, aggiungere la seguente stringa:
192.168.1.10:/home /mnt/nfs/home nfs4 _netdev,bg,nofail,rw,relatime,rsize=65536,wsize=65536 0 0
E quindi salvare e chiudere il file.Digitare nel terminale:
sudo systemctl edit --full nfs-config.service
Inserire nel testo le voci remote-fs.target e NetworkManager.service in modo che risulti:
[Unit] Description=Preprocess NFS configuration After=local-fs.target remote-fs.target NetworkManager.service DefaultDependencies=no [Service] Type=oneshot RemainAfterExit=yes ExecStart=/usr/lib/systemd/scripts/nfs-utils_env.sh
Salvare premendo i tasti Ctrl+O e chiudere premendo i tasti Ctrl+X
Ulteriori risorse