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

Métodos de rellamada de RMAPI

Los métodos de rellamada son elementos clave proporcionados por la API para implementar un tipo de recurso. Los métodos de rellamada permiten a RGM controlar los recursos del clúster en caso de producirse un cambio en la pertenencia al clúster como, por ejemplo, el arranque o bloqueo de un nodo.


Nota –

RGM ejecuta estos métodos con permisos de rol de superusuario o equivalente, ya que los programas de cliente controlan los servicios HA del sistema del clúster. Instale y administre estos métodos con permisos y propiedad de archivos restrictivos. En concreto, otorgue estos métodos a un propietario con privilegios, como bin o root, y no conceda permisos de escritura para ellos.


Esta sección describe los argumentos y códigos de salida de los métodos de rellamada. Los métodos de rellamada se dividen en las siguientes categorías:


Nota –

Esta sección proporciona breves descripciones de los métodos de llamada, incluido el momento en que se ejecuta el método y el efecto previsto que tendrá sobre el recurso. Sin embargo, para obtener información completa sobre estos métodos, consulte la página de comando man rt_callbacks(1HA).


Argumentos para los métodos de rellamada

RGM ejecuta los métodos de rellamada de la siguiente forma:

method -R resource-name -T type-name -G group-name

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 de los métodos de rellamadas se pasan como valores marcados, de la siguiente forma:

Utilice los argumentos con funciones de acceso para recuperar información sobre el recurso.

Se llama al método Validate con argumentos adicionales que incluyen los valores de propiedades del recurso y el grupo de recursos.

La página de comando man scha_calls(3HA) contiene más información.

Códigos de salida de los métodos de rellamada

Todos los métodos de rellamada tienen los mismos códigos de salida. Estos códigos de salida se definen para especificar el efecto de la llamada al método en el estado del recurso. La página de comando man scha_calls(3HA) describe estos códigos de salida de forma más detallada. Los códigos de salida se dividen en las dos principales categorías siguientes:

RGM controla también los fallos anómalos en la ejecución de los métodos de rellamada como, por ejemplo, los tiempos de espera y los volcados del núcleo.

Las implementaciones de los métodos deben proporcionar información sobre fallos mediante syslog () en cada nodo. El resultado escrito en stdout o stderr no garantiza su envío al usuario, aunque se muestre actualmente en la consola del nodo local.

Métodos de rellamada de control e inicialización

Los métodos principales 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

RGM ejecuta este método en un nodo del clúster cuando el grupo que contiene el recurso se establece en línea en ese nodo. Este método activa el recurso en ese nodo.

El método Start no debería salir hasta que el recurso que ha activado 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. Además, se debería establecer un valor de tiempo de espera lo suficientemente largo para este método. Por ejemplo, determinados recursos como los daemons de base de datos, necesitan más tiempo para iniciarse, por lo que el método debería tener un valor de tiempo de espera más largo.

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 (RTR) establece el valor de tiempo de espera para el método Start del recurso.

Stop

RGM ejecuta este método necesario en un nodo del clúster cuando el grupo que contiene el recurso se establece fuera de línea en ese nodo. Este método desactiva el recurso si está activo.

El método Stop no debería salir hasta que el recurso que controla haya detenido completamente su actividad en el nodo local y se hayan cerrado todos los descriptores de archivos. De lo contrario, RGM supone que el recurso se ha detenido cuando realmente sigue activo. Esto podría provocar daños en los datos. La forma más segura de evitar daños en los datos consiste en finalizar 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. Además, se debería establece un valor de tiempo de espera lo suficientemente largo para este método. Por ejemplo, determinados recursos como los daemons de base de datos, necesitan más tiempo para detenerse, por lo que el método debería tener un valor de tiempo de espera más largo.

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

La propiedad Stop_timeout del archivo RTR establece el valor de tiempo de espera para el método Stop del recurso.

Init

RGM ejecuta este método opcional para realizar una inicialización única del recurso al convertirse en un recurso administrado. RGM ejecuta este método cuando el estado del grupo de recursos pasa de no administrado a administrado, o cuando se crea el recurso en un grupo que ya se está administrando. Se llama a este método en los nodos identificados por la propiedad Init_nodes.

Fini

RGM ejecuta este método opcional para el proceso de limpieza una vez que el recurso deja de administrarse. RGM ejecuta este método cuando el estado del grupo de recursos pasa a no administrado o cuando se elimina el recurso de un grupo de recursos administrado. Se llama a este método en los nodos identificados por la propiedad Init_nodes.

Boot

RGM ejecuta este método opcional, similar aInit , para inicializar el recurso en los nodos unidos al clúster después de que el grupo de recursos que contiene el recurso se haya puesto bajo la administración de RGM. RGM ejecuta este método en los nodos identificados por la propiedad Init_nodes. Se llama al método Boot cuando el nodo se une al clúster por primera vez o de nuevo como resultado de un inicio o reinicio.


Nota –

Si falla el método Init, Fini o Boot, la función syslog() generará un mensaje de error. Sin embargo, la administración del recurso por parte RGM no se verá afectada.


Métodos de asistencia administrativa

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 del tipo de recurso lleve a cabo acciones administrativas.

Validate

RGM llama a este método opcional cuando se crea un recurso y el administrador del clúster actualiza sus propiedades o el grupo de recursos que lo contiene. Se llama a este método en el conjunto de nodos del clúster definido por la propiedad Init_nodes del tipo de recurso. Se llama a Validate antes de aplicar la creación o la actualización. Un código de salida de fallo proveniente del método en cualquier nodo provoca que se cancele la creación o la actualización.

Se llama aValidate sólo cuando el administrador del clúster modifica las propiedades del recurso o el grupo de recursos y no cuando RGM establece las propiedades o el supervisor establece las propiedades Status y Status_msg del recurso.

Update

RGM ejecuta este método opcional para notificar a un recurso en ejecución que se han cambiado las propiedades. RGM ejecuta Update después de que una acción administrativa consiga configurar las propiedades de un recurso o su grupo. Este método se invoca en los nodos en los que el recurso está en línea. El método utiliza las funciones de acceso de la API para leer los valores de propiedades que pueden afectar a un recurso activo y ajustar este recurso de forma pertinente.


Nota –

Si falla el método Update, la función syslog() generará un mensaje de error. Sin embargo, la administración del recurso por parte RGM no se verá afectada.


Métodos de rellamada relacionados con la red

Es posible que los servicios que utilizan recursos de dirección de red necesiten que los procesos de inicio o parada se realicen en un determinado orden en relación con la configuración de red. Los métodos de rellamada opcionales, Prenet_start y Postnet_stop, permiten que una implementación del tipo de recurso lleve a cabo acciones especiales de inicio y cierre antes y después de configuar una dirección de red relacionada o de anular su configuración.

Prenet_start

Se llama a este método opcional para realizar acciones especiales de inicio antes de configurar las direcciones de red del mismo grupo de recursos.

Postnet_stop

Se llama a este método opcional para realizar acciones especiales de cierre después de configurar 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 de forma opcional un programa que supervise el rendimiento de un recurso, informe de su estado o lleve a cabo acciones cuando el recurso falla. 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

Se llama a este método para evaluar la fiabilidad de un nodo antes de que se cambie la ubicación del grupo de recursos a ese nodo. Debe implementar el método Monitor_check para que no entre en conflicto con la ejecución simultánea de otro método.