Process lockd en status 'D' Disk sleep

Bonjour,
Depuis 3 jours nous avons des problèmes avec la gestion des locks NFS, par exemple pour ouvrir “firefox” sur un /home monté en nfs depuis le serveur. Le client ne reçoit jamais la reponse du serveur.

Le process ‘lockd’ se bloque (sur le serveur) et se met en status ‘D’. Un reboot du serveur retablit le fonctionnement du lockd mais lorsque tous les utilisateurs sont connectés, ça replante. Nous avons installé la dernière version nfs-kernel et nfs-common ça a été aussi efficace qu’un reboot
mais au bout d’un moement ça a replanté.
Une idée pour arriver à traquer ce qui fait planter le process “lockd” ?
Merci de votre aide

Lorsque cela arrive, ce n’est pas à proprement parler un plantage, mais un blocage (temporaire), un délai d’attente inhabituel. Comment sont montés les HOME des utilisateurs via NFS ? Quelle version de NFS ? Utilisez-vous le montage automatique (autofs) sur les postes clients ?
Combien y-a-t-il d’utilisateurs simultanés ?

Je vous conseille d’utiliser systématiquement le montage automatique, ce qui libère des ressources sur le serveur (au moins la nuit :slight_smile: )
Sur un poste client

mount | fgrep /home

Sur le serveur

ps -edf | fgrep lockd
sudo ls -lpR /proc/<pid> | less

et tenter de voir quel est le fichier qui passe en état D disk sleep.

Cordialement,
Regards,
Mit freundlichen Grüßen,
مع تحياتي الخالصة


F. Petitjean
Ingénieur civil du Génie Maritime.

« Moi, lorsque je n’ai rien à dire, je veux qu’on le sache. » (R. Devos)

« Celui qui, parti de rien, n’est arrivé nulle part n’a de merci à dire à personne !! »
Pierre Dac

@littejohn75

Merci pour ta reponse. Lorsque je tape la commande

sudo ls -lpR /proc/<pid> | less

J’ai une liste de fichiers/repertoires. Comment puis-je voir celui qui est en état “D”

Cordialement,
Christiane

Il faut utiliser la première commande donnée par littlejohn: ps -edf | fgrep lockd
Cette commande permettra de repérer les PID des des processus en état lockd, et c’est pour chacun de ceux-là qu’il faut inspecter leur répertoire dans /proc

@sputnik et @littejohn75

je fais bien

ps -edf | fgrep lockd

J’identifie le process
lockd pid 2383

sudo ls -lpR /proc/2383 | less

Là j’ai une liste de fichiers et répertoires mais je ne vois pas de status “D”.

Je suis derriere un firewall aussi , je peux difficilement faire de copie d’écrans

Pas besoin de copie d’écran, les retours de commande en mode texte sont tr_s bien.

Pouvez-vous donner les retours de (sur le serveur)

/sbin/showmount -a
/sbin/showmount -e
df -hTx tmpfs
cat /etc/exports

Vous n’avez toujours pas dit comment se font les montages NFS depuis les clients (/etc/fstab, automount, autre ) et combien de clients accèdent simultanément au serveur NFS.
Comment sont identifiés sur le serveurs les postes clients, les utilisateurs et les groupes ? Utilisez-vous NIS, LDAP, autre ?

Cordialement,
Regards,
Mit freundlichen Grüßen,
مع تحياتي الخالصة


F. Petitjean
Ingénieur civil du Génie Maritime.

« On ne perd pas son temps en aiguisant ses outils. »
Proverbe français

« Moi, lorsque je n’ai rien à dire, je veux qu’on le sache. » (R. Devos)

@littlejohn75

Merci de continuer à m’aider.
Nous pensons avoir trouver la source de notre problème. Nous avons cherché pendant 6 jours pour trouver enfin nous pensons. Je répond à tes questions et je donne les indications sur ce que nous avons fait. Merci encore. Je ne connais pas les commandes “showmount”
/sbin/showmount -a
15.1.0.117:/data
15.1.0.117:/home
15.1.0.117:/opt

/sbin/showmount -e
Export list for monserveur
/home *
/data *
/opt *
cat /etc/exportfs
/home *(ro,async,no_subtree_check,ro_root_squash)
/opt *(ro,async,no_subtree_check,ro_root_squash)
/data *(ro,async,no_subtree_check,ro_root_squash)

-Comment se font les montages NFS depuis le client: /etc/fstab
-Combien de clients accèdent simultanément au serveur: 50

  • Comment sont identifiés sur les postes clients, les utilisateurs …: LDAP

Description des symptomes:

  • Le daemon lockd est en status “D” => consequences on arrive plus à locker les fichiers avec “flock”.
  • le netstat est trés lent sur le serveur mais pas sur les clients
    Sur le serveur:
  • Nous avons remarqué que le repertoire “/var/lib/nfs/sm”, il y avait des adresses IP et des noms de client mais avec le mauvais domain name
  • Finalement, le problème venait du fichier /etc/bind/dns.inv qui contenait un caractère parasite. Nous avons verifier la syntaxe avec la commande cd /etc/bind;names-checkconf -z
    La commande a détecté une erreur de syntaxe sur le fichier inversé.
    Solution:
    Reparé le fichier dns.inv
    Supprimer les fichiers dans le répertoire /var/lib/nsf/sm/*
    Redemarrer les services: nfs-kernel, nfs-common,nfs-bind

=> Le process “lockd” se reveille et tout repart.
Ouff!!!

Merci encore à tous pour votre aide qui nous a permis de continuer à chercher en se sentant moins seuls.

Pourquoi ne pas faire un copier/coller. C’est /etc/exports pas exportfs.
Export vers ‘*’ : on sème à tout vent.
Vous êtes sûr de l’option ro pour /home ? C’est très bizarre.
Le système de fichiers /data est uniquement modifié sur le serveur ?

Mauvaise pioche.; à mon avis, cette méthode ne présente aucun avantage par rapport à automount/autofs.

Il serait judicieux de modifier le fichier /etc/nsswitch.conf de telle sorte qu’apparaisse le nom de la machine et non pas son numéro IP

getent hosts 15.1.0.117
hostname --fqdn

De même dans /etc/exports remplacer ‘*’ par quelque chose comme 15.1.0.*ne me paraîtrait pas aberrant.

Lancer des commandes

getent hosts _nom_
getent hosts _IP_

ne coûte pas cher et cela peut rapporter gros :joy:

man nsswitch.conf

Cordialement,
Regards,
Mit freundlichen Grüßen,
مع تحياتي الخالصة


F. Petitjean
Ingénieur civil du Génie Maritime.

« Celui qui, parti de rien, n’est arrivé nulle part n’a de merci à dire à personne !! »
Pierre Dac

« Je préfère le vin d’ici à l’au-delà »
Pierre Dac

1 J'aime

@littlejohn75 Merci beaucoup pour tous ces conseils. je pense qu’on peut cloturer le ticket.
Contente d’avoir pu échanger avec toi.