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

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 nœuds sont liés au processus d'entrée/sortie du cluster.

Démarrage et arrêt d'une ressource

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

Une méthode Start ne doit pas être retournée tant que la ressource n'a pas été exécutée et n'est pas disponible sur le nœud 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 leur méthode Start (configurez la propriété Start_timeout dans le fichier RTR).

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

Une méthode Stop ne doit pas être retournée tant que la ressource n'a pas cessé totalement toute activité au niveau du nœud local et qu'elle n'est pas complètement arrêtée. La mise en œuvre la plus sûre d'une méthode Stop met fin, sur le nœud local, à tous les processus liés à 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 Stop. Définissez la propriété Stop_timeout dans le fichier RTR.

Lorsqu'une méthode Stop échoue ou dépasse le délai imparti, le groupe de ressources bascule dans un état d'erreur requérant l'intervention de l'administrateur du cluster. Pour éviter cela, les mises en œuvre 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 nœud local.

Choix des méthodes Start et Stop à utiliser

Cette rubrique présente des astuces permettant de savoir quand il est préférable d'utiliser les méthodes Start et Stop par opposition aux méthodes Prenet_start et Postnet_stop. Pour déterminer les méthodes à utiliser, vous devez avoir une connaissance approfondie du client et du protocole réseau 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 Prenet_start et Postnet_stop permettent à la mise en œuvre d'un type de ressources d'effectuer des actions de démarrage et d'arrêt spéciales avant et après la configuration comme actives ou inactives des adresses réseau dans le même groupe de ressources.

Le gestionnaire RGM appelle les méthodes plombant les adresses réseau (sans les configurer en amont) avant d’appeler la méthode 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 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 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 Démarrage du service de données (le cas échéant).

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

  1. Appel de la méthode 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 Postnet_stop du service de données (le cas échéant).

  4. Déplombage des adresses réseau.

Pour choisir les méthodes Start, Stop, Prenet_start ou Postnet_stop à 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 afin de configurer l'activation des adresses réseau avant d'appeler les méthodes Start des ressources 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 Start 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 afin de configurer la désactivation 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 que des adresses réseau soient actives à son arrêt, utilisez la méthode Stop 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 Start et Stop.

Par contre, vous devez démarrer ou arrêter le service de données à l'aide des méthodes Prenet_start et Postnet_stop s'il requiert que les adresses réseau passent à l'état désactivé à son démarrage ou à son arrêt. 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, soit une commutation avec scswitch). Par exemple, la mise en œuvre de clients peut nécessiter un minimum de tentatives, l'abandon survenant rapidement une fois l'indisponibilité du port du service de données détectée.

Si le service de données ne requiert pas qu'une adresse réseau soit activée, démarrez-le avant d'activer l'interface réseau. 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é activée. 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 Prenet_start plutôt qu'avec la méthode Start.

Si vous utilisez la méthode Postnet_stop, 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 Postnet_stop n'est appelée qu'après la configuration de la désactivation de l'adresse réseau. Par conséquent, 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.


Remarque –

Si vous installez un service RPC dans le cluster, le service ne doit pas utiliser les numéros de programme suivants : 100141, 100142 et 100248. Ces numéros sont réservés aux démons Sun Cluster rgmd_receptionist, fed et pmfd. Si le service RPC que vous installez utilise l'un de ces numéros, modifiez le numéro de programme de ce service RPC.


La décision d'utiliser les méthodes Start et Stop plutôt que les méthodes Prenet_start et Postnet_stop ou de combiner les deux, doit tenir compte des exigences et du comportement du client et du serveur.

Méthodes Init, Fini et Boot

Les trois méthodes facultatives Init, Fini et Boot 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 Init pour exécuter l'initialisation unique d'une ressource qui devient gérée

Le gestionnaire RGM appelle la méthode Fini à des fins de nettoyage lorsque la ressource devient non gérée

Le nettoyage doit être idempotent. Autrement dit, si le nettoyage a déjà été effectué, le résultat de Fini est 0 (succès).

Le gestionnaire RGM appelle la méthode Boot sur les nœuds 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. Autrement dit, si la ressource a déjà été initialisée sur le nœud local, le résultat de Boot et Init est 0 (succès).