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

Chapitre 1 Présentation de la gestion des ressources

Ce manuel fournit des procédures de création d'un type de ressources pour des applications telles que Oracle®, Sun JavaTM System Web Server (précédemment Sun TM ONE Web Server), DNS, etc. Par conséquent, il s'adresse aux développeurs de types de ressources.

Ce chapitre présente les concepts à maîtriser pour développer un service de données et contient les informations suivantes :


Remarque –

les expressions type de ressources et service de données sont utilisées de façon interchangeables dans ce manuel. Le terme agent, rarement usité dans ce manuel, signifie également type de ressources et service de données.


Environnement d'application Sun Cluster

Le système Sun Cluster permet d'exécuter et d'administrer les applications en tant que ressources évolutives et hautement disponibles. La fonction de cluster appelée RGM (Resource Group Manager, gestionnaire de groupes de ressources) est à l'origine du haut niveau de disponibilité et d'évolutivité. Les éléments constituant l'interface de programmation vers cette fonction sont :

L'illustration indiquée ci-après présente l'interrelation entre ces éléments.

Figure 1–1 Architecture de programmation

Illustration présentant l'interrelation entre les méthodes de rappel, l'interface API GR, la fonction de gestion des processus et la bibliothèque BDSD

SunPlexTM Agent Builder est inclus dans le package Sun Cluster. Cet outil automatise le processus de création d'un service de données (reportez-vous au Chapitre 9, SunPlex Agent Builder). Agent Builder génère un code de service de données en C (à l'aide des fonctions BDSD pour rédiger des méthodes de rappel) ou en korn shell (ksh) (à l'aide des commandes API de bas niveau pour rédiger des méthodes de rappel).

Le RGM s'exécute comme un démon sur chaque nœud du cluster. Il démarre automatiquement et arrête les ressources sur les nœuds sélectionnés conformément à des règles prédéfinies. Le RGM assure le haut niveau de disponibilité d'une ressource en cas de dysfonctionnement ou de redémarrage d'un nœud en arrêtant la ressource sur le nœud concerné et en la démarrant sur un autre. En outre, le RGM démarre et arrête automatiquement les détecteurs dédiés aux ressources pouvant détecter les dysfonctionnements au niveau des ressources, réallouer ces ressources sur un autre nœud ou contrôler d'autres aspects en termes de performances des ressources.

Le RGM prend en charge les ressources de basculement pouvant être connectées à un seul nœud à la fois et les ressources évolutives pouvant être connectées à plusieurs nœuds simultanément.

Modèle RGM

Cette rubrique traite de la terminologie fondamentale et présente de façon détaillée le RGM et les interfaces connexes.

Le RGM gère trois types fondamentaux d'objets interreliés : types de ressources, ressources et groupes de ressources. Un exemple peut être utilisé pour présenter ces objets, comme indiqué ci-après.

Un développeur met en œuvre un type de ressources, ha-oracle, garantissant le haut niveau de disponibilité d'une application Oracle DBMS. Un utilisateur final définit des bases de données distinctes pour le marketing, l'ingénierie et la finance, chacune d'entre elles représentant une ressource de type ha-oracle. L'administrateur du cluster intègre ces ressources dans des groupes de ressources distincts, afin de pouvoir les exécuter sur différents nœuds et les basculer de façon indépendante. Un développeur crée un second type de ressources, ha-calendar, pour mettre en œuvre un serveur d'agendas à haut niveau de disponibilité requérant une base de données Oracle. L'administrateur de cluster place la ressource dédiée à l'agenda financier dans le groupe de ressources dans lequel figure déjà la base de données financière. Ainsi, ces deux ressources sont exécutées sur le même nœud et basculent en même temps.

Types de ressources

Un type de ressources est constitué d'une application à exécuter sur un cluster, de programmes de gestion utilisés, comme les méthodes de rappel, par le RGM pour gérer l'application en tant que ressource de cluster et d'un ensemble de propriétés faisant partie intégrante de la configuration statique d'un cluster. Le RGM utilise des propriétés de type de ressources pour gérer les ressources d'un type spécifique.


Remarque –

en plus d'une application, un type de ressources peut représenter d'autres ressources système comme les adresses réseau.


Le développeur indique les propriétés du type de ressources qu'il conçoit et définit leur valeur dans un fichier RTR (Resource Type Registration). Le fichier RTR est conforme à un format bien défini dont vous trouverez une description dans la rubrique Paramétrage des propriétés de ressources et de types de ressources et à la page man rt_reg(4). Reportez-vous également à la rubrique Définition du fichier d'enregistrement du type de ressource pour obtenir la description du fichier d'enregistrement d'un exemple de type de ressources.

La rubrique Propriétés des types de ressources répertorie les propriétés de type de ressources.

L'administrateur du cluster installe et enregistre sur un cluster l'application sous-jacente et de mise en œuvre des types de ressources. La procédure d'enregistrement ajoute à la configuration du cluster les informations issues du fichier d'enregistrement du type de ressources. Le document Sun Cluster Data Services Planning and Administration Guide for Solaris OS présente la procédure d'enregistrement d'un service de données.

Ressources

Une ressource hérite des propriétés et des valeurs de son type de ressources. En outre, un développeur peut déclarer des propriétés de ressource dans le fichier d'enregistrement du type de ressources. La rubrique Propriétés des ressources répertorie les propriétés de ressource.

L'administrateur de cluster peut modifier les valeurs de certaines propriétés suivant la façon dont elles sont spécifiées dans le fichier RTR. Par exemple, les définitions de propriété peuvent indiquer une plage de valeurs permises et spécifier quand la propriété est configurable (par exemple à la création, à tout moment ou jamais). L'administrateur du cluster peut modifier les propriétés dans le respect de ces spécifications à l'aide des commandes d'administration.

L'administrateur du cluster peut créer de nombreuses ressources du même type, chaque ressource possédant un nom et un ensemble de valeurs de propriété qui lui sont propres, afin qu'il soit possible d'exécuter plusieurs instances de l'application sous-jacente sur le cluster. Chaque instanciation requiert un nom unique au sein du cluster.

Groupes de ressources

Chaque ressource doit être configurée dans un groupe de ressources. Le RGM connecte et déconnecte simultanément toutes les ressources d'un groupe sur un même nœud. Lorsque le RGM connecte ou déconnecte un groupe de ressources, il exécute des méthodes de rappel sur les ressources individuelles du groupe.

Les nœuds auxquels un groupe de ressources est connecté sont appelés les nœuds principaux de ce groupe. Un groupe de ressources est géré par chacun de ses nœuds principaux. Chaque groupe de ressources possède une propriété Nodeist associée. Cette propriété est définie par l'administrateur de cluster et identifie tous les nœuds principaux potentiels ou maîtres du groupe de ressources.

Un groupe de ressources possède également un jeu de propriétés. Ces propriétés comprennent les propriétés de configuration définissables par l'administrateur du cluster et les propriétés dynamiques reflétant l'état actif du groupe de ressources et définies par le RGM.

Le RGM définit deux types de groupes de ressources : les groupes de ressources de basculement et les groupes de ressources évolutives. Un groupe de ressources de basculement ne peut être connecté qu'à un seul nœud à la fois tandis qu'un groupe de ressources évolutives peut être connecté simultanément à plusieurs nœuds. Le RGM fournit un ensemble de propriétés pour prendre en charge la création de chaque type de groupe de ressources. Reportez-vous aux rubriques Transfert d'un service de données sur un cluster et Mise en œuvre des méthodes de rappel pour de plus amples informations sur ces propriétés.

La rubrique Propriétés du groupe de ressources présente la liste des propriétés de groupe de ressources.

Gestionnaire du groupe de ressources

Le RGM (Resource Group Manager) est mis en œuvre comme un démon, rgmd qui s'exécute sur chaque nœud appartenant au cluster. Tous les processus rgmd communiquent entre eux et agissent ensemble comme une fonction unique à l'échelle du cluster.

Le RGM prend en charge les fonctions suivantes :

Chaque fois que le RGM active des modifications de configuration, il coordonne ses actions sur tous les nœuds appartenant au cluster. Cette activité porte le nom de reconfiguration. Pour modifier l'état d'une ressource individuelle, le RGM lui applique une méthode de rappel propre à son type de ressources.

Méthodes de rappel

La structure de Sun Cluster utilise un mécanisme de rappel pour assurer la communication entre un service de données et le RGM. Cette structure définit un ensemble de méthodes de rappel, arguments et valeurs de retour compris, ainsi que les circonstances dans lesquelles le RGM appelle chaque méthode.

Vous pouvez créer un service de données en codant un ensemble de méthodes de rappel individuelles et en mettant en œuvre chaque méthode sous la forme d'un programme que le RGM peut appeler. Aussi, le service de données n'est pas constitué d'un seul fichier exécutable mais plutôt de plusieurs scripts exécutables (ksh) ou programmes en binaire (C) que le RGM peut appeler directement.

Les méthodes de rappel sont enregistrées avec le RGM dans le fichier RTR (Resource Type Registration). Vous identifiez dans le fichier RTR chaque méthode mise en œuvre pour le service de données. Lorsqu'un administrateur système enregistre le service de données sur un cluster, le RGM lit le fichier RTR, qui fournit, entre autres informations, l'identité des programmes de rappel.

Un type de ressources ne requiert que deux méthodes de rappel : une méthode de démarrage (Start ou Prenet_start) et une méthode d'arrêt (Stop ou Postnet_stop).

Les méthodes de rappel peuvent être regroupées dans les catégories suivantes :

Reportez-vous au Chapitre 4, Référence concernant l'API de gestion des ressources et à la page man rt_callbacks (1HA) pour de plus amples informations sur les méthodes de rappel. Reportez-vous également au Chapitre 5, Service de données modèle et au Chapitre 8, Mise en œuvre du type de ressource BDSD modèle pour de plus amples informations sur les méthodes de rappel dans les services de données échantillon.

Interfaces de programmation

Afin d'écrire le code du service de données, l'architecture de gestion des ressources offre une interface API de base et de bas niveau, une bibliothèque d'un niveau plus élevé et un outil, SunPlex Agent Builder, générant automatiquement un service de données à partir de l'entrée de base fournie.

API GR

L'interface API GR (interface de programme d'application des gestion des ressources) propose un ensemble de routines de bas niveau permettant au service de données d'accéder aux informations sur les ressources, les types de ressources et les groupes de ressources du système, demandant un redémarrage local ou un basculement et définissant l'état des ressources. La bibliothèque libscha.so vous permet d'accéder à ces fonctions. L'interface API GR fournit ces méthodes de rappel sous la forme de commandes shell et de fonctions C. Reportez-vous à scha_calls(3HA) et au Chapitre 4, Référence concernant l'API de gestion des ressources pour de plus amples informations sur les routines API GR. Reportez-vous également au Chapitre 5, Service de données modèle pour découvrir des exemples d'utilisation de ces routines dans les méthodes de rappel de service de données échantillon.

Bibliothèque de développement de services de données (BDSD)

La bibliothèque BDSD est générée au sommet de l'interface API GR. Elle fournit une structure intégrée de plus haut niveau tout en conservant le modèle de rappel/méthode sous-jacente de l'interface RGM. La bibliothèque BDSD regroupe diverses fonctions de développement de services de données, y compris :

Avec la plupart des applications, la bibliothèque BDSD fournit toutes ou presque toutes les fonctionnalités dont vous avez besoin pour concevoir un service de données. Notez, toutefois, que la bibliothèque BDSD ne remplace pas l'interface API de bas niveau mais l'encapsule et l'étend. En fait, de nombreuses fonctions BDSD appellent les fonctions libscha.so. Vous pouvez également appeler directement les fonctions libscha.so tout en utilisant la librairie BDSD pour coder la majeure partie du service de données. La librairie libdsdev.so contient les fonctions BDSD.

Reportez-vous au Chapitre 6, Bibliothèque de développement de services de données (BDSD) et à la page man scha_calls(3HA) pour de plus amples informations sur la bibliothèque BDSD.

SunPlex Agent Builder

Agent Builder est un outil automatisant la création d'un service de données. Une fois entrées les informations élémentaires sur l'application cible et le service de données à créer, Agent Builder génère un service de données, complété par un code source ou exécutable (C ou Korn shell), un fichier RTR personnalisé et un package SolarisTM.

Vous pouvez utiliser Agent Builder avec la plupart des applications pour générer un service de données complet en n'y apportant que des modifications manuelles mineures. Les applications dont les exigences sont plus complexes (ajout de contrôles de validation aux propriétés additionnelles par exemple) peuvent requérir des actions qu'Agent Builder ne peut réaliser. Cependant, même dans ces circonstances vous pouvez utiliser Agent Builder pour générer la majeure partie du code avant de coder manuellement la partie restante. Vous pouvez, au minimum, utiliser Agent Builder pour générer le package Solaris pour vous.

Interface administrative du gestionnaire de groupes de ressources

Sun Cluster offre une interface utilisateur graphique et un ensemble de commandes d'administration d'un cluster.

Gestionnaire SunPlex

SunPlex Manager est un outil basé sur le Web vous permettant d'exécuter les tâches suivantes :

Reportez-vous au Guide d'installation du logiciel Sun Cluster pour SE Solaris pour de plus amples informations sur la procédure d'installation de SunPlex Manager et son utilisation pour installer un logiciel de cluster. SunPlex Manager dispose d'une aide en ligne sur la plupart des tâches administratives uniques.

Commandes administratives

Les commandes d'administration Sun Cluster des objets RGM sont scrgadm(1M), scswitch(1M) et scstat(1M) -g.

La commande scrgadm permet de visualiser, créer, configurer et supprimer le type de ressources, le groupe de ressources et les ressources utilisés par le RGM. La commande fait partie intégrante de l'interface administrative du cluster. Vous ne devez pas l'utiliser dans le même contexte que l'interface d'application présentée dans le reste de ce chapitre. La configuration du cluster, au sein de laquelle l'interface API fonctionne, est réalisée à l'aide de l'outil scrgadm. La compréhension de l'interface d'application passe par la compréhension de l'interface administrative. Reportez-vous à la page man scrgadm( 1M) pour de plus amples informations sur les tâches administratives que cette commande vous permet de réaliser.

La commande scswitch connecte et déconnecte le groupe de ressources sur les nœuds indiqués et active ou désactive une ressource ou son détecteur. Reportez-vous à la page man scswitch(1M) pour de plus amples informations sur les tâches administratives que cette commande peut réaliser.

La commande scstat -g indique l'état dynamique courant de tous les groupes de ressources et de toutes les ressources.