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 especifican el tipo de recurso, su versión, la versión de la API, así como las rutas a cada uno de los métodos de rellamada. Propiedades del tipo de recurso muestra todas las propiedades de tipos de recursos.

Las propiedades de recursos, como Failover_mode y Thorough_probe_interval , y los tiempos de espera de los métodos, también definen la configuración estática del recurso. Las propiedades de recursos dinámicos, como Resource_state y Status, reflejan el estado activo de un recurso administrado. Propiedades de recurso describe las propiedades de recursos.

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.

Utilice Agent Builder para generar el archivo RTR del servicio de datos, puesto que esta herramienta declara el conjunto de propiedades necesarios, y útiles, para los servicios de datos. Por ejemplo, determinadas propiedades, como Resource_type, deben declararse en el archivo RTR. De lo contrario, fallará el registro del servicio de datos. Otras propiedades, aunque no son necesarias, no estarán disponibles para el administrador del clúster a menos que éste las declare en el archivo RTR. Algunas propiedades siempre están disponibles independientemente de si se declaran o no, ya que RGM las define y proporciona los valores predeterminados. Si desea evitar este nivel de complejidad, utilice Agent Builder para garantizar la generación de un archivo RTR correcto. Más adelante, puede editar el archivo RTR y cambiar los valores específicos si es necesario.

El resto de esta sección muestra 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 se han declarado en el archivo RTR, ya que forman parte de la configuración permanente del tipo de recurso.


Nota –

Sólo el administrador del clúster puede configurar la propiedad del tipo de recurso Installed_nodes. No se puede declarar Installed_nodes en el archivo RTR.


La sintaxis de las declaraciones del tipo de recurso es la siguiente:

property-name = value;

Nota –

Los nombres de los tipos de recursos, los recursos y los grupos de recursos no distinguen entre mayúsculas y minúsculas. Puede utilizar cualquier combinación de mayúsculas y minúsculas al especificar los nombres de las propiedades.


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

# Sun Cluster Data Services Builder template version 1.0
# Registration information and resources for smpl
#
#NOTE: Keywords are case insensitive, i.e., you can use
#any capitalization style you prefer.
#
Resource_type = "smpl";
Vendor_id = SUNW;
RT_description = "Sample Service on 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, fallará el registro del tipo de recurso.


El primer conjunto de declaraciones del tipo de recurso proporciona información básica sobre el mismo.

Resource_type y Vendor_id

Indique un nombre para el tipo de recurso. Puede especificar el nombre del tipo de recurso sólo con la propiedad Resource_type (smpl ) o utilizando la propiedad Vendor_id como prefijo, seguido de “.” para separarlo del tipo de recurso (SUNW.smpl), como se muestra en el ejemplo. Si especifica Vendor_id, utilice el símbolo de valor de la compañía que define al tipo de recurso. El nombre de éste debe ser exclusivo, dentro del clúster.


Nota –

Según las convenciones, el nombre del tipo de recurso (vendoridApplicationname) se utiliza como nombre de paquete. A partir de la versión 9 del sistema operativo Solaris, la combinación de Id. del proveedor y nombre de la aplicación puede superar los nueve caracteres. Sin embargo, si utiliza una versión anterior de Solaris, esta combinación no puede superar los nueves caracteres.

Por otro lado, Agent Builder genera explícitamente en todos los casos el nombre del paquete a partir del nombre del tipo de recurso; por lo tanto, impone la línea de nueve caracteres.


RT_description

Describe brevemente el tipo de recurso.

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 puede ejecutarse en cualquier versión de Sun Cluster a partir de Sun Cluster 3.0. API_version = 5 indica que el servicio de datos puede instalarse en cualquier versión de Sun Cluster a partir de la versión 3.1 9/04. Sin embargo, API_version = 5 también indica que el servicio de datos no puede instalarse en cualquier versión de Sun Cluster anterior a la versión 3.1 9/04. Esta propiedad se describe de forma más detallada en la entrada de API_version en Propiedades del tipo de recurso.

Failover = TRUE

Indica que el servicio de datos no puede ejecutarse en un grupo de recursos que esté en línea simultáneamente en varios nodos. En otras palabras, esta declaración especifica un servicio de datos de recuperación ante fallos. Esta propiedad se describe de forma más detallada en la entrada de Failover en Propiedades del tipo de recurso.

Start, Stop y Validate

Proporciona la ruta al método de rellamada correspondiente, invocado por RGM. Estas rutas son relativas en relación con el directorio especificado por RT_basedir.

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

Init_nodes = RG_PRIMARIES

Especifica que RGM debe llamar únicamente a los métodos Init, Boot, Fini y Validate en los nodos que puede controlar el servicio de datos. Los nodos especificados por RG_PRIMARIES forman 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 debe llamar 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 y Validate

Proporciona las rutas a los programas de métodos de rellamada correspondientes llamados por RGM. Estas rutas son relativas en relación con el directorio especificado por RT_basedir.

Declaración de las propiedades del recurso

Al igual que con las propiedades del tipo de recurso, debe declarar las propiedades del recurso 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:

{
    attribute = value;
    attribute = value;
             .
             .
             .
    attribute = value;
}

Puede cambiar atributos específicos para las propiedades de recursos proporcionadas por Sun Cluster, conocidas también como propiedades definidas por el sistema, en el archivo RTR. Por ejemplo, Sun Cluster proporciona valores predeterminados para las propiedades de tiempo de espera de cada método de rellamada. 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 mediante un conjunto de atributos de propiedades proporcionado por Sun Cluster. Atributos de las propiedades de recursos muestra los atributos que permiten cambiar y definir las propiedades del recurso. 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 recursos definidas por el sistema especifica los valores de tiempo de espera para los métodos de rellamada.

...

# Resource property declarations appear as a list of bracketed
# entries after the resource type declarations. The property 
# name declaration must be the first attribute after the open
# curly bracket of a resource property entry.
#
# Set minimum and default for method timeouts.
{
        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 = value) debe ser el primer atributo de cada declaración de las propiedades de recursos. Puede configurar las propiedades dentro de los límites definidos por los atributos de propiedades en el archivo RTR. Por ejemplo, el valor predeterminado para cada tiempo de espera del método del ejemplo es 300 segundos. El administrador del clúster puede cambiar este valor. Sin embargo, el valor mínimo permitido, especificado con el atributo MIN, es 60 segundos. Atributos de las propiedades de recursos contiene una lista de las propiedades del recurso.

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;
}

# The number of retries to be done within a certain period before concluding
# that the application cannot be successfully started on this node.
{
        PROPERTY = Retry_count;
        MAX=10;
        DEFAULT=2;
        TUNABLE = ANYTIME; 
}

# Set Retry_interval as a multiple of 60 since it is converted from seconds
# to minutes, rounding up. For example, a value of 50 (seconds)
# is converted to 1 minute. Use this property to time the number of
# retries (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 = ANYTIME;
        DEFAULT = ;
}

Estas declaraciones de las propiedades de recursos incluyen el atributo TUNABLE, que limita el número de veces que el administrador del clúster puede cambiar el valor de la propiedad a la que está asociada el atributo. Por ejemplo, el valor AT_CREATION implica que el administrador del clúster solo puede especificar el valor cuando se crea el recurso y no puede modificarlo más adelante.

Puede aceptar los valores predeterminados generados por Agent Builder para la mayoría de las propiedades, a menos que tenga algún motivo para modificarlos. A continuación, se ofrece información sobre estas propiedades. Consulte Propiedades de recurso o la página de comando man r_properties(5) para obtener más información.

Failover_mode

Indica si RGM debe cambiar la ubicación del grupo de recursos o anular el nodo en cado de fallo del método Start o Stop.

Thorough_probe_interval, Retry_count y Retry_interval

Utilizado en el supervisor de fallos. Tunable es como ANYTIME, por lo que un administrador del clúster los puede ajustar si el supervisor de fallos no funciona de forma óptima.

Network_resources_used

Una lista de recurso de dirección compartida o nombre de host lógico utilizados por el servicio de datos. Agent Builder declara esta propiedad para que el administrador del clúster pueda especificar una lista de recursos, si hay alguna, al configurar el servicio de datos.

Scalable

Se establece en FALSE para indicar que este recurso no emplea la utilidad de red (dirección compartida) del clúster. Si se establece en FALSE, la propiedad Failover del tipo de recurso debe establecerse en TRUE para indicar la existencia de un servicio de recuperación ante fallos. 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 el uso de esta propiedad.

Load_balancing_policy y Load_balancing_weights

Estas propiedades se declaran automáticamente. Sin embargo, no se utilizan en los tipos de recursos de recuperación ante fallos.

Port_list

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

Declaración de las propiedades de extensión

Las propiedades de extensión aparecen al final del archivo RTR de ejemplo.

# Extension Properties
#

# The cluster administrator must set the value of this property to point to the 
# directory that contains the configuration files used by the application.
# For this application, smpl, specify the path of the configuration file on
# PXFS (typically named.conf).
{
        PROPERTY = Confdir_list;
        EXTENSION;
        STRINGARRAY;
        TUNABLE = AT_CREATION;
        DESCRIPTION = "The Configuration Directory Path(s)";
}

# The following two properties control restart of the fault monitor.
{
        PROPERTY = Monitor_retry_count;
        EXTENSION;
        INT;
        DEFAULT = 4;
        TUNABLE = ANYTIME;
        DESCRIPTION = "Number of PMF restarts allowed for fault monitor.";
}
{
        PROPERTY = Monitor_retry_interval;
        EXTENSION;
        INT;
        DEFAULT = 2;
        TUNABLE = ANYTIME;
        DESCRIPTION = "Time window (minutes) for fault monitor restarts.";
}
# Time out value in seconds for the probe.
{
        PROPERTY = Probe_timeout;
        EXTENSION;
        INT;
        DEFAULT = 120;
        TUNABLE = ANYTIME;
        DESCRIPTION = "Time out value for the probe (seconds)";
}

# Child process monitoring level for PMF (-C option of pmfadm).
# Default of -1 means to not use the -C option of pmfadm.
# A value of 0 or greater indicates the desired level of child-process.
# monitoring.
{
        PROPERTY = Child_mon_level;
        EXTENSION;
        INT;
        DEFAULT = -1;
        TUNABLE = ANYTIME;
        DESCRIPTION = “Child monitoring level for PMF";
}
# User added code -- BEGIN VVVVVVVVVVVV
# User added code -- END   ^^^^^^^^^^^^

Agent Builder crea las siguientes propiedades de extensión, de gran utilidad 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 clúster puede proporcionar la ubicación de este directorio al configurar el servicio de datos.

Monitor_retry_count, Monitor_retry_interval y Probe_timeout

Controla los reinicios del supervidor de fallos, aunque no los del daemon del servidor.

Child_mon_level

Establece el nivel de supervisión que llevará a cabo PMF. Para obtener más información, consulte la página de comando man pmfadm(1M).

Puede crear propiedades de extensión adicionales en el área delimitada por los comentarios del código agregado por el usuario, User added code.