NFS: esempi
NFS |
Sommario |
|
In questa pagina si mostreranno alcuni esempi pratici sull'utilizzo di NFS.
LAN e autofs
L'esempio che segue presuppone una configurazione della propria LAN di questo tipo:
- NFS4
- Client e server Debian
- IP Server = 192.168.1.1
- IP Client1 = 192.168.1.10
- IP Client2 = 192.168.1.11
- Mount con autofs (metodo (dinamico)
- Risoluzione dei nomi attraverso il file
/etc/hosts
- La directory da esportare tramite NFS sarà, sul server,
/home/nfs/
/etc/hosts
Le macchine della LAN avranno un nome di dominio fittizio, in questo caso sarà "mialan". Modificare di conseguenza il file /etc/hosts
:
- Server
192.168.1.1 nomeserver.mialan nomeserver
- Client1
192.168.1.10 nomeclient1.mialan nomeclient1
- Client2
192.168.1.11 nomeclient2.mialan nomeclient2
I nomi delle macchine (nomeserver, nomeclient1 e nomeclient2) sono tipicamente già presenti all'interno del file, altrimenti ricavarle con il comando:
$ hostname
Configurazione server
Tutti i passi seguenti richiedono i permessi di amministratore del server.
- Installare il pacchetto "nfs-kernel-server":
# apt-get install nfs-kernel-server
- Creare la directory da condividere:
# mkdir /home/nfs
Si noti che la directory appena creata dall'utente "root" ha permessi "755" per cui un normale utente non ha su di essa il permesso di scrittura. Questa situazione può essere risolta in due modi:
- Si modificano i permessi della directory in "777" (o "757")
- Si crea un nuovo gruppo e si fa in modo che la directory abbia permessi "775" e proprietari root/nuovogruppo
In questo esempio verrà percorsa questa seconda strada. - Creare un nuovo gruppo, ad esempio "nfs-users":
# addgroup nfs-users
Modificare i permessi della directory da condividere:# chmod 775 /home/nfs
e infine modificarne i proprietari:# chown root:nfs-users /home/nfs
- Aggiungere tutti gli utenti che si desiderano al nuovo gruppo appena creato. Per l'utente "nomeutente1":
# adduser nomeutente1 ftp-users
Da questo momento in poi (previo un suo logout se l'utente è collegato al server) "nomeutente1" avrà i permessi per scrivere all'interno della directory "/home/nfs". - Modificare il file "/etc/exports" aggiungendovi la seguente riga per rendere condivisibile la directory
/home/nfs
:/home/nfs 192.168.1.0/24(rw,fsid=0,no_subtree_check,crossmnt,sync)
Da questo momento la directory/home/nfs
sarà la "radice" delle risorse esportate. - Modificare i file
/etc/default/nfs-common
e/etc/default/nfs-kernel-server
come già spiegato qui. - Modificare il file
/etc/idmapd.conf
specificando il dominio fittizio scelto e aggiungendo questa riga (o decommentando/modificando la riga con la direttiva "Domain"):Domain = mialan
- Riavviare i servizi:
# service nfs-common restart # service nfs-kernel-server restart
Configurazione client
La configurazione che segue è per un solo client. Per altri gli client la procedura è analoga.
- Installare i pacchetti "nfs-common" e "autofs5":
# apt-get install nfs-common autofs5
- Modificare i file
/etc/default/nfs-common
e/etc/idmapd.conf
come spiegato qui. Il fileidmapd.conf
dovrà avere la stessa riga che specifica il dominio fittizio. In questo caso:Domain = mialan
- Riavviare
nfs-common
:# service nfs-common restart
- Creare il file
/etc/auto.nfs
contenente:nfs -fstype=nfs4,hard,intr 192.168.1.1:/
Ciò significa che sul client verrà montata la "radice" (la directory contrassegnata da "fsid=0" sul server) delle risorse condivise tramite NFS e il nome sarà "nfs". - Creare un punto di mount:
# mkdir /home/condivisa
- Modificare il file "/etc/auto.master" aggiungendovi alla fine questa riga:
/home/condivisa /etc/auto.nfs
Ciò vuol dire che il mountpoint sul client sarà/home/condivisa
e al suo interno sarà montata la directory remota con il nome scelto nel fileauto.nfs
. - Riavviare "autofs":
# service autofs restart
- Rendere operativo l'automount:
$ touch /home/condivisa/nfs
Per automatizzare l'eecuzione di questo comando è possibile creare uno script che verrà eseguito ogni volta che viene stabilita una connessione. È sufficiente creare il file/etc/network/if-up.d/my-touch-nfs
con questo contenuto:#!/bin/sh # File creato il ... per rendere operativo il mount dinamico della risorsa NFS attraverso autofs touch /home/condivisa/nfs >/dev/null 2>&1
e renderlo eseguibile:# chmod +x /etc/network/if-up.d/my-touch-nfs