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

Contrôle d'une application

Les méthodes de rappel permettent au gestionnaire RGM de contrôler les ressources sous-jacentes (application) chaque fois que des noeuds sont liés au processus d'entrée/sortie du cluster.

Démarrage et arrêt d'une ressource

La mise en oeuvre d'un type de ressources requiert au minimum une méthode de Démarrage et une méthode d'Arrêt. Le gestionnaire RGM appelle les programmes de méthode du type de ressources aux moments opportuns et sur les noeuds appropriés pour connecter ou déconnecter les groupes de ressources. Par exemple, après la défaillance d'un noeud de cluster, le gestionnaire RGM transfère les groupes de ressources gérés par ce noeud sur un autre noeud. Vous devez mettre en oeuvre une méthode de Démarrage pour permettre au gestionnaire RGM de redémarrer chaque ressource sur le noeud hôte restant.

Une méthode de Démarrage ne doit pas être retournée tant que la ressource n'a pas été exécutée et n'est pas disponible sur le noeud local. Veillez à ce que les types de ressources nécessitant une longue période d'initialisation disposent d'un délai d'attente suffisant dans la méthode de Démarrage (configurez la propriété Délai_démarrage sur une valeur minimum dans le fichier d'enregistrement du type de ressources).

Vous devez mettre en oeuvre une méthode d'Arrêt lorsque le gestionnaire RGM déconnecte un groupe de ressources. Par exemple, supposons qu'un groupe de ressources est déconnecté du Noeud1 puis reconnecté au Noeud2. Tout en déconnectant le groupe de ressources, le gestionnaire RGM appelle la méthode d'Arrêt sur les ressources du groupe dont vous souhaitez arrêter toute activité sur le Noeud1. Une fois que les méthodes d' Arrêt ont été exécutées sur toutes les ressources du Noeud1, le gestionnaire RGM connecte le groupe de ressources au Noeud2.

Une méthode d'Arrêt ne doit pas être retournée tant que la ressource n'a pas cessé totalement toute activité au niveau du noeud local et qu'elle n'est pas complètement arrêtée. La mise en oeuvre la plus fiable d'une méthode d'Arrêt se traduit par l'achèvement de tous les processus sur le noeud local lié à la ressource. Pour les types de ressources mettant longtemps à s'arrêter, il est nécessaire de définir un délai d'attente suffisamment long dans leur méthode d'Arrêt. Définissez la propriété Délai_arrêt dans le fichier d'enregistrement du type de ressources.

Lorsqu'une méthode d'Arrêt échoue ou dépasse le délai imparti, le groupe de ressources bascule dans un mode d'erreur requérant l'intervention de l'opérateur. Pour éviter cela, les mises en oeuvre des méthodes d'Arrêt et d'Arrêt_détecteur doivent tenter une récupération à partir de toutes les conditions d'erreur possibles. Dans l'idéal, la fermeture de ces méthodes doit s'accompagner d'un état d'erreur nul (succès) signifiant que les méthodes ont réussi à interrompre correctement toutes les activités de la ressource et de son détecteur sur le noeud local.

Choix des méthodes de Démarrage et d'Arrêt à utiliser

Cette rubrique présente des astuces permettant de savoir quand il est préférable d'utiliser les méthodes de Démarrage et d'Arrêt par opposition aux méthodes de Démarrage_avant_réseau et d' Arrêt_après_réseau. Pour déterminer les méthodes à utiliser, vous devez posséder une connaissance approfondie du client et du protocole de gestion des réseaux client-serveur du service de données.

Par ailleurs, il est possible qu'avec les services utilisant des ressources d'adresse réseau, les étapes de démarrage et d'arrêt doivent être exécutées dans un ordre précis dépendant de la configuration de l'adresse du nom d'hôte logique. Les méthodes de rappel en option de Démarrage_avant_réseau et d'Arrêt_après_réseau permettent à la mise en oeuvre d'un type de ressources d'effectuer des actions de démarrage et d'arrêt spéciales avant et après la configuration en amont ou en aval des adresses réseau dans le même groupe de ressources.

Le gestionnaire RGM appelle les méthodes plombant (sans les configurer en amont) les adresses réseau avant d'appeler la méthode de Démarrage_avant_réseau du service de données. Le gestionnaire RGM appelle les méthodes déplombant les adresses réseau après avoir appelé les méthodes d'Arrêt_après_réseau du service de données. Séquence applicable lorsque le gestionnaire RGM connecte un groupe de ressources :

  1. Plombage des adresses réseau.

  2. Appel de la méthode de Démarrage_avant_réseau du service de données (le cas échéant).

  3. Configuration en amont des adresses réseau.

  4. Appel de la méthode de Démarrage du service de données (le cas échéant).

Séquence applicable lorsque le gestionnaire RGM déconnecte un groupe de ressources (séquence inverse de la précédente) :

  1. Appel de la méthode d'Arrêt du service de données (le cas échéant).

  2. Configuration en aval des adresses réseau.

  3. Appel de la méthode d'Arrêt_après_réseau du service de données (le cas échéant).

  4. Déplombage des adresses réseau.

Pour choisir les méthodes de Démarrage, d' Arrêt, de Démarrage_avant_réseau ou d'Arrêt_après_réseau à utiliser, considérez tout d'abord le côté serveur. Lors de la connexion d'un groupe de ressources contenant des ressources d'adresse réseau et d'application de service de données, le gestionnaire RGM appelle des méthodes de configuration en amont des adresses réseau avant d'appeler les méthodes de ressources de Démarrage du service de données. Par conséquent, si un service de données requiert des adresses configurées en amont à son démarrage, utilisez la méthode de Démarrage pour le démarrer.

De même, lors de la déconnexion d'un groupe de ressources contenant des ressources d'adresse réseau et de service de données, le gestionnaire RGM appelle des méthodes de configuration en aval des adresses réseau avant d'appeler les méthodes de ressources d'Arrêt du service de données. Par conséquent, si un service de données requiert des adresses configurées en aval à son arrêt, utilisez la méthode d'Arrêt pour l'arrêter.

Par exemple, pour démarrer ou arrêter un service de données, vous devrez peut-être exécuter ses bibliothèques ou ses utilitaires d'administration. Le service de données contient parfois des bibliothèques ou des utilitaires d'administration utilisant une interface de gestion de réseaux client-serveur pour accomplir les tâches administratives. Le cas échéant, un utilitaire d'administration appelle le démon du serveur. L'adresse réseau doit donc être en amont pour utiliser la bibliothèque ou l'utilitaire d'administration. Dans ce cas, utilisez les méthodes de Démarrage et d'Arrêt.

Par contre, vous devez démarrer ou arrêter le service de données à l'aide des méthodes de Démarrage_avant_réseau et d'Arrêt_après_réseau si son démarrage ou son arrêt nécessite que les adresses réseau soient configurées en aval. Vous devez tenir compte du fait que les logiciels clients peuvent réagir différemment suivant que l'adresse réseau ou le service de données se connecte en premier après la reconfiguration d'un cluster (soit scha_control() avec l'argument SCHA_GIVEOVER ou une commutation avec scswitch). Par exemple, la mise en oeuvre de clients peut nécessiter un minimum de tentatives, l'abandon survenant rapidement une fois que l'indisponibilité du port du service de données a été détectée.

Si le service de données ne requiert pas qu'une adresse réseau soit configurée en amont, démarrez-le avant de configurer l'interface réseau en amont. Vous avez ainsi l'assurance que le service de données peut répondre immédiatement aux requêtes des clients dès que l'adresse réseau a été configurée en amont. Par conséquent, les clients sont moins susceptibles d'interrompre leurs tentatives. Dans ce cas, démarrez le service de données à l'aide de la méthode de Démarrage_avant_réseau plutôt qu'avec la méthode de Démarrage.

Si vous utilisez la méthode d'Arrêt_après_réseau, la ressource de service de données se trouve encore en amont lors de la configuration en aval de l'adresse réseau. La méthode d'Arrêt_après_réseau n'est donc appelée qu'après la configuration en aval de l'adresse réseau. En conclusion, le port du service TCP ou UDP du service de données (ou son numéro de programme RPC) semble toujours disponible aux clients du réseau, hormis lorsque l'adresse réseau elle-même ne répond pas.

La décision d'utiliser les méthodes de Démarrage et d'Arrêt plutôt que les méthodes de Démarrage_avant_réseau et d'Arrêt_après_réseau ou de combiner les deux, doit tenir compte des exigences et du comportement du client et du serveur.

Méthodes d'Init, de Fini et d'Initialisation

Les trois méthodes facultatives d'Init , de Fini et d'Initialisation permettent au gestionnaire RGM d'exécuter un programme d'initialisation ou d'arrêt sur une ressource. Le gestionnaire RGM appelle la méthode d'Init pour exécuter l'initialisation unique d'une ressource qui devient gérée soit parce que le groupe de ressources auquel elle appartient bascule d'un état non géré à un état géré ou parce qu'elle est créée dans un groupe de ressources déjà géré.

Le gestionnaire RGM appelle la méthode Fini pour supprimer la ressource qui devient non gérée soit parce que le groupe de ressources auquel elle appartient bascule d'un état géré à un état non géré ou parce qu'elle est supprimée d'un groupe de ressources géré. La suppression doit être idempotente. Par conséquent, si la suppression a déjà été effectuée, le résultat de Fini est 0 (succès).

Le gestionnaire RGM appelle la méthode d'Initialisation sur les noeuds qui viennent de se connecter au cluster, c'est-à-dire, qui viennent d'être initialisés ou réinitialisés.

L'initialisation induite par les méthodes d'Initialisation et d'Init est généralement identique. Elle doit être idempotente. Par conséquent, si la ressource a déjà été initialisée sur le noeud local, le résultat d'Initialisation et Init est 0 (succès).