Este capítulo describe Agent Builder de SunPlex y el módulo Cluster Agent de Agent Builder. Ambas herramientas automatizan la creación de tipos de recursos o servicio de datos que se ejecutarán bajo el control del Gestor de grupos de recursos (RGM). Un tipo de recurso es, básicamente, un envoltorio que rodea una aplicación para que pueda funcionar en un entorno de clúster, bajo el control de RGM.
En este capítulo se tratan los temas siguientes:
Agent Builder proporciona una interfaz gráfica de usuario (GUI) que permite especificar información sobre la aplicación y el tipo de recurso que se desea crear. Agent Builder admite aplicaciones habilitadas para red y no habilitadas para red. Las aplicaciones habilitadas para red utilizan la red para establecer comunicación con los clientes. Las aplicaciones no habilitadas para red son aplicaciones independientes.
Si no puede acceder a la versión de la GUI de Agent Builder, puede utilizar la interfaz de línea de comandos para acceder a esta herramienta. Consulte Utilización de la versión de línea de comandos de Agent Builder .
En función de la información especificada, Agent Builder genera el siguiente software:
Un conjunto de shells C o Korn (ksh), o archivos de origen de servicios de datos genéricos (GDS) para un tipo de recurso escalable o de recuperación ante fallos que se corresponda con los métodos de rellamada del tipo de recurso. Estos archivos están destinados tanto a aplicaciones habilitadas para red (modelo cliente-servidorl) como a aplicaciones no habilitadas para red (sin cliente).
Un archivo personalizado de Registro de tipo de recurso (RTR) (si se genera un código de origen en los shells C o Korn).
Secuencias de utilidades personalizadas para iniciar, detener y eliminar una instancia (recurso) del tipo de recurso, además de páginas de comando man personalizadas que explican cómo usar esos archivos.
Un paquete Solaris que incluye los binarios (si se genera un código de origen en C), un archivo RTR (si se genera un código de origen en los shells C o Korn) y las secuencias de utilidades.
Agent Builder también permite generar un tipo de recurso para una aplicación que tenga múltiples árboles de procesos independientes que el recurso del supervisor de procesos (PMF) deba supervisar y reiniciar individualmente.
Antes de usar Agent Builder, debe saber cómo crear tipos de recursos con varios árboles de procesos independientes.
Agent Builder puede crear tipos de recursos para aplicaciones que tengan más de un árbol de procesos independientes. Estos árboles de procesos se denominan independientes porque PMF los supervisa e inicia individualmente. PMF inicia cada árbol de procesos con su propia etiqueta.
Agent Builder le permite crear tipos de recursos con varios árboles de procesos independientes sólo si el código fuente generado que se especifica es C o GDS. No se puede usar Agent Builder para crear estos tipos de recursos para el shell Korn. Para ello, debe escribir el código manualmente.
En el caso de una aplicación básica con varios árboles de procesos independientes, no se puede especificar una única línea de comandos para iniciar la aplicación. En su lugar, es necesario crear un archivo de texto, especificando en cada línea la ruta completa a un comando para iniciar cada uno de los árboles de procesos de la aplicación. Este archivo no debe contener ninguna línea vacía. Debe especificar este texto en el campo de texto del comando de inicio, en la pantalla de configuración de Agent Builder.
Al asegurarse de que este archivo no contenga permisos de ejecución, permite que Agent Builder distinga el archivo. La finalidad de este archivo consiste en iniciar varios árboles de procesos a partir de una secuencia ejecutable simple con varios comandos. Si a este archivo de texto se le conceden permisos de ejecución, no surgirán problemas o errores en los recursos de un clúster. Sin embargo, todos los comandos se iniciarán bajo una etiqueta PMF. Como resultado, PMF no podrá supervisar ni reiniciar individualmente los árboles de procesos.
Esta sección describe cómo utilizar Agent Builder. Además, incluye tareas que deben completarse antes de utilizar Agent Builder. Esta sección también explica cómo usar este programa después de haber generado el código del tipo de recurso.
Se tratan los siguientes temas:
Uso de la variable $hostnames basada en shell Korn de Agent Builder
Utilización de la versión de línea de comandos de Agent Builder
Antes de utilizar Agent Builder, debe determinar si la aplicación que desea que ofrezca una alta disponibilidad o escalabilidad cumple los criterios necesarios. Agent Builder no puede realizar este análisis, que se basa únicamente en las características de tiempo de ejecución de la aplicación. Análisis de la validez de la aplicación proporciona más información sobre este tema.
Es posible que Agent Builder no pueda crear siempre un tipo de recurso completo para la aplicación. Sin embargo, en la mayoría de los casos, Agent Builder proporciona al menos una solución parcial. Por ejemplo, las aplicaciones más sofisticadas pueden requerir un código adicional que Agent Builder no genere de forma predeterminada. Entre los ejemplos de este código adicional, se incluye el código que agrega comprobaciones de validación de las propiedades adicionales o que ajusta las propiedades que no muestra Agent Builder. En esos casos, es necesario realizar cambios en el código fuente generado o el archivo RTR. Agent Builder está diseñado para ofrecer este tipo de flexibilidad.
Agent Builder incluye delimitadores en determinados puntos del código fuente generado en los que puede añadir su propio código del tipo de recurso. Después de hacer cambios en el código fuente, se puede usar el makefile generado por Agent Builder para recompilar el código fuente y volver a generar el paquete del tipo de recurso.
Aunque se escriba todo el código del tipo de recurso sin utilizar ningún código generado por Agent Builder, se puede aprovechar el makefile y la estructura que facilita Agent Builder para crear el paquete de Solaris para ese tipo de recurso.
Agent Builder no requiere ninguna instalación especial. Agent Builder se incluye en el paquete SUNWscdev, instalado de forma predeterminada durante la instalación del software de Sun Cluster. En Software Sun Cluster: Guía de instalación para el sistema operativo Solaris encontrará más información.
Antes de utilizar Agent Builder, compruebe los siguientes requisitos:
El entorno de tiempo de ejecución de Java se ha incluido en la variable $PATH. Agent Builder depende de, como mínimo, la versión 1.3.1 de Java Development Kit. Si esta herramienta no se incluye en la variable $PATH, el comando de Agent Builder (scdsbuilder) devuelve y muestra un mensaje de error.
Se ha instalado el grupo de software de Developer System Support, como mínimo, para la versión 8 del sistema operativo Solaris.
El compilador cc se ha incluido en la variable $PATH . Agent Builder utiliza la primera aparición de cc en la variable $PATH para identificar el compilador con el que se generará el código binario en C para el tipo de recurso. Si cc no está incluido en $PATH, Agent Builder inhabilita la opción para generar código en C. Consulte Uso de la pantalla de creación.
Puede utilizar un compilador diferente al compilador estándar cc con Agent Builder. Para ello, cree un vínculo simbólico en $PATH desde cc a un compilador diferente como, por ejemplo, gcc. O cambie la especificación del compilador en el makefile (actualmente, CC=cc) a la ruta completa de un compilador diferente. Por ejemplo, en el makefile que genera Agent Builder, cambie CC=cc por CC=pathname/gcc. En este caso, no puede ejecutar directamente Agent Builder. En su lugar, debe utilizar los comandos make y make pkg para generar el código del servicio de datos y del paquete.
Agent Builder es un asistente que consta de dos pasos con una pantalla para cada uno de ellos. Agent Builder proporciona las dos siguientes pantallas que sirven de guía durante el proceso de creación de un nuevo tipo de recurso:
Pantalla de creación En esta pantalla, se proporciona información básica sobre el tipo de recurso que se va a crear como, por ejemplo, el nombre y el directorio de trabajo de los archivos generados. El directorio de trabajo es donde se crea y se configura la plantilla del tipo de recurso. También puede especificar la siguiente información:
El tipo de recurso que se va a crear (escalable o de recuperación ante fallos).
Si la aplicación básica está habilitada para red (es decir, si usa la red para establecer comunicación con sus clientes).
El tipo de código que se va a generar (shell C o Korn (ksh), o GDS)
Para obtener información sobre GDS, consulte el Capítulo 10, Servicios genéricos de datos. Debe proporcionar toda la información solicitada en esta pantalla y seleccionar Create (Crear) para generar el resultado correspondiente. A continuación, puede acceder a la pantalla de configuración.
Pantalla de configuración. En esta pantalla, debe especificar toda la línea de comandos que se transferirá al shell UNIX para iniciar la aplicación básica. También puede proporcionar comandos para detener y analizar la aplicación. Si no especifica estos dos comandos, el resultado generado utiliza las señales para detener la aplicación y proporciona un mecanismo de análisis predeterminado. Consulte la descripción del comando de análisis en Utilización de la pantalla de configuración. La pantalla de configuración también permite cambiar los valores de tiempo de espera para cada uno de estos tres comandos: start, stop y probe.
Si no puede acceder a la versión de la GUI de Agent Builder, puede utilizar la interfaz de línea de comandos para acceder a esta herramienta. Consulte Utilización de la versión de línea de comandos de Agent Builder .
Si inicia Agent Builder desde el directorio de trabajo de un tipo de recurso existente, la herramienta inicializa las pantallas de creación y configuración con los valores de este tipo de recurso.
Escriba el siguiente comando para iniciar Agent Builder:
% /usr/cluster/bin/scdsbuilder |
Aparece la pantalla de creación.
Para introducir información en las pantallas de creación y configuración, realice las siguientes operaciones:
Escriba la información en un campo.
Desplácese a la estructura de directorios y seleccione un archivo o directorio.
Seleccione uno de los botones de opción que se excluyen mutuamente. Por ejemplo, Scalable (Escalable) o Failover (Recuperación ante fallos).
Seleccione la casilla de verificación Network Aware (Habilitada para red) para identificar que la aplicación básica está habilitada para red o déjela en blanco si no está habilitada para red.
Los botones de la parte inferior de cada pantalla permiten finalizar la tarea, pasar a la pantalla anterior o siguiente o salir de Agent Builder. Agent Builder resalta u oscurece estos botones según sea pertinente.
Por ejemplo, una vez cumplimentados los campos y seleccionadas las opciones deseadas en la pantalla de creación, haga clic en el botón Create (Crear) de la parte inferior de la pantalla. Los botones Previous (Anterior) y Next (Siguiente) se oscurecen, porque no hay ninguna pantalla anterior y aún no se puede ir al paso siguiente, pues no se ha finalizado el actual.
Agent Builder muestra mensajes de progreso en el área de registro de salida en la parte inferior de la pantalla. Cuando finaliza Agent Builder, se muestra un mensaje de advertencia o un mensaje que indica que se ha realizado con éxito el proceso. Siguiente aparece resaltado o, si es la última pantalla, sólo estará resaltado Cancelar.
En Agent Builder, puede hacer clic en Cancel (Cancelar) en cualquier momento.
Algunos campos de Agent Builder permiten la introducción de información. Otros campos le permiten hacer clic en Browse (Examinar) para examinar la estructura de directorios y seleccionar un archivo o directorio.
Al hacer clic en Browse (Examinar), aparece una pantalla similar a ésta:
Haga doble clic en una carpeta para abrirla. Al desplazar el cursor por un archivo, aparece su nombre en el campo File Name (Nombre de archivo). Haga clic en Seleccionar cuando haya localizado el archivo que desee y haya movido el curso hasta él.
Si está buscando un directorio, desplace el cursor al directorio que desee y haga clic en Abrir. Si el directorio no contiene ningún subdirectorio, Agent Builder cierra la ventana Browse (Examinar) y pone el nombre del directorio sobre el que ha desplazado el cursor en el campo correspondiente. Si el directorio tiene subdirectorios, haga clic en el botón Cerrar para cerrar la ventana Examinar y volver a la pantalla anterior. Agent Builder pone el nombre del directorio sobre el que ha desplazado el cursor en el campo correspondiente.
Los iconos de la esquina superior derecha de la pantalla Browse (Examinar) realizan las siguientes acciones:
Icono |
Función |
---|---|
Este icono sube un nivel en el árbol de directorios. |
|
Este icono vuelve a la carpeta de inicio. |
|
Este icono crea una carpeta nueva en la carpeta seleccionada actualmente. |
|
Ese icono, que sirve para cambiar entre las diferentes vistas, está reservado para usos futuros. |
Agent Builder proporciona los menús desplegables File (Archivo) y Edit (Editar).
El menú File (Archivo) tiene dos comandos:
Cargar tipo de recurso. Carga un tipo de recurso existente. Agent Builder proporciona una pantalla para examinar y seleccionar el directorio de trabajo para un tipo de recurso. Si hay un tipo de recurso en el directorio desde el que se inició Agent Builder, esta herramienta carga automáticamente este tipo de recurso. La función Load Resource Type (Cargar tipo de recurso) permite iniciar Agent Builder desde cualquier directorio y seleccionar un tipo de recurso existente para utilizarlo como plantilla en la creación de un nuevo tipo de recurso. Consulte Reutilización del código creado con Agent Builder .
Salir. Permite salir de Agent Builder. También puede salir haciendo clic en Cancelar en las pantallas de creación o configuración.
El menú Edit (Editar) tiene dos comandos:
Borrar registro de salida. Borra la información del registro de salida. Cada vez que se seleccione Crear o Configurar, Agent Builder introduce mensajes de estado en el registro de salida. Si realiza de forma habitual cambios en el código fuente y vuelve a generar el resultado en Agent Builder, y desea dividir los mensajes de estado, puede guardar y borrar el archivo de registro después de cada uso.
Guardar archivo de registro. Guarda el resultado del registro en un archivo. Agent Builder proporciona una pantalla de exploración que permite seleccionar el directorio y especificar un nombre de archivo.
El primer paso para crear un tipo de recurso consiste en completar la pantalla de creación que aparece al iniciar Agent Builder. La siguiente figura muestra la pantalla de creación una vez introducida la información en los campos.
La pantalla de creación contiene los campos, botones de selección y casillas de verificación siguientes:
Nombre del proveedor. Nombre que identifica al proveedor del tipo de recurso. Normalmente, debe especificar el símbolo de la compañía del proveedor. No obstante, cualquier nombre que identifique de forma exclusiva al proveedor es válido. Utilice únicamente caracteres alfanuméricos.
Nombre de la aplicación. Especifica el nombre del tipo de recurso. Utilice únicamente caracteres alfanuméricos.
El nombre de la aplicación y del proveedor, juntos, componen el nombre completo del tipo de recurso. A partir de la versión 9 del sistema operativo Solaris, la combinación de nombre del proveedor y de la aplicación puede superar los nueve caracteres. Sin embargo, si utiliza una versión anterior del sistema operativo Solaris, la combinación de estos dos nombres no puede superar los nueve caracteres.
Versión del tipo de recurso. Especifica la versión del tipo de recurso generado. La versión del tipo de recurso distingue entre varias versiones registradas o actualizaciones del mismo tipo de recurso base.
No se pueden utilizar los siguientes caracteres en el campo de versión del tipo de recurso.
Espacio
Ficha
Barra diagonal (/)
Barra diagonal inversa (\)
Asterisco (*)
Signo de interrogación (?)
Coma (,)
Punto y coma (;)
Corchete izquierdo ([)
Corchete derecho (])
Directorio de trabajo. El directorio en el cual Agent Builder crea una estructura de directorios para acoger todos los archivos que se creen para el tipo de recurso de destino. Sólo se puede crear un tipo de recurso por directorio de trabajo. Agent Builder establece de forma predeterminada este campo en la ruta del directorio en el que se inició Agent Builder. Sin embargo, puede escribir un nombre diferente o utilizar la función Browse (Examinar) para especificar un directorio distinto.
En el directorio de trabajo, Agent Builder crea un subdirectorio con el nombre del tipo de recurso. Por ejemplo, si SUNW es el nombre del proveedor y ftp, el de la aplicación, Agent Builder llamará al subdirectorio SUNWftp.
Agent Builder coloca todos los directorios y archivos del tipo de recurso de destino en este subdirectorio. Consulte Estructura de directorios creada por Agent Builder .
Escalable o Recuperación ante fallos. Especifique si el tipo de recurso de destino es de recuperación ante fallos o escalable.
Habilitado para red. Determina si la aplicación básica está habilitada para red, es decir, si usa la red para comunicarse con los clientes. Seleccione la casilla de verificación Network Aware (Habilitado para red) para especificar que se trata de una aplicación habilitada para red o déjela en blanco si no está habilitada para red.
C, ksh. Indica el lenguaje del código fuente generado. Aunque estas opciones se excluyen mutuamente, puede crear con Agent Builder un tipo de recurso generado mediante shell Korn y volver a utilizar la misma información para crear un código generado en C. Consulte Reutilización del código creado con Agent Builder .
GDS. Especifica que se trata de un servicio de datos genérico. El Capítulo 10, Servicios genéricos de datos contiene información más detallada sobre la creación y configuración de servicios de datos genéricos.
Si el compilador cc no se encuentra en la variable $PATH, Agent Builder oscurece el botón de opción de C y le permite seleccionar el botón de opción de ksh. Para especificar un compilador diferente, consulte la nota ubicada al final de Instalación y configuración de Agent Builder.
Una vez seleccionada la información necesaria, haga clic en Create (Crear). El área de registro de salida de la parte inferior de la pantalla muestra las acciones que realiza Agent Builder. Puede elegir Guardar registro de salida en el menú Editar para guardar la información en el registro de salida.
Cuando haya acabado, Agent Builder muestra un mensaje de advertencia o uno que informa del éxito de la operación.
Si Agent Builder no ha podido completar este paso, consulte el registro de salida para obtener más detalles.
Si, por el contrario, lo ha completado con éxito, haga clic en Next (Siguiente) para mostrar la pantalla de configuración. La pantalla de configuración permite finalizar el proceso de creación de un tipo de recurso.
Aunque la generación de un tipo de recurso completo es un proceso de dos pasos, es posible salir de Agent Builder después de terminar el primer paso (creación) sin perder la información especificada ni el trabajo que ha realizado Agent Builder. Consulte Reutilización del código creado con Agent Builder .
La pantalla de configuración (figura siguiente) aparece después de que Agent Builder haya terminado de crear el tipo de recurso y de que se haya hecho clic en el botón Next (Siguiente) en la pantalla de creación. No se puede acceder a la pantalla de configuración sin haber creado el tipo de recurso con anterioridad.
La pantalla de configuración contiene los campos siguientes:
Comando de inicio. La línea de comandos completa que se puede pasar a cualquier shell de UNIX para iniciar la aplicación básica. Debe especificar un comando de inicio. Puede escribir el comando en el campo suministrado o utilizar el botón Browse (Examinar) para localizar un archivo que contenga el comando para iniciar la aplicación.
La línea de comandos completa debe incluir todo lo necesario para iniciar la aplicación, como nombres de host, números de puerto, una ruta a los archivos de configuración, etc. También puede especificar las variables de propiedades descritas en Uso de las variables de propiedades. Si su aplicación basada en shell Korn requiere que se especifique un nombre de host en la línea de comandos, puede usar la variable $hostnames que define Agent Builder. Consulte Uso de la variable $hostnames basada en shell Korn de Agent Builder.
No ponga el comando entre comillas dobles (““).
Si la aplicación básica tiene muchos árboles de procesos independientes, cada uno de los cuales se inicia con su propia etiqueta, bajo el control de PMF, no será posible especificar un solo comando. En su lugar, debe crear un archivo de texto que contenga comandos individuales para iniciar cada árbol de procesos y, a continuación, especificar la ruta a este archivo en campo de texto Start Command (Comando de inicio). Consulte Antes de usar Agent Builder. Esta sección muestra las características especiales que necesita este archivo para funcionar correctamente.
Comando de parada. La línea de comandos completa que se puede pasar a cualquier shell de UNIX para detener la aplicación básica. Puede escribir el comando en el campo suministrado o utilizar el botón Browse (Examinar) para localizar un archivo que contenga el comando para detener la aplicación. También puede especificar las variables de propiedades descritas en Uso de las variables de propiedades. Si su aplicación basada en shell Korn requiere que se especifique un nombre de host en la línea de comandos, puede usar la variable $hostnames que define Agent Builder. Consulte Uso de la variable $hostnames basada en shell Korn de Agent Builder.
Este comando es opcional. Si no se especifica un comando de parada, el código generado emplea señales (en el método Stop) para detener la aplicación, como se muestra a continuación.
El método Stop envía SIGTERM para detener la aplicación y espera el 80% del valor de tiempo de espera excedido para que la aplicación salga.
Si la señal SIGTERM no resulta satisfactoria, el método Stop envía SIGKILL para detener la aplicación y espera el 15% del tiempo de espera excedido para que la aplicación salga.
Si SIGKILL no resulta satisfactoria, el método Stop no podrá salir. El 5 % restante del valor del tiempo de espera se considera transcurrido.
Asegúrese de que el comando de parada no retorne antes de que la aplicación se haya detenido por completo.
Comando de análisis. Comando que se puede ejecutar periódicamente para comprobar el estado de la aplicación y devolver un estado de salida adecuado entre 0 (éxito) y 100 (fallo total). Este comando es opcional. Puede escribir la ruta completa al comando o utilizar el botón Browse (Examinar) para localizar un archivo que contenga los comandos para analizar la aplicación.
Generalmente, se especifica un cliente simple de la aplicación básica. Si no se especifica un comando de análisis, el código generado simplemente se conecta al puerto utilizado por el recurso y se desconecta del mismo. Si la conexión y desconexión se realizan con éxito, el código declara que la aplicación funciona correctamente. También puede especificar las variables de propiedades descritas en Uso de las variables de propiedades. Si su aplicación basada en shell Korn requiere que se especifique un nombre de host en la línea de comandos de análisis, puede usar la variable $hostnames que define Agent Builder. Consulte Uso de la variable $hostnames basada en shell Korn de Agent Builder.
No ponga el comando entre comillas dobles (““).
Tiempo de espera. Un valor de tiempo de espera en segundos para cada comando. Puede especificar un nuevo valor o aceptar el valor predeterminado que proporciona Agent Builder. El valor predeterminado es de 300 para el inicio y la parada y de 30 segundos para el análisis.
En muchas aplicaciones, en concreto en aquéllas habilitadas para red, el nombre de host mediante el que la aplicación escucha y atiende las solicitudes de cliente debe pasarse a la aplicación en la línea de comandos. En la mayoría de los casos, el nombre de host es un argumento que se debe especificar para iniciar, detener y analizar comandos del tipo de recurso de destino en la pantalla de configuración. Sin embargo, el nombre de host mediante el que escucha la aplicación es específico para el clúster. El nombre de host se determina cuando el recurso se ejecuta en un clúster, y no puede determinarse cuando Agent Builder genera el código del tipo de recurso.
Para solucionar este problema, Agent Builder permite especificar la variable $hostnames en la línea de comandos para los comandos de inicio, parada y análisis.
La variable $hostnames se admite para usarla sólo con servicios basados en shell Korn. La variable $hostnames no se admite para usarla con servicios basados en C ni en GDS.
La variable $hostnames se especifica de la misma forma que se especificaría un nombre de host real, por ejemplo:
% /opt/network_aware/echo_server -p port-no -l $hostnames |
Cuando se ejecuta un recurso del tipo de recurso de destino en un clúster, el nombre de host LogicalHostname o SharedAddress configurado para ese recurso se sustituye por el valor de la variable $hostnames. El nombre de host se configura para ese recurso en la propiedad Network_resources_used del mismo.
Si configura la propiedad Network_resources_used con varios nombres de host, la variable $hostnames los incluye todos, separados por comas.
También puede recuperar los valores de las propiedades del tipo de recurso, recurso y grupo de recurso seleccionados de Sun Cluster desde la estructura RGM mediante las variables de propiedades. Agent Builder examina las cadenas de comandos de inicio, parada o análisis de las variables de propiedades y sustituye dichas variables por los valores antes de que esta herramienta ejecute el comando.
Las variables de propiedades no se admiten para usarlas con servicios basados en shells Korn.
Esta sección muestra las variables de propiedades que se pueden utilizar. Las propiedades del tipo de recurso, el recurso y el grupo de recursos de Sun Cluster se describen en Apéndice A, Propiedades estándar.
RS_CHEAP_PROBE_INTERVAL
RS_MONITOR_START_TIMEOUT
RS_MONITOR_STOP_TIMEOUT
RS_NAME
RS_NUM_RESTARTS
RS_RESOURCE_DEPENDENCIES
RS_RESOURCE_DEPENDENCIES_WEAK
RS_RETRY_COUNT
RS_RETRY_INTERVAL
RS_SCALABLE
RS_START_TIMEOUT
RS_STOP_TIMEOUT
RS_THOROUGH_PROBE_INTERVAL
SCHA_STATUS
RG_GLOBAL_RESOURCES_USED
RG_IMPLICIT_NETWORK_DEPENDENCIES
RG_MAXIMUM_PRIMARIES
RG_NAME
RG_NODELIST
RG_NUM_RESTARTS
RG_PATHPREFIX
RG_PINGPONG_INTERVAL
RG_RESOURCE_LIST
Puede incluir un símbolo de porcentaje (%) delante de un nombre de propiedad para indicar una variable de propiedad, como se muestra en este ejemplo:
/opt/network_aware/echo_server -t %RS_STOP_TIMEOUT -n %RG_NODELIST
Según el ejemplo anterior, es posible que Agent Builder interprete estas variables de propiedades e inicie la secuencia de comandos echo_server con los siguientes valores:
/opt/network_aware/echo_server -t 300 -n phys-node-1,phys-node-2,phys-node-3
Agent Builder interpreta los tipos de variables de propiedades de la siguiente forma:
Un entero se sustituye por su valor real (por ejemplo, 300).
Un valor booleano se sustituye por la cadena TRUE o FALSE.
Una cadena se sustituye por la cadena real (por ejemplo, phys-node-1 ).
Una lista de cadenas se sustituye por todos los miembros de la lista y se separa cada cadena mediante una coma (por ejemplo phys-node-1,phys-node-2,phys-node-3).
Una lista de enteros se sustituye por todos los miembros de la lista y se separa cada entero mediante una coma (por ejemplo, 1,2,3).
Un tipo enumerado se sustituye por su valor, en forma de cadena.
Agent Builder permite volver a utilizar el trabajo finalizado de varias formas:
Puede clonar un tipo de recurso existente creado con Agent Builder.
Puede editar el código fuente que genera Agent Builder y recompilarlo para crear un paquete nuevo.
Siga este procedimiento para clonar un tipo de recurso existente generado por Agent Builder.
Cargue un tipo de recurso existente en Agent Builder usando uno de estos métodos:
Inicie Agent Builder desde el directorio de trabajo para un tipo de recurso existente creado con esta herramienta. Asegúrese de que el directorio de trabajo contiene el archivo rtconfig. Agent Builder carga los valores para dicho tipo de recurso en las pantallas de creación y configuración.
Utilice la opción Load Resource Type (Cargar tipo de recurso) desde el menú desplegable File (Archivo).
Vaya al directorio de trabajo en la pantalla de creación.
Debe usar el comando Examinar para seleccionar un directorio. Escribir un nombre nuevo para el directorio no basta. Una vez seleccionado un directorio, Agent Builder vuelve a habilitar el botón Crear.
Realice los cambios que desee en el tipo de recurso existente.
Puede cambiar el tipo de código generado para el tipo de recurso. Por ejemplo, si crea una versión de un tipo de recurso con el shell Korn y, pasado el tiempo, descubre que necesita una versión C, realice lo siguiente:
Cargue el tipo de recurso de shell Korn existente.
Cambie el lenguaje de salida a C.
Haga clic en Create (Crear) para que Agent Builder genere una versión C del tipo de recurso.
Cree el tipo de recurso clonado.
Para simplificar el proceso de creación de un tipo de recurso, Agent Builder limita la cantidad de información que se puede especificar, lo que limita necesariamente el ámbito del tipo de recurso generado. Por lo tanto, para añadir funciones más sofisticadas, es nececesario modificar el código fuente generado o el archivo RTR. Entre los ejemplos de estas funciones adicionales, se incluye el código que agrega comprobaciones de validación de las propiedades adicionales o que ajusta las propiedades que no muestra Agent Builder.
Los archivos de origen se encuentran en el directorio install-directory/rt-name/src. Agent Builder incluye delimitadores en el código fuente para que pueda agregar el código adicional. Estos delimitadores son del tipo siguiente (para el código C):
/* User added code -- BEGIN vvvvvvvvvvvvvvv */ /* User added code -- END ^^^^^^^^^^^^^^^ */
Estos delimitadores son idénticos en el código fuente de shell Korn, a excepción de la marca del delimitador (#) que indica el comienzo del mismo.
Por ejemplo, rt-name.h declara todas las funciones de la utilidad que utilizan los diferentes programas. Al final de la lista de declaraciones se incluyen delimitadores que permiten declarar las funciones adicionales agregadas a cualquiera de los códigos.
Agent Builder también genera el makefile en el directorio install-directory/rt-name/src con los destinos correspondientes. Utilice el comando make para volver a compilar el código fuente. Utilice el comando make pkg para volver a generar el paquete del tipo de recurso.
El archivo RTR se encuentra en el directorio install-directory/rt-name/etc. El archivo RTR se puede editar con un editor de texto estándar. Consulte Establecimiento del recurso y las propiedades del tipo de recurso para obtener más información sobre el archivo RTR. Consulte Apéndice A, Propiedades estándar para obtener más información sobre las propiedades.
La versión de línea de comandos de Agent Builder sigue los mismos procedimientos básicos que la GUI. Sin embargo, en lugar de introducir la información en la interfaz gráfica de usuario, se pasan los argumentos a los comandos scdscreate y scdsconfig. Para obtener más información, consulte las páginas de comando man scdscreate(1HA) y scdsconfig(1HA).
Siga estos pasos para utilizar la versión de línea de comandos de Agent Builder.
Utilice scdscreate para crear una plantilla del tipo de recurso de Sun Cluster para hacer que una aplicación tenga una alta disponibilidad o escalabilidad.
Utilice scdsconfig para configurar la plantilla del tipo de recurso creada con scdscreate.
Puede especificar variables de propiedades. Las variables de propiedades se describen en Uso de las variables de propiedades.
Cambie los directorios al subdirectorio pkg del directorio de trabajo.
Use el comando pkgadd para instalar los paquetes que haya creado en scdscreate.
Si utiliza el sistema operativo Solaris 10 en un entorno de zonas, escriba el siguiente comando como administrador global en la zona global:
# pkgadd -G -d . package-name |
El paquete especificado se agrega a la zona global, siempre que el contenido del paquete no afecte a ningún área de la zona global compartida por una zona no global.
Si utiliza otra versión de Solaris o la versión 10 en un entorno que no sea de zonas, escriba el siguiente comando:
# pkgadd -d . package-name |
(Opcional) Edite el código fuente generado.
Ejecute la secuencia de inicio.
Agent Builder crea una estructura de directorios para contener todos los archivos que genera para el tipo de recurso de destino. Especifique el directorio de trabajo en la pantalla de creación. Se deben especificar directorios de instalación separados para cualquier tipo de recurso adicional que se desarrolle. En el directorio de trabajo, Agent Builder crea un subdirectorio cuyo nombre se forma con la unión de los nombres del proveedor y del tipo de recurso. Por ejemplo, si especifica SUNW como nombre de proveedor y crea un tipo de recurso denominado ftp, Agent Builder creará un directorio llamado SUNWftp en el directorio de trabajo.
A partir de este subdirectorio, Agent Builder creará y rellenará con datos los directorios mostrados en la siguiente tabla.
Nombre del directorio |
Contenido |
|
---|---|---|
bin |
Para la salida C, contiene archivos binarios compilados a partir de los archivos de origen. Para la salida del shell Korn, contiene los mismos archivos que el directorio src. |
|
etc |
Contiene el archivo RTR. Agent Builder concatena el nombre del proveedor y el nombre de la aplicación, separándolos con un punto (.) para formar el nombre del archivo RTR. Por ejemplo, si el nombre del proveedor es SUNW y el nombre del tipo de recurso es ftp, el nombre del archivo RTR será SUNW.ftp. |
|
man |
Contiene páginas de comando man personalizadas para las secuencias de comandos de utilidades start, stop y remove como, por ejemplo, startftp(1M), stopftp(1M) y removeftp(1M).
Para ver estas páginas de comando man, especifique la ruta con la opción man -M. Por ejemplo:
|
|
pkg |
Contiene el paquete final de Solaris que incluye el servicio de datos creado. |
|
src |
Contiene los archivos de origen generados por Agent Builder. |
|
util |
Contiene las secuencias de comando de utilidades start, stop y remove que genera Agent Builder. Consulte Secuencias de comando de utilidades y páginas de comando man creadas por Agent Builder. Agent Builder añade el nombre de la aplicación a todos los nombres de secuencias de comandos; por ejemplo startftp, stopftp y removeftp. |
El Gestor de grupos de recursos (RGM) administra los grupos de recursos y, en última instancia, los recursos de un clúster. RGM funciona sobre un modelo de rellamada. Cuando se produce un evento específico, como un fallo en un nodo, RGM llama a los métodos del tipo de recurso de todos los recursos que se están ejecutando en el nodo afectado. Por ejemplo, RGM llama al 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 del Gestor de grupos de recursos, Métodos de rellamada y la página de comando man rt_callbacks(1HA) para obtener más información sobre este modelo.
Para ser compatible con este modelo, Agent Builder genera ocho secuencias de comando de shell Korn o de programas C en el directorio install-directory/rt-name/bin. Estas secuencias de comandos de shell o programas actúan como métodos de rellamada.
Para ser precisos, el programa rt-name_probe, que implementa un supervisor de fallos, no es un programa de rellamada. RGM no llama directamente a rt-name_probe. En su lugar, llama a rt-name_monitor_start y rt-name_monitor_stop. Estos métodos inician y detienen el supervisor de fallos mediante una llamada a rt-name _probe.
A continuación se muestran los ocho métodos que genera Agent Builder:
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
Consulte la página de comando man rt_callbacks(1HA) para obtener información específica sobre cada método.
En el directorio install-directory/rt-name/src (salida C), Agent Builder genera los siguientes archivos:
Un archivo de encabezado (rt-name.h)
Un archivo de origen (rt-name.c) que contiene el código común a todos los métodos.
Un archivo objeto (rt-name.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 enlaza el archivo rt-name.o a cada uno de los archivos .o del método para crear archivos ejecutables en el directorio install-directory/rt-name/bin.
En la salida de shell Korn, los directorios install-directory/rt-name/bin y install-directory/rt-name/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 de shell Korn incluye dos programas de utilidad compilados, gettime and gethostnames. Determinados métodos de rellamada requieren estos métodos para obtener la hora y realizar el análisis.
Se puede editar el código fuente, ejecutar el comando makepara volver a compilar el código y, al terminar, ejecutar el comando make pkg para generar un nuevo paquete. Para poder realizar cambios en el código fuente, Agent Builder incluye delimitadores en determinadas ubicaciones del código fuente en 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. Normalmente, para obtener una instancia, se deben utilizar comandos administrativos o SunPlex Manager. Sin embargo, para mayor comodidad, Agent Builder genera una secuencia de comandos personalizada de utilidades para este fin, así como secuencias para detener y eliminar un recurso del tipo de recurso de destino. Estas secuencias de comandos, ubicadas en el directorio install-directory/rt-name/util, realizan las siguientes acciones:
Secuencia de inicio. Registra el tipo de recurso y crea los grupos de recursos y recursos necesarios. Esta secuencia también crea el recurso de dirección de red (LogicalHostname o SharedAddress ) que permite que la aplicación establezca comunicación con los clientes de la red.
Secuencia de parada. Detiene 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.
Sólo se pueden utilizar secuencias de eliminación con un recurso que se haya iniciado con la secuencia de inicio correspondiente, puesto que estas secuencias utilizan convenciones internas para asignar nombres a 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 denominarán startftp, stopftp y removeftp.
Agent Builder proporciona páginas de comando man en el directorio install-directory/rt-name/man/man1m para cada secuencia de comandos de utilidades. Es recomendable leer estas páginas de comando man antes de iniciar las secuencias, ya que describen los argumentos necesarios para realizar la transferencia a la secuencia de comandos.
Para consultar estas páginas de comando man, especifique la ruta al directorio man mediante la opción -M con el comando man. Por ejemplo, si SUNW es el proveedor y ftp el nombre de la aplicación, escriba el siguiente comando para ver la página de comando man startftp(1M):
% man -M install-directory/SUNWftp/man startftp |
Las secuencias de utilidades de las páginas de comando man también están disponibles para el administrador del clúster. Una vez instalado el paquete generado por Agent Builder en un clúster, las páginas de comando man de las secuencias de comandos de utilidades se ubican en el directorio /opt/rt-name/man. Por ejemplo, escriba el siguiente comando para ver la página de comando man startftp(1M):
% man -M /opt/SUNWftp/man startftp |
Agent Builder ubica los archivos de compatibilidad como, por ejemplo, pkginfo, postinstall, postremove y preremove en el directorio install-directory/rt-name/etc. Este directorio también contiene el archivo de registro de tipo de recurso (RTR). El archivo RTR declara las propiedades de recursos y tipos de recursos disponibles para el tipo de recurso de destino e inicializa los valores de propiedades al registrar un recurso 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 de proveedor junto con el nombre de tipo de recurso, vendor-name.resource-type-name; 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, es necesario volver a crear el paquete con el comando make pkg.
El directorio install-directory/rt-name/pkg contiene un paquete de Solaris. El nombre del paquete se forma mediante la unión del nombre del proveedor y el de la aplicación, por ejemplo, SUNWftp. El makefile del directorio install-directory/rt-name/src admite la creación de un nuevo paquete. Por ejemplo, si se realizan cambios en los archivos de origen y se vuelve a compilar el código, o se realizan modificaciones en las secuencias de comandos de utilidades, se debe utilizar el comando make pkg para crear un nuevo paquete.
Al eliminar un paquete de un clúster, el comando pkgrm puede fallar si se intenta ejecutar desde más de un nodo. Este problema se puede resolver de una de las dos formas siguientes:
Ejecute la secuencia de comandos remove rt-name desde un nodo del clúster antes de ejecutar el comando pkgrm desde cualquier otro nodo.
Ejecute el comando pkgrm desde un nodo del clúster que se encargue de todas las operaciones de limpieza necesarias. A continuación, ejecute el comando pkgrm desde los restantes nodos, de forma simultánea si es necesario.
Si falla el comando pkgrm al intentar ejecutarlo simultáneamente desde varios nodos, ejecute el comando de nuevo desde uno solo. A continuación, ejecute el comando desde los nodos restantes.
Si genera código fuente en C o en shell Korn en el directorio de trabajo, Agent Builder generará un archivo de configuración denominado rtconfig. Este archivo contiene la información especificada en las pantallas de creación y configuración. Si inicia Agent Builder desde el directorio de trabajo de un tipo de recurso existente, esta herramienta leerá el archivo rtconfig. Agent Builder introduce la información especificada para el tipo de recurso existente en las pantallas de creación y configuración. Agent Builder funciona del mismo modo si se elige la opción Load Resource Type (Cargar tipo de recurso) desde el menú File (Archivo) para cargar un tipo de recurso existente. Esta característica resulta útil para clonar tipos de recursos existentes. Consulte Reutilización del código creado con Agent Builder .
El módulo Cluster Agent para Agent Builder es un módulo NetBeansTM Este módulo proporciona una GUI que permite crear tipos de recursos para el software de Sun Cluster mediante Sun Java Studio (denominado anteriormente Sun ONE Studio).
La documentación de Sun Java Studio contiene información sobre cómo configurar, instalar y utilizar este producto. Puede consultarla en el sitio Web, http://wwws.sun.com/software/sundev/jde/documentation/index.html.
El módulo Cluster Agent se instala al instalar el software de Sun Cluster. La herramienta de instalación de Sun Cluster coloca el archivo del módulo Cluster Agent, scdsbuilder.jar, en /usr/cluster/lib/scdsbuilder. Para utilizar el módulo Cluster Agent con el software Sun Java Studio, es necesario crear un vínculo simbólico a este archivo.
Los productos Sun Cluster, Sun Java Studio y Java 1.4 deben estar instalados y ser accesibles para el sistema en el que se va a ejecutar el módulo Cluster Agent.
Permitir que todos los usuarios o sólo usted utilicen el módulo Cluster Agent.
Para permitir que lo utilicen todos los usuarios, conviértase en superusuario o asuma un papel equivalente y cree el vínculo simbólico en el directorio del módulo global.
# cd /opt/s1studio/ee/modules # ln -s /usr/cluster/lib/scdsbuilder/scdsbuilder.jar |
Si ha instalado el software Sun Java Studio en un directorio diferente de /opt/s1studio/ee, cambie esta ruta al directorio por la ruta correspondiente.
Para que sólo usted pueda usar el módulo, cree el vínculo simbólico en el subdirectorio modules.
% cd ~your-home-dir/ffjuser40ee/modules % ln -s /usr/cluster/lib/scdsbuilder/scdsbuilder.jar |
Detenga y reinicie el software Sun Java Studio.
Los pasos siguientes explican cómo iniciar el módulo Cluster Agent desde el software Sun Java Studio.
La documentación de Sun Java Studio contiene información sobre cómo configurar, instalar y utilizar este producto. Puede consultarla en el sitio Web, http://wwws.sun.com/software/sundev/jde/documentation/index.html.
Desde el menú File (Archivo) de Sun Java Studio, seleccione New (Nuevo) o haga clic en este icono de la barra de herramientas:
Aparece la pantalla New Wizard (Nuevo asistente).
En el panel de selección de plantilla, desplácese hacia abajo (si fuera necesario) y haga clic en la tecla situada al lado de la carpeta Other (Otro).
Se abre dicha carpeta.
En la carpeta Other, seleccione Sun Cluster Agent Builder y haga clic en Next.
Se inicia el módulo Cluster Agent de Sun Java Studio. Aparece la primera pantalla New Wizard - Sun Cluster Agent Builder.
Utilice el módulo Cluster Agent igual que el software Agent Builder. Las interfaces son idénticas. Por ejemplo, las figuras siguientes muestran que la pantalla de creación del software Agent Builder y la pantalla New Wizard - Sun Cluster Agent Builder del módulo Cluster Agent contienen los mismos campos y selecciones.
A pesar de sus semejanzas, existen pequeñas diferencias entre el módulo Cluster Agent y Agent Builder:
En el módulo Cluster Agent, el tipo de recurso se crea y configura después de pulsar el botón Finish de la segunda pantalla New Wizard - Sun Cluster Agent Builder. El tipo de recurso no se crea al hacer clic en Next en la primera pantalla New Wizard - Sun Cluster Agent Builder.
En Agent Builder, el tipo de recurso se crea inmediatamente al hacer clic en Create (Crear) en la pantalla de creación. Además, el tipo de recurso se configura de forma inmediata al hacer clic en Configure (Configurar) en la pantalla de configuración.
La información que aparece en el área del registro de salida de Agent Builder aparece en una ventana de salida aparte en el producto Sun Java Studio.