Constraints
Pacemaker – Constraint Cheat Sheet
Hoja rápida de **constraints (restricciones)** en Pacemaker. Las constraints controlan **dónde**, **cuándo** y **en qué orden** se ejecutan los recursos del clúster.
Tipos de Constraints
- **Location** → Dónde puede o no ejecutarse un recurso
- **Colocation** → Qué recursos deben (o no) ejecutarse juntos
- **Order** → En qué orden se arrancan o paran los recursos
---
Location Constraints
Controlan en qué nodo puede ejecutarse un recurso.
Ver location constraints
pcs constraint location
pcs constraint --full
Evitar que un recurso se ejecute en un nodo
pcs constraint location NOMBRE_RECURSO avoids NODO
Ejemplo:
pcs constraint location fs_shared avoids nodo2
Forzar un recurso a un nodo
pcs constraint location NOMBRE_RECURSO prefers NODO=INFINITO
Ejemplo:
pcs constraint location ip_shared prefers nodo1=INFINITY
Eliminar location constraint
pcs constraint delete ID_CONSTRAINT
---
Colocation Constraints
Definen qué recursos deben ejecutarse juntos (o separados).
Ver colocation constraints
pcs constraint colocation
Forzar que un recurso vaya con otro
pcs constraint colocation add RECURSO_A with RECURSO_B INFINITY
Ejemplo:
pcs constraint colocation add fs_shared with vg_shared INFINITY
(Significa: *fs_shared solo puede ejecutarse donde esté vg_shared*)
Evitar que dos recursos estén juntos
pcs constraint colocation add RECURSO_A with RECURSO_B -INFINITY
---
Order Constraints
Controlan el orden de arranque y parada de recursos.
Ver order constraints
pcs constraint order
Arranque secuencial
pcs constraint order start RECURSO_A then start RECURSO_B
Ejemplo:
pcs constraint order start vg_shared then start fs_shared
(Significa: primero se activa el VG, luego se monta el FS)
Parada inversa (implícita)
Pacemaker para automáticamente en orden inverso:
fs_shared → vg_shared
---
Constraints y Resource Groups
Cuando se usan **resource groups**:
- El **orden** está implícito
- La **colocación** está implícita
- **No es necesario** crear order/colocation manuales
Ejemplo de grupo:
pcs resource group add SHARED vg_shared fs_shared ip_shared
✔ El clúster garantiza:
- vg → fs → ip
- Todos en el mismo nodo
---
Constraints Temporales (Failover Manual)
Mover un recurso o grupo
pcs resource move RECURSO
o
pcs resource move GRUPO
✔ Crea una **location constraint temporal** ✔ Se elimina automáticamente tras el movimiento
Ver constraints temporales
pcs constraint --full
Limpiar restricciones manuales
pcs resource clear RECURSO
o
pcs constraint clear
---
Buenas Prácticas
- Usar **resource groups** siempre que sea posible
- Evitar constraints permanentes innecesarias
- Limpiar constraints tras pruebas
- Revisar `pcs constraint --full` si un recurso no arranca
- No forzar nodos salvo necesidad operativa
---
Troubleshooting
Un recurso no arranca
1. Revisar constraints:
pcs constraint --full
2. Revisar estado:
pcs status
3. Limpiar errores:
pcs resource cleanup RECURSO
El recurso no se mueve
- Probable constraint activa
- Revisar y limpiar:
pcs resource clear RECURSO
---