El síndrome del cerebro dividido, en un contexto de agrupamiento, es un estado en el que un grupo de nodos se divide (o particiona) en grupos más pequeños de igual número de nodos, cada uno de los cuales cree que es el único grupo activo.
Al creer que los otros clústeres están muertos, cada clúster puede acceder simultáneamente a los mismos datos o discos de la aplicación, lo que puede provocar daños en los datos. Se crea una situación de cerebro dividido durante la reforma del clúster. Cuando uno o más nodos fallan en un clúster, el clúster se reforma a sí mismo con los nodos disponibles. Durante esta reforma, en lugar de formar un solo grupo, se pueden formar múltiples fragmentos del grupo con un número igual de nodos. Cada fragmento de clúster asume que es el único clúster activo, y que otros clústeres están inactivos, y comienza a acceder a los datos o al disco. Dado que más de un clúster accede al disco, los datos se corrompen.
Así es como funciona con más detalle:
- Digamos que hay 5 nodos A, B, C, D y E que forman un grupo, X.
- Ahora falla un nodo (digamos E).
- Se lleva a cabo la reforma del clúster. En realidad, los nodos restantes A, B, C y D deberían formar el grupo X.
- Pero puede ocurrir una situación de cerebro dividido que lleve a la formación de dos grupos X1 (que contienen A y B) y X2 (que contienen C y D).
- Tanto los clústeres X1 como X2 piensan que son el único clúster activo. Ambos grupos comienzan a acceder a los datos o al disco, lo que provoca daños en los datos.
Los clústeres de alta disponibilidad son todos vulnerables al síndrome del cerebro dividido y deberían utilizar algún mecanismo para evitarlo. Las herramientas de agrupación en clústeres, como Pacemaker, HP ServiceGuard, CMAN y LinuxHA, generalmente incluyen tales mecanismos.
Los métodos comunes para abordar el síndrome del cerebro dividido incluyen:
- Quórum o disco de bloqueo
- el servidor
- Desempates
- STONITH (Dispara al otro nodo en la cabeza)
- Cercado de E / S