Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati


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

  1. Installare il pacchetto nfs-kernel-server.

  2. 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.

  3. Salvare e chiudere il file /etc/exports.

  4. 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

  1. Installare il pacchetto nfs-common.

  2. 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

  1. Aprire con i privilegi di amministrazione e con un editor di testo il file /etc/fstab.

  2. 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.

  1. 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.
  2. Digitare nel terminale:

    sudo systemctl edit --full nfs-config.service
  3. 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
  4. Salvare premendo i tasti Ctrl+O e chiudere premendo i tasti Ctrl+X

Ulteriori risorse


CategoryServer CategoryDaRevisionare