Capítulo 17. Creación de recursos de cluster activos en varios nodos (recursos clonados)

Puede clonar un recurso de clúster para que el recurso pueda estar activo en varios nodos. Por ejemplo, puede utilizar los recursos clonados para configurar varias instancias de un recurso IP para distribuirlo en un clúster para el equilibrio de nodos. Puede clonar cualquier recurso siempre que el agente de recursos lo soporte. Un clon consiste en un recurso o un grupo de recursos.

Nota

Sólo los recursos que pueden estar activos en varios nodos al mismo tiempo son adecuados para la clonación. Por ejemplo, un recurso Filesystem que monte un sistema de archivos no agrupado como ext4 desde un dispositivo de memoria compartida no debe ser clonado. Dado que la partición ext4 no es consciente del clúster, este sistema de archivos no es adecuado para las operaciones de lectura/escritura que se producen desde varios nodos al mismo tiempo.

17.1. Creación y eliminación de un recurso clonado

Puedes crear un recurso y un clon de ese recurso al mismo tiempo con el siguiente comando.

pcs resource create resource_id [standard:[provider:]]type [resource options] [meta resource meta options] clone [clone options]

El nombre del clon será resource_id-clone.

No se puede crear un grupo de recursos y un clon de ese grupo de recursos en un solo comando.

Alternativamente, puede crear un clon de un recurso o grupo de recursos previamente creado con el siguiente comando.

pcs resource clone resource_id | group_name [clone options]...

El nombre del clon será resource_id-clone o group_name-clone.

Nota

Es necesario configurar los cambios de configuración de los recursos en un solo nodo.

Nota

Al configurar las restricciones, utilice siempre el nombre del grupo o del clon.

Cuando se crea un clon de un recurso, el clon toma el nombre del recurso con -clone añadido al nombre. Los siguientes comandos crean un recurso de tipo apache llamado webfarm y un clon de ese recurso llamado webfarm-clone.

# pcs resource create webfarm apache clone
Nota

Cuando se crea un clon de un recurso o grupo de recursos que se ordenará después de otro clon, casi siempre se debe establecer la opción interleave=true. Esto asegura que las copias del clon dependiente puedan detenerse o iniciarse cuando el clon del que depende se haya detenido o iniciado en el mismo nodo. Si no establece esta opción, si un recurso clonado B depende de un recurso clonado A y un nodo abandona el clúster, cuando el nodo regresa al clúster y el recurso A se inicia en ese nodo, entonces todas las copias del recurso B en todos los nodos se reiniciarán. Esto se debe a que cuando un recurso clonado dependiente no tiene la opción interleave establecida, todas las instancias de ese recurso dependen de cualquier instancia en ejecución del recurso del que depende.

Utilice el siguiente comando para eliminar un clon de un recurso o grupo de recursos. Esto no elimina el recurso o el grupo de recursos en sí.

pcs resource unclone resource_id | group_name

Tabla 17.1, “Opciones de clonación de recursos” describe las opciones que puede especificar para un recurso clonado.

Tabla 17.1. Opciones de clonación de recursos

CampoDescripción

priority, target-role, is-managed

Opciones heredadas del recurso que se está clonando, como se describe en Tabla 10.3, “Meta opciones de recursos”.

clone-max

Cuántas copias del recurso se van a iniciar. Por defecto, el número de nodos del clúster.

clone-node-max

Cuántas copias del recurso pueden iniciarse en un solo nodo; el valor por defecto es 1.

notify

Cuando se detiene o se inicia una copia del clon, se informa a todas las demás copias de antemano y cuando la acción ha tenido éxito. Valores permitidos: false, true. El valor por defecto es false.

globally-unique

¿Cada copia del clon realiza una función diferente? Valores permitidos: false, true

Si el valor de esta opción es false, estos recursos se comportan de forma idéntica en todos los lugares donde se ejecutan y, por tanto, sólo puede haber una copia del clon activa por máquina.

Si el valor de esta opción es true, una copia del clon que se ejecuta en una máquina no es equivalente a otra instancia, ya sea que esa instancia se ejecute en otro nodo o en el mismo nodo. El valor por defecto es true si el valor de clone-node-max es mayor que uno; en caso contrario, el valor por defecto es false.

ordered

Si las copias se inician en serie (en lugar de en paralelo). Valores permitidos: false, true. El valor por defecto es false.

interleave

Cambia el comportamiento de las restricciones de ordenación (entre clones) para que las copias del primer clon puedan iniciarse o detenerse tan pronto como la copia en el mismo nodo del segundo clon se haya iniciado o detenido (en lugar de esperar hasta que cada instancia del segundo clon se haya iniciado o detenido). Valores permitidos: false, true. El valor por defecto es false.

clone-min

Si se especifica un valor, cualquier clon que se ordene después de este clon no podrá iniciarse hasta que se ejecute el número especificado de instancias del clon original, incluso si la opción interleave se establece en true.

Para lograr un patrón de asignación estable, los clones son ligeramente pegajosos por defecto, lo que indica que tienen una ligera preferencia por permanecer en el nodo donde se están ejecutando. Si no se proporciona ningún valor para resource-stickiness, el clon utilizará un valor de 1. Al ser un valor pequeño, causa una perturbación mínima en los cálculos de puntuación de otros recursos, pero es suficiente para evitar que Pacemaker mueva innecesariamente las copias por el clúster. Para obtener información sobre la configuración de la meta-opción de recursos resource-stickiness, consulte Configuración de meta-opciones de recursos.