Configuration NFS sur Linux

Publié le 07 novembre 2008 par Crocodanser

Dans cet article, nous allons voir comment mettre en place du NFS entre deux serveurs linux.

Quelques définitions :

NFS : Le NFS permet de monter un système de fichier appartenant à un serveur sur un autre via le réseau IP.

Portmap : Portmap est un logiciel daemon sous Unix/Linux qui convertit les numéros de programmes RPC en numéros de port logiciel DARPA.Son but initial était de limiter le nombre de ports utilisés, mais il a eu peu de succès et n'est plus utilisé que pour NFS (partage de fichiers)FAM (moniteur de modification de fichier)NIS, logiciel d'annuaire devenu pratiquement obsolète).

Pré-requis :

Coté Client :

Portmap doit être installé

Le service netfs doit être démarré automatiquement (voir la section Problèmes possibles pour vérifier)

Coté Serveur :

Portmap doit être installé

nfs-utils doit être installé

Mise en oeuvre :

Coté Serveur :

Nous devons configurer le fichier /etc/exports pour définir ce que nous voulons PARTAGER et avec QUI!!

Il se présente comme ça :

exemple:

/backup 10.0.0.0/255.255.255.248(rw,sync)

/backup2 10.0.0.24(ro,async)

Ici, le FS /backup sera accessible à partir du réseau 10.0.0.0/29 en lecture et écriture. /backup2 sera accessible à partir du host 10.0.0.24 en lecture seulement.

Pour forcer l'export : Pour rafraichir ce qui est exporter ( après modification du fichier /etc/exports) : Pour stopper l'export : Démarrer le service nfs :

/sbin/service nfs start

Redémarrer le service nfs :

/sbin/service nfs restart

démarrer le service portmap :

service portmap start

Coté Client :

Vérifiez que le service portmap est bien démarré :

service portmap status

S'il n'est pas démarré, démarrez-le.

Tester le nfs :

mount -t nfs ip_serveur:fs_exporter point_de_montage

exemple :

mount -t nfs 10.0.0.1:/backup /mnt/backup

Ici, on monte /backup qui a été exporté sur le serveur 10.0.0.1 sur le point de montage /mnt/backup. /mnt/backup doit existé. Si ce n'est pas le cas, créé le avec :

mkdir /mnt/backup

Automatiser le montage au démarrage du client :

Editez le fichier /etc/fstab et ajoutez les lignes correspondant à votre point de montage de cette manière :

Exemple :

10.0.0.1:/backup /mnt/backup nfs rsize=8192,wsize=8192,timeo=14,intr 0 0

j'ai ajouté les options rsize=8192,wsize=8192,timeo=14,intr pour :

rsize=8192 and wsize=8192 : permet de gagner en rapidité pour le transfert en lecture et écriture.

timeo=14 permet de specifié un nombre de seconde avant qu'une erreur soit reportée.

intr permet de pouvoir interrompre une session nfs lorsqu'elle est bloquée.

Tester l'entrée ajoutée dans /etc/fstab :

mount /mnt/backup

Problèmes possibles :

Montage NFS bloque :

Portmap n'est pas installé ou démarré. Généralement, ce problème est difficilement détectable car il n'y a pas de messages d'erreur dans les logs.

Autre problème possible dans ce cas, si vous avez un pare-feu entre ou sur une des machines (serveur et/ou client), veillez à ouvrir les ports adéquat pour la communication NFS.

Les montages nfs ne montent pas après redémarrage :

Le service netfs n'est pas démarré. Vérifiez qu'il démarre bien automatiquement avec le chkconfig :

[root@linux]# chkconfig -list | grep netfs
netfs 0:off 1:off 2:off 3:off 4:off 5:off 6:off

Si vous avez cela, c'est que le service netfs ne démarre pas automatiquement. Pour y remédier :

[root@linux]# chkconfig -level 345 netfs on

[root@linux]# chkconfig -list | grep netfs
netfs 0:off 1:off 2:off 3:on 4:on 5:on 6:off

Message d'erreur dans /var/log/messages:

Si vous avez ce type de message coté serveur :

Nov 4 15:03:51 linux1 rpc.mountd: Fake hostname linux1.olivier-legras.fr for 172.17.2.3 - forward lookup doesn't match reverse

Vous devez vérifier la zone inverse correspondant à l'adresse ip du client. Il faut que le nom du serveur au niveau dns corresponde à l'hostname du client.

Auteur de ce Blog, je partage quelques unes de mes notes que je juge utile à vous comme à moi. Je suis très heureux de voir que mon blog a de plus en plus d'affluence. Merci à vous!