Nous avons un partage NFS 4, partageant un volume entre un certain nombre de serveurs (serveur NFS et clients tous Debian 8). Nous avons récemment rencontré des problèmes où des pannes de réseau gèlaient les systèmes clients.
Nos options NFS étaient minimes, juste rw
(et donc les valeurs par défaut hard
, fg
, etc.).
J'expérimente maintenant avec ces options, mais je n'obtiens pas le comportement que j'attends: rw,soft,bg,retrans=6,timeo=150
(J'ai augmenté les retransmissions pour compenser une partie du risque faible)
La procédure que je suis en train de tester est:
cd
à /mnt/mountpoint
cd /
ifdown eth0
cd
à /mnt/mountpoint
ls
À ce stade, la ligne de commande se bloque et je ne peux pas l'interrompre. Après un certain temps, le message 'nfs: server [servername] ne répond pas, chronométré out`, qui semble se répéter une fois par minute (indéfiniment).
Ce que j'aimerais/m'attends à ce que l'opération échoue et que je revienne au contrôle.
S'il vous plaît quelqu'un pourrait-il me dire où je me trompe avec ces paramètres?
(PS: j'ai également essayé de monter avec des autofs, mais j'ai vu un comportement similaire)
Je vous remercie
intr
devrait vous permettre de reprendre le contrôle lorsque vous appuyez sur ^C
, mais généralement pas immédiatement.
intr If an NFS file operation has a major timeout and it is hard mounted, then allow signals to interupt the file operation and cause it to return EINTR to the calling program. The default is to not allow file operations to be interrupted.
Comme vous le dites, les attentes sont le problème ici. Les problèmes de réseau peuvent être temporaires, mais l'échec d'une opération est permanent. Par conséquent, la plupart des opérations par défaut sont simplement bloquées jusqu'à la fin de l'opération.
Ceci est la réponse standard, mais en regardant une page de manuel actuelle, je vois ceci:
The intr / nointr mount option is deprecated after ker- nel 2.6.25. Only SIGKILL can interrupt a pending NFS operation on these kernels, and if specified, this mount option is ignored to provide backwards compatibility with older kernels.
Donc, il ne me semble pas que ce soit un problème NFS3/NFS4, mais une décision sur le fonctionnement de intr
. Vous devriez donc pouvoir KILL
le processus, mais cela peut ne pas vous donner beaucoup d'utilité.
Je n'ai pas pu trouver la discussion sur la raison pour laquelle l'option a été supprimée. Pouvez-vous tuer -KILL votre processus?
Une partie de ma réponse est une opinion, basée sur l'expérience. Là où j'ai des faits, je vais (essayer de m'en souvenir) les relier.
soft
dans presque toutes les circonstances. Il permet aux données d'être rejetées en cas d'erreur . Je suggère plutôt hard,intr
.intr
n'est pas valide pour NFS 4, mais il semble que ce soit changement de noya plutôt que NFS.autofs
) fonctionne bien pour mes cas d'utilisation avec les versions NFS 2 et 3, et parvient à protéger mes systèmes clients contre les pannes de serveur en montant les systèmes de fichiers NFS uniquement lorsqu'ils sont requis.Ma suggestion à vous serait d'envisager de passer de NFS 4 à NFS 3 et de voir si cela aide votre cas d'utilisation particulier. Ne le considérez pas comme un déclassement.