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).
Viene mostrato un esempio in cui la cartella /home di un computer che funge da server, viene condivisa con un computer che farà da 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.server(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 chiunque 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 12.04 e 14.04:
sudo exportfs -a
sudo service nfs-kernel-server start
Il server sarà ora pronto a condividere la cartella /home. Nei successivi riavvi il servizio verrà avviato automaticamente.
su Ubuntu 16.04 e successivi:
sudo systemctl restart nfs-kernel-server
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. Ad es. dal client viene eseguito nel seguente modo:
showmount -e 192.168.0.20
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 12.04 e 14.04
Sarà sufficiente inserire nel file /etc/fstab una stringa di questo tipo:
192.168.1.10:/home /mnt/nfs/home nfs rw,user,auto 0 0
Salvare e chiudere il file /etc/fstab
Per rendere effettiva la modifica digitare nel terminale i seguenti comandi:
sudo umount -a
sudo mount -a
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 nfs auto,nofail,noatime,nolock,intr,actimeo=1800 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