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

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

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

Este capítulo ofrece información general sobre los conceptos necesarios para desarrollar un servicio de datos. En este capítulo se tratan los temas siguientes:


Nota –

Este manual utiliza los términos tipo de recursos y servicios de datos indistintamente. El término agente, aunque no aparece mucho en el manual, equivale a tipo de recurso y servicio de datos.


Entorno de aplicaciones de Sun Cluster

El sistema Sun Cluster permite ejecutar y administrar aplicaciones como recursos de alta disponibilidad o escalables. El Gestor de grupos de recursos (Resource Group Manager, RGM) proporciona los mecanismos para ofrecer alta disponibilidad y escalabilidad. Los siguientes elementos conforman la interfaz de programación de esta utilidad:

La siguiente figura muestra cómo se interrelacionan estos elementos.

Figura 1–1 Arquitectura de programación del entorno de aplicaciones de Sun Cluster

Diagrama que muestra las relaciones entre los métodos de rellamada, RMAPI, utilidad de supervisión de procesos (PMF) y DSDL

Agent Builder de SunPlex, que se describe en el Capítulo 9, Agent Builder de SunPlex, es una herramienta del paquete de Sun Cluster que automatiza el proceso de creación de un servicio de datos. Agent Builder genera el código del servicio de datos en lenguaje de comandos C (mediante las funciones de DSDL que permiten escribir método de rellamada) o Korn (ksh) (mediante los comandos de la API de bajo nivel que permiten escribir métodos de rellamada).

RGM se ejecuta como daemon en cada nodo del clúster, e inicia y detiene los recursos en los nodos seleccionados en función de las directivas preconfiguradas. RGM permite que el recurso ofrezca alta disponibilidad en caso de producirse un fallo o un reinicio del nodo deteniendo el recurso en el nodo afectado e iniciándolo en otro. Además, inicia y detiene automáticamente los supervisores específicos del recurso. Estos supervisores detectan fallos en los recursos y los reubican en otros nodos, o supervisan otros aspectos del rendimiento del recurso.

RGM admite tanto recursos de recuperación ante fallos, que sólo pueden estar en línea en un nodo cada vez, o escalables, que puede estar en línea en varios nodos simultáneamente.

Modelo del Gestor de grupos de recursos

Esta sección presenta parte de la terminología fundamental y explica de forma más detallada el funcionamiento de RGM y sus interfaces asociadas.

RGM administra tres tipos principales de objetos interrelacionados: tipos de recursos, recursos y grupos de recursos. A continuación se muestra un ejemplo de cómo utilizar estos objetos.

Implementa un tipo de recurso, ha-oracle, que permite que una aplicación DBMS de Oracle ofrezca alta disponibilidad. El usuario final define las distintas bases de datos para marketing, ingeniería y finanzas; cada una de ellas es un recurso del tipo ha-oracle. El administrador del clúster incluye estos recursos en distintos grupos de recursos para que puedan ejecutarse en diferentes nodos y realizar operaciones de recuperación de fallos de forma independiente. Crea un segundo tipo de recurso, ha-calendar, para implementar un servidor de calendario de alta disponibilidad que requiere una base de datos de 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 está formado por los siguientes elementos:

RGM utiliza propiedades de tipo de recurso para administrar los recursos de un tipo concreto.


Nota –

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


Puede especificar las propiedades para el tipo de recurso y establecer los valores de propiedades en un archivo de registro del tipo de recurso (RTR). El archivo RTR sigue el formato 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 para obtener una descripción de un archivo RTR de ejemplo.

Propiedades del tipo de recurso proporciona una lista de las propiedades de 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. Durante el proceso de registro, se introduce la informacion del archivo RTR en la configuración del clúster. 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, se pueden declarar las propiedades del recurso en el archivo RTR. Propiedades de recurso, contiene una lista de las propiedades de recursos.

El administrador del clúster puede cambiar los valores de determinadas propiedades en función de cómo se especifiquen las propiedades en el archivo RTR. Por ejemplo, las definiciones de propiedades pueden especificar una gama de valores permitidos. También pueden indicar cuándo la propiedad es ajustable: nunca, en cualquier momento, durante la creación (cuando el recurso se agrega al clúster) o cuando se inhabilita el recurso. En estas especificaciones, el administrador del clúster puede realizar cambios en las propiedades mediante los comandos de administración.

El administrador del clúster puede crear un gran número de recursos del mismo tipo, cada uno con su propio nombre y conjunto de valores de propiedades, para que se pueda ejecutar más de una instancia de la aplicación subyacente en el clúster. Cada instalación requiere un nombre exclusivo 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, Cuando RGM pone un grupo de recurso en línea o fuera de línea, llama a los 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 principales o nodos principales. Un grupo de recursos está controlado por cada uno de sus principales. Cada recurso tiene asociada una propiedad Nodelist que identifica todos los posibles principales o maestros del grupo de recursos. El administrador del clúster establece la propiedad Nodelist .

El grupo de recursos también tiene 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: de recuperación ante fallos o escalable. 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 admitir la creación de cada tipo de grupo de recursos. Consulte Transferencia de un servicio de datos a un clúster y Implementación de los métodos de rellamada para obtener más información sobre estas propiedades.

Propiedades del grupo de recursos contiene una lista de propiedades de grupos de recursos.

Gestor de grupos de recursos

El Gestor de grupos de recursos (RGM) se implementa como daemon, rgmd, y se ejecuta en cada nodo miembro del clúster. Todos los procesos de rgmd se comunican entre sí y actúan como una única utilidad 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. A este tipo de actividad se le conoce como reconfiguración. Para provocar un cambio de estado en un recurso individual, RGM llama un método de rellamada específico del tipo de recurso en ese recurso.

Métodos de rellamada

La estructura de Sun Cluster utiliza los mecanismos de rellamada para establecer comunicación entre un servicio de datos y RGM. La estructura define un conjunto de métodos de rellamada, incluidos sus argumentos y valores de devolución, y las circunstancias en las que RGM llama a cada método.

Para crear un servicio de datos, genere el código de los diferentes métodos de llamada individuales e implemente cada método como un programa de control que permita su invocación por parte de RGM. En otras palabras, el servicio de datos no está formado por un único ejecutable, sino por varias secuencias de comandos ejecutables (ksh) o binarios (C), a los que puede llamar directamente RGM.

Los métodos de rellamada se registran con RGM mediante el archivo RTR. En el archivo RTR, se debe identificar el programa para cada método que se haya implementado para el servicio de datos. Cuando un administrador del clúster registra el servicio de datos en un clúster, RGM lee el archivo RTR, que proporciona la identidad de los programas de rellamada y otra información.

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

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

Consulte el Capítulo 3, Referencia de la API de administración de recursos 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, Servicio de datos de ejemplo y el Capítulo 8, Ejemplo de implementación del tipo de recurso con DSDL para obtener los métodos de rellamada de los servicios de datos de ejemplo.

Interfaces de programación

La arquitectura de administración de recursos proporciona una API básica o de bajo nivel, una biblioteca de nivel superior incorporada sobre la API básica y la herramienta Agent Builder de SunPlex, que permite generar servicios de datos a partir de la información básica especificada, para escribir el código de un servicio de datos.

API de administración de recursos

La API de administración de recursos (RMAPI) proporciona un conjunto de funciones de bajo nivel que permiten a un servicio de datos acceder a la información sobre los tipos de recursos, los recursos y los grupos de recursos del sistema con el fin de solicitar una operación local de reinicio o recuperación ante fallos, y establecer el estado del recurso. Puede utilizar la biblioteca libscha.so para acceder a estas funciones. RMAPI proporciona estos métodos de rellamada en forma de comandos de shell y de funciones de C. Consulte la página de comando man scha_calls(3HA) y el Capítulo 3, Referencia de la API de administración de recursos para obtener más información sobre las funciones de RMAPI. Consulte también el Capítulo 5, Servicio de datos de ejemplo para obtener ejemplos de cómo utilizar estas funciones en los métodos de rellamada del servicio de datos de ejemplo.

Biblioteca de desarrollo del servicio de datos

La Biblioteca de desarrollo del servicio de datos (DSDL), que se encuentra incorporada sobre la RMAPI, proporciona una estructura integrada de nivel superior a la vez que mantiene el modelo de método de rellamada de RGM. La biblioteca libdsdev.so contiene las funciones de DSDL. DSDL agrupa varias utilidades para el desarrollo de servicios de datos, incluidas las siguientes:

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 de las funciones de DSDL llaman a las funciones de libscha.so. Del mismo modo, puede llamar directamente a las funciones de libscha.so mientras usa DSDL para generar el código de gran parte del servicio de datos.

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

Agent Builder de SunPlex

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. Agent Builder genera un servicio de datos, que incluye un código fuente y ejecutable (C o shell Korn), un archivo RTR personalizado y un paquete de Solaris.

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, incluso en estos casos, es posible utilizar Agent Builder para generar gran parte del código y crear manualmente el resto. Como mínimo, puede utilizar Agent Builder para generar automáticamente el paquete de Solaris.

Interfaz administrativa del gestor de grupos de recursos

Sun Cluster proporciona una interfaz gráfica de usuario (GUI) y un conjunto de comandos para administrar un clúster.

SunPlex Manager

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

Consulte Software Sun Cluster: Guía de instalación para el sistema operativo Solaris para obtener instrucciones sobre cómo instalar SunPlex Manager o sobre cómo esta herramienta instala el software del clúster. SunPlex Manager proporciona ayuda en línea para las tareas administrativas más exclusivas.

Utilidad scsetup

Puede realizar la mayor parte de las tareas de administración de Sun Clúster de forma interactiva con la utilidad scsetup(1M).

Puede administrar los siguientes elementos de Sun Cluster con la utilidad scsetup:

Puede realizar también las siguientes operaciones con la utilidad scsetup:

Comandos administrativos

Los comandos de Sun Cluster que permiten administrar los objetos de RGM son scrgadm, scswitch y scstat -g.

El comando scrgadm permite ver, crear, configurar y eliminar un tipo de recurso, un grupo de recursos y los objetos de recursos utilizados por RGM. Este comando forma parte de la interfaz administrativa del clúster, pero no se utiliza en el mismo contexto de programación que la interfaz de aplicaciones descrita en el resto de 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 información sobre las tareas administrativas que se pueden realizar con este comando.

El comando scswitch establece los grupos de recurso en línea y fuera de línea en los nodos especificados. Este comando también habilita o inhabilita un recurso o su supervisor. Consulte la página de comando man scswitch(1M) para obtener información sobre las tareas que puede realizar el comando.

El comando scstat -g muestra el estado dinámico actual de todos los recursos y grupos de recursos. Consulte la página de comando man scstat(1M) para obtener información sobre las tareas administrativas que puede realizar el comando.