Man page - statd(8)

Packages contains this manual

Available languages:

en fr ja ro

Manual

RPC.STATD

NOM
SYNOPSIS
DESCRIPTION
OPÉRATIONS NSM DANS LE DÉTAIL
Notification de redémarrage
OPTIONS
FICHIER DE CONFIGURATION
SECURITÉ
NOTES COMPLÉMENTAIRES
Appels de haute disponibilité
Prise en charge d’IPv6 et TI-RPC
ENVIRONNEMENT
FICHIERS
VOIR AUSSI
AUTEURS
TRADUCTION

NOM

rrpc.statd - Démon du service NSM

SYNOPSIS

rpc.statd [ -dh?FLNvV ] [ -H programme ] [ -n mon_nom ] [ -o port-source ]
[ -p port-écoute ] [ -P chemin ]
[ --nlm-port port ] [ --nlm-udp-port port ]

DESCRIPTION

Les systĂšmes de fichiers ne peuvent garder de maniĂšre persistante l’état du systĂšme de fichiers. L’état des verrous est donc perdu lors du redĂ©marrage de l’hĂŽte.

Les systĂšmes de fichiers en rĂ©seau doivent dĂ©tecter si un Ă©tat verrouillĂ© est perdu Ă  cause du redĂ©marrage de l’hĂŽte distant. AprĂšs le redĂ©marrage d’un client NFS, le serveur NFS doit enlever tous les verrous de fichiers posĂ©s par des applications qui tournaient sur ce client. AprĂšs un redĂ©marrage du serveur, un client doit rappeler au serveur quels Ă©taient les fichiers verrouillĂ©s par ses applications.

Dans les versions 2 (RFC1094) et 3 (RFC1813) de NFS, on utilise le protocole NSM ( Network Status Monitor ) pour notifier les redémarrages aux pairs. Sous Linux, le service NSM est constitué de deux composants tournant en espace utilisateur :
rpc.statd

Un dĂ©mon qui Ă©coute les avertissements de redĂ©marrage d’autres hĂŽtes et gĂšre la liste des hĂŽtes qui doivent ĂȘtre avertis quand le systĂšme local redĂ©marre.

sm-notify

Un programme d’aide qui avertit les pairs NFS aprĂšs un redĂ©marrage du systĂšme local

Le gestionnaire de verrous NFS local indique au rpc.statd local quels sont les pairs qui doivent ĂȘtre surveillĂ©s. Quand le systĂšme local redĂ©marre, la commande sm-notify avertit le service NSM des hĂŽtes surveillĂ©s de son redĂ©marrage. Quand un hĂŽte distant redĂ©marre, ce pair notifie le rpc.statd local, qui en retour renvoie l’avertissement de redĂ©marrage au gestionnaire de verrous NFS local.

OPÉRATIONS NSM DANS LE DÉTAIL

La premiĂšre interaction visant Ă  verrouiller un fichier entre le client et le serveur NFS fait intervenir les deux gestionnaires de verrous NFS qui contactent leur service NSM local afin de stocker des informations sur le pair distant. Sous Linux, le gestionnaire de verrous local contacte rpc.statd .

rpc.statd enregistre les informations sur chaque pair NFS surveillĂ© dans un fichier persistant. Ce fichier dĂ©crit la maniĂšre de contacter un pair distant en cas de redĂ©marrage local, comment reconnaĂźtre quel pair surveillĂ© notifie son redĂ©marrage et comment notifier au gestionnaire de verrous local qu’un pair surveillĂ© signifie son redĂ©marrage.

Un client NFS envoie un nom d’hĂŽte, appelĂ© nom_d’appel (« caller_name ») du client, pour chaque demande de verrou de fichier. Un serveur NFS peut utiliser ce nom d’hĂŽte pour envoyer des appels GRANT asynchrones au client ou pour avertir le client de son redĂ©marrage.

Le serveur NFS Linux peut fournir le nom_d’appel du client ou son adresse rĂ©seau Ă  rpc.statd . Pour les besoins du protocole NSM, ce nom (ou cette adresse) est connu comme nom_monit du pair observĂ©. En mĂȘme temps, le gestionnaire de verrous local indique Ă  rpc.statd son propre nom d’hĂŽte supposĂ©. Pour les besoins du protocole NSM, ce nom d’hĂŽte est appelĂ© mon_nom .

Il n’existe pas d’interaction Ă©quivalente entre un serveur et un client NFS informant le client de son nom_d’appel sur le serveur. C’est la raison pour laquelle le client NFS ne connaĂźt pas rĂ©ellement le nom_monit qui sera utilisĂ© dans une requĂȘte SM_NOTIFY. Le client NFS Linux utilise le nom d’hĂŽte du serveur donnĂ© Ă  la commande mount pour identifier le serveur NFS qui redĂ©marre.

Notification de redémarrage

Quand le systĂšme local redĂ©marre, la commande sm-notify lit sur un stockage persistant la liste des pairs surveillĂ©s et envoie une requĂȘte SM_NOTIFY au service NSM tournant sur chacun des pairs listĂ©s. Il utilise la chaĂźne nom_monit comme destination. Pour identifier l’hĂŽte ayant redĂ©marrĂ©, la commande sm-notify envoie la chaĂźne mon_nom enregistrĂ©e lors de la surveillance du poste distant. Le dĂ©mon rpc.statd distant utilise cette chaĂźne (ou l’adresse rĂ©seau de l’appelant) pour lier les requĂȘtes SM_NOTIFY entrantes Ă  un ou plusieurs pairs sur sa propre liste de surveillance.

Si rpc.statd ne trouve pas un pair dans sa propre liste d’hĂŽtes surveillĂ©s liĂ© Ă  une requĂȘte SM_NOTIFY, la notification n’est pas transmise au gestionnaire de verrous local. En plus, chaque pair possĂšde son propre numĂ©ro d’état NSM , un entier de 32 bits qui est changĂ© aprĂšs chaque redĂ©marrage par la commande sm-notify . rpc.statd utilise ce nombre pour sĂ©parer les redĂ©marrages rĂ©els des notifications rĂ©-envoyĂ©es.

Une partie de la rĂ©cupĂ©ration de verrous NFS est la redĂ©couverte des pairs qui doivent ĂȘtre Ă  nouveaux surveillĂ©s. La commande sm-notify nettoie la liste de surveillance stockĂ©e sur un stockage permanent aprĂšs chaque redĂ©marrage.

OPTIONS

-d , --no-syslog

En conjonction avec l’option -F , demande à rpc.statd d’envoyer ses messages vers la sortie d’erreur standard plutît que vers le journal systùme.

-F , --foreground

Force rpc.statd Ă  rester dans son terminal de contrĂŽle pour permettre de surveiller directement, ou Ă  l’aide d’un dĂ©bogueur, les opĂ©rations NSM. Si cette option n’est pas donnĂ©e, rpc.statd passe en arriĂšre-plan aprĂšs son dĂ©marrage.

-h , -? , --help

Demande à rpc.statd de montrer les options d’utilisation sur la sortie d’erreur standard puis de quitter.

-H , --ha-callout programme

Indique un programme d’appel de haute disponibilitĂ©. Si cette option est laissĂ©e vide, aucun appel n’est indiquĂ©. RĂ©fĂ©rez-vous Ă  la section Appels de haute disponibilitĂ© ci-dessous pour plus de dĂ©tails.

-L , --no-notify

EmpĂȘche rpc.statd de lancer la commande sm-notify lors de son dĂ©marrage, ce qui conserve le numĂ©ro d’état NSM existant et la liste des machines surveillĂ©es

NB : La commande sm-notify a un mĂ©canisme de vĂ©rification qui assure qu’elle n’est lancĂ©e qu’une fois aprĂšs chaque redĂ©marrage du systĂšme. Cela permet d’éliminer les fausses notifications de redĂ©marrage si rpc.statd est relancĂ© sans l’option -L .

-n , --name addrip | nomhĂŽte

Cette chaĂźne est aussi utilisĂ©e par la commande sm-notify comme adresse source Ă  partir de laquelle sont Ă©mises les requĂȘtes de notification de redĂ©marrage.

L’ addrip peut ĂȘtre donnĂ©e sous la forme d’adresse IPv4 ou IPv6. Si cette option est omise, rpc.statd utilise une adresse joker comme adresse de lien pour le transport. Consultez sm-notify (8) pour plus de dĂ©tails.

-N

Demande Ă  rpc.statd de lancer la commande sm-notify , puis de quitter. Puisque sm-notify peut ĂȘtre lancĂ©e directement, cette option n’est donc plus d’actualitĂ©.

-o , --outgoing-port port

Indique le numéro du port source que la commande sm-notify doit utiliser quand elle envoie les notifications de redémarrage. Référez-vous à sm-notify (8) pour plus de détails.

-p , --port port

Indique le numĂ©ro de port utilisĂ© pour les sockets d’écoute RPC. Si cette option est omise, rpc.statd essayera de consulter /etc/services . S’il rĂ©ussit Ă  obtenir un port, il initialisera le mĂȘme port pour tous les sockets d’écoute, sinon il choisira un port alĂ©atoire et Ă©phĂ©mĂšre pour chaque socket d’écoute.

Cette option peut ĂȘtre utilisĂ©e pour indiquer le numĂ©ro de port sur les Ă©couteurs quand les requĂȘtes SM_NOTIFY doivent traverser un pare-feu entre les clients et les serveurs.

-T, --nlm-port port

Indique le numĂ©ro de port que lockd doit Ă©couter pour des requĂȘtes NLM . Cela rĂšgle Ă  la fois les ports TCP et UDP Ă  moins que le port UDP soit dĂ©fini sĂ©parĂ©ment.

-U, --nlm-udp-port port

Indique le numĂ©ro de port UDP que lockd doit Ă©couter pour les requĂȘtes NLM .

-P , --state-directory-path chemin

PrĂ©cise le nom du rĂ©pertoire parent oĂč se trouvent les informations sur l’état NSM. Si l’option n’est pas prĂ©cisĂ©e, rpc.statd utilise /var/lib/nfs par dĂ©faut.

AprĂšs le dĂ©marrage, rpc.statd essaie de dĂ©finir les UID et GID effectifs Ă  ceux du groupe et d’utilisateur du sous-rĂ©pertoire sm de ce rĂ©pertoire. AprĂšs la modification des identifiants effectifs, rpc.statd a seulement besoin d’accĂ©der aux fichiers sm et sm.bak dans le chemin du rĂ©pertoire d’états (state-directory-path).

-v , -V , --version

Demande à rpc.statd d’afficher sa version sur la sortie d’erreur standard puis de quitter.

FICHIER DE CONFIGURATION

La plupart des options pouvant ĂȘtre indiquĂ©es sur la ligne de commande peuvent aussi ĂȘtre contrĂŽlĂ©es Ă  l’aide de valeurs dĂ©finies dans les sections [statd] ou, dans certains cas, [lockd] du fichier de configuration /etc/nfs.conf . Les valeurs reconnues dans la section [statd] incluent port , outgoing-port , state-directory-path et ha-callout qui ont chacune le mĂȘme effet que l’option de mĂȘme nom.

Les valeurs reconnues dans la section [lockd] incluent port et udp-port qui ont chacune le mĂȘme effet, respectivement, que les options --nlm-port et --nlm-udp-port .

SECURITÉ

Le dĂ©mon rpc.statd doit ĂȘtre lancĂ© en tant que superutilisateur pour avoir le droit de crĂ©er des sockets sur des ports source privilĂ©giĂ©s et pour accĂ©der Ă  la base de donnĂ©es d’informations d’états. Afin d’éviter les risques d’attaque par augmentation de droits, risques accentuĂ©s par le fait que rpc.statd est un service tournant longtemps, ce dĂ©mon abandonne les droits de superutilisateur dĂšs son dĂ©marrage.

Dans le cas normal, l’ID utilisateur effectif utilisĂ© est celui du propriĂ©taire du rĂ©pertoire d’état, cela afin de lui permettre de continuer Ă  accĂ©der aux fichiers de ce rĂ©pertoire aprĂšs l’abandon des droits de superutilisateur. Pour contrĂŽler l’ID utilisateur que rpc.statd prend, il suffit d’utiliser chown (1) pour changer le propriĂ©taire du rĂ©pertoire d’état.

Vous pouvez aussi protĂ©ger vos Ă©couteurs rpc.statd en utilisant la bibliothĂšque tcp_wrapper ou iptables (8). Si vous voulez utiliser la bibliothĂšque tcp_wrapper , ajoutez les noms d’hĂŽte des pairs dont l’accĂšs est autorisĂ© dans /etc/hosts.allow . Le nom du dĂ©mon sera statd , mĂȘme si l’exĂ©cutable rpc.statd porte un nom diffĂ©rent.

Pour avoir plus d’informations, jetez un Ɠil sur les pages de manuel de tcpd (8) et hosts_access (5).

NOTES COMPLÉMENTAIRES

La rĂ©cupĂ©ration des verrous aprĂšs redĂ©marrage est essentielle au maintien de l’intĂ©gritĂ© des donnĂ©es et pour Ă©viter des blocages non nĂ©cessaires d’applications. Afin d’aider rpc.statd Ă  faire correspondre les requĂȘtes SM_NOTIFY aux requĂȘtes NLM, un certain nombre de bonnes pratiques doivent ĂȘtre respectĂ©es. Par exemple :

Le nom du nƓud UTS de vos systùmes doit correspondre au nom DNS que les pairs NFS utilisent pour les contacter.

Les noms de nƓuds UTS de vos systĂšmes doivent toujours ĂȘtre des noms de domaine pleinement qualifiĂ©s (« FQDN »).

Les translations DNS directes et inverses des noms de nƓuds UTS doivent ĂȘtre cohĂ©rentes.

Le nom d’hĂŽte utilisĂ© par le client pour monter le serveur doit correspondre au nom_monit utilisĂ© dans les requĂȘtes SM_NOTIFY qu’il envoie.

DĂ©monter un systĂšme de fichiers NFS n’empĂȘche pas le client NFS ou le serveur de se surveiller. Les deux peuvent continuer Ă  se surveiller pendant un moment au cas oĂč la reprise du trafic entre les deux entraĂźnerait de nouveaux montages et d’autres verrous de fichiers.

Sous Linux, et en conditions normales d’opĂ©ration, le dĂ©chargement du module lockd du noyau entraĂźne l’arrĂȘt de la surveillance des pairs NFS. Cela peut survenir, par exemple, sur un client NFS utilisant un systĂšme de montage automatique qui dĂ©monte tous les systĂšmes NFS suite Ă  une inactivitĂ©.

Appels de haute disponibilité

rpc.statd peut lancer un programme d’appel spĂ©cifique lors d’un traitement rĂ©ussi de requĂȘtes SM_MON, SM_UNMON et SM_NUMON_ALL ou de rĂ©ception d’un SM_NOTIFY. Ce type de programme peut ĂȘtre utilisĂ© dans des environnements NFS de haute disponibilitĂ© (HA-NFS) pour chercher les Ă©tats de verrou qui pourraient avoir besoin d’ĂȘtre migrĂ©s suite Ă  un redĂ©marrage du systĂšme.

Le nom du programme d’appel peut ĂȘtre indiquĂ© par l’option -H . Le programme doit ĂȘtre lancĂ© avec 3 arguments. Le premier est add-client , del-client ou sm-notify selon la raison de l’appel. Le deuxiĂšme est le nom_monit du pair observĂ©. Le troisiĂšme est le nom_d’appel du gestionnaire de blocage appelant pour add-client ou del-client , sinon c’est l’ adresse_IP de l’appelant envoyant SM_NOTIFY. Le quatriĂšme est la valeur_Ă©tat dans la requĂȘte SM_NOTIFY.

Prise en charge d’IPv6 et TI-RPC

TI-RPC est nĂ©cessaire pour la prise en charge de NFS sur IPv6. Si la prise en charge de TI-RPC est incluse dans rpc.statd , il essaye de dĂ©marrer l’écoute sur les transports rĂ©seaux marquĂ©s comme « visible » dans le fichier /etc/netconfig . Tant qu’au moins un Ă©couteur de transport rĂ©seau dĂ©marre sans erreur, rpc.statd fonctionnera.

ENVIRONNEMENT

RPC_STATD_NO_NOTIFY=

MĂȘme effet que --no-notify si dĂ©finie Ă  une valeur entiĂšre positive.

FICHIERS

/var/lib/nfs/sm

Répertoire contenant la liste des moniteurs.

/var/lib/nfs/sm.bak

Répertoire contenant la liste des notifications.

/var/lib/nfs/state

NumĂ©ro d’état NSM de cet hĂŽte.

/run/run.statd.pid

Fichier contenant le PID.

/etc/netconfig

Base de données des capacités de transport en réseau.

VOIR AUSSI

sm-notify (8), nfs (5), rpc.nfsd (8), rpcbind (8), tcpd (8), hosts_access (5), iptables (8), netconfig (5)

RFC 1094 – « NFS : Network File System Protocol Specification »
RFC 1813 – « NFS Version 3 Protocol Specification »
OpenGroup Protocols for Interworking : XNFS, version 3W - Chapitre 11

AUTEURS

Jeff Uphoff <juphoff@users.sourceforge.net>
Olaf Kirch <okir@monad.swb.de>
H.J. Lu <hjl@gnu.org>
Lon Hohberger <hohberger@missioncriticallinux.com>
Paul Clements <paul.clements@steeleye.com>
Chuck Lever <chuck.lever@oracle.com>

TRADUCTION

La traduction française de cette page de manuel a été créée par Valéry Perrin <valery.perrin.debian@free.fr>, Sylvain Cherrier <sylvain.cherrier@free.fr>, Thomas Huriaux <thomas.huriaux@gmail.com>, Dominique Simen <dominiquesimen@hotmail.com>, Nicolas SauzÚde <nsauzede@free.fr>, Romain Doumenc <rd6137@gmail.com>, David Prévot <david@tilapin.org>, Denis Mugnier <myou72@orange.fr>, Cédric Boutillier <cedric.boutillier@gmail.com> et Jean-Paul Guillonneau <guillonneau.jeanpaul@free.fr>

Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n’y a aucune RESPONSABILITÉ LÉGALE.

Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à debian-l10n-french@lists.debian.org .