En este capítulo se describe Agent Builder de SunPlex y el módulo Cluster Agent para Agent Builder, que son herramientas que automatizan la creación de los tipos de recursos o servicios de datos, para ejecutarlos bajo el 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 describen los siguientes temas:
Agent Builder proporciona una interfaz basada en pantallas para introducir información sobre la aplicación y el tipo de recurso que se desea crear.
Si la versión de Agent Builder con interfaz gráfica no está accesible, podrá acceder a Agent Builder mediante una interfaz de línea de comandos. Consulte Utilización de la versión de línea de comandos de Agent Builder.
De acuerdo con la información introducida, Agent Builder genera el software siguiente:
Un conjunto de shells C y Korn (ksh) o archivos de origen para servicios de datos genéricos (GDS) para un tipo de recursos de recuperación de fallos o recursos escalables que se corresponden con las rellamadas de métodos del tipo de recursos, tanto para aplicaciones de clientes habilitados para red (modelo cliente-servidor) y de clientes no habilitados para red (sin cliente)
Un archivo personalizado de Registro de tipo de recurso (RTR) (si se genera un código fuente en los shells C o Korn)
Secuencias de comandos 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 fuente en C), un archivo RTR (si se genera un código fuente en los shells C o Korn) y las secuencias de comandos de utilidades
La siguiente sección muestra información que debe conocer antes de usar Agent Builder.
Agent Builder puede crear tipos de recursos para aplicaciones que tengan más de un árbol de procesos independientes. ya que 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 crear estos recursos para el shell Korn, 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 líneas en blanco y se ha de especificar en el campo de texto del comando de inicio, en la pantalla de configuración.
Al asegurarse de que este archivo no disponga de permisos de ejecución, Agent Builder podrá distinguirlo y así será posible iniciar múltiples árboles de procesos desde una secuencia de ejecución simple que contenga varios comandos. Si se dota al archivo de texto de permisos de ejecución, los recursos se ejecutarían sin problemas ni errores en un clúster, pero todos los comandos se iniciarían bajo una única etiqueta de PMF, lo que impediría que éste pudiera supervisar y reiniciar individualmente los árboles de procesos.
Esta sección explica cómo utilizar Agent Builder, incluidas las tareas que debe realizar 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 usar Agent Builder debe determinar si la aplicación cumple los criterios para tener una alta disponibilidad y escalabilidad. 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. En Análisis de la validez de la aplicación puede obtener más información sobre este tema.
Es posible que Agent Builder no pueda crear siempre un tipo de recurso completo para una aplicación, aunque en la mayoría de los casos facilitará al menos una solución parcial. Por ejemplo, algunas aplicaciones más complejas pueden requerir un código adicional que Agent Builder no genera de forma predeterminada, como el código para agregar comprobaciones de validación de propiedades adicionales o para ajustar parámetros que Agent Builder no muestra. En esos casos, es necesario realizar cambios en el código fuente generado o el archivo RTR. Agent Builder está diseñado precisamente para permitir esta flexibilidad.
Agent Builder sitúa comentarios en determinados puntos del código fuente generado para que se pueda añadir código del tipo de recurso concreto. 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 aún 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 de SUNWscdev, que se instala de forma predeterminada como parte de una instalación estándar del software de Sun Cluster. En Sun Cluster Software Installation Guide for Solaris OS encontrará más información.
Antes de utilizar Agent Builder, compruebe los siguientes aspectos:
El entorno de tiempo de ejecución de Java está incluido en la variable $PATH. Agent Builder depende de Java (Java Development Kit, como mínimo, la versión 1.3.1). Si el entorno Java no está incluido en $PATH , scdsbuilder devuelve un mensaje de error.
Ha instalado el grupo de software de soporte del sistema del desarrollador de Solaris 8 o superior.
El compilador cc está incluido en la variable $PATH. Agent Builder usa la primera aparición de cc en la variable $PATH para identificar el compilador con el que debe generar el código binario C para el tipo de recurso. Si cc no está incluido en $PATH, Agent Builder deshabilita la opción para generar el código C. Consulte Uso de la pantalla de creación.
Con Agent Builder puede usar un compilador diferente del compilador cc estándar. Para ello debe crear un vínculo simbólico en $PATH de cc a un compilador diferente, como gcc, o bien cambiar la especificación del compilador en el makefile (actualmente, CC=cc) por la ruta completa de un compilador diferente. Por ejemplo, en el makefile que genera Agent Builder, cambie CC=cc por CC=nombre_ruta/gcc. En este caso, no es posible ejecutar directamente Agent Builder. Utilice los comandos make y make pkg para generar un código de servicio de datos y un paquete.
Agent Builder es un asistente que consta de dos pasos con una pantalla para cada uno de ellos. Agent Builder proporciona las dos pantallas siguientes que sirven de guía durante el proceso de creación de un nuevo tipo de recurso.
Crear. En esta pantalla se proporciona información básica acerca del tipo de recurso que se va a crear como, por ejemplo, el nombre y el directorio de trabajo para los archivos que se generen. El directorio de trabajo es donde se crea y se configura la plantilla del tipo de recurso. También se indica el tipo de recurso que se va a crear (escalable o a prueba de fallos), si la aplicación básica va a estar habilitada para la red (es decir, si utiliza la red para comunicarse con los clientes) y el tipo de código que se va a generar (shells C, Korn [ksh] o GDS). Para obtener información acerca de GDS, consulte Capítulo 10, Servicio de datos genérico. Debe proporcionar toda la información que se solicita en esta pantalla y seleccionar Crear para generar el resultado correspondiente. A continuación, puede acceder a la pantalla de configuración.
Configurar. En esta pantalla debe especificar la línea de comandos completa que se puede pasar a cualquier shell UNIX® para iniciar su aplicación básica. También puede proporcionar comandos para detener y analizar la aplicación. Si no especifica estos comandos, el resultado generado usará señales para detener la aplicación y proporcionará un mecanismo de análisis predeterminado. Consulte la descripción del mecanismo de análisis en Utilización de la pantalla de configuración. Esta pantalla también permite cambiar los valores de tiempo de espera para los tres siguientes comandos.
Si la versión de Agent Builder con interfaz gráfica no está accesible, podrá acceder a Agent Builder mediante una interfaz de línea de comandos. Consulte Utilización de la versión de línea de comandos de Agent Builder.
Si ejecuta Agent Builder desde el directorio de trabajo de un tipo de recurso, Agent Builder inicializa las pantallas de creación y configuración para incluir los valores del tipo de recurso.
Para ejecutar Agent Builder, escriba el comando siguiente:
% /usr/cluster/bin/scdsbuilder |
Aparece la pantalla de creación.
La información acerca de las pantallas de creación y configuración se especifica llevando a cabo estas operaciones:
Escribiendo la información en un campo.
Examinando la estructura de directorios y seleccionando un archivo o un directorio.
Seleccionando uno de los botones de opción que se excluyen mutuamente (por ejemplo, Escalable o Recuperación ante fallos).
Haciendo clic para activar o desactivar un cuadro. Por ejemplo, al marcar Habilitado para red, se identifica la aplicación base como utilizable en red mientras que dejarlo sin marcar identifica una aplicación que no trabaja en red.
Las opciones 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 o atenúa las opciones según corresponda.
Por ejemplo, una vez cumplimentados los campos y seleccionadas las opciones que desee en la pantalla de creación, haga clic en el botón Crear de la parte inferior de la pantalla. Los botones Anterior y Siguiente se atenúan, 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 de la parte inferior de la pantalla. Cuando termina, Agent Builder muestra bien un mensaje que indica que la operación se ha realizado satisfactoriamente o bien una advertencia para que se mire el registro de salida. Siguiente aparece resaltado o, si es la última pantalla, sólo estará resaltado Cancelar.
Si lo desea, puede pulsar Cancelar en cualquier momento para salir de Agent Builder.
Algunos campos de Agent Builder permiten escribir la información, aunque también puede hacer clic en el botón Examinar para recorrer la estructura de directorios y seleccionar un archivo o directorio.
Cuando se hace clic en Examinar, aparece una pantalla similar a ésta:
Haga doble clic en una carpeta para abrirla. Cuando desplaza el cursor a un archivo, el nombre del archivo en cuestión aparece en el cuadro 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 no hay subdirectorios, Agent Builder cierra la ventana Examinar y pone el nombre del directorio seleccionado 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 coloca el nombre del directorio al que ha movido el cursor en el campo correspondiente.
Los iconos de la esquina superior derecha de la pantalla hacen lo siguiente:
|
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 incluye menús desplegables "Archivo" y "Editar".
El menú Archivo tiene dos opciones:
Cargar tipo de recurso. Permite cargar un tipo de recurso existente. Agent Builder proporciona una pantalla para examinar y seleccionar el directorio de trabajo para un tipo de recurso. Si éste existe en el directorio desde el cual se ejecuta Agent Builder, éste lo carga automáticamente. El comando Cargar tipo de recurso permite ejecutar Agent Builder desde cualquier directorio y seleccionar un tipo de recurso existente para usarlo como plantilla para crear un nuevo tipo de recurso. Consulte Clonación de un tipo de recurso existente.
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ú Editar tiene las siguientes opciones:
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 está realizando un proceso iterativo, realizando cambios en el código fuente y regenerando la salida de Agent Builder y desea separar los mensajes de estado, puede guardar y borrar el archivo de registro antes de cada utilización.
Guardar archivo de registro. Guarda la salida del registro en un archivo. Agent Builder proporciona una pantalla donde se puede elegir el directorio y especificar un nombre de archivo.
El primer paso para crear un tipo de recurso consiste en cumplimentar la pantalla de creación que aparece al ejecutar Agent Builder. La figura siguiente muestra la pantalla de creación después de haber introducido 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. Generalmente, se especifica el símbolo bursátil del proveedor, pero se puede utilizar cualquier nombre que lo identifique de forma única. 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. El nombre completo 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.
En el campo de la versión del tipo de recurso no se pueden usar los siguientes caracteres: espacios, tabulaciones, barra oblicua (/), barra inversa (\), asterisco (*), interrogación (?), coma (,), punto y coma (;), corchete de apertura ([) ni corchete de cierre (]).
Directorio de trabajo.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 indica en este campo la ruta al directorio desde el que se ha ejecutado Agent Builder, aunque se puede escribir un nombre diferente o utilizar el botón Examinar para buscar un directorio diferente.
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.
Escalable o Recuperación ante fallos. Especifica si el tipo de recurso de destino será escalable o de recuperación ante fallos.
Habilitado para red. Determina si la aplicación base está habilitada para red, es decir, si usa la red para comunicarse con los clientes. Seleccione esta casilla de verificación para indicar un sistema habilitado para red, en caso contrario, déjela sin seleccionar.
C, ksh. Indica el lenguaje del código fuente generado. Aunque estas opciones se excluyen mutuamente, con Agent Builder puede crear un tipo de recurso con un código generado mediante Korn y reutilizar la misma información para crear un código generado en C. Consulte Clonación de un tipo de recurso existente.
GDS. Especifica que se trata de un servicio de datos genérico. Consulte el Capítulo 10, Servicio de datos genérico para obtener información sobre la creación y configuración de un servicio de datos genérico.
Si el compilador cc no está incluido en $PATH, Agent Builder atenuará el botón de opción C y sólo le permitirá seleccionar el botón ksh. Para especificar un compilador diferente, consulte la nota al final de Instalación y configuración de Agent Builder.
Después de introducir la información solicitada, haga clic en el botón Crear. El registro de salida de la parte inferior de la pantalla muestra las acciones que puede realizar 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 puede completar este paso, consulte el registro de salida para obtener más detalles.
Si Agent Builder concluye con éxito, haga clic en el botón Siguiente para que aparezca la pantalla de configuración que permitirá terminar de generar el 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 introducida ni el trabajo que ha realizado Agent Builder. Consulte Reutilización del trabajo terminado.
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 seleccionado el botón 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 Examinar para localizar un archivo que contenga el comando para detener la aplicación.
La línea de comandos completa debe incluir todo lo necesario para iniciar la aplicación, como nombres de sistema, números de puerto, una ruta a los archivos de configuración, etc. También puede especificar variables de propiedades , que se describen en Variables de propiedades. Si su aplicación basada en shell Korn requiere que se especifique un nombre de sistema 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, se debe crear un archivo de texto con comandos individuales para iniciar cada árbol de procesos y especificar la ruta a este archivo en el campo de texto Comando de inicio. Consulte Creación de tipos de recursos con varios árboles de proceso independientes, donde se enumeran algunas características especiales, necesarias para que el archivo funcione 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 Examinar para localizar un archivo que contenga el comando para detener la aplicación. También puede especificar variables de propiedades, que se describen en Variables de propiedades. Si su aplicación basada en shell Korn requiere que se especifique un nombre de sistema 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 se cierre.
Si SIGKILL no tiene éxito, el método Stop permite salir, aunque sea de forma no satisfactoria. 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 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 se limita a conectarse y desconectarse del puerto que utiliza el recurso y, si funciona, declara que la aplicación funciona correctamente. También puede especificar variables de propiedades, que se describen en Variables de propiedades. Si su aplicación basada en shell Korn requiere que se especifique un nombre de sistema 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.
Tiempo de espera. Valor de tiempo de espera (en segundos) para cada comando. Se puede especificar un valor nuevo o aceptar el predeterminado de Agent Builder (300 segundos para inicio y parada y 30 para análisis).
Para muchas aplicaciones, en concreto las aplicaciones habilitadas para red, el nombre del sistema mediante el que la aplicación escucha y atiende las peticiones de los clientes debe pasarse a la aplicación en la línea de comandos. Por tanto, en muchos casos, el nombre del sistema es un parámetro 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 del sistema mediante el que escucha la aplicación es específico para el clúster. El nombre de sistema se determina cuando el recurso se ejecuta en un clúster y no se puede determinar cuando Agent Builder genera su código de tipo recurso.
Para solucionar este problema, Agent Builder proporciona la variable $hostnames que se puede especificar en la línea de comandos de 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 sistema real, por ejemplo:
% /opt/network_aware/echo_server -p port_no -l $hostnames |
Cuando un recurso del tipo de recurso de destino se ejecuta en un clúster, los nombres de sistema LogicalHostname o SharedAddress configurados para ese recurso (en la propiedad de recurso Network_resources_used) se reemplazan por el valor de la variable $hostnames.
Si configura la propiedad Network_resources_used con múltiples nombres de sistemas, la variable $hostnames los incluye todos, separados por comas.
Puede recuperar los valores de los recursos, los tipos de recursos y las propiedades de los tipos de recursos seleccionados de Sun Cluster desde el marco RGM usando variables de propiedades. Agent Builder analiza la secuencia de comandos de inicio, de análisis o de parada, estudia sus variables de propiedades y sustituye dichas variables por sus valores antes de que Agent Builder ejecute la secuencia de comandos.
Las variables de propiedades no se admiten para usarlas con servicios basados en shells Korn.
La siguiente lista incluye las variables de propiedades que puede usar con las secuencias de comandos. Las propiedades de los recursos de Sun Cluster, junto con las propiedades del tipo de recursos y las de los grupos de recursos se describen en Apéndice A, Propiedades estándar.
La siguiente lista incluye las variables de las propiedades de recursos:
HOSTNAMES
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
La siguiente lista incluye las variables de las propiedades de los tipos de recursos:
RT_API_VERSION
RT_BASEDIR
RT_FAILOVER
RT_INSTALLED_NODES
RT_NAME
RT_RT_VERSION
RT_SINGLE_INSTANCE
La siguiente lista incluye las variables de las propiedades de los grupos de recursos:
RG_DESIRED_PRIMARIES
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
Un signo de porcentaje (%) se incluye antes de los nombres de propiedades para indicar que se trata de una variable de propiedad, tal y como se muestra en este ejemplo.
# /opt/network_aware/echo_server -t %RS_STOP_TIMEOUT -n %RG_NODELIST |
En el caso del ejemplo anterior, Agent Builder puede interpretar estas variables de propiedades e iniciar 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 |
La siguiente lista describe cómo Agent Builder interpreta los tipos de variables de propiedades:
Un número entero se sustituye por su valor real ( 300, por ejemplo).
Un valor booleano se sustituye por la cadena TRUE o FALSE.
Una cadena se sustituye por la cadena real ( phys-node-1, por ejemplo).
Una lista de cadenas se sustituye por todos los miembros de la lista, separados por comas (phys-node-1,phys-node-2,phys-node-3, por ejemplo).
Una lista de números enteros se sustituye por todos los miembros de la lista, separados por comas (1,2,3, por ejemplo).
Un tipo enumerado se sustituye por su valor, en forma de cadena.
Agent Builder permite aprovechar el trabajo finalizado de las siguientes formas.
Se puede clonar un tipo de recurso creado con Agent Builder.
Se 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, generado por Agent Builder.
Cargue un tipo de recurso existente en Agent Builder usando uno de estos métodos:
Ejecute Agent Builder desde el directorio de trabajo (que contiene el archivo rtconfig) para un tipo de recurso existente (creado con Agent Builder). Agent Builder carga los valores para dicho tipo de recurso en las pantallas de creación y configuración.
Use la opción que permite cargar el tipo de recurso en el menú desplegable 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.
Este procedimiento se puede utilizar para cambiar el tipo de código generado para el tipo de recurso. Por ejemplo, si inicialmente ha creado una versión de un shell Korn de un tipo de recurso, pero más tarde se da cuenta de que necesita una versión en C, puede cargar el tipo de recurso shell Korn existente, cambiar el lenguaje de salida a C y hacer que Agent Builder cree una versión en C del tipo de recurso.
Cree el tipo de recurso clonado.
Seleccione Crear para crear el tipo de recurso. Haga clic en Siguiente para mostrar la pantalla de configuración. Haga clic en Configurar para configurar el tipo de recurso y, después, haga clic en Cancelar.
Para simplificar el proceso de creación de un tipo de recurso, Agent Builder limita el número de entradas, lo que reduce el alcance del tipo de recurso generado. Por tanto, para poder agregar funciones más avanzadas, como las comprobaciones de validación para las propiedades adicionales, o para ajustar parámetros que no muestra Agent Builder, es necesario modificar el código fuente generado o el archivo RTR.
Los archivos de origen están en el directorio directorio_instalación/nombre_tr/src. Agent Builder integra comentarios en el código fuente en los lugares donde se puede agregar código que son del tipo siguiente (para el código C):
/* Código agregado por el usuario -- INICIO vvvvvvvvvvvvvvv */ /* Código agregado por el usuario -- FIN ^^^^^^^^^^^^^^^ */ |
Estos comentarios son idénticos en el código fuente del shell Korn, con excepción del signo #, que indica el inicio de un comentario.
Por ejemplo, nombre_tr.h declara todas las rutinas de utilidades que emplean los diferentes programas. Al final de la lista de declaraciones se incluyen comentarios que permiten declarar las rutinas adicionales agregadas a cualquiera de los códigos.
Agent Builder genera también el makefile en el directorio directorio_instalación/nombre_rt/src con los destinos correspondientes. Use los comandos make para recompilar el código fuente y make pkg para regenerar el paquete del tipo de recurso.
El archivo RTR, que se encuentra en el directorio directorio_instalación/nombre_tr/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 y Apéndice A, Propiedades estándar para obtener información acerca de las propiedades.
La versión de línea de comandos de Agent Builder sigue el mismo proceso básico que la versión de interfaz gráfica de usuario, No obstante, en lugar de especificar información en la interfaz gráfica de usuario, los parámetros se pasan a los comandos scdscreate y scdsconfig. Consulte las páginas de comando man de 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 propiedad. Las variables de propiedad se describen en 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 lo desea, 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 (desde la pantalla de creación). 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.
En este subdirectorio, Agent Builder crea y ocupa los directorios de la siguiente tabla.
Nombre del directorio |
Contenido |
|
---|---|---|
bin |
Para una salida en C, contiene los archivos binarios compilados 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 del tipo de recurso ftp, el nombre del archivo RTR será SUNW.ftp. |
|
man |
Contiene páginas de comando man para las secuencias de control de utilidades start, stop y remove. Por ejemplo, startftp(1M), stopftp(1M) y removeftp(1M).
Para ver estas páginas del comando man, especifique la ruta con la opción man -M. Por ejemplo:
|
|
pkg |
Contiene el paquete final. |
|
src |
Contiene los archivos de origen generados por Agent Builder. |
|
util |
Contiene las secuencias de comandos de utilidades start, stop y remove generadas por Agent Builder. Consulte Secuencias de comandos de utilidades y páginas de comando man. Agent Builder añade el nombre de la aplicación a todos los nombres de secuencias de comandos; por ejemplo startftp, stopftp o removeftp. |
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.
El módulo Cluster Agent para Agent Builder es un módulo NetBeansTM. El software Cluster Agent permite a los usuarios del producto Sun Java Studio (anteriormente Sun ONE Studio) crear tipos de recursos o de servicios de datos, para el software Sun Cluster, en un entorno de desarrollo integrado. El módulo Cluster Agent proporciona una interfaz basada en pantallas para describir el tipo de recurso que se desea crear.
En la página web documentation de Sun Java puede consultar información sobre cómo configurar, instalar y utilizar el producto Sun Java Studio.
El módulo Cluster Agent se instala al instalar el software 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 enlace 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 enlace 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 enlace simbólico en el subdirectorio modules.
% cd ~su_directorio_inicio/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.
Desde el menú File de Sun Java Studio, seleccione New o haga clic en este icono de la barra de herramientas:
Aparece la pantalla New Wizard.
En la ventana 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.
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 al hacer clic en el botón Crear de la pantalla de creación y se configura al hacer clic en Configurar, en la pantalla de configuración.
La información de la ventana del registro de salida de Agent Builder aparece en una ventana de salida aparte en el producto Sun Java Studio.