Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati
  • Differenze per "Server/Nfs"
Differenze tra le versioni 1 e 18 (in 17 versioni)
Versione 1 del 06/04/2007 20.12.03
Dimensione: 3775
Commento:
Versione 18 del 27/08/2016 23.15.29
Dimensione: 6826
Autore: jeremie2
Commento: Opzione di mount alternativa per 16.04
Le cancellazioni sono segnalate in questo modo. Le aggiunte sono segnalate in questo modo.
Linea 1: Linea 1:
## page was renamed from GuidaNfsServer
[[BR]]
||<tablestyle="float:right; font-size: 0.9em; width:40%; background:#F1F1ED; margin: 0 0 1em 1em;" style="padding:0.5em;">'''Indice'''[[BR]][[TableOfContents]]||
= Guida alla configurazione di un server NFS =
#format wiki
#LANGUAGE it
<<BR>>
<<Indice(depth=3)>>
<<Informazioni(forum="http://forum.ubuntu-it.org/viewtopic.php?f=46&t=123305";rilasci="12.04 14.04 16.04")>>
Linea 6: Linea 7:
== Che cos'è NFS e come funziona == = Introduzione =
Linea 8: Linea 9:
NFS sta per Network File System e indica un file system distribuito , ovvero condiviso fra un certo numero di nodi di una rete. 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).<<BR>>
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.
Linea 10: Linea 12:
Alla base di questa tecnica c'è la necessità di accedere e lavorare sulle proprie risorse anche se non si è davanti al proprio computer. Si presume che gli indirizzi IP dei computer siano stati impostati o manualmente o, in presenza del [[https://it.wikipedia.org/wiki/Dynamic_Host_Configuration_Protocol|DHCP]], impostati direttamente nel router. Nell'esempio i computer avranno i rispettivi indirizzi IP:
 * '''server''': 192.168.0.20
 * '''client''': 192.168.0.40
Linea 12: Linea 16:
La delocalizzazione delle informazioni porta tuttavia con sè tutta una serie di problematiche , prima delle quali vi è la coerenza dello stato delle informazioni ed il controllo della sincronizzazione delle modifiche effettuate (poichè UNIX è un sistema operativo multiutente ad un dato istante di tempo N utenti possono tentare di accedere in scrittura ad uno stesso file). = Server =
Linea 14: Linea 18:
 0. [[AmministrazioneSistema/InstallareProgrammi|Installare]] il pacchetto [[apt://nfs-kernel-server|nfs-kernel-server]].
 0. Aprire con i [[AmministrazioneSistema/Sudo|privilegi di amministrazione]] e con un [[Ufficio/EditorDiTesto|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 qualsiasi client occorre sostituire l'indirizzo IP con l'asterisco '''*'''
 ||<tablestyle="text-align: justify; width:100%;" style="border:none;" 5%><<Immagine(Icone/Grandi/info.png,,center)>> ||<style="padding:0.5em; border:none;"> Per un ulteriore livello di sicurezza è possibile configurare opportunamente il file [[http://nfs.sourceforge.net/nfs-howto/ar01s03.html#config_server_setup|/etc/hosts.allow]].||
 0. Salvare e chiudere il file `/etc/exports`.
 0. Per attivare la condivisione digitare i seguenti comandi nel [[AmministrazioneSistema/RigaDiComando|terminale]]:
  * su '''Ubuntu 12.04 e 14.04''':{{{
sudo exportfs -a
}}}{{{
sudo service nfs-kernel-server start
}}}
  * 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.
Linea 15: Linea 41:
== Installazione == = Client =
Linea 17: Linea 43:
Digitare al prompt dei comandi :

{{{
#sudo apt-get -y install nfs-kernel-server
 0. [[AmministrazioneSistema/InstallareProgrammi|Installare]] il pacchetto [[apt://nfs-common|nfs-common]].
 0. Creare una cartella nella quale verrà montata la cartella condivisa sul server per poter accedere ai dati in essa contenuti. Digitare nel [[AmministrazioneSistema/RigaDiComando|terminale]]:{{{
sudo mkdir -p /mnt/nfs/home
Linea 23: Linea 48:
questo installerà il supporto per nfs lato kernel (molto + veloce di quello user mode anche se un problema di sicurezza in questo pacchetto è + grave...). == Montaggio manuale ==
Linea 25: Linea 50:
A questo punto passiamo al paragrafo seguente.

== Configurazione di NFS lato server ==

Il pacchetto necessario per il setup del servizio NFS di file system distribuito su Linux è :

'''nfs-kernel-server'''

che viene gestito con i comandi da shell
{{{
/etc/init.d/nfs-kernel-server start|stop|restart|status
 * Occorre digitare un comando da [[AmministrazioneSistema/RigaDiComando|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
Linea 38: Linea 63:
I servizi correlati con nfs sono : == Montaggio automatico all'avvio ==
Linea 40: Linea 65:
 * '''/sbin/portmap'''

gestibili con il comando
{{{
/etc/init.d/portmap start | stop | restart
 0. Aprire con i [[AmministrazioneSistema/Sudo|privilegi di amministrazione]] e con un [[Ufficio/EditorDiTesto|editor di testo]] il file `/etc/fstab`.
 0. 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
Linea 47: Linea 70:
 * '''/etc/init.d/nfs-common''' === Ubuntu 12.04 e 14.04 ===
Linea 49: Linea 72:
 * '''/etc/init.d/nfs-kernel-server'''

Il file di configurazione lato server è '''/etc/exports''' la cui sintassi è della seguente forma :

{{{
<directory da esportare> <host a cui esportarla>(<permissions>)
 0. 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
}}}
 ||<tablestyle="text-align: justify; width:100%;" style="border:none;" 5%><<Immagine(Icone/Grandi/info.png,,center)>> ||<style="padding:0.5em; border:none;">I parametri utilizzati permettono l'accesso in scrittura e il montaggio/smontaggio tramite i comandi '''mount'''/'''umount'''. Una panoramica completa dei parametri esistenti è disponibile attraverso i comandi '''man nfs''' e '''man mount'''.||
 0. Salvare e chiudere il file `/etc/fstab`
 0. Per rendere effettiva la modifica digitare nel [[AmministrazioneSistema/RigaDiComando|terminale]] i seguenti comandi:{{{
sudo umount -a
}}}{{{
sudo mount -a
Linea 57: Linea 83:
Un esempio è il seguente :
   
{{{
/home/administrator *.pascal.org(ro)
=== Ubuntu 16.04 e successivi ===

Con l'introduzione di [[https://it.wikipedia.org/wiki/Systemd|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.<<BR>>
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 [[https://bugs.launchpad.net/ubuntu/+source/nfs-utils/+bug/1577120/comments/7|/etc/fstab]] e la modifica di [[https://bugs.launchpad.net/ubuntu/+source/nfs-utils/+bug/1577120/comments/4|nfs-config.service]].

 0. Una volta aperto il file `/etc/fstab` con i [[AmministrazioneSistema/Sudo|privilegi di amministrazione]] e con un [[Ufficio/EditorDiTesto|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.
 0. Digitare nel [[AmministrazioneSistema/RigaDiComando|terminale]]:{{{
sudo systemctl edit --full nfs-config.service
Linea 62: Linea 94:
 0. 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
Linea 63: Linea 100:
questo dice al server NFS di permettere a tutti i clients del dominio pascal.org di accedere al filesystem in '''/home/administrator''' in modalità di sola lettura [Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/lib/systemd/scripts/nfs-utils_env.sh
}}}
 0. Salvare premendo i tasti '''Ctrl+O''' e chiudere premendo i tasti '''Ctrl+X'''
Linea 65: Linea 107:
Il comando da usare per esaminare i fs montati è : = Ulteriori risorse =
Linea 67: Linea 109:
{{{
#showmount
}}}

Per aumentare la sicurezza e la protezione del vostro server NFS dovrete Definire la protezione servizi RPC lato server nel modo seguente :

Nel file '''/etc/hosts.allow'''

Il formato di questo file è il seguente :
{{{
Programma:hosts:permissions
}}}

Ad esempio :
 
{{{
portmap:ALL EXCEPT .org:DENY
}}}

Nega a tutti gli hosts tranne quelli del dominio org l'accesso via RPC al file system distribuito NFS.

== Configurazione dei clients ==

Il client che voglia accedere ad una risorsa NFS deve soltanto decidere come montare tale risorsa , se manualmente tramite il comando '''mount''' oppure automaticamente ad ogni avvio inserendo mount point e host nel file '''/etc/fstab'''.

Personalmente non consiglio quest'ultima soluzione poichè anche cercando di ottimizzare si va incontro a notevoli problemi di stabilità e sicurezza dei propri sistemi.

Come montare le risorse esportate :

Ad Es : host B vuole temporaneamente montare la dir /home/administrator condivisa da host A sul suo fs locale /media/exported

Il Comando su host B :
{{{
#mount -t nfs hostA:/home/administrator /media/exported
}}}

Come fare se '''hostB''' vuole montare sempre al boot la dir remota condivisa da '''hostA'''?

Modificare il file '''/etc/fstab''' su hostB aggiungendo la seguente riga :

{{{
hostA:/home/administrator /media/exported nfs ro 0 0
}}}
.



Autore : Cristiano Valli
 * [[http://nfs.sourceforge.net/|Sito ufficiale]]
 * [[http://nfs.sourceforge.net/nfs-howto/index.html|Documentazione ufficiale]]
Linea 117: Linea 113:
CategoryServer CategoryNuoviDocumenti
CategoryServer


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.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 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 12.04 e 14.04:

      sudo exportfs -a
      sudo service nfs-kernel-server start
    • 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 12.04 e 14.04

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

    I parametri utilizzati permettono l'accesso in scrittura e il montaggio/smontaggio tramite i comandi mount/umount. Una panoramica completa dei parametri esistenti è disponibile attraverso i comandi man nfs e man mount.

  2. Salvare e chiudere il file /etc/fstab

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

  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