Guide des développeurs pour les services de données Sun Cluster pour SE Solaris

Méthodes de rappel API GR

Les méthodes de rappel sont les éléments clés fournis par l'API pour la mise en oeuvre d'un type de ressource. Les méthodes de rappel permettent au RGM de contrôler les ressources du cluster en cas de modification des membres de celui-ci, par exemple en cas d'initialisation ou de blocage du noeud.


Remarque :

les méthodes de rappel sont exécutées par le RGM avec les autorisations racine étant donné que les programmes client contrôlent les services HA sur le système du cluster. Installez et gérez ces méthodes avec des membres et des autorisations de fichiers restrictifs. Plus spécifiquement, donnez-leur un propriétaire privilégié, par exemple bin ou root et rendez-les inaccessibles en écriture.


Cette rubrique décrit les arguments et codes de sortie des méthodes de rappel. Par ailleurs, elle énumère et décrit les méthodes de rappel des différentes catégories :


Remarque :

bien que cette rubrique fournisse de brèves descriptions des méthodes de rappel, comprenant le moment auquel la méthode est appelée et l'effet escompté sur la ressource, la page de manuel rt_callbacks( 1HA) constitue la référence faisant foi pour les méthodes de rappel.


Arguments de méthode

Le RGM exécute les méthodes de rappel de la manière suivante :


méthode -R  nom_ressource -T nom_type -G nom_groupe

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 comme des valeurs marquées, avec -R indiquant le nom de l'instance de la ressource, -T indiquant le type de la ressource et -G indiquant le groupe dans lequel est configurée la ressource. Ayez recours aux arguments disposant de fonctions d'accès pour récupérer des informations sur la ressource.

La méthode Validation est appelée avec des arguments supplémentaires (les valeurs des propriétés de la ressource et du groupe de ressources ciblées par l'appel).

Reportez-vous à scha_calls(3HA) pour obtenir de plus amples informations.

Codes de sortie

Toutes les méthodes de rappel possèdent les mêmes codes de sortie définis pour spécifier l'effet de l'exécution de la méthode sur l'état de la ressource. La page de manuel scha_calls(3HA) décrit tous les codes de sortie. Les codes de sortie sont les suivants :

Le RGM gère également les échecs anormaux rencontrés lors de l'exécution de la méthode de rappel, tels que les dépassements de délai imparti et les core dumps.

Les mises en oeuvre de la méthode doivent sortir des informations d'échec à l'aide de syslog sur chaque noeud. L'envoi des sorties écrites sur stdout ou sur stderr à l'utilisateur n'est pas garanti, bien que celui-ci apparaisse sur la console du noeud local.

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

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

Démarrage

Cette méthode requise est exécutée sur un noeud du cluster lorsque le groupe contenant la ressource est mis en ligne sur ce noeud. Cette méthode active la ressource sur ce noeud.

Une méthode Démarrage ne doit pas se fermer avant que la ressource qu'elle active ait été démarrée et soit disponible sur le noeud local. Par conséquent, avant sa fermeture, la méthode Démarrage doit interroger la ressource afin de déterminer si elle a démarré. Par ailleurs, vous devez définir un délai imparti suffisamment long pour cette méthode. Par exemple, certaines ressources, telles que les démons de base de données, prennent plus de temps au démarrage et ont donc besoin d'une méthode prévoyant un délai plus long.

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.

La propriété DÉLAI_DÉMARRAGE du fichier d'enregistrement du type de ressource définit la valeur du délai imparti pour une méthode de Démarrage de ressource.

Arrêt

Cette méthode requise est appelée sur un noeud du cluster lorsque le groupe contenant la ressource est mis hors ligne sur ce noeud. Cette méthode désactive la ressource si elle est active.

Une méthode Arrêt ne doit pas se fermer avant que la ressource qu'elle contrôle ait complètement arrêté toute activité sur le noeud local et ait fermé tous les descripteurs de fichier. Dans le cas contraire, comme le RGM suppose que la ressource est arrêtée alors qu'elle est toujours active, une corruption de données peut avoir lieu. La manière la plus sûre d'éviter une corruption de données consiste à mettre un terme à tous les processus sur le noeud 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. Par ailleurs, vous devez définir un délai imparti suffisamment long pour cette méthode. Par exemple, certaines ressources, telles que les démons de base de données, prennent plus de temps à l'arrêt et ont donc besoin d'une méthode prévoyant un délai plus long.

La manière dont le RGM réagit à l'échec de la méthode Arrêt dépend du paramètre de la propriété Mode_basculement (reportez-vous au Tableau A–2).

La propriété DÉLAI_ARRÊT du fichier d'enregistrement du type de ressource définit la valeur du délai imparti pour une méthode Arrêt de ressource.

Init

Cette méthode optionnelle est appelée pour effectuer une initialisation unique de la ressource lorsque celle-ci est gérée, soit quand le groupe de ressources auquel elle appartient passe d'un état non géré à un état géré soit lorsque la ressource est créée dans un groupe de ressources déjà géré. La méthode est appelée sur les noeuds déterminés par la propriété de ressource Noeuds_init.

Fini

Cette méthode facultative est appelée pour faire le ménage lorsque la ressource n'est plus gérée, soit quand le groupe auquel elle appartient n'est plus géré soit quand elle est supprimée d'un groupe de ressources géré. La méthode est appelée sur des noeuds déterminés par la propriété de ressource Noeuds_init.

Initialisation

Cette méthode facultative, analogue à Init, est appelée pour initialiser la ressource sur des noeuds rejoignant le cluster après que le groupe contenant la ressource a déjà été placé sous le contrôle du RGM. La méthode est appelée sur des noeuds déterminés par la propriété de ressource Noeuds_init. La méthode Initialisation est appelée lorsque le noeud adhère à un cluster à la suite d'une initialisation ou d'une réinitialisation.


Remarque :

un échec des méthodes Init, Fini ou Initialisation entraîne la génération, par la fonction syslog(), d'un message d'erreur, mais n'affecte en rien 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. Les méthodes de rappel Validation et Mise_à_jour permettent à la mise en oeuvre d'un type de ressource de passer par ces opérations d'administration.

Validation

Cette méthode facultative est appelée lorsqu'une ressource est créée et lorsque l'administrateur met à jour les propriétés de la ressource ou du groupe la contenant. Cette méthode est appelée sur le jeu de noeuds du cluster indiqué par la propriété Noeuds_init du type de ressource. Validation est appelée avant la création ou la mise à jour, et un code de sortie avec échec renvoyé par la méthode sur un noeud entraîne l'annulation de l'opération envisagée.

Validation n'est appelée que lorsque les propriétés de la ressource ou du groupe sont modifiées par une opération de l'administrateur, et non lorsque le RGM définit des propriétés, ou lorsqu'un détecteur définit les propriétés Statut et msg_statut de la ressource.

Mise_à_jour

Cette méthode facultative est appelée pour signaler à une ressource en cours d'exécution que les propriétés ont été modifiées. Mise_à_jour est appelée après la réussite d'une action de l'administrateur visant à définir les 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. La méthode utilise les fonctions d'accès de l'API pour lire les valeurs des propriétés susceptibles d'affecter une ressource active et régler la ressource en cours d'exécution en conséquence.

Un échec de la méthode Mise_à_jour pousse la fonction syslog() à générer un message d'erreur mais n'affecte en rien la gestion de la ressource par le RGM.

Méthodes de rappel relatives au Net

Il est possible que les services utilisant des ressources d'adresses réseau exigent que les étapes menant à un démarrage ou à un arrêt soient effectuées dans un certain ordre, en fonction de la configuration de l'adresse réseau. Les méthodes de rappel facultatives Démarrage_avant_réseau et Arrêt_après_réseau permettent à la mise en oeuvre d'un type de ressource d'effectuer des actions spéciales de démarrage et de fermeture avant et après la configuration ou la déconfiguration d'une adresse réseau liée.

Démarrage_avant_réseau

Cette méthode facultative est appelée pour entreprendre des actions de démarrage spéciales avant la configuration des adresses réseau du même groupe de ressources.

Arrêt_après_réseau

Cette méthode facultative est appelée pour effectuer des actions de fermeture spéciales une fois les adresses réseau du même groupe de ressources déconfigurées.

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

La mise en oeuvre d'un type de ressource peut inclure, de manière facultative, un programme permettant de surveiller la performance d'une ressource, de faire rapport sur son état ou de réagir en cas d'échec. Les méthodes Démarrage_détecteur, Arrêt_détecteur et Contrôle_détecteur prennent en charge la mise en oeuvre d'un détecteur de ressources dans le type de ressource.

Démarrage_détecteur

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

Arrêt_détecteur

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

Contrôle_détecteur

Cette méthode facultative est appelée pour évaluer la fiabilité d'un noeud avant le déplacement du groupe de ressources sur celui-ci. La méthode Contrôle_détecteur doit être mise en oeuvre de manière à ne pas entrer en conflit avec d'autres méthodes exécutées simultanément.