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

Capítulo 1 Información general sobre la gestión de recursos

Este manual proporciona directrices para crear un tipo de recurso para una aplicación de software como Oracle®, Sun JavaTM System Web Server (anteriormente Sun TM One Web Server), DNS, etc. Está dirigido a desarrolladores de tipos de recursos.

Este capítulo proporciona información general sobre los conceptos que es necesario comprender para desarrollar un servicio de datos e incluye la información siguiente.


Nota –

Este manual utiliza los términos tipo de recursos y servicios de datos indistintamente. El término agente, aunque se usa pocas veces en este manual, equivale a tipo de recurso y servicio de datos.


Entorno de aplicaciones de Sun Cluster

El sistema Sun Cluster permite ejecutar y administrar las aplicaciones como recursos escalables y de alta disponibilidad. El recurso del clúster conocido como Gestor de grupos de recursos, o RGM, proporciona el mecanismo de alta disponibilidad y escalabilidad. Los elementos que componen la interfaz de programación de este recurso son los siguientes.

La figura siguiente muestra las relaciones entre estos elementos.

Figura 1–1 Arquitectura de programación

Diagrama que muestra las relaciones entre los métodos de rellamada, RMAPI, recurso de gestión de procesos y DSDL

En el paquete de Sun Cluster se incluye SunPlexTM Agent Builder, una herramienta que automatiza el proceso de creación de servicios de datos (consulte el Capítulo 9). Agent Builder genera código de servicio de datos en C (se emplean las funciones de DSDL para escribir los métodos de rellamada) o en el shell Korn (ksh) (con órdenes de API de bajo nivel para escribir los métodos de rellamada).

RGM se ejecuta como daemon en cada nodo del clúster e inicia y detiene automáticamente los recursos en los nodos seleccionados, de acuerdo con políticas preconfiguradas; hace que un recurso tenga una alta disponibilidad en caso de fallo de un nodo o reinicio, deteniendo el recurso del nodo afectado e iniciándolo en otro; además, inicia y detiene automáticamente supervisores específicos de recursos, que pueden detectar fallos de los recursos y reubicar éstos en otros nodos o pueden supervisar otros aspectos del rendimiento de los recursos.

RGM admite recursos a prueba de fallos, que pueden estar en línea en un sólo nodo en cada momento, y recursos escalables, que pueden estar en línea en varios nodos simultáneamente.

Modelo de RGM

Esta sección introduce cierta terminología fundamental y explica con más detalle el Gestor de grupos de recursos y sus interfaces asociadas.

RGM maneja tres tipos principales de objetos interrelacionados: tipos de recursos, recursos y grupos de recursos. Un ejemplo, que se explica a continuación, nos puede servir para presentar estos objetos.

Un desarrollador implementa un tipo de recurso, ha-oracle, que proporciona a una aplicación Oracle DBMS una alta disponibilidad. Un usuario final define bases de datos diferentes para márqueting, ingeniería y finanzas, cada una de las cuales es un recurso de tipo ha-oracle. El administrador del clúster pone estos recursos en grupos de recursos separados para que puedan funcionar en nodos diferentes y realizar una operación de recuperación de fallos independiente. Un desarrollador crea un segundo tipo de de recurso, ha-calendar, para implementar un servidor de agendas de alta disponibilidad que exige una base de datos Oracle. El administrador del clúster pone el recurso de la agenda financiera en el mismo grupo de recursos que el recurso de la base de datos financiera para que ambos se ejecuten en el mismo nodo y realicen operaciones de recuperación de fallos conjuntamente.

Tipos de recursos

Un tipo de recurso consiste en una aplicación de software que se va a ejecutar en el clúster, programas de control que RGM utiliza como métodos de rellamada para gestionar la aplicación como un recurso de clúster y un conjunto de propiedades que forman parte de la configuración estática de un clúster. RGM utiliza propiedades de tipo de recurso para gestionar los recursos de un tipo concreto.


Nota –

Además de una aplicación de software, un tipo de recurso puede representar otros recursos de sistema, como direcciones de red.


El desarrollador de los tipos de recursos especifica las propiedades de éstos y fija sus valores en un archivo de registro de tipo de recurso (RTR) que sigue un formato bien definido descrito en Establecimiento del recurso y las propiedades del tipo de recurso y en la página de comando man rt_reg(4). Consulte también Definición del archivo de registro del tipo de recurso si desea ver una descripción de un archivo de registro de tipo de recurso.

La Tabla A–1 enumera las propiedades de los tipos de recursos.

El administrador del clúster instala y registra la implementación del tipo de recurso y la aplicación subyacente en un clúster. El procedimiento de registro introduce en la configuración del clúster la información del archivo de registro del tipo de recurso. Sun Cluster Data Services Planning and Administration Guide for Solaris OS describe el procedimiento de registro de un servicio de datos.

Recursos

Un recurso hereda las propiedades y valores de su tipo de recurso. Además, un desarrollador puede declarar propiedades de recurso en el archivo de registro del tipo de recurso. Consulte la Tabla A–2 para ver una lista de las propiedades de recursos.

El administrador del clúster puede cambiar los valores de ciertas propiedades, en función de cómo se hayan especificado en el archivo de registro del tipo de recurso (RTR). Por ejemplo, las definiciones de propiedades pueden especificar un rango de valores permitidos y especificar cuándo se puede ajustar la propiedad: en el momento de la creación, en cualquier momento o nunca. Dentro de estas especificaciones, el administrador del clúster puede cambiar las propiedades con órdenes de administración.

El administrador del clúster puede crear muchos recursos del mismo tipo, cada uno con su propio nombre y conjunto de valores de propiedad, de modo que se pueda ejecutar más de una instancia de la aplicación subyacente en el clúster. Cada instalación requiere un nombre único dentro del clúster.

Grupos de recursos

Cada recurso se debe configurar en un grupo de recursos. RGM pone todos los recursos de un grupo en línea y fuera de línea simultáneamente en el mismo nodo, para ello, invoca métodos de rellamada de los recursos individuales del grupo.

Los nodos en los que un grupo de recursos está actualmente en línea se denominan sus principales o nodos principales. Un grupo de recursos está controlado por cada uno de sus principales. Cada grupo de recursos tiene una propiedad Nodelist asociada, establecida por el administrador del clúster, que identifica todos los principales potenciales o maestros del grupo de recursos.

Un grupo de recursos tiene también un conjunto de propiedades que incluye propiedades de configuración que puede establecer el administrador del clúster y propiedades dinámicas que fija RGM y reflejan el estado activo del grupo de recursos.

RGM define dos tipos de grupos de recursos, a prueba de fallos y escalables; los primeros pueden estar en línea sólo en un nodo en cada momento, en tanto que los segundos pueden estar en línea en varios nodos simultáneamente. RGM proporciona un conjunto de propiedades para respaldar la creación de cada tipo de grupo de recursos. Consulte Transferencia de un servicio de datos a un clúster e Implementación de los métodos de rellamada para obtener más detalles sobre estas propiedades.

Consulte la Tabla A–3 para ver una lista de las propiedades de grupos de recursos.

Gestor de grupos de recursos

El Gestor de grupos de recursos (RGM) se implementa como daemon, rgmd, que se ejecuta en cada nodo miembro del clúster. Todos los procesos rgmd se comunican entre sí y actúan conjuntamente como prestación única que actúa en todo el clúster.

RGM admite las siguientes funciones:

Siempre que RGM activa cambios en la configuración, coordina las acciones en todos los nodos del clúster. Este tipo de actividad se denomina reconfiguración. Para provocar un cambio de estado en un recurso individual, RGM invoca un método de rellamada específico del tipo de recurso en ese recurso.

Métodos de rellamada

La estructura Sun Cluster utiliza un mecanismo de rellamada para proporcionar comunicación entre un servicio de datos y RGM. La estructura define un conjunto de métodos de rellamada, que incluye los argumentos, los valores de retorno y las circunstancias en las que RGM llama a cada método.

Un servicio de datos se crea mediante la codificación de métodos de rellamada individuales y la implementación de cada método como un programa de control al que RGM puede llamar. Es decir, el servicio de datos no consiste en un único ejecutable, sino en varias secuencias ejecutables (ksh) o binarios (C), cada uno de los cuales se puede llamar directamente desde RGM.

Los métodos de rellamada se registran en RGM mediante el archivo de registro del tipo de recurso (RTR) en el que se identifica el programa para cada método implementado para el servicio de datos. Cuando un administrador del sistema registra el servicio de datos en un clúster, RGM lee el archivo RTR, el cual proporciona la identidad de los programas de rellamada, entre otros datos.

Los únicos métodos de rellamada necesarios para un tipo de recurso son un método de inicio (Start o Prenet_start) y un método de parada (Stop o Postnet_stop).

Los métodos de rellamada se pueden agrupar en las categorías siguientes:

Consulte el Capítulo 4 y la página de comando man rt_callbacks(1HA) para obtener más información sobre los métodos de rellamada. Consulte también el Capítulo 5 y el Capítulo 8 para conocer los métodos de rellamada de los servicios de datos de ejemplo.

Interfaces de programación

Para escribir código de servicio de datos, la arquitectura de gestión de recursos proporciona una API de bajo nivel, o básica, una biblioteca de nivel superior, creada sobre la API básica, y una herramienta, SunPlex Agent Builder, que genera automáticamente un servicio de datos a partir de las entradas básicas que se aportan.

RMAPI

RMAPI (API de la gestión de recursos) proporciona un conjunto de rutinas de bajo nivel que permiten que los servicios de datos accedan a información sobre los recursos, tipos y grupos de recursos del sistema, soliciten un reinicio o una recuperación de fallos local y fijen el estado del recurso. A estas funciones se accede a través de la biblioteca libscha.so. RMAPI proporciona estos métodos de rellamada en forma de órdenes de shell y de funciones de C. Consulte scha_calls(3HA) y el Capítulo 4 para obtener más información sobre las rutinas de RMAPI. Consulte también el Capítulo 5 si desea ver ejemplos sobre cómo usar estas rutinas en métodos de rellamada de servicios de datos de ejemplo.

Biblioteca de desarrollo del servicio de datos (DSDL)

Sobre RMAPI se crea DSDL, que proporciona una estructura integrada de nivel superior, que conserva al mismo tiempo el modelo de rellamada a método subyacente de RGM. DSDL reúne varias funciones para el desarrollo de servicios de datos, por ejemplo:

Para la mayoría de las aplicaciones, DSDL proporciona casi todas las funciones necesarias para crear un servicio de datos, si no todas. Tenga presente, sin embargo, que DSDL no sustituye la API de bajo nivel, sino que la encapsula y la amplía. De hecho, muchas funciones de DSDL llaman a las funciones de libscha.so. Del mismo modo, es posible llamar directamente a las funciones libscha.so mientras se usa DSDL para codificar el grueso del servicio de datos. La biblioteca libdsdev.so contiene las funciones de DSDL.

Consulte el Capítulo 6 y la página de comando man de scha_calls(3HA) para obtener más información sobre DSDL.

SunPlex Agent Builder

Agent Builder es una herramienta que automatiza la creación de un servicio de datos. En primer lugar se introduce información básica sobre la aplicación de destino y el servicio de datos que se va a crear. A continuación Agent Builder genera un servicio de datos, junto con el código fuente y ejecutable (shells C o Korn), un archivo RTR personalizado y un paquete SolarisTM.

Con la mayoría de las aplicaciones es posible usar Agent Builder para generar un servicio de datos completo, apenas con unos cambios mínimos. Las aplicaciones con requisitos más complejos, como añadir comprobaciones de validación de propiedades adicionales, pueden requerir un trabajo que Agent Builder no es capaz realizar. Sin embargo, aun en estos casos se puede utilizar para generar el grueso del código y codificar el resto manualmente. Como mínimo, Agent Builder se puede utilizar para generar el paquete Solaris.

Interfaz administrativa del gestor de grupos de recursos

Sun Cluster proporciona una interfaz gráfica de usuario y un conjunto de órdenes para administrar un clúster.

SunPlex Manager

SunPlex Manager es una herramienta basada en web que permite realizar las tareas siguientes:

Consulte Sun Cluster Software Installation Guide for Solaris OS para obtener instrucciones sobre cómo instalar SunPlex Manager y cómo usarlo para instalar el software del clúster. SunPlex Manager proporciona ayuda en línea para las tareas administrativas más exclusivas.

Órdenes administrativas

Las órdenes de Sun Cluster para administrar objetos de RGM son scrgadm(1M), scswitch(1M) y scstat(1M) -g.

La orden scrgadm permite ver, crear, configurar y suprimir el tipo, el grupo y los objetos de recursos que utiliza RGM. La orden forma parte de la interfaz administrativa del clúster y no se debe utilizar en el mismo contexto de programación que la interfaz de aplicaciones descrita en este capítulo. Sin embargo, scrgadm es la herramienta que sirve para construir la configuración del clúster en la que opera la API. Comprender la interfaz administrativa permite conocer la interfaz de aplicaciones. Consulte la página de comando man scrgadm( 1M) para obtener detalles sobre las tareas administrativas que puede realizar la orden.

La orden scswitch pone los grupos de recursos en línea y fuera de línea en los nodos especificados y habilita o inhabilita un recurso o su supervisor. Consulte la página de comando man scswitch(1M) para obtener detalles sobre las tareas administrativas que puede realizar la orden.

La orden scstat -g muestra el estado dinámico actual de todos los grupos de recursos y recursos.