Sun Cluster: Guía del desarrollador de los servicios de datos del sistema operativo Solaris

Conceptos sobre los servicios genéricos de datos

GDS es un mecanismo que permite que las aplicaciones simples habilitadas o no para red ofrezcan alta disponibilidad o escalabilidad mediante su conexión a la estructura de Administración de grupos de recursos (RGM) de Sun Cluster. A diferencia de una aplicación, este mecanismo no requiere la creación de código para un servicio de datos para ser escalable u ofrecer alta disponibilidad.

GDS es un servicio de datos único, precompilado. No se pueden modificar ni el servicio de datos precompilado ni sus componentes, ni las implementaciones del método de rellamada (rt_callbacks) ni el archivo de registro del tipo de recurso (rt_reg).

En este apartado se describen los temas siguientes:

Tipo de recurso precompilado

El tipo de recurso del servicio genérico de datos SUNW.gds se incluye en el paquete SUNWscgds. La utilidad scinstall instala este paquete durante la instalación del clúster. Consulte la página de comando man scinstall(1M). El paquete SUNWscgds incluye los archivos siguientes:


# pkgchk -v SUNWscgds

/opt/SUNWscgds
/opt/SUNWscgds/bin
/opt/SUNWscgds/bin/gds_monitor_check
/opt/SUNWscgds/bin/gds_monitor_start
/opt/SUNWscgds/bin/gds_monitor_stop
/opt/SUNWscgds/bin/gds_probe
/opt/SUNWscgds/bin/gds_svc_start
/opt/SUNWscgds/bin/gds_svc_stop
/opt/SUNWscgds/bin/gds_update
/opt/SUNWscgds/bin/gds_validate
/opt/SUNWscgds/etc
/opt/SUNWscgds/etc/SUNW.gds

Ventajas y desventajas derivadas del uso de GDS

El uso de GDS presenta las siguientes ventajas frente al uso del código fuente de Agent Builder (consulte la página de comando man scdscreate(1HA) man page) o los comandos de administración de Sun Cluster:

Aunque GDS presenta muchas ventajas, no se debe utilizar este mecanismo en las siguientes circunstancias:

Formas de crear un servicio que utilice GDS

Existen dos formas de crear un servicio que utilice GDS:

GDS y Agent Builder

Utilice Agent Builder y seleccione GDS como tipo de código fuente generado. Los datos de entrada del usuario se utilizan para generar un conjunto de secuencias de comandos que configuren recursos para la aplicación en cuestión.

GDS y los comandos de administración de Sun Cluster

Este método utiliza el código del servicio de datos precompilado de SUNWscgds. Sin embargo, el administrador del clúster debe utilizar los comandos de administración de Sun Cluster y configurar el recurso. Consulte las páginas de comando man scrgadm(1M) y scswitch(1M).

Selección del método que se va a utilizar para crear el servicio basado en GDS

Para emitir los comandos scrgadm y scswitch correctos, es necesario escribir una gran cantidad de instrucciones. Por ejemplo, consulte Uso de los comandos administrativos de Sun Cluster para crear un servicio de alta disponibilidad que utilice GDS y Uso de los comandos administrativos de Sun Cluster para crear un servicio escalable que utilice GDS.

Con GDS, Agent Builder simplifica el proceso, porque genera automáticamente las secuencias que emiten los comandos scrgadm y scswitch.

Registro de eventos de GDS

GDS permite registrar la información relevante que se transfiere de GDS a las secuencias de comandos que inicia el servicio. Esta información incluye el estado de los métodos de inicio, análisis y parada, así como las variables de propiedades. Puede utilizar esta información para detectar problemas o errores en las secuencias de comandos o aplicarla para otros fines.

Debe utilizar la propiedad Log_level descrita en Propiedad Log_level para especificar el nivel o el tipo de mensajes que debe registrar GDS. Entre los valores posibles, se encuentran NONE, INFO o ERR.

Archivos de registro de GDS

Los dos siguientes archivos de registro de GDS se ubican en el directorio /var/cluster/logs/DS/resource-group-name/resource-name:

El siguiente ejemplo muestra el tipo de información que contiene start_stop_log.txt:

10/20/2005 12:38:05 phys-node-1 START-INFO> Start succeeded. [/home/brianx/sc/start_cmd]
10/20/2005 12:42:11 phys-node-1 STOP-INFO> Successfully stopped the application

El siguiente ejemplo muestra el tipo de información que contiene start_stop_log.txt:

10/20/2005 12:38:15 phys-node-1 PROBE-INFO> The GDS monitor (gds_probe) has been started
10/20/2005 12:39:15 phys-node-1 PROBE-INFO> The probe result is 0
10/20/2005 12:40:15 phys-node-1 PROBE-INFO> The probe result is 0
10/20/2005 12:41:15 phys-node-1 PROBE-INFO> The probe result is 0

Propiedades necesarias de GDS

Si la aplicación está habilitada para red, debe proporcionar la propiedad de extensión Start_command y la propiedad Port_list. Si, por el contrario, no está habilitada para red, debe proporcionar sólo la propiedad de extensión Start_command.

Propiedad de extensión Start_command

El comando que se especifica en la propiedad de extensión Start_command inicia la aplicación. Debe ser un comando UNIX, con sus argumentos, que se pueda pasar directamente a un shell para iniciar la aplicación.

Propiedad Port_list

La propiedad Port_list identifica la lista de puertos de escucha de la aplicación. La propiedad Port_listse debe especificar en la secuencia de inicio que crea Agent Builder o en el comando scrgadm, si se están utilizando los comandos de administración de Sun Cluster.

Propiedades opcionales de GDS

Entre las propiedades opcionales de GDS, se incluyen las propiedades definidas por el sistema y las propiedades de extensión. Las propiedades definidas por el sistema son un conjunto de propiedades estándar proporcionadas por Sun Cluster. Las propiedades definidas en el archivo RTR reciben el nombre de propiedades de extensión. A continuación se muestran las propiedades opcionales de GDS:

Propiedad Network_resources_used

El valor predeterminado de esta propiedad es nulo (null). Esta propiedad se debe especificar si la aplicación debe vincularse a una o varias direcciones concretas. Si se omite esta propiedad o si se especifica como Null, se presupone que la aplicación escucha en todas las direcciones.

Antes de poder crear el recurso de GDS, debe haberse configurado anteriormente un recurso LogicalHostname o SharedAddress. Consulte Sun Cluster Data Services Planning and Administration Guide for Solaris OS para obtener información sobre cómo configurar un recurso LogicalHostname o SharedAddress.

Para especificar un valor, escriba uno o varios nombres de recurso. Cada uno puede contener uno o varios recursos LogicalHostname o SharedAddress. Para obtener información, consulte la página de comando man r_properties(5).

Propiedad Stop_command

Este comando debe detener la aplicación y sólo debe retornar una vez detenida ésta. Debe ser un comando UNIX competo, que se pueda pasar directamente a un shell para detener la aplicación.

Si se proporciona la propiedad de extensión Stop_command, el método de parada de GDS inicia el comando de parada con un 80 % de tiempo de espera. Independientemente del resultado del inicio del comando de parada, el método de parada de GDS envía SIGKILL después del 15 % del tiempo de espera de parada. El 5 % restante de ese tiempo se reserva para cargas adicionales indirectas de las tareas domésticas.

Si se omite el comando de parada, GDS utiliza la señal especificada en Stop_signal para detener la aplicación.

Propiedad Probe_command

El comando de análisis comprueba periódicamente el estado de la aplicación especificada. Debe ser un comando UNIX, con sus argumentos, que se pueda pasar directamente a un shell para analizar la aplicación. El comando de análisis devuelve el estado de salida 0 si la aplicación se está ejecutando correctamente.

El estado de salida del comando de análisis se utiliza para determinar la gravedad del fallo de la aplicación. El estado de salida, denominado estado de análisis, debe ser un número entero entre 0 (éxito) y 100 (fallo completo). El estado de análisis puede presentar también el valor especial 201, que provoca que se realice una recuperación ante fallos de la aplicación si Failover_enabled se ha establecido en FALSE. El algoritmo de análisis de GDS utiliza el estado de análisis para determinar si debe reiniciarse localmente la aplicación o efectuarse una recuperación ante fallos. Consulte la página de comando man scds_fm_action(3HA) para obtener más información. Si el estado de salida es 201, se realiza inmediatamente una recuperación ante fallos de la aplicación.

Si se omite el comando de análisis, GDS proporciona su propio análisis. Este análisis se conecta a la aplicación en el conjunto de direcciones IP derivado de la propiedad Network_resources_used o del resultado de la función scds_get_netaddr_list(). Consulte la página de comando man scds_get_netaddr_list(3HA) para obtener más información. Si la conexión se realiza satisfactoriamente, ésta se desconecta de forma inmediata. Si tanto la conexión como la desconexión se realizan satisfactoriamente, se considera que la aplicación se está ejecutando correctamente.


Nota –

El análisis proporcionado con GDS está diseñado únicamente como sustituto del análisis específico de la aplicación, completamente funcional.


Propiedad Start_timeout

Esta propiedad especifica el tiempo de espera de inicio para el comando de inicio. Consulte Propiedad de extensión Start_commandpara obtener más información. El valor predeterminado de Start_timeout es de 300 segundos.

Propiedad Stop_timeout

Esta propiedad especifica el tiempo de espera de parada para el comando de parada. Consulte Propiedad Stop_command para obtener más información. El valor predeterminado de Stop_timeout es de 300 segundos.

Propiedad Probe_timeout

Esta propiedad especifica el valor de tiempo de espera para el comando de análisis. Consulte Propiedad Probe_command para obtener más información. El valor predeterminado de Probe_timeout es de 30 segundos.

Propiedad Child_mon_level


Nota –

Puede utilizar la propiedad Child_mon_level si usa los comandos de administración de Sun Cluster, pero no, si usa Agent Builder.


Esta propiedad proporciona el control de los procesos supervisados por la Utilidad de supervisor de procesos (PMF). Esta propiedad denota el nivel hasta el que son supervisados los procesos secundarios bifurcados. Esta propiedad funciona igual que el argumento -C con el comando pmfadm. Consulte la página de comando man pmfadm(1M).

Omitir esta propiedad, o establecerla en su valor predeterminado de -1, tiene el mismo efecto que omitir la opción -C en el comando pmfadm; es decir, todos los secundarios (y sus descendientes) se supervisarán.

Propiedad Failover_enabled

Este propiedad de extensión booleana controla el comportamiento de recuperación ante fallos del recurso. Si la propiedad de extensión se establece en TRUE, la aplicación realiza una recuperación ante fallos cuando el número de reinicios supera el valor de Retry_count en el número de segundos de Retry_interval.

Si esta propiedad se establece en FALSE, la aplicación no se reinicia ni realiza una recuperación ante fallos a otro nodo cuando el número de reinicios supera el valor de Retry_count en el número de segundos de Retry_interval .

Esta propiedad se puede utilizar para impedir que el recurso de aplicación inicie una recuperación ante fallos del grupo de recursos. El valor predeterminado de esta propiedad es TRUE.

Propiedad Stop_signal

GDS utiliza el valor de esta propiedad de extensión de número entero para determinar la señal empleada para detener la aplicación mediante PMF. Consulte la página de comando man signal(3HEAD) para obtener una lista de los números enteros que puede especificar. El valor predeterminado es 15 (SIGTERM ).

Propiedad Log_level

Esta propiedad especifica el nivel o tipo de mensajes de diagnóstico registrados por GDS. Entre los valores posibles para esta propiedad, se incluyen NONE, INFO o ERR. Si especifica NONE, GDS no registrará los mensajes de diagnóstico. Si especifica INFO, sólo se registran mensajes informativos. Si especifica ERR, sólo se registran mensajes de error. Por defecto, GDS no registra mensajes de diagnóstico (NONE).