Questa guida spiega come configurare un server NFS e un client NFS su Scientific Linux 6.3. NFS sta per File System di rete; tramite NFS, un client può accedere (leggere, scrivere) una condivisione remota su un server NFS come se fosse sul disco rigido locale.
1 Nota preliminare
Sto usando due sistemi Scientific Linux qui:
- Server NFS:server.example.com, indirizzo IP:192.168.0.100
- Client NFS:client.example.com, indirizzo IP:192.168.0.101
2 Installazione di NFS
server:
Sul server NFS eseguiamo:
yum install nfs-utils nfs-utils-lib
Quindi creiamo i collegamenti di avvio del sistema per il server NFS e lo avviamo:
chkconfig --levels 235 nfs on
/etc/init.d/nfs start
cliente:
Sul client possiamo installare NFS come segue (questo è in realtà lo stesso che sul server):
yum install nfs-utils nfs-utils-lib
3 Esportazione di directory sul server
server:
Vorrei rendere accessibili al client le directory /home e /var/nfs; quindi dobbiamo "esportarli" sul server.
Quando un client accede a una condivisione NFS, ciò accade normalmente come l'utente nessuno. Di solito la directory /home non è di proprietà di nessuno (e non consiglio di cambiarne la proprietà a nessuno!), e perché vogliamo leggere e scrivere su /home, diciamo a NFS che gli accessi dovrebbero essere effettuati come root (se la nostra condivisione /home fosse di sola lettura, questo non sarebbe necessario). La directory /var/nfs non esiste, quindi possiamo crearla e cambiarne la proprietà; nei miei test l'utente e il gruppo nessuno avevano entrambi l'ID 99 su entrambi i miei sistemi di test Scientific Linux (server e client); quando ho provato a scrivere in /var/nfs dal client NFS, ho ricevuto un errore di autorizzazione negata, quindi ho eseguito un chmod 777 /var/nfs in modo che tutti potessero scrivere in quella directory; la scrittura in /var/nfs dal client ha funzionato e sul client i file scritti in /var/nfs sembravano essere di proprietà dell'utente e del gruppo nessuno, ma sul server erano di proprietà dell'utente (non esistente) e del gruppo con l'ID 65534; quindi ho cambiato la proprietà di /var/nfs con l'utente/gruppo 65534 sul server e ho cambiato i permessi di /var/nfs su 755, e voilà, il client è stato autorizzato a scrivere su /var/nfs:
mkdir /var/nfs
chown 65534:65534 /var/nfs
chmod 755 /var/nfs
Ora dobbiamo modificare /etc/exports dove "esportiamo" le nostre condivisioni NFS. Specifichiamo /home e /var/nfs come condivisioni NFS e diciamo a NFS di accedere a /home come root (per saperne di più su /etc/exports, il suo formato e le opzioni disponibili, dai un'occhiata a
man 5 exports
)
vi /etc/exports
/home 192.168.0.101(rw,sync,no_root_squash,no_subtree_check) /var/nfs 192.168.0.101(rw,sync,no_subtree_check) |
(L'opzione no_root_squash fa in modo che /home sarà accessibile come root.)
Ogni volta che modifichiamo /etc/exports, dobbiamo eseguire
exportfs -a
successivamente per rendere effettive le modifiche.
4 Montaggio delle condivisioni NFS sul client
cliente:
Per prima cosa creiamo le directory in cui vogliamo montare le condivisioni NFS, ad esempio:
mkdir -p /mnt/nfs/home
mkdir -p /mnt/nfs/var/nfs
Successivamente, possiamo montarli come segue:
mount 192.168.0.100:/home /mnt/nfs/home
mount 192.168.0.100:/var/nfs /mnt/nfs/var/nfs
Ora dovresti vedere le due condivisioni NFS negli output di
df -h
[[email protected] ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_server2-LogVol00
9.7G 1.7G 7.5G 18% /
tmpfs 499M 0 499M 0% /dev/shm
/dev/sda1 504M 39M 440M 9% /boot
192.168.0.100:/home 9.7G 1.7G 7.5G 19% /mnt/nfs/home
192.168.0.100:/var/nfs
9.7G 1.7G 7.5G 19% /mnt/nfs/var/nfs
[[email protected] ~]#
e
mount
[[email protected] ~]# mount
/dev/mapper/vg_server2-LogVol00 on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
/dev/sda1 on /boot type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
192.168.0.100:/home on /mnt/nfs/home type nfs (rw,vers=4,addr=192.168.0.100,clientaddr=192.168.0.101)
192.168.0.100:/var/nfs on /mnt/nfs/var/nfs type nfs (rw,vers=4,addr=192.168.0.100,clientaddr=192.168.0.101)
[[email protected] ~]#
5 Test
Sul client, ora puoi provare a creare file di test sulle condivisioni NFS:
cliente:
touch /mnt/nfs/home/test.txt
touch /mnt/nfs/var/nfs/test.txt
Ora vai al server e controlla se riesci a vedere entrambi i file di prova:
server:
ls -l /home/
[[email protected] ~]# ls -l /home/
total 0
-rw-r--r-- 1 root root 0 Dec 11 16:58 test.txt
[[email protected] ~]#
ls -l /var/nfs
[[email protected] ~]# ls -l /var/nfs
total 0
-rw-r--r-- 1 nfsnobody nfsnobody 0 Dec 11 16:58 test.txt
[[email protected] ~]#
(Si prega di notare le diverse proprietà dei file di test:si accede alla condivisione NFS /home come root, quindi /home/test.txt è di proprietà di root; si accede alla condivisione /var/nfs come nessuno/65534, quindi /var/ nfs/test.txt è di proprietà di 65534.)
6 Montaggio di condivisioni NFS all'avvio
Invece di montare manualmente le condivisioni NFS sul client, puoi modificare /etc/fstab in modo che le condivisioni NFS vengano montate automaticamente all'avvio del client.
cliente:
Apri /etc/fstab e aggiungi le seguenti righe:
vi /etc/fstab
[...] 192.168.0.100:/home /mnt/nfs/home nfs rw,sync,hard,intr 0 0 192.168.0.100:/var/nfs /mnt/nfs/var/nfs nfs rw,sync,hard,intr 0 0 |
Invece di
man nfs
Per verificare se il tuo /etc/fstab modificato funziona, riavvia il client:
reboot
Dopo il riavvio, dovresti trovare le due condivisioni NFS negli output di
df -h
[[email protected] ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_server2-LogVol00
9.7G 1.7G 7.5G 18% /
tmpfs 499M 0 499M 0% /dev/shm
/dev/sda1 504M 39M 440M 9% /boot
192.168.0.100:/home 9.7G 1.7G 7.5G 19% /mnt/nfs/home
192.168.0.100:/var/nfs
9.7G 1.7G 7.5G 19% /mnt/nfs/var/nfs
[[email protected] ~]#
e
mount
[[email protected] ~]# mount
/dev/mapper/vg_server2-LogVol00 on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
/dev/sda1 on /boot type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
192.168.0.100:/home on /mnt/nfs/home type nfs (rw,sync,hard,intr,vers=4,addr=192.168.0.100,clientaddr=192.168.0.101)
192.168.0.100:/var/nfs on /mnt/nfs/var/nfs type nfs (rw,sync,hard,intr,vers=4,addr=192.168.0.100,clientaddr=192.168.0.101)
[[email protected] ~]#
7 link
- Linux NFS:http://nfs.sourceforge.net/
- Linux scientifico:https://www.scientificlinux.org/