Page suivante Page précédente Table des matières

10. NFS sous Linux 2.2

Au moment où j'écris, la version courante du noyau est 2.2.12 et utiliser NFS peut être assez pénible. Ou pas. J'ignore ce qu'il en sera pour Linux 2.4.

La grosse nouveauté dans Linux 2.2 c'est le support d'un serveur nfs dans le noyau, appelé knfsd 2.2. Ce type d'implémentation a des avantages, principalement la rapidité, une machine Linux 2.2 avec knfsd est un serveur NFS respectable. Vous pouvez cependant toujours utiliser l'ancien nfsd avec Linux 2.2, et cela présente quelques avantages aussi, dont la simplicité.

Si vous utilisez un paquetage noyau source ou binaire fabriqué par quelqu'un comme RedHat (6.0 et suivantes), SuSE (6.1 et suivantes il me semble) ou un autre intégrateur de système professionnel ils auront probablement intégré complètement ``knfsd'' et vous n'avez pas de soucis à vous faire, cela marchera. Pour l'essentiel. Jusqu'à ce que vous vouliez compiler un noyau vous même. Si vous utilisez un noyau 2.2 standard (au moins jusqu'à 2.2.12) knfsd ne fonctionnera pas.

Pour le faire fonctionner vous même il vous faut le paquetage knfsd de H.J. Lu. C'est un ensemble de patchs avec les utilitaires requis pour 2.2 que Lu maintient bénévolement. Récupérez le depuis votre miroir de noyau local, le site maître est ftp.kernel.org:/pub/linux/devel/gcc/. Ce n'est pas destiné au grand public. Si vous trouvez que c'est trop compliqué, n'insistez pas et attentez qu'un paquetage noyau soit disponible auprès de votre intégrateur (Redhat, SuSE...).

Ne m'envoyez pas de question à ce sujet, je ne peux pas vous aider, je n'ai aucun serveur basé sur knfsd qui tourne. Si vous trouvez des erreurs ou omissions dans la documentation, écrivez-moi et je corrigerai ce HOWTO.

Toujours là ? Ok. H.J. Lu annonce les nouvelles versions de son paquetage sur la liste de diffusion linux-kernel, où il passe d'autres choses liées à NFS dans Linux 2.2. Lisez-la.

10.1 Le client

Le client est presque simple. Afin que les verrous (locks) marchent correctement il faut que statd (du paquetage knfsd) soit compilé, installé et lancé depuis vos scripts de démarrage. Statd a besoin d'un répertoire appelé /var/lib/nfs qu'il vous faudra créer avant de le lancer (sans quoi il se termine immédiatement sans message d'erreur).

Une fois que statd tourne vous pouvez utiliser le programme testlk (dans tools/locktest) pour tester si un verrou sur un fichier d'un volume monté par NFS fonctionne. Ça devrait. S'il affiche No locks available, statd ne fonctionne pas.

En fait, vous pouvez aussi vous passer des verrous (ce que je ne recommande pas) en mettant "nolock" dans la liste des options de montage.

Autant que je sache, c'est tout ce qu'il faut pour faire fonctionner correctement le client.

Ah, si vous avez un serveur NFS Alpha ou Sparc vous verrez que le client nfs de Linux 2.2 est vraiment de la merde. Les débits sont extrêmement faibles, bien pire qu'avec Linux 2.0. Bien sur on peut corriger le problème. Les noyaux 2.2 d'Alan Cox (un petit peu plus expérimentaux que ceux de Linus) incluent un patch pour améliorer la performance du client 2.2 avec un serveur Alpha ou Sparc. Si vous voulez utiliser les noyaux d'Alan Cox, vous devriez lire la liste de diffusion linux-kernel, et si c'est le cas vous savez où les trouver. Le site de référence est http://www.uio.no/~trondmy/src/, au cas où vous voudriez essayer de l'appliquer à un noyau 2.2 standard. Ce patch ne sera probablement pas intégré dans Linux 2.4, car il demande trop de changements dans le noyau pour être accepté dans le cycle de développement actuel. Attendez Linux 2.5.

trondmy propose des patchs pour utiliser NFS version 3 avec Linux, et qui permettent aussi d'utiliser TCP comme mécanisme de transport au lieu d'UDP. NFSv3 est très bien pour des réseaux grande distance ou avec des taux de pertes non nuls, ou des temps de latence élevés.

Si vous utilisez ces patchs, il vous faut lire linux-kernel, car de sales bugs, qui mangent vos fichiers, sont parfois découverts. Alors soyez prudent.

10.2 Le serveur

Le serveur NFS de Linux 2.2 et suivants est appelé "knfsd". Il est difficile à configurer. Il faudra vous débrouiller tout seul ou utiliser ce que SuSE, RedHat et autres fournissent dans leurs paquetages 2.2. Désolé, mais vous pouvez toujours utiliser l'ancien nfsd. Il est lent mais facile à installer.


Page suivante Page précédente Table des matières