Esta sección describe la salida generada por Agent Builder.
El Gestor de grupos de recursos (RGM), que gestiona grupos de recursos y, en última instancia, los recursos de un clúster, funciona sobre un modelo de rellamada. Cuando se producen eventos específicos, como fallos de nodos, RGM invoca los métodos del tipo de recurso para cada uno de los recursos en ejecución del nodo afectado. Por ejemplo, RGM invoca el método Stop para detener un recurso que se esté ejecutando en el nodo afectado y después invoca el método Start del recurso para iniciar éste en un nodo diferente. Consulte Modelo de RGM, Métodos de rellamada y la página de comando man de rt_callbacks(1HA) para obtener más información sobre este modelo.
Para que sea posible admitir este modelo, Agent Builder genera ocho programas en C ejecutables o secuencias de comandos de shells Korn en el directorio_instalación/ nombre_rt/bin que actúan como métodos de rellamadas.
Estrictamente hablando, el programa nombre_tr_probe, que implementa un supervisor de fallos, no es un programa de rellamada. RGM no invoca directamente nombre_tr_probe, sino nombre_tr_monitor_start y nombre_tr_monitor_stop, que inician y detienen el supervisor de fallos, invocando nombre_tr_probe.
Los ocho métodos que genera Agent Builder son:
nombre_tr_monitor_check
nombre_tr_monitor_start
nombre_tr_monitor_stop
nombre_tr_probe
nombre_tr_svc_start
nombre_tr_svc_stop
nombre_tr_update
nombre_tr_validate
Consulte la página de comando man de rt_callbacks(1HA) para obtener información específica sobre cada uno de estos métodos.
En el directorio directorio_instalación/nombre_tr/src (salida C), Agent Builder genera los archivos siguientes:
Un archivo de cabecera (nombre_tr.h).
Un archivo de origen (nombre_tr.c) que contiene el código común a todos los métodos.
Un archivo objeto (nombre_tr.o) para el código común.
Archivos de origen (*.c) para cada uno de los métodos
Archivos objeto (*.o) para cada uno de los métodos.
Agent Builder vincula el archivo nombre_tr.o con cada uno de los archivos de método .o para crear los ejecutables del directorio directorio_instalación/nombre_tr/bin.
Para la salida del shell Korn, los directorios directorio_instalación /nombre_rt/bin y directorio instalación/nombre_rt/src son idénticos. Cada directorio contiene las ocho secuencias de comandos ejecutables que corresponden a los siete métodos de rellamadas y al método Probe.
La salida del shell Korn incluye dos programas de utilidad compilados (gettime y gethostnames) que algunos métodos de rellamada necesitan para obtener el tiempo y para realizar un análisis.
Es posible editar el código fuente, ejecutar el comando make para recompilar el código y, al terminar, ejecutar el comando make pkg para generar otro paquete. Para poder realizar cambios en el código fuente, Agent Builder integra comentarios en el código fuente en los lugares donde es posible agregar nuevo código. Consulte Edición del código fuente generado.
Después de generar un tipo de recurso e instalar el paquete correspondiente en un clúster, todavía hay que obtener una instancia (recurso) del tipo de recurso que se ejecuta en un clúster, generalmente mediante comandos administrativos o SunPlex Manager. Sin embargo, para mayor comodidad, Agent Builder genera una secuencia de comandos de utilidades personalizada con este fin (la secuencia de inicio) así como secuencias para detener y eliminar un recurso del tipo de recurso de destino. Estas tres secuencias, ubicadas en el directorio directorio_instalación/nombre_tr/util, hacen lo siguiente:
Secuencia de inicio. Registra el tipo de recurso y crea los grupos de recursos y recursos necesarios. Crea también los recursos de dirección de red (LogicalHostname o SharedAddress) que permiten que la aplicación se comunique con los clientes de la red.
Secuencia de parada. Detiene y deshabilita el recurso.
Secuencia de eliminación. Deshace el trabajo realizado por la secuencia de inicio. Es decir, esta secuencia de comandos detiene y elimina del sistema los recursos, los grupos de recursos y el tipo de recursos de destino.
La secuencia de eliminación sólo se puede utilizar con los recursos iniciados por la secuencia de inicio correspondiente, porque estas secuencias emplean convenciones internas para nombrar los recursos y grupos de recursos.
Agent Builder nombra estas secuencias añadiendo el nombre de la aplicación a los nombres de secuencias. Por ejemplo, si el nombre de la aplicación es ftp, las secuencias se denominan startftp, stopftp y removeftp.
Agent Builder proporciona páginas de comando man en el directorio directorio_instalación/nombre_tr/man/man1m de cada una de las secuencias de comandos de utilidades. Antes de ejecutar estas secuencias es recomendable leer estas páginas de comando man, porque documentan los parámetros que hay que pasar a las secuencias.
Para ver estas páginas de comando man, especifique la ruta al directorio de éste con la opción -M del comando man. Por ejemplo, si SUNW es el proveedor y ftp es el nombre de la aplicación, utilice el comando siguiente para ver la página de comando man de startftp(1M):
% man -M directorio_instalación/SUNWftp/man startftp |
Las secuencias de comandos de utilidades de las páginas de comando man también están disponibles para el administrador del clúster. Cuando se instala un paquete generado por Agent Builder en un clúster, las páginas de comando man de las secuencias de comandos de utilidades se colocan en el directorio /opt/nombre_tr/man. Por ejemplo, use el comando siguiente para ver la página de comando man startftp(1M):
% man -M /opt/SUNWftp/man startftp |
Agent Builder coloca archivos de compatibilidad, como pkginfo, postinstall, postremove y preremove en el directorio directorio_instalación/nombre_tr/etc. Éste contiene también el archivo de registro del tipo de recurso (RTR), que declara las propiedades del recurso y del tipo de recurso disponibles para el tipo de recurso de destino e inicializa los valores de las propiedades en el momento en que un recurso se registra en un clúster. Consulte Establecimiento del recurso y las propiedades del tipo de recurso para obtener más información. Al archivo RTR se le asigna el nombre nombre_proveedor. nombre_tipo_recurso, por ejemplo, SUNW.ftp.
Este archivo se puede editar con un editor de texto estándar y no es necesario recompilar el código fuente para realizar los cambios. Sin embargo, se debe reconstruir el paquete con el comando make pkg.
El directorio directorio_instalación/nombre_tr/pkg contiene un paquete Solaris cuyo nombre es el resultado de la unión de los nombres del proveedor y de la aplicación, por ejemplo, SUNWftp. El Makefile del directorio directorio_instalación/nombre_tr/src admite la creación de un paquete nuevo. Por ejemplo, si realiza cambios en los archivos de origen y recompila el código o realiza cambios en las secuencias de comandos de utilidades del paquete, utilice el comando make pkg para crear un paquete nuevo.
Cuando se elimina un paquete de un clúster, el comando pkgrm puede fallar si se intenta ejecutarlo desde más de un nodo al mismo tiempo. Este problema se puede resolver de una de las dos formas siguientes:
Ejecute la secuencia de comandos remove nombre_rt desde un nodo del clúster antes de ejecutar pkgrm desde cualquier nodo.
Ejecute pkgrm desde un nodo del clúster, que se encarga de la reorganización necesaria. Después, ejecute pkgrm desde el resto de los nodos (simultáneamente si fuera necesario).
Si pkgrm falla porque se ha intentado ejecutarlo desde varios nodos al mismo tiempo, vuelva a ejecutarlo desde un solo nodo y después desde el resto.
Si se genera código fuente en C o Korn, Agent Builder genera, en el directorio de trabajo, un archivo de configuración rtconfig que contiene la información introducida en las pantallas de creación y configuración. Si ejecuta Agent Builder desde el directorio de trabajo de un tipo de recurso existente (o carga un tipo de recurso existente mediante la opción que permite cargar tipos de recursos del menú desplegable Archivo), Agent Builder lee el archivo rtconfig y cumplimenta las pantallas de creación y configuración con la información proporcionada para el tipo de recurso existente. Esta característica resulta útil para clonar tipos de recursos existentes. Consulte Clonación de un tipo de recurso existente.