7 votes

NFS : Qu'est-ce que le verrouillage à distance, et en ai-je besoin ?

Je suis en train de construire un système quelque peu minimaliste qui collecte les données du port série et les place dans un fichier journal sur un montage NFS.

Dans un effort pour réduire quelque peu le système, j'ai décidé de désactiver RPC car je n'en voyais pas l'utilité, ce qui a donné lieu à l'avertissement suivant :

mount.nfs: rpc.statd is not running but is required for remote locking.
mount.nfs: Either use '-o nolock' to keep locks local, or start statd.
mount.nfs: an incorrect mount option was specified

Ce n'est pas une surprise que RPC soit impliqué dans NFS, vraiment, donc ma prochaine étape est de supprimer l'avertissement. J'ai le choix entre réactiver RPC, ou utiliser -o nolock comme suggéré.

La question est donc de savoir ce que fait exactement le verrouillage à distance. Dans ce cas particulier, le montage NFS n'est écrit que par la machine en question, et il n'y a pas de conflit potentiel tel que des processus multiples écrivant sur le même fichier. (bien qu'il y ait plusieurs processus qui écrivent chacun dans leur propre fichier journal).

Exécution de debian buster, noyau 4.19

EDIT。 J'ai essayé -o nolock et les choses semblent bien fonctionner, donc à première vue, il n'y a pas d'effets indésirables.

6voto

wazoox Points 6554

La réponse se trouve dans la bonne vieille page de manuel de rpc.statd :

Les verrous de fichiers ne font pas partie de l'état persistant du système de fichiers. Le verrou est donc perdu lorsqu'un hôte redémarre.

Les systèmes de fichiers en réseau doivent également détecter la perte de l'état de verrouillage. parce qu'un hôte distant a redémarré. Après le redémarrage d'un client NFS, un serveur NFS doit libérer tous les verrous de fichiers détenus par les applications qui applications qui étaient exécutées sur ce client. Après le redémarrage d'un serveur, un client doit rappeler au serveur les verrous de fichiers détenus par les applications exécutées sur ce client.

Pour NFS version 2 [RFC1094] et NFS version 3 [RFC1813], l'option protocole Network Status Monitor (ou NSM pour faire court) est utilisé pour notifier les pairs NFS des redémarrages. Sous Linux, deux composants séparés de l'espace utilisateur distincts constituent le service NSM :

rpc.statd

Un démon qui écoute les notifications de redémarrage des autres hôtes et gère la liste des hôtes à notifier lorsque le système local redémarre.

sm-notify

Un programme d'aide qui notifie les pairs NFS après le redémarrage du système local.

En gros, rpc.statd, qui tourne sur le serveur NFS, empêche les processus qui tournent sur le serveur NFS de s'exécuter. d'autres clients NFS d'accéder aux fichiers que vous avez verrouillés depuis votre ordinateur client. Tant qu'il n'y a qu'un seul client, les verrous locaux sont parfaits. Mais en général, NFS a pour but de partage .

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X