Le gestionnaire (RGM) gère les groupes de ressources et, en définitive, les ressources sur un cluster. Il utilise un modèle de rappel. Lorsque des événements spécifiques se produisent, tels qu'un échec de noeud, le RGM appelle les méthodes du type de chacune des ressources fonctionnant sur le noeud affecté. Par exemple, le RGM appelle la méthode Stop pour arrêter une ressource fonctionnant sur le noeud affecté et appelle la méthode Start de cette ressource pour la lancer sur un autre noeud. Pour en savoir plus sur ce modèle, reportez-vous aux pages de manuel Modèle du gestionnaire de groupes de ressources, Méthodes de rappel et rt_callbacks(1HA).
Pour prendre en charge ce modèle, Agent Builder génère huit programmes C exécutables ou scripts korn shell dans le répertoire install-directory/rt-name/bin. Ces programmes ou scripts de shell servent de méthodes de rappel.
Le programme rt-name_probe, qui implémente un détecteur de pannes, n'est pas un programme de rappel à proprement parler. Le RGM n'appelle pas directement rt-name_probe : il appelle rt-name_monitor_start et rt-name_monitor_stop. Ces méthodes démarrent et arrêtent le détecteur de pannes en appelant rt-name _probe.
Les huit méthodes générées par Agent Builder sont les suivantes :
rt-name_monitor_check
rt-name_monitor_start
rt-name_monitor_stop
rt-name_probe
rt-name_svc_start
rt-name_svc_stop
rt-name_update
rt-name_validate
Pour plus d'informations sur ces méthodes, reportez-vous à la page de manuel rt_callbacks(1HA).
Dans le répertoire install-directory/rt-name/src (sortie C), Agent Builder génère les fichiers suivants :
Un fichier d'en-tête (rt-name.h)
Un fichier source (rt-name.c) qui contient le code commun à toutes les méthodes
Un fichier d'objets (rt-name.o) pour le code commun
Des fichiers source (*.c) pour chacune des méfhodes
Des fichiers d'objets (*.o) pour chacune des méfhodes
Agent Builder lie le fichier rt-name.o à chacun des fichiers de méthode .o pour créer les fichiers exécutables dans le répertoire install-directory/rt-name/bin.
Pour la sortie de korn shell, les répertoires install-directory/rt-name/bin et install-directory/rt-name/src sont identiques. Chacun d'eux comporte huit scripts d'exécution correspondant aux sept méthodes de rappel et à la méthode Probe.
La sortie de korn shell comprend deux utilitaires compilés, gettime et gethostnames. Les méthodes de rappel particulières utilisent ces méthodes pour obtenir du temps et pour procéder à l'analyse.
Vous pouvez modifier le code source, exécuter la commande make pour recompiler le code et, lorsque vous avez terminé, exécuter la commande make pkg pour générer un nouveau package. Pour faciliter la modification du code source, Agent Builder ajoute des commentaires aux endroits où vous devez ajouter du code dans le code source. Voir Édition du code source généré.
Une fois que vous avez généré un type de ressource et installé son package sur un cluster, vous devez encore exécuter une instance (ressource) du type de ressource fonctionnant sur un cluster. Normalement, pour exécuter une instance, vous devez utiliser les commandes administratives ou SunPlex Manager. Toutefois, pour faciliter les choses, Agent Builder génère un script d'utilitaire personnalisé à cette fin, ainsi que des scripts permettant d'arrêter et de supprimer une ressource du type de ressource cible. Ces trois scripts, qui se trouvent dans le répertoire install-directory/rt-name/util, effectuent les opérations suivantes :
Script de démarrage : enregistre le type de ressources et crée les ressources et les groupes de ressources nécessaires. Ce script crée également la ressource d'adresse réseau (LogicalHostname ou SharedAddress ) qui permet à l'application de communiquer avec les clients sur le réseau.
Script d'arrêt : arrête la ressource.
Script de suppression : annule les actions du script de démarrage. Il permet d'arrêter les ressources, les groupes de ressources et le type de ressources cible et de les supprimer du système.
Vous ne pouvez utiliser que le script de suppression avec une ressource qui a été démarrée par le script de démarrage correspondant, car ces scripts utilisent des conventions internes pour nommer les ressources et les groupes de ressources.
Agent Builder attribue un nom à ces scripts en ajoutant le nom d'application aux noms de script. Par exemple, si le nom de l'application est ftp, les scripts sont appelés startftp, stopftp et removeftp.
Agent Builder fournit des pages de manuel dans le répertoire install-directory/rt-name/man/man1m pour chaque script d'utilitaire. Nous vous conseillons de les lire avant de démarrer ces scripts, car elles donnent des explications sur les arguments à transférer au script.
Pour pouvoir afficher ces pages, indiquez le chemin d'accès au répertoire man en utilisant l'option -M avec la commande man. Par exemple, si SUNW est le fournisseur et ftp, le nom de l'application, entrez la commande suivante pour afficher la page de manuel startftp(1M) :
% man -M install-directory/SUNWftp/man startftp |
Les scripts d'utilitaire des pages man sont également disponibles auprès de l'administrateur du cluster. Lorsqu'un package généré par Agent Builder est installé sur un cluster, les pages de manuel portant sur les scripts d'utilitaire sont placées dans le répertoire /opt/rt-name/man. Par exemple, entrez la commande suivante pour afficher la page de manuel startftp(1M) :
% man -M /opt/SUNWftp/man startftp |
Agent Builder place les fichiers de prise en charge, tels que pkginfo, postinstall, postremove et preremove, dans le répertoire install-directory/rt-name/etc. Ce répertoire contient également le fichier d'enregistrement du type de ressource (RTR). Le fichier RTR déclare les propriétés de ressource et de type de ressource qui sont disponibles pour le type de ressource cible et initialise les valeurs de propriété au moment où une ressource est enregistrée avec un cluster. Pour en savoir plus, voir Paramétrage des propriétés de ressources et de types de ressources. Le nom du fichier RTR suit le modèle vendor-name.resource-type-name, par exemple SUNW.ftp.
Vous pouvez modifier ce fichier à l'aide d'un éditeur de texte standard et apporter des modifications sans recompiler votre code source. En revanche, vous devez reconstruire le package à l'aide de la commande make pkg.
Le répertoire install-directory/rt-name/pkg contient un package Solaris. Le nom du package est une concaténation du nom du fournisseur et du nom de l'application, par exemple SUNWftp. Le fichier makefile qui se trouve dans le répertoire install-directory/rt-name/src prend en charge la création d'un nouveau package. Par exemple, si vous modifiez les fichiers source et recompilez le code, ou si vous modifiez les scripts d'utilitaire du package, utilisez la commande make pkg pour créer un nouveau package.
Lorsque vous supprimez un package d'un cluster, la commande pkgrm peut échouer si vous tentez de l'exécuter en même temps à partir de plusieurs noeuds. Vous pouvez pallier ce problème de l'une des deux façons suivantes :
Exécutez le script remove rt-name à partir d'un des noeuds du cluster avant d'exécuter la commande pkgrm à partir d'un autre noeud.
Exécutez la commande pkgrm à partir d'un des noeuds du cluster : cela permet d'effectuer toutes les opérations de nettoyage nécessaires. Exécutez ensuite la commande pkgrm à partir des autres noeuds, en même temps si nécessaire.
Si pkgrm échoue car vous tentez de l'exécuter en même temps à partir de plusieurs noeuds, exécutez la commande à nouveau à partir d'un seul noeud. Exécutez ensuite la commande à partir des autres noeuds.
Si vous générez du code source en shell C ou korn shell dans le répertoire de travail, Agent Builder génère un fichier de configuration appelé rtconfig. Ce fichier contient les informations que vous avez spécifiées sur les écrans Créer et Configurer. Si vous lancez Agent Builder à partir du répertoire de travail pour un type de ressource existant, Agent Builder lit le fichier rtconfig. Agent Builder se sert des informations que vous avez fournies pour le type de ressource existant pour compléter les écrans Créer et Configurer. Agent Builder fonctionne de la même manière si vous chargez un type de ressource existant en sélectionnant l'option correspondante du menu déroulant Fichier. Cette fonction est particulièrement utile lorsque vous souhaitez cloner un type de ressources existant. Voir Réutilisation du code créé avec Agent Builder .