¿Cómo puedo equilibrar la carga de un equilibrador de carga?

11

Estoy a punto de convertir una aplicación web de base de datos única de servidor único en una configuración de alta disponibilidad distribuida físicamente con servidores en dos ubicaciones físicas (por ahora). Ahora, obviamente, necesito un equilibrador de carga (más como un proxy inverso en este caso, pero lo llamaré "equilibrador de carga" por simplicidad), que enrutaría las solicitudes para mywebsiteuno node1.mywebsiteu otro node2.mywebsite. Sin embargo, supongo que los servidores de alta disponibilidad no sirven si mi equilibrador de carga se cae. Por lo tanto, así que mi línea de pensamiento, en realidad necesitaría dos equilibradores de carga, uno en cada ubicación. Sin embargo, todavía quisiera un único punto de acceso externo, por lo tanto, necesitaría un equilibrador de carga para los equilibradores de carga, que a su vez necesitaría equilibrarse en todas las ubicaciones ... esto sigue y sigue.

Entonces, ¿qué hay de malo en mi razonamiento? ¿Cómo garantizaría la alta disponibilidad de mis equilibradores de carga en la práctica, suponiendo que cada una de las ubicaciones físicas pudiera desconectarse de la alimentación durante un largo período de tiempo?

PD : Soy consciente del hecho de que mi comprensión de la distinción entre HA y equilibrio de carga es mediocre en el mejor de los casos. Lo que quiero es un servidor disponible incluso cuando se corta la alimentación en una ubicación. Gracias por su comprensión.

Nikolai Prokoschenko
fuente
1
¿Ha investigado la conmutación por error de IP? Si los dos centros de datos son el mismo proveedor debe ser bastante sencillo
Dedo
¿Debe tener sus nodos en redes separadas? - Cuando está en la misma LAN, HA es más fácil de configurar.
Sandman4
¿Cuál es su objetivo principal? ¿Desea equilibrar la carga, lo que significa que desea manejar cargas más altas que las que están bien para un solo servidor, o quiere HA, lo que significa que desea que su sitio funcione incluso si falla un solo nodo?
Sandman4

Respuestas:

4

No se puede, por lo que el equilibrio de carga no tiene nada que ver con la disponibilidad .

Adaptador
fuente
2

Dos equilibradores de carga deberían ser suficientes. Utilizará solo un equilibrador de carga a la vez. El nombre mywebsite debe resolverse para el VIP asignado a uno de los equilibradores de carga.

Khaled
fuente
es VIP = IP virtual? ¿Qué parte de la infraestructura alojaría el enrutamiento VIP, es decir, detectar que un LB está inactivo y enrutar al otro? Si está en una de las ubicaciones, podría estar abajo también ...
Nikolai Prokoschenko
Con un VIP, las solicitudes van a ambos LB y uno de ellos decide responder en función de si cree que el otro está activo. Esto sugeriría que no están separados geográficamente, lo cual es un nivel completamente diferente de disponibilidad.
JamesRyan
2

Puede hacer HA gruesa y equilibrar con round robin dns pegándola frente a sus equilibradores de carga.

JamesRyan
fuente
Round robin hará balance de carga, pero en cuanto a HA - NO. Básicamente, el navegador elegirá uno de los nodos y se adherirá a él. Tiene un 50% de posibilidades de acertar a uno bueno o malo.
Sandman4
No, esto no es lo que pasa. La mayoría de los navegadores modernos tomarán todas las direcciones IP, incluida la mala, y reintentarán de manera transparente las buenas. No es infalible, pero funcionará para la gran mayoría de los usuarios.
JamesRyan
Qué te hace pensar eso ? También lo esperaba hasta que lo probé yo mismo. Tanto Firefox como Chrome probarán la primera IP durante 180 segundos y luego cambiarán a la siguiente IP. Una vez que vaya a la página siguiente, comenzarán de nuevo con la 1ª IP (sin respuesta) y esperarán otros 180 segundos y así sucesivamente. ( serverfault.com/questions/327708/… )
Sandman4
Sí, tiene un 50% de posibilidades de que la primera solicitud agote el tiempo de espera, pero tan pronto como lo haga o actualice, irá a la buena ip y buscará bien. A partir de la segunda solicitud en adelante, no vuelve a la IP incorrecta de nuevo, se adhiere a la buena.
JamesRyan
Yuck Podemos seguir diciendo "sí" o "no hace". Solo pruébalo y mira. Y hacer clic en actualizar no cambia nada (al menos en Chrome): espera 180 segundos incluso si hace clic en detener y abre la página nuevamente.
Sandman4