GNU/Linux >> Tutoriels Linux >  >> Linux

Empêcher la connexion NFS interrompue de geler le système client ?

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 bloquaient les systèmes clients.

Nos options NFS étaient minimes, juste rw (et donc les valeurs par défaut hard , fg , etc.).

J'expérimente actuellement ces options, mais je n'obtiens pas le comportement attendu :
rw,soft,bg,retrans=6,timeo=150

(J'ai augmenté les retrans pour compenser une partie du risque faible)

La procédure que je suis en train de tester est :

  • Boîte de démarrage
  • cd vers /mnt/mountpoint
  • Vérifiez que la connexion NFS est correcte
  • cd /
  • tuer le réseau ifdown eth0
  • cd vers /mnt/mountpoint
  • ls

À ce stade, la ligne de commande se fige et je ne peux pas l'interrompre. Après un certain temps, le message "nfs :le serveur [nom du serveur] ne répond pas, a expiré", qui semble se répéter une fois par minute (indéfiniment).

Ce que j'aimerais/attends qu'il se produise pour que l'opération échoue et rende le contrôle.

S'il vous plaît, quelqu'un pourrait-il me dire où je me trompe avec ces paramètres ?

(PS :j'ai aussi essayé de monter avec autofs, mais j'ai vu un comportement similaire)

Merci

Réponse acceptée :

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. Ainsi, la plupart des opérations se bloquent par défaut jusqu'à la fin de l'opération.

C'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, cela ne me semble pas être un problème NFS3/NFS4, mais une décision sur la façon dont intr œuvres. Vous devriez donc pouvoir KILL le processus, mais cela peut ne pas vous être très utile.

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 ?

En relation :La vidéo contiendra-t-elle des erreurs si la connexion est perdue lors du téléchargement sur YouTube ?
Linux
  1. Connexion SSH refusée depuis l'intérieur du LAN ?

  2. Ssh - Exécuter des commandes à distance en se détachant complètement de la connexion Ssh ?

  3. Quels sont les appels OS/système natifs Windows et Linux effectués à partir de malloc() ?

  4. Comment créer un point d'accès à partir de la connexion WiFi actuelle ?

  5. Empêcher la connexion ssh d'imprimer motd depuis le client ?

Introduction au système de fichiers Linux

Comment configurer le serveur et le client NFS sur Debian 10

Installer le serveur et le client NFS sur Ubuntu

Comment réparer le système d'exploitation Ubuntu cassé sans réinstaller le système

Comment monter NFS sur Debian 11

- mongodb/mongodb 1.2.0 nécessite ext-mongodb ^ 1.3.0 -> l'extension PHP demandée mongodb est absente de votre système