Capítulo 8. Tipos de recursos avanzados

Este capítulo describe los tipos de recursos avanzados que son compatibles con Pacemaker.

8.1. Clones de recursos

Puede clonar un recurso para que el recurso esté activo en múltiples nodos. Por ejemplo, puede usar recursos clonados para configurar múltiples instancias de un recurso IP y distribuirlos en un clúster para balanceo de nodos. Clone un recurso siempre y cuando el agente de recursos sea compatible. Un clon consta de un recurso o un grupo de recursos.

Nota

Únicamente los recursos que pueden estar activos al mismo tiempo en múltiples nodos son aptos para clonación. Un recurso Filesystem que monte un sistema de archivos que no esté agrupado, tal como ext4 desde un dispositivo de memoria compartida, no se debe clonar. Como la partición ext4 no reconoce al clúster, este sistema de archivos no es apto para operaciones de lectura y escritura que se realicen en múltiples nodos simultáneamente.

8.1.1. Creación y remoción de un recurso clonado

Cree un recurso y clónelo al mismo tiempo con el siguiente comando:
pcs resource create resource_id standard:provider:type|type [resource options]  \
--clone  [meta clone_options]
El nombre del clon será resource_id-clone.
No puede crear un grupo de recursos y un clon de dicho grupo con un solo comando.
También puede crear un clon de un recurso o un grupo de recursos creado anteriormente con el siguiente comando:
pcs resource clone resource_id | group_name [clone_options]...
El nombre del clon será id_de_recurso-clon o nombre_de_grupo-clon.

Nota

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

Nota

Cuando haya restricciones en la configuración, use siempre el nombre del grupo o clon.
Cuando cree un clon de un recurso, el clon adquiere el nombre del recurso con -clone adherido al nombre. El siguiente comando crea un recurso del tipo apache denominado webfarm y un clon de dicho recurso denominado webfarm-clone.
# pcs resource create webfarm apache clone
Use el siguiente comando para retirar un clon de un recurso o de un grupo de recursos. Esta acción no retira el recurso o el grupo de recursos por sí mismo.
pcs resource unclone resource_id | group_name
Para obtener más información sobre opciones de recursos, consulte la Sección 5.1, “Creación de recursos”.
La Tabla 8.1, “Opciones de recursos de clon” describe las opciones que usted puede especificar para un recurso clonado.

Tabla 8.1. Opciones de recursos de clon

CampoDescripción
priority, target-role, is-managed
Las opciones heredadas del recurso que se está clonando, como se describe en la Tabla 5.3, “Metaopciones de recursos”.
clone-max
Número de copias que se deben iniciar del recurso. Se predetermina al número de nodos en el clúster.
clone-node-max
Número de copias del recurso que se pueden iniciar en un solo nodo. El valor predeterminado es 1.
notify
Indique a las otras copias cuando detenga o inicie una copia del clon y cuando la acción tenga éxito. Los valores permitidos son: false, true. El valor predeterminado es false.
globally-unique
¿Cada copia de clon funciona diferente? Valores permitidos: false, true
Si el valor de esta opción es false, estos recursos se comportan de forma idéntica en cualquier parte que se ejecuten y por lo tanto, solo pueden ser una copia del clon activo por máquina.
Si el valor de esta opción es true, la copia del clon que se ejecute en una máquina no es equivalente en otra instancia, sea que dicha instancia se esté ejecutando en otro nodo o en el mismo. El valor predeterminado es true si el valor de clone-node-max es mayor que 1; de lo contrario, el valor predeterminado es false.
ordered
Las copias deberían iniciarse en series (en lugar de en paralelo). Los valores permitidos: false, true. El valor predeterminado es false.
interleave
Los cambios de conducta sobre restricciones de ordenamiento (entre clones y maestros) para que las instancias puedan iniciarse o detenerse cuando su instancia par tenga (en lugar de esperar cada instancia que tiene el otro clon). Los valores permitidos son: false y true. El valor predeterminado es false.

8.1.2. Restricciones de clon

En la mayoría de los casos, un clon hará una copia única de cada nodo de clúster activo. Sin embargo, usted puede establecer clone-max para el clon de recursos a un valor inferior al número total de nodos en el clúster. Si este es el caso, indique los nodos al que el clúster debe asignar preferentemente copias con las restricciones de ubicación de recursos. Estas restricciones no se escriben de forma diferente a los recursos regulares a excepción de que se debe utilizar el ID de clon.
El siguiente comando crea una restricción de ubicación para que el clúster asigne preferentemente clon de recursos webfarm-clone a node1.
# pcs constraint location webfarm-clone prefers node1
Las restricciones de ordenamiento se comportan un poco diferente para clones. En el ejemplo de abajo, webfarm esperará a que todas las copias del clon que se deban iniciar lo hayan hecho para poderse iniciar. Solamente si no se inician copias, se evitará que webfarm se active. Además, el clon esperará a que webfarm pare, antes de detener el clon.
# pcs constraint order start webfarm-clone then webfarm
La colocación de un recurso regular (o grupo) con un clon significa que el recurso puede ejecutarse en cualquier máquina con una copia activa del clon. El clúster elegirá una copia según el sitio en donde se ejecute el clon y las preferencias de ubicación del propio recurso.
La colocación entre clones también es posible. En tal caso, el set de ubicaciones permitidas para el clon se limita a nodos en los cuales el clon esté activo (o estará activo). Luego, la asignación se realiza normalmente.
El siguiente comando crea una restricción de colocación para garantizar que el recurso webfarm se ejecute en el mismo nodo que el clon.
# pcs constraint colocation add webfarm with webfarm-clone

8.1.3. Pegajosidad de clon

Para realizar un patrón de asignación estable, los clones son un poco pegajosos de forma predeterminada. Si no se proporciona ningún valor resource-stickiness, el clon utilizará un valor de 1. En un valor pequeño, provoca una interferencia mínima para los cálculos de otros recursos, pero es suficiente para evitar que Pacemaker traslade copias innecesarias alrededor de clúster.