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

Establecimiento del recurso y las propiedades del tipo de recurso

Sun Cluster proporciona un conjunto de propiedades de tipo de recurso y de recurso que se utilizan para definir la configuración estática de un servicio de datos. Las propiedades de tipo de recurso especifican el tipo de recurso y su versión, la versión de la API, etc., así como las rutas a cada uno de los métodos de rellamada. La Tabla A–1 enumera todas las propiedades del tipo de recurso.

Las propiedades de recurso, como Failover_mode, Thorough_probe_interval y los tiempos de espera del método definen también la configuración estática del recurso. Las propiedades dinámicas del recurso, como Resource_state y Status, reflejan el estado activo de un recurso gestionado. La Tabla A–2 describe las propiedades del recurso.

Las propiedades del recurso y del tipo de recurso se declaran en el archivo de registro del tipo de recurso (RTR), que es un componente esencial del servicio de datos y que define la configuración inicial del servicio de datos en el momento en que el administrador del clúster registra el servicio de datos en Sun Cluster.

Se recomienda utilizar Agent Builder para generar el archivo RTR para el servicio de datos porque Agent Builder declara un conjunto de propiedades útiles y necesarias para cualquier servicio de datos. Por ejemplo, algunas propiedades (como Resource_type) se deben declarar en el archivo RTR si se quiere que el registro del servicio de datos resulte satisfactorio. Otras propiedades, aunque no sean necesarias, no estarán disponibles para el administrador del sistema si no se declaran en el archivo RTR; otras propiedades estarán disponibles, tanto si se declaran como si no, porque RGM las define y proporciona un valor predeterminado. Para evitar este nivel de complejidad, puede utilizar Agent Builder sencillamente para garantizar la creación de un archivo RTR adecuado que, más tarde, podrá editar para cambiar algún valor concreto, si fuera necesario.

En el resto de esta sección se muestra el desarrollo de un archivo RTR de ejemplo, creado por Agent Builder.

Declaración de las propiedades del tipo de recurso

El administrador del clúster no puede configurar las propiedades del tipo de recurso que el usuario declare en el archivo RTR, ya que forman parte de la configuración permanente del tipo de recurso.


Nota –

Hay una propiedad del tipo de recurso, Installed_nodes, que el administrador del sistema puede configurar. De hecho, sólo la puede configurar éste, y no es posible declararla en el archivo RTR.


La sintaxis de las declaraciones del tipo de recurso es:


nombre_propiedad = valor;

Nota –

RGM no diferencia entre mayúsculas y minúsculas en los nombres de las propiedades. La convención para las propiedades en los archivos RTR suministrados por Sun, salvo los nombres de métodos, es la utilización de mayúscula en el inicio del nombre y minúscula en el resto. Los nombres de métodos (y los atributos de las propiedades) contienen sólo mayúsculas.


A continuación figuran las declaraciones de tipo de recurso del archivo RTR de un servicio de datos de ejemplo (smpl):

# Plantilla de Sun Cluster Data Services Builder versión 1.0
# Información de registro y recursos para ejemplo
#
#NOTA: las palabras clave no diferencian mayúsculas y minúsculas;
#éstas se pueden usar indistintamente.
#
Resource_type = "smpl";
Vendor_id = SUNW;
RT_description = "Servicio de ejemplo de Sun Cluster";
RT_version ="1.0";
API_version = 2;
Failover = TRUE;

Init_nodes = RG_PRIMARIES;

RT_basedir=/opt/SUNWsmpl/bin;

Start           =    smpl_svc_start;
Stop            =    smpl_svc_stop;

Validate        =    smpl_validate;
Update          =    smpl_update;

Monitor_start   =    smpl_monitor_start;
Monitor_stop    =    smpl_monitor_stop;
Monitor_check   =    smpl_monitor_check;

Consejo –

Debe declarar la propiedad Resource_type como la primera entrada del archivo RTR, de lo contrario, el registro del tipo de recurso no será satisfactorio.


El primer conjunto de declaraciones del tipo de recurso proporciona información básica sobre el tipo de recurso, como se indica a continuación:

Resource_type y Vendor_id

Indique un nombre para el tipo de recurso. Puede especificarlo sólo con la propiedad Resource_type (smpl) o con Vendor_id como un prefijo con un “.” que lo separe del tipo de recurso (SUNW.smpl), como en el ejemplo. Si utiliza Vendor_id, use el símbolo bursátil de la empresa que define el tipo de recurso. El nombre de éste debe ser exclusivo, dentro del clúster.


Nota –

Por convención el nombre del tipo de recurso (Resource_typeVendor_id) se usa como nombre del paquete. Los nombres de los paquetes están limitados a nueve caracteres, por lo que se recomienda limitar el número total de caracteres en estas dos propiedades a nueve caracteres o menos, aunque RGM no imponga este límite. Agent Builder, por el contrario, genera explícitamente el nombre del paquete a partir del nombre del tipo de recurso, por lo que aplica el límite de nueve caracteres.


Rt_version

Identifica la versión del servicio de datos de ejemplo.

API_version

Identifica la versión de la API. Por ejemplo, API_version = 2, indica que el servicio de datos se ejecuta en Sun Cluster, versión 3.0.

Failover = TRUE

Indica que el servicio de datos no se puede ejecutar en un grupo de recursos que pueda estar en línea en varios nodos al mismo tiempo, es decir, especifica un servicio de datos a prueba de fallos. Consulte Transferencia de un servicio de datos a un clúster para obtener más información.

Start, Stop, Validate, etc.

Proporciona las rutas a los programas de métodos de rellamada correspondientes llamados por RGM. Estas rutas son relativas al directorio que especifica RT_basedir.

Las restantes declaraciones del tipo de recurso proporcionan información de configuración:

Init_nodes = RG_PRIMARIES

Especifica que RGM llama a los métodos Init, Boot, Fini y Validate sólo en los nodos que pueden controlar el servicio de datos. Los nodos especificados por RG_PRIMARIES son un subconjunto de todos los nodos en los que está instalado el servicio de datos. Establezca el valor en RT_INSTALLED_NODES para especificar que RGM llame a estos métodos en todos los nodos en los que está instalado el servicio de datos.

RT_basedir

Apunta a /opt/SUNWsmpl/bin como la ruta del directorio para completar las rutas relativas, como las rutas de los métodos de rellamada.

Start, Stop, Validate, etc.

Proporciona las rutas a los programas de métodos de rellamada correspondientes llamados por RGM. Estas rutas son relativas al directorio que especifica RT_basedir.

Declaración de las propiedades del recurso

Al igual que las propiedades del tipo de recursos, las del recurso se declaran en el archivo RTR. Por convención, las declaraciones de las propiedades del recurso van después de las del tipo de recurso en el archivo RTR. La sintaxis de las declaraciones de los recursos es un conjunto de pares de valores de atributos entre llaves:


{
    Atributo = Valor;
    Atributo = Valor;
             .
             .
             .
    Atributo = Valor;
}

Para las propiedades del recurso proporcionadas por Sun Clúster, denominadas propiedades definidas por el sistema, es posible modificar determinados atributos en el archivo RTR. Por ejemplo, Sun Cluster proporciona propiedades de tiempo de espera del método para cada uno de los métodos de rellamada y especifica valores predeterminados. En el archivo RTR se pueden especificar valores predeterminados diferentes.

También se pueden definir nuevas propiedades de recursos en el archivo RTR, denominadas propiedades de extensión, con un conjunto de atributos de propiedades suministrado por Sun Cluster. La Tabla A–4 enumera los atributos para cambiar y definir las propiedades de los recursos. Las declaraciones de las propiedades de extensión van después de las declaraciones de propiedades definidas por el sistema en el archivo RTR.

El primer conjunto de propiedades de los recursos definidas por el sistema especifica los valores de tiempo de espera de los métodos de rellamada:

...

# Las declaraciones de propiedades de los recursos aparecen como una lista de
# entradas entre llaves después de las declaraciones del tipo de recurso.
# La declaración del nombre de la propiedad debe ser el primer atributo
# después de la llave de apertura de una entrada de propiedad del recurso.
#
# Establezca el valor mínimo y predeterminado de los tiempos de espera
# de los métodos.
{
        PROPERTY = Start_timeout;
        MIN=60;
        DEFAULT=300;
}

{
        PROPERTY = Stop_timeout;
        MIN=60;
        DEFAULT=300;
}
{
        PROPERTY = Validate_timeout;
        MIN=60;
        DEFAULT=300;
}
{
        PROPERTY = Update_timeout;
        MIN=60;
        DEFAULT=300;
}
{
        PROPERTY = Monitor_Start_timeout;
        MIN=60;
        DEFAULT=300;
}
{
        PROPERTY = Monitor_Stop_timeout;
        MIN=60;
        DEFAULT=300;
{
        PROPERTY = Monitor_Check_timeout;
        MIN=60;
        DEFAULT=300;
}

El nombre de la propiedad (PROPERTY = valor) debe ser el primer atributo para cada declaración de la propiedad del recurso. Las propiedades del recurso se pueden configurar, dentro de los límites que definen los atributos de propiedad del archivo RTR. Por ejemplo, el valor predeterminado para cada tiempo de espera del método del ejemplo es 300 segundos. Un administrador puede cambiar este valor; sin embargo, el valor mínimo permitido, especificado con el atributo MIN, es 60 segundos. Consulte la Tabla A–4 si desea ver una lista completa de los atributos de los recursos.

El siguiente conjunto de propiedades del recurso define las propiedades que tienen usos específicos en el servicio de datos.

{
        PROPERTY = Failover_mode;
        DEFAULT=SOFT;
        TUNABLE = ANYTIME;
}
{
        PROPERTY = Thorough_Probe_Interval;
        MIN=1;
        MAX=3600;
        DEFAULT=60;
        TUNABLE = ANYTIME;
}

# El número de reintentos que se debe realizar en un periodo determinado antes de
# concluir que no se puede iniciar correctamente la aplicación en este nodo.
{
        PROPERTY = Retry_Count;
        MAX=10;
        DEFAULT=2;
        TUNABLE = ANYTIME;
}

# Establezca Retry_Interval como un múltiplo de 60, ya que se convierte de segundos
# a minutos, redondeando hacia arriba. Por ejemplo, un valor de 50 (segundos)
# se convierte en 1 minuto. Utilice esta propiedad para cronometrar el número de
# reintentos (Retry_Count).
{
        PROPERTY = Retry_Interval;
        MAX=3600;
        DEFAULT=300;
        TUNABLE = ANYTIME;
}

{
        PROPERTY = Network_resources_used;
        TUNABLE = WHEN_DISABLED;
        DEFAULT = "";
}
{
        PROPERTY = Scalable;
        DEFAULT = FALSE;
        TUNABLE = AT_CREATION;
}
{
        PROPERTY = Load_balancing_policy;
        DEFAULT = LB_WEIGHTED;
        TUNABLE = AT_CREATION;
}
{
        PROPERTY = Load_balancing_weights;
        DEFAULT = "";
        TUNABLE = ANYTIME;
}
{
        PROPERTY = Port_list;
        TUNABLE = AT_CREATION;
        DEFAULT = ;
}

Estas declaraciones de propiedades de los recursos agregan el atributo TUNABLE, que limita las ocasiones en las que el administrador del sistema puede cambiar sus valores. AT_CREATION significa que el administrador sólo puede especificar el valor cuando el recurso se crea y que no lo puede cambiar más tarde.

Para la mayoría de las propiedades puede aceptar los valores predeterminados como Agent Builder los genera, salvo que tenga algún motivo para cambiarlos. A continuación se incluye información sobre estas propiedades (para obtener información adicional, consulte Propiedades de recurso o la página de comando man r_properties(5)):

Failover_mode

Indica si RGM debería reubicar el grupo de recursos o abortar el nodo en caso de un fallo de un método Start o Stop.

Thorough_probe_interval, Retry_count, Retry_interval

Utilizado en el supervisor de fallos. Tunable es como Anytime, por lo que un administrador de sistema los puede ajustar si el supervisor de fallos no funciona de forma óptima.

Network_resources_used

Una lista de recursos de dirección compartida o nombre lógico de sistema utilizados por el servicio de datos. Agent Builder declara esta propiedad para que un administrador del sistema pueda especificar una lista de recursos, si los hubiera, al configurar el servicio de datos.

Scalable

Se fija en FALSE para indicar que este recurso no utiliza el recurso de conexión a red de clúster (dirección compartida). Esta configuración cuadra con la propiedad del tipo de recurso Failover fijada en TRUE, para indicar un servicio a prueba de fallos. Consulte Transferencia de un servicio de datos a un clúster y Implementación de los métodos de rellamada para obtener información adicional sobre cómo utilizar esta propiedad.

Load_balancing_policy, Load_balancing_weights

Declara automáticamente estas propiedades; sin embargo, no tienen ninguna función en un tipo de recurso a prueba de fallos.

Port_list

Identifica la lista de puertos en los que recibe el servidor. Agent Builder declara esta propiedad para que un administrador del sistema pueda especificar una lista de puertos al configurar el servicio de datos.

Declaración de las propiedades de extensión

Al final del archivo RTR de ejemplo hay propiedades de extensión, como muestra el listado siguiente

# Propiedades de extensión
#

# El administrador del clúster debe establecer el valor de esta propiedad para que apunte
# al directorio que contiene los archivos de configuración que utiliza la aplicación.
# Para esta aplicación, smpl, especifique la ruta del archivo de configuración de
# PXFS (generalmente, named.conf).
{
        PROPERTY = Confdir_list;
        EXTENSION;
        STRINGARRAY;
        TUNABLE = AT_CREATION;
        DESCRIPTION = "La ruta del directorio de configuración";
}

# Estas dos propiedades controlan el inicio del supervisor de fallos.
{
        PROPERTY = Monitor_retry_count;
        EXTENSION;
        INT;
        DEFAULT = 4;
        TUNABLE = ANYTIME;
        DESCRIPTION = "Número de reinicios PMF permitidos para el supervisor de fallos.";
}
{
        PROPERTY = Monitor_retry_interval;
        EXTENSION;
        INT;
        DEFAULT = 2;
        TUNABLE = ANYTIME;
        DESCRIPTION = "Ventana de tiempo (minutos) para reinicios del supervisor.";
}
# Valor de tiempo de espera para el análisis en segundos.
{
        PROPERTY = Probe_timeout;
        EXTENSION;
        INT;
        DEFAULT = 120;
        TUNABLE = ANYTIME;
        DESCRIPTION = "Valor de tiempo de espera para el análisis (segundos)";
}

# Nivel de supervisión de procesos subordinados para PMF (opción -C de pmfadm).
# Default = -1 significa que no se usará la opción -C de pmfadm.
# Un valor 0 o mayor indica el nivel deseado de supervisión del
# proceso subordinado.
{
        PROPERTY = Child_mon_level;
        EXTENSION;
        INT;
        DEFAULT = -1;
        TUNABLE = ANYTIME;
        DESCRIPTION = “Nivel de supervisión de subordinados para PMF";
}
# Código añadido por el usuario -- BEGIN VVVVVVVVVVVV
# Código añadido por el usuario -- END   ^^^^^^^^^^^^

Agent Builder crea algunas propiedades de extensión, útiles para la mayoría de los servicios de datos:

Confdir_list

Especifica la ruta al directorio de configuración de la aplicación, que es una información útil para muchas aplicaciones. El administrador del sistema puede indicar la ubicación de este directorio al configurar el servicio de datos.

Monitor_retry_count, Monitor_retry_interval, Probe_timeout

Controla los reinicios del supervisor de fallos, no del daemon de servidor.

Child_mon_level

Fija el nivel de supervisión que debe ejercer PMF. Consulte pmfadm(1M) para obtener más información.

Puede crear propiedades de extensión adicionales en la zona delimitada por los comentarios del código añadido por el usuario.