Guide des développeurs pour les services de données Sun Cluster 3.1 10/03

Présentation générale des services de données génériques

Un service de données générique (GDS) est un mécanisme permettant de rendre hautement disponibles et évolutives des applications uniques et compatibles réseau en les connectant à la structure du gestionnaire RGM de Sun Cluster. Ce mécanisme évite l'utilisation d'un agent de programmation, procédure habituelle pour rendre une application hautement disponible ou évolutive.

Le module GDS est un service de données unique, précompilé. Vous ne pouvez pas modifier un service de données précompilé et ses composants, les mises en oeuvre de la méthode de rappel (rt_callbacks (1HA)) et le fichier d'enregistrement du type de ressources (rt_reg( 4)).

Type de ressources précompilé

Le type de ressources du service de données générique SUNW.gds est inclus dans le package SUNWscgds. L'utilitaire scinstall(1M) installe ce package en même tant que le cluster. Le package SUNWscgds comprend les fichiers suivants :


# pkgchk -v SUNWscgds

/opt/SUNWscgds
/opt/SUNWscgds/bin
/opt/SUNWscgds/bin/gds_monitor_check
/opt/SUNWscgds/bin/gds_monitor_start
/opt/SUNWscgds/bin/gds_monitor_stop
/opt/SUNWscgds/bin/gds_probe
/opt/SUNWscgds/bin/gds_svc_start
/opt/SUNWscgds/bin/gds_svc_stop
/opt/SUNWscgds/bin/gds_update
/opt/SUNWscgds/bin/gds_validate
/opt/SUNWscgds/etc
/opt/SUNWscgds/etc/SUNW.gds

Pourquoi utiliser le module GDS

Le module GDS offre les avantages suivants par rapport à l'utilisation du modèle de code source généré par SunPlex Agent Builder (reportez-vous à scdscreate( 1HA)) ou les commandes standard d'administration de Sun Cluster :

Processus de création d'un service utilisant le module GDS

Vous pouvez créer un service utilisant le module GDS de deux façons :

Module GDS et SunPlex Agent Builder

Utilisez SunPlex Agent Builder et sélectionnez GDS comme type de code source généré. La saisie de l'utilisateur sert à générer un ensemble de scripts moteurs qui configurent les ressources de l'application en question.

Module GDS et commandes standard d'administration de Sun Cluster

Cette méthode utilise le code de service de données précompilé dans SUNWscgds mais impose à l'administrateur système d'utiliser les commandes standard d'administration de Sun Cluster (scrgadm(1M) et scswitch(1M)) pour créer et configurer la ressource.

Sélection d'une méthode de création d'un service basé sur GDS

Comme l'indiquent les procédures Utilisation des commandes d'administration de Sun Cluster permettant de créer un service à haut niveau de disponibilité basé sur le module GDS et Commandes d'administration standard de Sun Cluster permettant de créer un service évolutif basé sur le module GDS, l'exécution des commandes scrgadm et scswitch nécessite un effort conséquent de saisie.

L'utilisation du module GDS avec SunPlex Agent Builder simplifie le processus car ce module génère des scripts moteurs qui exécutent les commandes scrgadm et scswitch à votre place.

Cas dans lesquels le module GDS n'est pas approprié

Alors que l'utilisation du module GDS offre de nombreux avantages, il arrive qu'il ne soit pas opportun de l'utiliser. Le module GDS ne convient pas :

Propriétés requises pour le module GDS

Les propriétés suivantes sont indispensables :

Propriété d'extension Commande_démarrage

La commande de démarrage que vous spécifiez dans la propriété d'extension Commande_démarrage lance l'application. Cette commande UNIX et ses arguments peuvent être passés directement à un shell pour démarrer l'application.

Propriété Liste_ports

La propriété Liste_ports identifie la liste des ports que l'application écoute. La propriété Liste_ports doit figurer dans le script de démarrage créé par SunPlex Agent Builder ou dans la commande scrgadm si vous utilisez les commandes standard d'administration de Sun Cluster.

Propriétés facultatives pour le module GDS

Propriétés GDS facultatives :

Propriété Ressources_réseau_utilisées

La valeur par défaut de cette propriété est Null. Vous devez impérativement spécifier cette propriété dès lors que l'application doit être liée à une ou plusieurs adresses spécifiques. Si cette propriété est omise ou si elle est spécifiée comme Null, on considère que l'application écoute sur toutes les adresses.

Avant de créer une ressource GDS, la ressource LogicalHostName ou SharedAddress doit également avoir été configurée. Reportez-vous au document Sun Cluster 3.1 Data Service Planning and Administration Guide pour de plus amples informations sur la procédure de configuration d'une ressource LogicalHostName ou SharedAddress.

Pour spécifier une valeur, spécifiez le nom d'une ou plusieurs ressources ; chaque nom pouvant contenir un ou plusieurs LogicalHostName ou une ou plusieurs SharedAddress. Reportez-vous à r_properties (5) pour de plus amples informations.

Propriété Commande_arrêt

La commande d'arrêt doit arrêter l'application et n'être retournée qu'une fois l'application totalement arrêtée. Il doit impérativement s'agir d'une commande UNIX complète qui peut être transmise directement à un shell pour arrêter l'application.

En présence de la Commande_arrêt, la méthode d'arrêt du module GDS lance la commande d'arrêt avec 80 % du délai imparti à l'arrêt. Quel que soit le résultat de la commande d'arrêt, la méthode d'arrêt du module GDS envoie la commande SIGKILL avec 15% du délai imparti à l'arrêt. Les 5% restants sont réservés au temps système de gestion interne.

Si la commande d'arrêt est omise, le module GDS tente d'arrêter l'application en utilisant le signal spécifié dans Signal_arrêt.

Propriété Commande_sonde

La commande de détection contrôle périodiquement l'état de l'application en question. Cette commande UNIX et ses arguments peuvent être transmis directement à un shell pour sonder l'application. La commande de détection renvoie un statut de sortie égal à 0 si l'application est en bon état.

L'état de sortie de la commande de détection permet de déterminer le degré de gravité de la panne qui touche l'application. Cet état de sortie, appelé statut de détection, doit être un nombre entier compris entre 0 (réussite) et 100 (panne intégrale). Le statut de détection peut également correspondre à une valeur spéciale de 201 qui entraîne un basculement immédiat de l'application sauf si Basculement_activé est défini sur False. L'algorithme de détection du module GDS (reportez-vous à scds_fm_action(3HA)) se base sur le statut de détection pour décider de redémarrer l'application en local ou de la basculer sur un autre noeud ; si le statut de sortie est 201, le basculement de l'application est immédiat.

Si la commande de détection est omise, le module GDS effectue sa propre détection et se connecte à l'application sur l'ensemble des adresses IP dérivées de la propriété Ressources_réseau_utilisées ou de la sortie de scds_get_netaddr_list(3HA). Si la connexion réussit, le module GDS se déconnecte immédiatement. Si la connexion et la déconnexion réussissent, on considère que l'application fonctionne correctement.


Remarque :

la détection effectuée par le module GDS n'est qu'un simple substitut à la détection complète de l'application.


Propriété Délai_démarrage

Cette propriété spécifie le délai d'attente au démarrage de la commande de démarrage (reportez-vous à la rubrique Propriété d'extension Commande_démarrage pour de plus amples informations). La valeur par défaut de Délai_démarrage est de 300 secondes.

Propriété Délai_arrêt

Cette propriété spécifie le délai d'attente à l'arrêt de la commande d'arrêt (reportez-vous à la rubrique Propriété Commande_arrêt pour de plus amples informations. La valeur par défaut de Délai_arrêt est de 300 secondes.

Propriété Délai_sonde

Cette propriété spécifie le délai d'attente de la commande de détection (reportez-vous à la rubrique Propriété Commande_sonde pour de plus amples informations). La valeur par défaut de Délai_sonde est de 30 secondes.

Propriété Niveau_cont_fils

Cette propriété permet de contrôler les processus gérés par la fonction PMF. Elle indique le niveau auquel les processus fils sont surveillés. Cette propriété est similaire à l'argument -C de la commande pmfadm(1M).

Omettre cette propriété, ou lui conférer la valeur par défaut de -1, revient à omettre l'option -C de la commande pmfadm ; c'est-à-dire que tous les fils (et leurs descendants) seront surveillés.


Remarque :

cette option peut être spécifiée à l'aide des commandes d'administration standard de Sun Cluster. Vous ne pouvez pas spécifier cette option si vous utilisez SunPlex Agent Builder.


Propriété Basculement_activé

Cette propriété booléenne d'extension contrôle le comportement de basculement de la ressource. Si cette propriété d'extension est définie sur vrai, l'application est basculée dès lors que le nombre de redémarrages dépasse la valeur nombre_nouvelles_tentatives au cours du délai en secondes intervalle_nouvelles_tentatives.

Si cette propriété d'extension est définie sur faux, l'application ne redémarre pas et ne bascule pas sur un autre noeud lorsque le nombre de redémarrages dépasse la valeur nombre_nouvelles_tentatives au cours du délai en secondes intervalle_nouvelles_tentatives.

Cette propriété d'extension peut être utilisée pour empêcher la ressource d'application de basculer un groupe de ressources. La valeur par défaut est vrai.

Propriété Signal_arrêt

Le module GDS utilise la valeur de cette propriété d'extension entière pour déterminer le signal utilisé pour arrêter l'application au moyen de la fonction PMF. Reportez-vous à signal(3HEAD) pour connaître la liste des nombres entiers qu'il est possible de spécifier comme valeur. La valeur par défaut est 15 (SIGTERM).