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

8. FAQ

Voici la section FAQ. Elle est en partie basée sur une vieille FAQ NFS écrite par Alan Cox.

Si vous avez un problème pour monter un système de fichier, voyez si votre problème est décrit dans la section ``Checklist mount''.

  1. J'obtiens un tas d'erreurs ``stale nfs handle'' quand j'utilise Linux comme serveur NFS.

    Cela est dû à une bogue dans quelques vieilles versions de nfsd. Elle est corrigée à partir de nfs-server2.2beta16.

  2. Quand j'essaye de monter le système de fichiers j'obtiens
     can't register with portmap: system error on send
    

    Vous utilisez probablement un système Caldera. Il y a une bogue dans les scripts rc. Contactez Caldera pour obtenir la solution.

  3. Pourquoi ne puis-je pas exécuter un fichier après l'avoir copié sur le serveur NFS ?

    La raison est que nfsd cache les manipulations de fichiers pour des raisons de performances (rappelons qu'il fonctionne dans l'espace utilisateur). Ainsi, après une écriture le fichier peut ne pas être fermé tout de suite, et tant qu'il est ouvert le noyau ne vous autorisera pas à l'exécuter. Les nfsd plus récents que le printemps 95 [Ndt : hum...] ferment les fichiers ouverts après quelques secondes, les plus vieux pouvaient ne pas les relâcher avant plusieurs jours...

  4. Mes fichiers NFS sont tous en lecture seule.

    Le serveur NFS Linux est par défaut en lecture seule. Voyez les sections ``Mountd et nfsd'' et ``Exporter des systèmes de fichier'' dans ce HOWTO et référez vous aux pages de manuel ``exports'' et ``nfsd''. Vous devrez modifier /etc/exports.

  5. Je monte depuis un serveur NFS Linux, ls marche et pourtant je ne peux pas lire ou écrire de fichiers.

    Sur les anciennes versions de Linux il faut monter un serveur NFS avec rsize=1024, wsize=1024.

  6. Je monte depuis un serveur NFS Linux avec une taille de bloc comprise entre 3500 et 4000 et Linux crashe régulièrement.

    Bah alors ne le faites pas. Cela ne se produit pas avec les noyaux 2.0 et 2.2 ni, autant que je sache avec les 1.2.

  7. Est-ce que Linux peut utiliser NFS sur TCP ?

    Non, pas pour le moment.

  8. J'ai des tonnes d'erreurs bizarres en essayant de monter depuis un serveur Linux.

    Assurez-vous que vos utilisateurs sont dans 8 groupes au maximum. C'est une limitation des vieux serveurs.

  9. Quand je redémarre ma machine elle se bloque parfois en essayant de démonter un serveur NFS bloqué (hung).

    Ne démontez pas les serveurs NFS en redémarrant ou arrêtant la machine, ça ne créera pas de problèmes si vous ne le faites pas. La commande est umount -avt nonfs.

  10. Les clients NFS Linux sont très lents quand ils écrivent sur des systèmes Sun ou BSD.

    Normalement les écritures NFS sont synchrones (vous pouvez le désactiver si vous ne craignez pas de perdre des données). Les noyaux dérivés de BSD ont tendance à ne pas savoir travailler avec des petits blocs. Ainsi quand vous écrivez 4K de données depuis un client Linux dans des paquets de 1K, BSD fait ceci :

     lit une page de 4K
     traite 1K
     écrit 4K sur le disque
     lit une page de 4K
     traite 1K
     écrit 4K sur le disque
     ...
    

  11. Quand je connecte de nombreux clients à un serveur NFS Linux, la performance diminue soudainement.

    Le protocole NFS utilise les paquets UDP fragmentés. Le noyau ne conserve qu'un nombre limité de fragments de paquets incomplets avant de commencer à jeter des paquets. En 2.2, ce paramètre est réglable à l'exécution au moyen du système de fichier /proc : /proc/sys/net/ipv4/ipfrag_high_tresh et ipfrag_low_tresh. En 2.0 ce sont des constantes définies à la compilation dans .../linux/net/ipv4/ip_fragment.c, IPFRAG_HIGH_TRESH et IPFRAG_LOW_THRESH. La signification des ces valeurs est que quand la mémoire consommée par les fragments UDP non réassemblés atteint ``ipfrag_high_thresh'' (en octets, 256K par défaut en 2.2.3 et 2.0.36) elle est ramenée à ``ipfrag_low_tresh'' d'un coup, en jetant des fragments. Ainsi, si la borne supérieure (high_tresh) est atteinte, la performance de votre serveur diminue drastiquement.

    256K est suffisant pour 30 clients. Si vous en avez 60, doublez la valeur. Et doublez aussi la borne inférieure (low_tresh).

  12. J'utilise Linux 2.2 (ou suivant) avec knfsd et ma machine AIX, IRIX, Solaris, DEC-Unix, ... n'arrive pas à monter de volume.

    knfsd annonce qu'il implémente NFS version 3, alors que ce n'est pas vrai. Utilisez l'option qui permet de stopper ces annonces, ou mettez "vers=2" dans la liste d'options de montage de votre client.

  13. Ma machine AIX 4 n'arrive pas à monter depuis mon serveur NFS Linux. Elle dit quelque chose du genre :
     mount: 1831-011 access denied for server:/dir
     mount: 1831-008 giving up on:
     server:/dir
     The file access permissions do not allow the specified action.
    

    AIX 4.2 utilise des ports réservés (<1024) pour NFS. AIX 4.2.1 et 4.3 peuvent utiliser d'autres ports, et essaient de monter par NFS3, NFS/TCP et finalement NFS/UDP.

    Ajouter


    nfso -o nfs_use_reserved_ports=1
    

    à la fin de rc.tcpip la forcera à utiliser les ports réservés (truc fourni par Brian Gorka).


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