Dos servidores SCADA vs tres: la decisión de quórum
Un par SCADA redundante tiene una debilidad escondida: con solo dos votos, los servidores no pueden acordar de forma confiable cuál debe ser el primario cuando el enlace entre ellos se cae. Esta página compara el par simple de dos servidores contra un arreglo de tres nodos, ya sea un tercer servidor completo o un testigo ligero, y le ayuda a decidir cuándo el voto impar vale el equipo extra y cuándo un diseño de dos nodos con un buen desempate es suficiente.
Dos servidores vs quórum de tres nodos en una línea: Un par de dos servidores es lo más simple pero no puede romper un empate por sí solo, así que un latido perdido puede disparar un split-brain donde ambos nodos reclaman ser primarios. Agregar un tercer voto, sea un servidor completo o un testigo de quórum ligero, da un número impar que siempre resuelve quién manda. Elija dos nodos más un testigo para la mayoría de los sitios; elija tres servidores completos solo cuando también necesite que el tercer nodo cargue trabajo o sobreviva la pérdida de cualquier máquina.
Entienda por qué dos votos no pueden romper un empate
El problema central de un par a secas es aritmético. Cuando los dos servidores pierden contacto entre sí, cada uno ve la misma situación ambigua: mi compañero está inalcanzable. No puede saber si el compañero está muerto, en cuyo caso debería tomar el mando, o solo inalcanzable a través de un enlace roto, en cuyo caso el compañero quizá ya está sirviendo. Sin una tercera opinión, un par ingenuo puede terminar con ambos nodos activos, la condición de split-brain que corrompe los datos del historiador y confunde a cada cliente aguas abajo sobre a qué servidor creerle.
Un tercer voto elimina la ambigüedad al hacer impar el total de votantes. La partición del sistema que todavía pueda ver una mayoría de los votos tiene permitido ser primaria; el lado minoritario se retira. Ese es el trabajo de un testigo de quórum, que no necesita ser un servidor SCADA completo. Puede ser un servicio pequeño en una máquina o sitio separado cuyo único papel es ser el voto de desempate, de modo que un par de dos servidores gana la contundencia de un clúster de tres nodos sin el costo de un tercer servidor completo.
Compare los tres arreglos prácticos
En realidad hay tres opciones sobre la mesa, no dos, y la variante con testigo es la que los proyectos más pasan por alto.
| Factor | Solo dos servidores | Dos servidores más testigo | Tres servidores completos |
|---|---|---|---|
| Puede romper un empate | No - necesita una regla de desempate | Sí - el testigo pone el voto impar | Sí - mayoría de tres |
| Riesgo de split-brain | Alto si cae el enlace | Bajo | Bajo |
| Costo de hardware | Dos equipos | Dos equipos más un testigo pequeño | Tres equipos completos |
| Sobrevive perder un nodo | Sí, si el sobreviviente es el elegido | Sí | Sí |
| Sobrevive perder dos nodos | No | No | A veces, si uno conserva quórum |
| Capacidad extra del tercer nodo | N/A | Ninguna - el testigo no carga trabajo | Sí - el tercer nodo puede servir |
La opción del testigo es deliberadamente barata. Como solo vota, puede correr en hardware mucho más pequeño que un servidor SCADA, a menudo en otra ubicación, y su falla no tumba al par; solo elimina el desempate, regresándolo a usted a la situación de dos nodos alrededor de la cual habría diseñado de todos modos.
Tres servidores completos es la respuesta pesada y se justifica cuando el tercer nodo se gana el sustento más allá de votar. Si usted necesita capacidad para repartir carga activo-activo, o debe sobrevivir la pérdida de un nodo entero y aún conservar un par redundante, el tercer servidor hace trabajo real y no solo emite un voto. Si el tercer equipo se quedaría ocioso salvo en tiempo de elección, un testigo entrega el mismo desempate por una fracción del costo.
Cuándo gana cada arreglo
Un par de dos servidores sin tercer voto gana solo cuando el enlace entre los servidores es genuinamente confiable y usted tiene una regla de desempate explícita y probada, como un nodo preferido designado más un recurso compartido que solo uno puede sostener. Esto funciona pero es frágil, y exige que el desempate se ensaye como parte de cada simulacro de failover para que usted sepa que se resuelve como espera ante una falla real del enlace.
Dos servidores más un testigo gana para la gran mayoría de los sitios SCADA redundantes. Da una elección limpia por mayoría con un costo agregado mínimo, y colocar el testigo en infraestructura separada o en otro sitio lo protege de que un solo evento se lleve a la vez un servidor y el desempate. Este es el default pragmático una vez que usted decidió que necesita redundancia en absoluto.
Tres servidores completos gana cuando el nodo extra carga trabajo o cuando su objetivo de disponibilidad exige sobrevivir la pérdida de cualquier nodo individual conservando todavía un par redundante. Las salas de control grandes, las consolidaciones multi-sitio y los sistemas con muchos clientes que se benefician de repartir sesiones son los casos donde el tercer servidor es una decisión de capacidad tanto como de quórum.
Trampas en el diseño de quórum
La trampa más dañina es colocar el testigo en el mismo equipo, hipervisor o alimentación que uno de los servidores. Cuando ese elemento compartido falla, usted pierde un servidor y el desempate a la vez, y el sobreviviente puede no tener mayoría sobre la cual actuar, derrotando el propósito completo. El testigo debe fallar de forma independiente de los nodos que arbitra, lo que normalmente significa hardware separado e idealmente una ubicación separada.
Una segunda trampa es asumir que tres servidores sobreviven automáticamente dos fallas. El quórum necesita mayoría, así que perder dos de tres normalmente deja al último nodo en minoría e incapaz de actuar por su cuenta. Si tolerar dos fallas de nodo es un requisito real, usted necesita cinco miembros votantes, no tres, y la mayoría de los sitios SCADA no lo necesita. La trampa final es tratar el quórum como configuración de una sola vez; la lógica de elección debe ejercitarse en simulacros, porque un testigo que murió en silencio convierte su diseño de tres votos de regreso en el problema de dos votos que usted intentaba evitar.
Preguntas frecuentes
¿Por qué dos servidores SCADA no pueden decidir entre ellos?
Porque cuando el enlace entre ellos se cae, cada servidor solo ve que su compañero está inalcanzable y no puede saber si el compañero está muerto o simplemente cortado. Ambos pueden concluir que deberían ser primarios, produciendo split-brain. Dos votos no pueden formar mayoría, así que no hay forma confiable de que el par solo rompa el empate sin una regla de desempate externa o un tercer voto.
¿Un testigo de quórum es lo mismo que un tercer servidor SCADA?
No. Un testigo solo emite un voto para romper empates; no corre la aplicación SCADA, no carga clientes ni almacena el historiador. Eso le permite correr en hardware mucho más pequeño, a menudo en un sitio separado, por una fracción del costo de un servidor completo. Agregue un tercer servidor completo solo cuando necesite que ese nodo cargue trabajo o sobreviva la pérdida de un nodo entero conservando un par redundante.
¿Tres servidores me dejan sobrevivir dos fallas?
Normalmente no. El quórum requiere mayoría, y perder dos de tres deja a un nodo en minoría, que normalmente se retira en lugar de correr de forma insegura. Sobrevivir la pérdida de cualesquiera dos miembros votantes requiere cinco miembros. Tres nodos toleran bien una falla; si una tolerancia genuina a dos fallas es requerida, dimensione el clúster para ello explícitamente en lugar de asumir que tres bastan.
Fuentes y lecturas
Referencias primarias de los organismos de normas y reguladores que definen este tema:
Servicios de automatización
¿Necesita convertir esta información en un sistema que funcione?
Merobix integra SCADA, programa PLC Allen-Bradley y Siemens, y diseña y fabrica tableros de control industrial.
Las solicitudes de reunión se revisan antes de confirmarse.