Man page - sm-notify(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 roManual
SM-NOTIFY
NOMSYNOPSIS
DESCRIPTION
OPĂRATIONS NSM DANS LE DĂTAIL
Notification de redémarrage
OPTIONS
FICHIER DE CONFIGURATION
SECURITĂ
NOTES
Prise en charge dâIPv6 et TI-RPC
FICHIERS
VOIR AUSSI
AUTEURS
TRADUCTION
NOM
sm-notify - Envoyer une notification de redémarrage aux pairs NFS
SYNOPSIS
/usr/sbin/sm-notify [ -dfn ] [ -m minutes ] [ -v nom ] [ -p port-notification ] [ -P chemin ]
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. 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.
Pour les
versions 2 et 3 du protocole NFS, le protocole
Network Status Monitor
(ou NSM) est utilisé
pour avertir les pairs des redémarrages. Sous Linux,
deux composants tournant en espace utilisateur fournissent
un service NSMÂ :
sm-notify
Un programme dâaide qui avertit les pairs NFS aprĂšs un redĂ©marrage du systĂšme local
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.
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Ă© est en train dâĂ©mettre 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ây a pas dâinteractions Ă©quivalentes entre un serveur NFS et un client pour donner au client le nom_dâappel du serveur. Câest pourquoi les clients NFS ne connaissent pas le nom_monit quâun serveur NFS peut utiliser dans une requĂȘte SM_NOTIFY. Le client NFS Linux enregistre le nom dâhĂŽte du serveur utilisĂ© dans une commande mount pour identifier les serveurs NFS qui redĂ©marrent.
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 de ce 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 chiffre 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 |
Garder sm-notify attachĂ© Ă son terminal de contrĂŽle et visible au premier plan afin que la progression des notifications puisse ĂȘtre directement observĂ©e. |
||
|
-f |
Envoyer les notifications mĂȘme si sm-notify a dĂ©jĂ Ă©tĂ© lancĂ© depuis le redĂ©marrage du systĂšme. |
-m délai_nouvel_essai
Indiquer la durĂ©e (en minute) entre deux essais de notifications Ă des hĂŽtes sourds. Si cette option nâest pas indiquĂ©e, sm-notify notifie toutes les 15 minutes. Donner la valeur 0 pousse sm-notify Ă envoyer continuellement des notifications aux hĂŽtes sourds jusquâĂ ce quâil soit tuĂ© manuellement.
Les notifications sont réémises si lâenvoi Ă©choue, si lâhĂŽte distant ne rĂ©pond pas, si le service NSM distant nâest pas enregistrĂ© ou si la rĂ©solution DNS Ă©choue, ce qui empĂȘche lâadressage de lâhĂŽte distant nom_monit .
Les hĂŽtes ne sont pas supprimĂ©s de la liste des notifications tant quâaucune rĂ©ponse valable nâest reçue. Cependant, la procĂ©dure SM_NOTIFY renvoie un rĂ©sultat vide. sm-notify ne peut donc pas dire si la machine distante a reconnu lâĂ©metteur et a commencĂ© la rĂ©cupĂ©ration idoine de verrous.
|
-n |
EmpĂȘcher sm-notify de mettre Ă jour le numĂ©ro dâĂ©tat NSM du systĂšme local. |
-p port
Indiquer le numĂ©ro de port source que sm-notify doit utiliser pour envoyer les notifications de redĂ©marrage. Si cette option nâest pas prĂ©cisĂ©e, un port Ă©phĂ©mĂšre est choisi au hasard.
Cette option peut ĂȘtre utilisĂ©e pour traverser un pare-feu entre le client et le serveur.
-P , --state-directory-path chemin
Donner le chemin du rĂ©pertoire parent oĂč les notifications dâĂ©tat NSM sont enregistrĂ©es. Si cette option nâest pas prĂ©cisĂ©e, sm-notify utilisera /var/lib/nfs par dĂ©faut
AprĂšs le dĂ©marrage, sm-notify 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, sm-notify a seulement besoin dâaccĂ©der aux fichiers sm et sm.bak dans le chemin du rĂ©pertoire dâĂ©tats (state-directory-path).
-v ipaddr | nom_hĂŽte
Indiquer lâadresse rĂ©seau Ă partir de laquelle seront envoyĂ©es les notifications de redĂ©marrage, ainsi que lâargument nom_monit utilisĂ© pour lâenvoi de requĂȘtes SM_NOTIFY. Si cette option nâest pas prĂ©cisĂ©e, sm-notify utilise une adresse joker comme adresse de transport et la variable mon_nom enregistrĂ©e lors de la surveillance du poste distant comme argument nom_monit pour lâenvoi des requĂȘtes SM_NOTIFY).
Le champ addrip peut ĂȘtre sous la forme dâune adresse IPv4 ou IPv6. Si le champ addrip est fourni, la commande sm-notify convertit cette adresse en un nom dâhĂŽte qui servira dâarguments Ă nom_monit lors de lâenvoi de requĂȘtes SM_NOTIFY.
Cette option peut ĂȘtre utile dans des rĂ©seaux partagĂ©s entre plusieurs lieux pour lesquels lâhĂŽte distant attend une notification provenant dâune adresse rĂ©seau prĂ©cise.
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 [sm-notify] ou, dans un cas, [statd] du fichier de configuration /etc/nfs.conf .
Les valeurs reconnues dans la section [sm-notify] incluent retry-time , outgoing-port et outgoing-addr . Elles ont le mĂȘme effet, respectivement, que les options m , p et v
Une autre valeur reconnue dans la section [sm-notify] est lift-grace . Par dĂ©faut, sm-notify transformera la pĂ©riode de grĂące de lockd rapidement sâil nâa aucun hĂŽte Ă informer. Certaines configurations de haute disponibilitĂ© exĂ©cuteront un sm-notify par adresse IP variable. Dans ces configurations, transformer la pĂ©riode de grĂące peut rapidement empĂȘcher des clients de rĂ©cupĂ©rer des verrous. RĂ©gler lift-grace Ă n empĂȘche sm-notify de mettre rapidement fin Ă la pĂ©riode de grĂące. lift-grace nâa pas dâoption de ligne de commande correspondante.
La valeur reconnue dans la section [statd] est state-directory-path .
SECURITĂ
La commande sm-notify doit ĂȘtre lancĂ©e en superutilisateur afin dâavoir les privilĂšges suffisants pour accĂ©der Ă la base dâinformations dâĂ©tats. Elle abandonne les droits de superutilisateur dĂšs quâelle dĂ©marre afin de rĂ©duire les risques dâattaque par augmentation de droits.
Dans le cas normal, lâID utilisateur effectif utilisĂ© est celui du propriĂ©taire du rĂ©pertoire dâĂ©tats, cela afin de lui permettre de continuer Ă accĂ©der aux fichiers de ce rĂ©pertoire aprĂšs quâil a abandonnĂ© ses 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.
NOTES
La rĂ©cupĂ©ration des verrous aprĂšs un redĂ©marrage est indispensable au maintien de lâintĂ©gritĂ© des donnĂ©es et Ă la prĂ©vention de 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 aux noms 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Ă©.
Prise en charge dâIPv6 et TI-RPC
Lâutilisation dâIPv6 par NFS requiert TI-RPC. Si la prise en charge de TI-RPC a Ă©tĂ© incluse dans la commande sm-notify , le choix entre le mode IPv4 ou IPv6 est fait en fonction de lâadresse rĂ©seau retournĂ©e par DNS pour les clients distants. Ce systĂšme est normalement parfaitement compatible avec les machines qui ne gĂšrent ni TI-RPC, ni IPv6.
La commande sm-notify ne prend pour lâinstant en charge que lâenvoi des notifications uniquement par les protocoles de transport en datagramme.
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. |
/proc/sys/fs/nfs/nsm_local_state
Copie du numĂ©ro dâĂ©tat NSM dans le noyau.
VOIR AUSSI
rpc.statd (8), nfs (5), uname (2), hostname (7)
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
Olaf Kirch
<okir@suse.de>
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 .