Sun Cluster 3.1 10/03: Guía del desarrollador de los servicios de datos

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 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 genérico de datos SUNW.gds se incluye en el paquete SUNWscgds. La utilidad scinstall(1M) instala este paquete durante la instalación del clúster. 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

Razones para utilizar GDS

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

Formas de crear un servicio que utilice GDS

Hay dos formas de crear un servicio que utilice GDS:

GDS y SunPlex Agent Builder

Utilice SunPlex 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 control que configuren recursos para la aplicación en cuestión.

GDS y los comandos administrativos estándar de Sun Cluster

Este método utiliza el código de servicio de datos precompilado de SUNWscgds pero requiere que el administrador del sistema emplee los comandos administrativos estándar de Sun Cluster (scrgadm(1M) y scswitch(1M)) para crear y configurar el recurso.

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

Como muestran los procedimientos Cómo utilizar los comandos administrativos de Sun Cluster para crear un servicio de alta disponibilidad con GDS y Comandos administrativos estándar de Sun Cluster para crear un servicio escalable con 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.

Cuándo no se debe utilizar GDS

Aunque la utilización de GDS tiene muchas ventajas, hay casos en los que no es conveniente utilizarlo. GDS no resulta apropiado:

Propiedades necesarias para GDS

Se deben proporcionar las propiedades siguientes:

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 sus argumentos, que se puede pasar directamente a un shell para iniciar la aplicación.

Propiedad Port_list

La propiedad Port_list identifica la lista de puertos en los que recibe la aplicación; 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 opcionales para GDS

La propiedades opcionales para GDS son:

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 recibe en todas las direcciones.

Antes de crear el recurso de GDS es necesario haber configurado un recurso LogicalHostname o SharedAddress. Consulte Sun Cluster 3.1 Data Service Planning and Administration Guide para obtener información sobre cómo configurar un recurso LogicalHostname o SharedAddress.

Para especificar un valor especifique uno o varios nombres de recurso; cada uno puede contener uno o varios LogicalHostname o SharedAddress. Consulte r_properties(5) para obtener más detalles.

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 da 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 sus 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; se denomina estado de análisis y debe ser un número entero entre 0 (éxito) y 100 (fallo total). Puede tener también un valor especial de 201, lo que provoca una recuperación de fallos inmediata de la aplicación salvo que se establezca Failover_enabled en false. El estado de análisis se utiliza dentro del algoritmo de análisis de GDS (consulte scds_fm_action(3HA) para tomar la decisión de 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 aporta su propio analizador sencillo, que conecta con la aplicación en el conjunto de direcciones IP derivadas de la propiedad Network_resources_used o la salida 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 tiempo de espera de inicio 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 el tiempo de espera de parada 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 de 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

Esta propiedad proporciona control sobre los procesos que se supervisan a través de PMF. Indica el nivel máximo hasta el cual se supervisan los procesos secundarios bifurcados. Es similar al argumento -C del comando 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.


Nota –

Esta opción sólo se puede especificar con los comandos administrativos estándar de Sun Cluster; no se puede especificar si se está usando SunPlex Agent Builder.


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 del número de segundos de retry_interval.

Esta propiedad de extensión se puede utilizar para impedir que el recurso de aplicación inicie una recuperación de fallos del grupo de recursos. El valor predeterminado 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 signal(3HEAD) para ver una lista de los valores enteros que se pueden especificar. El valor predeterminado es 15 (SIGTERM).