NOM
sm-notify - Emettre des notifications de redémarrage NSM
SYNOPSIS
/sbin/sm-notify [-dfq] [-m duree] [-p port] [-P chemin] [-v nom ]
Verrouiller un fichier sur NFS (v2 et v3) nécessite un outil pour
informer les pairs en cas de redémarrage, afin que les clients puissent
reprendre leur verrou après une panne de serveur, et/ou que les
serveurs libèrent les verrous tenus par le client qui a redémarré.
C’est un processus en deux étapes : pendant le fonctionnement normal,
un mécanisme est nécessaire pour connaître les hôtes qui doivent être
informés d’un redémarrage. Et bien-sûr, les notifications doivent être
émises pendant le redémarrage. Le protocole que l’on utilise pour cela
s’appelle NSM, pour Network Status Monitor (ou moniteur d’état du
réseau).
Cette implémentation sépare cela en différents programmes. rpc.statd
suit les hôtes qui doivent être notifiés et sm-notify effectue la
notification. Quand rpc.statd est lancé, il démarre généralement
sm-notify mais cela est configurable.
Fonctionnement
Pour chaque serveur ou client NFS à surveiller, rpc.statd crée un
fichier dans /var/lib/nfs/sm et supprime le fichier si la surveillance
n’est plus nécessaire.
Quand la machine est redémarrée, sm-notify parcourt ces fichiers et
notifie le démon partenaire statd de ces machines.
Chaque machine a un tat NSM, un entier qui est incrémenté à chaque
redémarrage de la machine. Ce compteur est stocké dans
/var/lib/nfs/state, et mis à jour par sm-notify.
Sécurité
sm-notify n’a pas constamment besoin des droits administrateur, il les
libère donc dès que possible. Il a néanmoins besoin d’effectuer des
changements dans les répertoires sm et sm.bak avant de pouvoir
abandonner les droits ; ceux-ci doivent être autorisés en écriture pour
un utilisateur non-privilégié. Si ces répertoires appartiennent à un
utilisateur autre que root, sm-notify abaisse ses droits à ceux de cet
utilisateur après avoir créé des sockets pour émettre des requêtes
(pour lesquelles il a besoin de droits root) mais avant d’envoyer la
moindre réponse (qui est la cause la plus probable de violation de
droit).
OPTIONS
-m duree
Pour notifier les hôtes, sm-notify essaye de contacter chaque
hôte pendant 15 minutes, et abandonne s’il n’y arrive pas dans
ce laps de temps.
En utilisant l’option -m, vous pouvez outrepasser cela. La
valeur 0 indique à sm-notify de réessayer indéfiniment; toute
autre valeur est interprétée comme le nombre de minutes maximum
pendant lesquelles sm-notify doit réessayer.
-v addresse_ip-ou-nom_hote
Cette option indique à sm-notify de se lier à l’adresse IP
addresse_ip, (ou à l’adresse IP de l’hôte nom_hote) afin que
tous les paquets de notification aient cette adresse pour
origine. Cela est utile pour le basculement en cas d’échecs de
NFS. Le nom donné est aussi utilisé en tant que nom de cet hôte
dans la requête NSM.
-p port
ordonne à sm-notify de se lier au numéro de port IP. Si cette
option n’est pas indiquée, il essayera de se lier à un port
privilégié inférieur à 1024, choisi au hasard.
-q Cela supprime tous les messages sauf les messages d’erreur
durant la collecte de la liste d’hôtes.
-P /chemin/vers/repertoire/etat
Si sm-notify doit regarder dans un fichier d’état placé à un
endroit non standard, le chemin peut être donné ici. Les
répertoires sm et sm.bak et le fichier state doivent exister
dans ce répertoire avec les noms standards.
-f Si le chemin d’état n’a pas été réinitialisé avec -P, sm-notify
va normalement créer un fichier dans /var/run pour indiquer
qu’il a été lancé. Si ce fichier est trouvé quand sm-notify
démarre, il ne sera pas relancé (car ce n’est normalement
nécessaire qu’une fois par démarrage). Si -f (pour force) est
donné, sm-notify se lancera même si le fichier dans /var/run est
présent.
-n Ne pas mettre à jour l’état NSM. Ceci est uniquement pour
tester. Utiliser cette option implique -f.
-d Permet le débogage. Par défaut, sm-notify fait un fork et se met
en arrière-plan après avoir obtenu la liste des hôtes depuis
/var/lib/nfs/sm.
FICHIERS
/var/lib/nfs/state
/var/lib/nfs/sm/*
/var/lib/nfs/sm.bak/*
/var/run/sm-notify.pid
VOIR AUSSI
rpc.nfsd(8), portmap(8)
AUTEURS
Olaf Kirch <okir@suse.de>
19 mars 2007 sm-notify(8)