Partage de fichiers avec NFS

Posted by

I) Introduction :

NFS est le protocole standard sous Unix pour partager des fichiers. Pour ce faire, vous devrez compiler la partie concernant NFS dans votre kernel en built-in ou bien en modules dans la section File systems / Network File Systems et sélectionner :

NFS file system support
Provide NFSv3 client support
NFS server support
Provide NFS server support

Ensuite vous devrez installer certains paquetages :
Sous Debian : apt-get install portmap nfs-common nfs-kernel-server
Sous Redhat il vous faudra : nfs-kernel-clients… nfs-server…

II) Configuration du serveur :

Dans une configuration de base, il suffit d’éditer un unique fichier /etc/exports. C’est dans ce fichier que vous définirez les répertoires exportés.

Ce fichier possède la structure suivante :
Point de montage machine1(droits) machine2(droits)
exemple : /usr/local *.elèves.domaine.com(ro) *.professeurs.domaine.com(rw,root_squash) *.cdi.domaine.com(noaccess)

machine1 et machine2 concerne les clients qui seronts autorisés à monter le partage. Les possibilités de configuration sont souples ici. Vous pouvez par exemple avoir :

  • rien
  • un nom de machine : machine.domaine.com
  • son adresse IP : 192.168.1.24
  • un groupe de machine référencé dans un serveur NIS : @nomdugroupe
  • un joker : *.fr.domaine.com
  • un sous-réseau (Adresse réseau + Masque) : 192.168.0.0/255.255.255.0

Les droits peuvent être du type :

  • rw, ro : lecture écriture ou lecture seule.
  • root_squash : le root sur le client est invité sur le serveur .
  • no_root_squash : inverse de la précédente.
  • noaccess : l’accès est interdit pour la machine spécifiée.
  • et certaines autres options que vous trouverez dans la doc comme squash_uid et squash_gid.

On relance les démons :

# /etc/init.d/portmap restart
 # /etc/init.d/nfs-common restart
 # /etc/init.d/nfs-kernel-server restart

On vérifie le fonctionnement du portmapper :

 # rpcinfo -p

vous devriez obtenir quelque chose de la sorte :

    program no_version protocole  no_port
     100000    2   tcp    111  portmapper
     100000    2   udp    111  portmapper
     100024    1   udp  32768  status
     100024    1   tcp  32779  status
     100003    2   udp   2049  nfs
     100003    3   udp   2049  nfs
     100021    1   udp  32770  nlockmgr
     100021    3   udp  32770  nlockmgr
     100021    4   udp  32770  nlockmgr
     100005    1   udp  32771  mountd
     100005    1   tcp  32789  mountd
     100005    2   udp  32771  mountd
     100005    2   tcp  32789  mountd
     100005    3   udp  32771  mountd
     100005    3   tcp  32789  mountd
 

III) Le poste client :

Pour accéder à un partage NFS, on le monte comme n’importe quel système de fichier :

 # mount   serveur:/partage   /point_de_montage

Donc si on reprend l’exemple si dessus nous avons :

 # mount serveur.domaine.com:/usr/local /usr/local

Vous avez aussi la possibilité d’insérez une ligne relative au point de montage dans votre /etc/fstab :

 serveur:/partage    /point_de_montage    nfs    rsize=8192,wsize=8192,timeo=14    0    0

Les options rsize=8192,wsize=8192,timeo=14 servent à optimiser le traffic entre le client et le serveur.

Leave a Reply

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.