Un recurso escalable puede estar en línea en varios nodos simultáneamente. Los recursos escalables incluyen servicios de datos, como Sun Cluster HA para Sun One Web Server y HA-Apache.
RGM proporciona diversas propiedades que admiten la implementación de un recurso escalable.
Establezca la propiedad del tipo de recurso booleano Failover en FALSE para permitir que el recurso se configure en un grupo de recursos que pueda estar en línea en varios nodos simultáneamente.
La propiedad del recurso Scalable determina si el recurso utiliza el recurso de dirección compartida del clúster. Establezca esta propiedad en TRUE porque los servicios escalables utilizan los recursos de dirección compartida para que las diversas instancias del servicio escalable aparezcan ante el cliente como un único servicio.
La propiedad del grupo de recursos RG_mode permite al administrador del clúster identificar un grupo de recursos como a prueba de fallos o escalable. Si RG_mode es SCALABLE, RGM permite que Maximum_primaries tenga un valor superior a 1; esto quiere decir que el grupo puede tener varios nodos maestros simultáneamente. RGM permite que un recurso cuya propiedad Failover sea FALSE se lance en un grupo de recursos cuyo RG_mode sea SCALABLE.
El administrador del clúster crea un grupo de recursos escalables para que contenga los recursos de servicio escalables y un grupo de recursos a prueba de fallos independiente para que contenga los recursos de dirección compartida de los que dependerán los recursos escalables.
El administrador del clúster utiliza la propiedad del grupo de recursos RG_dependencies para especificar el orden en el que los grupos de recursos se ponen en línea y fuera de línea, dentro del nodo. Este orden es importante para el servicio escalable, porque los recursos escalables y los de dirección compartida de los que dependen están en grupos de recursos diferentes. Un servicio de datos escalables requiere que los recursos de dirección de red (dirección compartida) se asignen antes de su inicio. Por tanto, el administrador debe establecer la propiedad RG_dependencies (del grupo de recursos que contiene el servicio escalable) para que incluya el grupo de recursos que contiene los recursos de dirección compartida.
Cuando se declara la propiedad escalable en el archivo RTR de un recurso, RGM crea automáticamente el siguiente conjunto de propiedades escalables para el recurso:
Identifica los recursos de dirección compartida que utiliza este recurso. Esta propiedad acude de modo predeterminado a la secuencia vacía, por lo que el administrador del clúster debe aportar la lista real de direcciones compartidas que usa el servicio escalable cuando cree el recurso. La orden scsetup y SunPlex Manager proporcionan funciones para configurar automáticamente los recursos y grupos necesarios para los servicios escalables.
Especifica la política de equilibrio de cargas del recurso. Puede establecer explícitamente la política del archivo RTR (o permitir la predeterminada, LB_WEIGHTED). En ambos casos, el administrador del clúster puede modificar el valor al crear el recurso (salvo que se establezca Tunable para Load_balancing_policy en NONE o FALSE en el archivo RTR). Los valores legales son:
La carga se distribuye entre varios nodos, de acuerdo con los pesos establecidos en la propiedad Load_balancing_weights.
Un cliente determinado (identificado por la dirección IP de cliente) del servicio escalable se envía siempre al mismo nodo del clúster.
Un cliente determinado (identificado por la dirección IP de cliente) que se conecta a una dirección IP de un servicio adherente con comodín, siempre se envía al mismo nodo del clúster, independientemente del número de puerto al que llegue.
Para un servicio escalable con Load_balancing_policy LB_STICKY o LB_STICKY_WILD cambiar Load_balancing_weights con el servicio en línea puede provocar la puesta a cero de las afinidades existentes del cliente. En ese caso, un nodo diferente puede servir una solicitud posterior de un cliente, aunque antes éste haya sido atendido por otro nodo del clúster.
Del mismo modo, iniciar una nueva instancia del servicio en un clúster puede poner a cero las afinidades existentes del cliente.
Especifica la carga que se enviará a cada nodo. El formato es peso@nodo,peso@nodo, donde peso es un número entero que refleja la parte relativa de carga distribuida al nodo especificado. La fracción de carga distribuida a un nodo es el peso de este nodo dividido entre la suma de todos los pesos de las instancias activas. Por ejemplo, 1@1,3@2 especifica que el nodo 1 recibe 1/4 de la carga y el nodo 2, 3/4.
Identifica los puertos en los que recibe el servidor. Esta propiedad acude de modo predeterminado a la secuencia vacía. Puede indicarse una lista de puertos en el archivo RTR. En caso contrario, el administrador del clúster debe suministrar la lista real de puertos al crear el recurso.
Es posible crear un servicio de datos que el administrador pueda configurar para que sea de tipo escalable o a prueba de fallos. Para ello, declare la propiedad del tipo de recurso Failover y la propiedad del recurso Scalable FALSE en el archivo RTR del servicio de datos. Especifique la propiedad Scalable para que se pueda ajustar en el momento de la creación.
El valor de propiedad Failover (FALSE) permite que el recurso se configure como grupo de recursos escalables. El administrador puede habilitar direcciones compartidas, cambiando el valor de Scalable a TRUE al crear el recurso, creando así un servicio escalable.
Por otra parte, aunque Failover se establezca en FALSE, el administrador puede configurar el recurso en un grupo de recursos a prueba de fallos para implementar un servicio a prueba de fallos. El administrador no cambia el valor de Scalable, que es FALSE. Para admitir esta contingencia, debe proporcionar una comprobación en el método Validate de la propiedad Scalable. Si Scalable es FALSE, compruebe que el recurso esté configurado como grupo de recursos a prueba de fallos.
Sun Cluster Concepts Guide for Solaris OS contiene información adicional sobre los recursos escalables.
Siempre que se crea o actualiza un recurso con la propiedad escalable fijada en TRUE, RGM valida diversas propiedades de recursos. Si éstas no están debidamente configuradas, RGM rechaza el intento de creación o actualización. RGM realiza las comprobaciones siguientes:
La propiedad Network_resources_used no debe estar vacía y debe contener los nombres de los recursos de direcciones compartidas. Cada uno de los nodos de Nodelist del grupo de recursos que contenga el recurso escalable debe aparecer en las propiedades NetIfList o AuxNodeList de cada uno de los recursos de dirección compartida con nombre.
La propiedad RG_dependencies del grupo de recursos que contiene el recurso escalable debe incluir los grupos de recursos de todos los recursos de dirección compartida enumerados en la propiedad del recurso escalable Network_resources_used.
La propiedad Port_list no debe estar vacía y debe contener una lista de pares puerto-protocolo; el protocolo debe ser tcp o udp. Por ejemplo,
Port_list=80/tcp,40/udp |