Man page - rpc.statd(8)
Packages contains this manual
- nfsstat(8)
- blkmapd(8)
- nfsmount.conf(5)
- nfsidmap(8)
- showmount(8)
- mount.nfs(8)
- svcgssd(8)
- rpc.svcgssd(8)
- nfs.conf(5)
- mountstats(8)
- rpc.statd(8)
- rpc.sm-notify(8)
- statd(8)
- nfs4_uid_to_name(3)
- nfs(5)
- rpcctl(8)
- nfsiostat(8)
- rpc.idmapd(8)
- gssd(8)
- umount.nfs(8)
- nfsconf(8)
- sm-notify(8)
- nfsrahead(5)
- nfs.systemd(7)
- rpcdebug(8)
- rpc.gssd(8)
- idmapd(8)
apt-get install nfs-common
Available languages:
en fr ja roManual
RPC.STATD
NOMSYNOPSIS
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 .