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

Información general de GDS

GDS es un mecanismo para dotar a aplicaciones sencillas habilitadas para la red de una alta disponibilidad o escalabilidad, mediante su conexión a una estructura de Gestión de grupos de recursos (RGM) de Sun Cluster. Este mecanismo no requiere codificación de un agente, que es el método habitual para dotar una aplicación de alta disponibilidad y escalabilidad.

GDS es un servicio de datos único, precompilado. No es posible modificar el servicio de datos precompilado ni sus componentes, tampoco las implementaciones de método de rellamada (rt_callbacks(1HA)) ni el archivo de registro de tipo de recurso (rt_reg(4)).

Tipo de recurso precompilado

El tipo de recurso del servicio datos genérico 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 del comando man de 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

GDS tiene las ventajas siguientes con respecto a la utilización del modelo de código fuente generado por SunPlex Agent Builder (consulte la página de comando man de scdscreate( 1HA)) o los comandos estándar de administración de Sun Cluster:

Aunque la utilización de GDS tiene muchas ventajas, hay casos en los que no es conveniente utilizarlo. GDS no es el mecanismo que se debe utilizar en estos casos:

Formas de crear un servicio que utilice GDS

Hay dos formas de crear un servicio que utilice GDS:

GDS y SunPlex Agent Builder

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

GDS y los comandos administrativos estándar de Sun Cluster

Este método usa el código del servicio de datos precompilado de SUNWscgds pero requiere que el administrador de sistema use comandos estándar de administración de Sun Cluster para crear y configurar los recursos. Consulte las páginas de comando man de scrgadm( 1M) y scswitch( 1M).

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

Como muestran los procedimientos Uso de los comandos administrativos de Sun Cluster para crear un servicio de alta disponibilidad que use GDS y Uso de los comandos administrativos de Sun Cluster para crear un servicio escalable que use GDS, hay que escribir mucho para emitir los comandos scrgadm y scswitch apropiados.

Con GDS, SunPlex Agent Builder simplifica el proceso, porque genera las secuencias de control que emiten los comandos scrgadm y scswitch.

Registro de eventos de GDS

GDS le permite registrar información importante que pasa de GDS a las secuencias de control que inicia GDS. Entre esta información importante se incluye el estado de los métodos de inicio, de análisis y de parada, así como las variables de propiedades. Esta información se puede usar para diagnosticar problemas o errores en las secuencias de control o para aplicarla a otros propósitos.

La propiedad Log_level que se describe en Propiedad Log_level se usa para especificar el nivel de los mensajes (o el tipo) que GDS debe registrar. Puede especificar como valor NONE, INFO o ERR.

Archivos de registro de GDS

Los dos archivos de registro siguientes de GDS están ubicados en el directorio /var/cluster/logs/DS/nombre_grupo_recursos/ nombre_recurso:

El siguiente ejemplo muestra los tipos de información que contiene start_stop_log.txt:

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

El siguiente ejemplo muestra los tipos de información que contiene probe_log.txt:

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

Propiedades de GDS requeridas

Si la aplicación no está habilitada para red, debe proporcionar tanto la propiedad de extensión Start_command como la propiedad Port_list. Por el contrario, si la aplicación sí está habilitada para red, debe proporcionar sólo la propiedad Port_list.

Propiedad de extensión Start_command

El comando de inicio, que se especifica en la propiedad de extensión Start_command, inicia la aplicación. Debe ser un comando UNIX con 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 mediante los que escucha la aplicación. La propiedad Port_list se debe especificar en la secuencia de inicio que crea SunPlex Agent Builder o en el comando scrgadm, si se están utilizando los comandos administrativos estándar de Sun Cluster.

Propiedades de GDS opcionales

La siguiente lista contiene propiedades de GDS opcionales:

Propiedad Network_resources_used

El valor predeterminado de esta propiedad es nulo. 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 crear el recurso de GDS es necesario haber configurado 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 de ellos puede contener uno o varios LogicalHostname o SharedAddress. Consulte la página de comando man de r_properties (5) para obtener más información.

Propiedad Stop_command

El comando de parada debe detener la aplicación y retornar sólo cuando la aplicación se haya detenido completamente. Debe ser un comando UNIX completo, que se pueda pasar directamente a un shell para detener la aplicación.

Si se ejecuta el comando Stop_command, el método de parada de GDS inicia el comando de parada con un 80 % del tiempo de espera de parada. 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 intenta detener la aplicación con la señal que se especifica en Stop_signal.

Propiedad Probe_command

El comando de análisis comprueba periódicamente el estado de la aplicación. Debe ser un comando UNIX con argumentos que se puede pasar directamente a un shell para analizar la aplicación. El comando de análisis retorna con un estado de salida de 0 si la aplicación está bien.

El estado de salida del comando de análisis se utiliza para determinar la gravedad del fallo de la aplicación. Dicho estado de salida se denomina estado de análisis y debe ser un número entero entre 0 (éxito) y 100 (fallo total). El estado de análisis también puede ser un valor especial de 201, lo que provoca que la aplicación se recupere de los fallos inmediatamente, a menos que Failover_enabled esté establecido en FALSE . El estado de análisis se utiliza dentro del algoritmo de análisis de GDS (consulte scds_fm_action(3HA)) para reiniciar la aplicación localmente en lugar de hacer una operación de recuperación de fallos a otro nodo. Si el estado de salida es 201, se realiza inmediatamente una recuperación de fallos de la aplicación.

Si se omite el comando de análisis, GDS proporciona su propio análisis sencillo que se conecta a la aplicación mediante el conjunto de direcciones IP que se derivan de la propiedad Network_resources_used o de la salida de scds_get_netaddr_list (consulte la página man de scds_get_netaddr_list(3HA)). Si la conexión es satisfactoria, se desconecta inmediatamente. Si tanto la conexión como la desconexión son satisfactorias, se considera que la aplicación está funcionando correctamente.


Nota –

El analizador incluido con GDS sólo se pretende que sea un sustituto sencillo del analizador específico de la aplicación, que cuenta con todas las funciones.


Propiedad Start_timeout

Esta propiedad especifica el inicio del tiempo de espera del comando de inicio. Consulte Propiedad de extensión Start_command para obtener información adicional. El valor predeterminado de Start_timeout es 300 segundos.

Propiedad Stop_timeout

Esta propiedad especifica la detención del tiempo de espera del comando de parada. Consulte Propiedad Stop_command para obtener información adicional. El valor predeterminado de Stop_timeout es 300 segundos.

Propiedad Probe_timeout

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

Propiedad Child_mon_level


Nota –

Si usa los comandos estándar de administración de Sun Cluster, podrá usar esta opción. En cambio, si usa SunPlex Agent Builder, no podrá usarla.


Esta propiedad permite controlar los procesos supervisados mediante el recurso de supervisión de procesos (PMF). Indica el nivel máximo hasta el cual se supervisan los procesos secundarios bifurcados. Esta propiedad funciona igual que el argumento -C con el comando pmfadm. Consulte la página de comando man de 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

Esta propiedad de extensión booleana controla el comportamiento de la recuperación de fallos del recurso. Si esta propiedad de extensión se establece en true, la aplicación realiza una operación de recuperación de fallos cuando el número de reinicios supere el valor retry_count dentro del número de segundos de retry_interval.

Si esta propiedad de extensión se fija en false, la aplicación no se reinicia ni realiza una recuperación de fallos a otro nodo cuando el número de reinicios supere el valor de retry_count dentro del número de segundos de retry_interval .

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

Propiedad Stop_signal

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

Propiedad Log_level

Esta propiedad especifica el nivel (o el tipo) de mensajes de diagnóstico que registra GDS. Puede especificar NONE, INFO o ERR para esta propiedad. Si especifica NONE, GDS no registrará los mensajes de diagnóstico. Si especifica INFO, sólo se registrarán mensajes de información. Y, por último, si especifica ERR, sólo se registrarán los mensajes de error. Por defecto, GDS no registra mensajes de diagnóstico (NONE).