Guide du développeur de services de données Sun Cluster pour SE Solaris

Méthodes de rappel de l'interface APIGR

Les méthodes de rappel sont les éléments essentiels que l'API fournit pour la mise en œuvre d'un type de ressource. Elles permettent au RGM de gérer les ressources du cluster en cas de modification des membres du cluster (par exemple, initialisation ou arrêt brutal d'un nœud).


Remarque –

pour exécuter les méthodes de rappel, le RGM utilise des droits de superutilisateur ou de rôle équivalent, car le programme client contrôle les services à haute disponibilité du système du cluster. Installez et gérez ces méthodes avec des membres et des autorisations de fichiers restrictifs. Vous devez notamment leur attribuer un propriétaire privilégié (par exemple, bin ou root) et les rendre inaccessibles en écriture.


Cette rubrique décrit les arguments et les codes de sortie des méthodes de rappel. Elle décrit les méthodes de rappel des catégories suivantes :


Remarque –

cette rubrique décrit brièvement les méthodes de rappel ; elle indique leur point d'exécution et leur effet escompté. Cependant, la référence faisant foi en matière de méthodes de rappel est la page de manuel rt_callbacks(1HA).


Arguments destinés aux méthodes de rappel

Pour exécuter les méthodes de rappel, le RGM utilise la syntaxe de commande suivante :

method -R resource-name -T type-name -G group-name

La méthode est le nom du chemin d'accès enregistré comme Démarrage, Arrêt ou autre rappel. Les méthodes de rappel d'un type de ressource sont déclarées dans son fichier d'enregistrement.

Tous les arguments des méthodes de rappel sont transmis sous la forme des valeurs marquées suivantes :

Ayez recours aux arguments disposant de fonctions d'accès pour récupérer des informations sur la ressource.

L'appel de la méthode Validate utilise des arguments supplémentaires, notamment les valeurs des propriétés de la ressource et le groupe sur lequel la méthode est appelée.

Pour obtenir plus d'informations, reportez-vous à la page de manuel scha_calls(3HA).

Codes de sortie des méthodes de rappel

Toutes les méthodes de rappel utilisent les mêmes codes de sortie. Ces codes définissent l'effet de l'appel de la méthode sur l'état de la ressource. Ils sont décrits plus en détail dans la page de manuel scha_calls(3HA). Les codes de sortie se classent en deux catégories principales :

Le RGM gère également les arrêts anormaux lors de l'exécution des méthodes de rappel, notamment les dépassements des délais d'attente et les core dumps.

Les mises en œuvre de méthodes doivent consigner les informations sur les échecs en utilisant la fonction syslog() sur chaque nœud. En effet, les sorties écrites dans stdout ou stderr ne sont parfois pas communiquées à l'utilisateur, même si elles sont affichées sur la console du nœud local.

Méthodes de rappel de contrôle et d'initialisation

Les méthodes de rappel de contrôle et d'initialisation principales démarrent et arrêtent les ressources. Les autres méthodes exécutent un code d'initialisation et d'arrêt sur les ressources.

Start

La méthode Start, exécutée par le gestionnaire RGM sur un nœud de cluster lorsque le groupe qui contient une ressource donnée est connecté à ce nœud, active cette ressource sur ce nœud.

La méthode Start ne doit être arrêtée que lorsque la ressource qu'elle active a démarré et est disponible sur le nœud local. Par conséquent, avant sa fermeture, la méthode de Démarrage doit interroger la ressource afin de déterminer si elle a démarré. En outre, son délai d'attente doit être suffisamment long, car certaines ressources (par exemple, les démons de bases de données) mettent un certain temps à démarrer.

La manière dont le RGM réagit à l'échec de la méthode Démarrage dépend du paramètre de la propriété Mode_basculement.

Le délai d'attente de la méthode Start d'une ressource est déterminé par la propriété Start_timeout du fichier RTR.

Stop

La méthode Stop est la méthode obligatoire que le RGM exécute sur un nœud de cluster lorsque le groupe qui contient une ressource donnée est déconnecté de ce nœud. Cette méthode désactive la ressource si elle est active.

Elle ne doit être fermée que lorsque la méthode qu'elle contrôle a été totalement désactivée et a fermé tous ses descripteurs de fichiers. Si elle était fermée trop tôt, le RGM supposerait à tort que la ressource a été désactivée (même si cette ressource était encore active) et des données risqueraient d'être corrompues. Pour prévenir toute corruption de données, la meilleure méthode consiste à mettre fin à tous les processus exécutés sur le nœud local associé à la ressource.

Avant sa fermeture, la méthode Arrêt doit interroger la ressource afin de déterminer si elle est arrêtée. En outre, son délai d'attente doit être suffisamment long, car certaines ressources (par exemple, les démons de bases de données) mettent un certain temps à démarrer.

La manière dont le gestionnaire RGM réagit à l'échec de la méthode Stop dépend du paramétrage de la propriété Failover_mode. Pour plus d'informations, voir Propriétés des ressources.

Le délai d'attente de la méthode Stop associée à une ressource est défini par la propriété Stop_timeout du fichier RTR.

Init

Init est une méthode facultative que le gestionnaire RGM exécute ponctuellement sur une ressource afin de l'initialiser, lorsque cette ressource devient gérée, c'est-à-dire lorsque cette ressource est créée (si son groupe est déjà géré) ou que son groupe passe de l'état non géré à l'état géré. Elle est appelée sur les nœuds identifiés par la propriété de ressource Init_nodes.

Fini

Fini est une méthode facultative que le RGM appelle, à des fins de nettoyage, lorsqu'une ressource devient non gérée, c'est-à-dire lorsque le groupe qui contient la ressource passe à l'état non géré ou que la ressource elle-même est supprimée (si elle appartient à un groupe de ressources géré). Elle est appelée sur des nœuds identifiés par la propriété de ressource Init_nodes.

Boot

Le RGM exécute cette méthode facultative, similaire à Init, pour initialiser une ressource sur des nœuds qui rejoignent le cluster alors que le groupe auquel appartient cette ressource est déjà géré par le RGM. Les nœuds sur lesquels est exécutée cette méthode sont identifiés par la propriété de ressource Init_nodes . La méthode Boot est appelée lorsque l'un des nœuds concernés démarre ou redémarre, donc se connecte ou se reconnecte au cluster.


Remarque –

l'échec des fonctions Init, Fini ou Boot entraîne la création d'un message d'erreur par la fonction syslog() ; il n'a aucun autre effet sur la gestion de la ressource par le RGM.


Méthodes d'assistance à l'administration

Les tâches d'administration concernant les ressources comprennent entre autres le paramétrage et la modification des propriétés de la ressource. Pour les réaliser, les mises en œuvre des types de ressources utilisent les méthodes de rappel Validate et Update.

Validate

Le RGM appelle la méthode facultative Validate lorsqu'une ressource est créée ou qu'une action administrative met à jour les propriétés de la ressource ou de son groupe. La méthode est appelée sur l'ensemble de nœuds de clusters identifiés par la propriété Init_nodes du type de la ressource. La méthode Validate est appelée avant la création ou la mise à jour effective. Par conséquent, un code de sortie d'échec de la méthode sur un nœud, quel qu'il soit, entraîne l'annulation de la création ou de la mise à jour.

Validate n'est appelée que lorsque l'administrateur d'un cluster modifie les propriétés d'une ressource ou d'un groupe de ressources et non lorsque le RGM définit des propriétés, ni lorsqu'un détecteur règle les propriétés de ressource Status et Status_msg.

Update

Le RGM exécute la méthode facultative Update pour signaler à une ressource en cours d'exécution que ses propriétés ont été modifiées, après l'exécution réussie d'une action administrative de paramétrage des propriétés d'une ressource ou de son groupe. Cette méthode est appelée sur les noeuds lorsque la ressource est en ligne. Elle peut utiliser les fonctions d'accès de l'interface API pour lire les valeurs de propriété susceptibles d'affecter une ressource active et régler les ressources en cours d'exécution en conséquence.


Remarque –

en cas d'échec de la méthode Update, la fonction syslog() émet un message d'erreur ; cependant, cet échec n'a aucun autre effet sur la gestion de la ressource par le RGM.


Méthodes de rappel relatives au réseau

Pour certains services qui utilisent des ressources d'adresse réseau, les étapes de démarrage et d'arrêt devront être exécutées dans un ordre précis, dépendant de la configuration. Les méthodes de rappel facultatives Prenet_start et Postnet_stop permettent à la mise en œuvre d'un type de ressource d'effectuer des actions de démarrage et d'arrêt spéciales avant et après la configuration ou l'annulation de la configuration d'une adresse réseau liée.

Prenet_start

Cette méthode facultative permet d'effectuer des actions de démarrage spéciales avant la configuration des adresses réseau d'un même groupe de ressources.

Postnet_stop

Cette méthode facultative permet d'effectuer des actions d'arrêt spéciales après le retrait des adresses réseau d'un groupe.

Méthodes de rappel de contrôle des détecteurs

Une mise en œuvre de type de ressources peut comporter un programme destiné à contrôler les performances d'une ressource, à écrire un rapport sur son statut ou à intervenir en cas de défaillance d'une ressource. Les méthodes Monitor_start, Monitor_stop et Monitor_check permettent d'implémenter un détecteur de ressource dans une mise en œuvre de type de ressources.

Monitor_start

Cette méthode facultative est appelée pour démarrer un détecteur destiné à la ressource lorsque celle-ci a démarré.

Monitor_stop

Cette méthode facultative est appelée pour arrêter un détecteur destiné à la ressource avant l'arrêt de celle-ci.

Monitor_check

Cette méthode facultative est appelée pour évaluer la fiabilité d'un nœud avant qu'un groupe de ressources ne soit réaffecté à ce nœud. Lorsque vous la mettez en œuvre, vous devez veiller à ce qu'elle n'entre en conflit avec aucune autre méthode exécutée au même moment.