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

Métodos de rellamada de RMAPI

Los métodos de rellamada son los elementos clave que proporciona la API para implementar un tipo de recurso, ya que permiten que RGM controle los recursos del clúster en caso de un cambio en los miembros del clúster, como un arranque o una caída del nodo.


Nota –

RGM ejecuta los métodos de rellamada con permisos de root, porque los programas cliente controlan los servicios de alta disponibilidad (HA) del sistema del clúster. Instale y administre estos métodos con permisos y propiedad de archivos restrictivos. Específicamente, déles un propietario con privilegios, como bin o root, y no los haga grabables.


Esta sección describe los argumentos del método de rellamada y los códigos de salida y enumera y describe los métodos de rellamada de las siguientes categorías:


Nota –

Esta sección proporciona descripciones breves de los métodos de rellamada, incluidos el punto en el que se invoca el método y el efecto esperado en el recurso; la página de comando man rt_callbacks(1HA) es la referencia definitiva para los métodos de rellamada.


Argumentos del método

La sintaxis de los métodos de rellamada de RGM es:


método -R nombre_recurso -T nombre_tipo -G nombre_grupo

El método es el nombre de ruta del programa que se registra como Start, Stop u otra rellamada. Los métodos de rellamada de un tipo de recurso se declaran en su archivo de registro.

Todos los argumentos del método de rellamada se pasan como valores con indicadores, donde -R indica el nombre de la instancia de recursos, -T indica el tipo del recurso y -G indica el grupo en el que se configura el recurso. Utilice los argumentos con funciones de acceso para recuperar información sobre el recurso.

El método Validate se invoca con argumentos adicionales (los valores de la propiedad del recurso y del grupo de recursos en el que se invoca).

Consulte scha_calls(3HA) para obtener más información.

Códigos de salida

Todos los métodos de rellamada tienen los mismos códigos de salida para especificar el efecto de la invocación del método en el estado del recurso. La página de comando man scha_calls(3HA) describe todos estos códigos de salida. Éstos son:

RGM también maneja los fallos anómalos en la ejecución del método de rellamada, como volcados de núcleo central y la finalización del tiempo de espera.

Las implementaciones del método deben emitir la información sobre fallos utilizando syslog en cada nodo. La salida que se graba en stdout o stderr no está garantizado que se entregue al usuario (aunque aparezca actualmente en la consola del nodo local).

Métodos de rellamada de control e inicialización

Los métodos primarios de rellamada de control e inicialización inician y detienen un recurso. Otros métodos ejecutan un código de inicialización y terminación en un recurso.

Start

Este método obligatorio se invoca en un nodo del clúster cuando el grupo de recursos que contiene el recurso se pone en línea en ese nodo. Este método activa el recurso en ese nodo.

Un método Start no debe salir hasta que el recurso que activa se haya iniciado y esté disponible en el nodo local. Por tanto, antes de salir, el método Start debe interrogar al recurso para determinar si ya se ha iniciado. Se debe establecer un valor de tiempo de espera suficientemente largo para este método. Por ejemplo, algunos recursos, como daemons de base de datos, tardan más tiempo en empezar, por lo que el valor del tiempo de espera de estos métodos debe ser mayor.

La forma en que RGM responde a un fallo del método Start depende de la configuración de la propiedad Failover_mode.

La propiedad START_TIMEOUT del archivo de registro del tipo de recurso establece el valor de tiempo de espera para un método Start de un recurso.

Stop

Este método obligatorio se invoca en un nodo del clúster cuando el grupo de recursos que contiene el recurso se pone fuera de línea en ese nodo. Este método desactiva el recurso si está activo.

Un método Stop no debe salir hasta que el recurso que controla haya detenido completamente toda su actividad en el nodo local y después de que haya cerrado todos los descriptores de archivos. En caso contrario, dado que RGM asume que el recurso se ha detenido, cuando en realidad sigue activo, se puede producir una corrupción de los datos. La forma más segura de evitar que los datos se corrompan es terminar todos los procesos en el nodo local relacionado con el recurso.

Antes de salir, el método Stop deberá interrogar al recurso para determinar si ya se ha detenido. Se debe establecer un valor de tiempo de espera suficientemente largo para este método. Por ejemplo, algunos recursos, como daemons de base de datos, tardan más tiempo en detenerse, por lo que el valor del tiempo de espera de estos métodos debe ser mayor.

La forma en que RGM responde a un fallo del método Stop depende de la configuración de la propiedad Failover_mode (consulte la Tabla A–2).

La propiedad STOP_TIMEOUT del archivo de registro del tipo de recurso establece el valor del tiempo de espera para un método Stop del recurso.

Init

Este método opcional se invoca para realizar una inicialización del recurso una sola vez, cuando éste pase a ser gestionado, tanto cuando el grupo de recursos al que pertenece pasa de un estado no gestionado a un estado gestionado como cuando se crea en un grupo de recursos que ya está gestionado. El método lo invoca en los nodos determinados la propiedad de recurso Init_nodes.

Fini

Este método opcional se invoca para realizar una reorganización detrás del recurso, cuando éste deja de estar gestionado, tanto cuando el grupo de recursos al que pertenece pasa a un estado no gestionado como cuando el recurso se elimina de un grupo de recursos gestionado. El método lo invoca en los nodos determinados la propiedad de recurso Init_nodes.

Boot

Este método opcional, similar a Init, se invoca para inicializar el recurso en los nodos que se unen al clúster después de que el grupo de recursos al que pertenece dicho recurso se haya puesto bajo la gestión de RGM. El método lo invoca en los nodos determinados la propiedad de recurso Init_nodes. El método Boot se invoca cuando el nodo se une o se vuelve a unir al clúster, tras un arranque o un rearranque.


Nota –

Un fallo en los métodos Init, Fini o Boot hace que la función syslog() genere un mensaje de error, pero no afecta de ningún otro modo a la gestión del recurso por parte de RGM.


Métodos de soporte administrativo

Las acciones administrativas en los recursos incluyen la configuración y modificación de las propiedades de los recursos. Los métodos de rellamada Validate y Update permiten que una implementación de tipo de recurso enlace con estas acciones administrativas.

Validate

Este método opcional se invoca cuando se crea un recurso y cuando una acción administrativa actualiza las propiedades del recurso o el grupo de recursos que lo contiene. Esta invocación se realiza en el conjunto de nodos del clúster señalado por la propiedad Init_nodes del tipo de recurso antes de que se aplique la creación o actualización; un código de salida no satisfactorio desde el método en cualquier nodo hace que se cancele la creación o actualización.

Validate se invoca sólo cuando las propiedades del recurso o grupo de recursos se modifican con una acción administrativa, no cuando RGM establece las propiedades ni cuando un supervisor establece las propiedades del recurso Status y Status_msg.

Update

Este método opcional se invoca para notificar un recurso en ejecución cuyas propiedades se hayan cambiado después de que una acción de administración haya configurado satisfactoriamente las propiedades de un recurso o su grupo; se invoca en los nodos en los que el recurso está en línea. El método utiliza las funciones de acceso de API para leer los valores de propiedad que puedan afectar a un recurso activo y ajusta el recurso en ejecución según corresponda.

El fallo del método Update hace que la función syslog() genere un mensaje de error, pero no afecta de ningún otro modo a la gestión del recurso por parte del RGM.

Métodos de rellamada relacionados con la red

Los servicios que usan los recursos de dirección de red pueden requerir que los inicios y las paradas se realicen en un orden determinado, dependiendo de la configuración de la dirección de red. Los siguientes métodos de rellamada opcionales, Prenet_start y Postnet_stop, permiten que una implementación de un tipo de recurso realice acciones especiales de arranque y apagado, antes y después de que se configure o desconfigure una dirección de red relacionada.

Prenet_start

Este método opcional se invoca para que realice acciones de inicio especiales antes de que se configuren las direcciones de red del mismo grupo de recursos.

Postnet_stop

Este método opcional se invoca para que realice acciones de apagado especiales después de que se desconfiguren las direcciones de red del mismo grupo de recursos.

Métodos de rellamada del control del supervisor

Una implementación del tipo de recurso puede incluir, opcionalmente, un programa para supervisar el rendimiento de un recurso, informar de su estado o tomar medidas cuando se produce un fallo de un recurso. Los métodos Monitor_start, Monitor_stop y Monitor_check admiten la implementación de un supervisor de recursos en una implementación del tipo de recurso.

Monitor_start

Este método opcional se invoca para iniciar un supervisor para el recurso, una vez que se haya iniciado éste.

Monitor_stop

Este método opcional se invoca para detener un supervisor de un recurso antes de que éste se detenga.

Monitor_check

Este método opcional se invoca para evaluar la fiabilidad de un nodo antes de que se reubique un grupo de recursos en el nodo. El método Monitor_check se debe implementar de forma que no entre en conflicto con la ejecución simultánea de otro método.