Windows Server 2012: Cluster Network Load Balancing – NLB (Equilibrio o Balance de Carga)

En general cuando se habla de “Cluster” la gran mayoría lo asocia a uno de los dos tipos de “cluster” que pueden crearse, casi todos los asocian a “Failover Cluster”
Pero existe otro tipo de cluster, el llamado “Cluster Network Load Balancing”, que tiene diferente funcionalidad aunque en ambos casos se trate de “varios servidores actuando como si fueran uno solo”

Hagamos primero una muy breve introducción a las diferencias entre ambos tipos de Cluster.

En un “Failover Cluster”, en general cualquier servidor integrante (Nodo) puede cumplir determinada función de acuerdo a la configuración, pero debemos tener en cuenta que esa determinada función es llevada a cabo por un único nodo por vez. Esto es, la funcionalidad se moverá a otro nodo, sólo ante la falla del nodo que la tiene, o voluntariamente si lo hace un administrador.

Luego un “Failover Cluster” provee disponibilidad, pero hay otra característica muy importante que podemos necesitar, como es la escalabilidad. Esto supone que por ejemplo si aumenta la carga sobre una función, que la misma se reparta equitativamente y simultáneamente entre los Nodos del Cluster

Justamente la escalabilidad es una de las características de un “Cluster Network Load Balancing” (NLB), ya que en este caso los nodos se reparten la carga

Comparando uno con otro un “Cluster NLB” tiene algunas ventajas e inconvenientes respecto a un “Failover Cluster”

Como ventajas, podemos para nombrar sólo algunas:

  • El más importante de todos: escalabilidad de acuerdo a la carga
  • Así como podemos agregar nodos por demanda, también se pueden quitar
  • También tenemos disponibilidad, porque ante la falla de un nodo, otro tomará su lugar automáticamente y se balanceará la carga
  • Menos hardware, ya que podemos hacerlo con servidores con una única conexión de red
  • Los nodos no deben ser “exactamente iguales”
  • La configuración es mucho más sencilla”

Pero, siempre hay algo, los nodos se comunican entre ellos sólo para notificarse si están disponibles, no comparten la configuración ni propia de ni de la funcionalidad que pongamos en alta disponibilidad, ni siquiera los datos de esta última

Luego, por esto último, lo hace candidato ideal para aplicaciones que no requieran sesiones

En la gran mayoría de los casos, su uso es con Internet Information Services

Si el contenido de las páginas web es estático, y cambia poco, podremos mantenerlo sincronizado manualmente, pero si cambia mucho o si necesita acceder a bases de datos, también tenemos una solución

Esto que el “Cluster NLB” estén configurado como un “front-end” donde acceden los usuarios, y luego estos nodos busquen la información en un “back-end” dentro de la red interna, para presentarle a los clientes

La idea de esta demostración es demostrar el funcionamiento en forma lo más sencilla posible, por lo cual usaré la misma infraestructura que vengo usando en todas las demostraciones, los nodos tendrán una única placa de red, y la aplicación será simplemente una página web http

Las 3 máquinas que usaré tienen la siguiente configuración:

  • DC1.root.guillermod.com.ar
    Controlador de Dominio
    Dirección IP: 192.168.1.201/24
  • NLB1.root.guillermod.com.ar
    Servidor Miembro del Dominio
    Dirección IP: 192.168.1.121/24
  • NLB2.root.guillermod.com.ar
    Servidor Miembro del Dominio
    Dirección IP: 192.168.1.122/24

El “Cluster NLB” que crearemos, tendrá la siguiente configuración

  • NLB.root.guillermod.com.ar
    Dirección IP: 192.168.1.200/24
    Funcionalidad: servidor web

La única configuración adicional que he hecho en ambos “futuros” nodos fue agregar el rol “Web server” componente de “Web server (IIS)” con todos los componentes por omisión, o sea, un simple servidor web :-)

Al verificar la funcionalidad, al final de la nota, voy a querer conocer qué nodo está atendiendo el pedido he hecho una modificación es modificar el archivo “C:\InetPub\wwwroot\iis.png” en cada nodo para que me muestre de dónde está sirviendo, uno para NLB1 y otro diferente para NLB2

Ahora vamos a instalar la funcionalidad, es un “Feature”, Network Load Balancing. Mostraré las pantallas en NLB1, pero recordar que lo debemos hacer en ambos nodos NLB1 y NLB2

 

Hay una configuración que debemos hacer manualmente en nuestro servidor DNS, porque el “Cluster NLB” no se registra automáticamente

Así que en DC1, abrimos la consola DNS, y de acuerdo a lo planteado al principio de la nota, creamos manualmente un registro de tipo A correspondiente a “nlb.root.guillermod.com.ar” con la dirección IP 192.168.1.200

 

Volviendo a uno de nuestros nodos, comenzaré a crear el “Cluster NLB”, haré todo desde NLB1 ya que puedo agregar a NLB2 remotamente

Para esto abrimos la consola Network Load Balancing Manager desde el menú Tools de Server Manager

Y con botón derecho comenzamos el asistente, como muestran las siguientes capturas de pantalla

Y con botón derecho, comenzamos el asistente para la creación del Cluster

Colocamos el nombe del primer nodo, y con el botón correspondiente nos conectamos. Verifiquemos que resuelva a la dirección IP correcta y continuamos

Indicamos la dirección que utilizará el Cluster

Indicamos el nombre con el que será accesible el Cluster, en este caso “nlb.root.guillermod.com.ar” y el modo de operación

Al estar utilizando nodos con una única placa de red, no podemos utilizar el modo “Unicast”, para esto deberíamos tener dos conexiones de red en cada nodo

Para quien le interese una muy buena descripción de cada uno de los modos de operación, sus ventajas e inconvenientes, le recomiendo visitar el siguente enlace

Selecting the Unicast or Multicast Method of Distributing Incoming Requests

Seguimos adelante. Vemos que, por omisión, el cluster tratará de balancear las conexiones a todos los puertos (0 a 65535) que no es lo que deseamos, sólo acceso HTTP (TCP-80), así que ingresamos con el botón Edit, y ponemos 80 tanto en inicio como en fin

Y finalizamos

Quedando así

 

Comenzaremos ahora agregando al otro nodo (NLB2), siguiendo el asistente tal como muestran las siguientes capturas de pantalla

Demorará unos instantes hasta agregarlo y ver que está todo bien

 

Comencemos a probar :-)

Voy a DC1, abro el explorador y me conectaré a “nlb.root.guillermod.com.ar”

Vemos que estamos accediendo a NLB2

Cerremos el explorador y volvamos a NLB1

Detengamos el servicio en NLB2

Y ahora volvamos a DC1 e ingresemos nuevamente al sitio. Podremos observar que al estar detenido NLB2, nos atiende NLB1. Comentario por el uso de “cacheo” de páginas del IE, seguramente se deberá hacer un “refresh” de la página (F5) para que se actualize

 

Volvamos a poner en funcionamiento a NLB2

Demorará unos instantes

Si queremos probar el balance de carga deberemos disponer de otra máquina más. En mi caso usaré un cliente W8 que es parte del dominio

Como la conexión de DC1 se hizo sobre NLB1, ahora al cliente lo conecta a NLB2

 

Recordemos que esto es sólo una demostración para que nos familiaricemos y podamos hacer una prueba con un “Cluster NLB”; en ambiente productivo influencian otros factores que no son los aplicables a un ambiente de pruebas

 

Post a comment or leave a trackback: Trackback URL.

Comentarios

  • Borja  On 10/10/2013 at 06:48

    Muy ilustrativo, muchas gracias.
    La pregunta es, cuando deja de tener sentido su uso y se hace recomendable una solucion hardware?

    • Guillermo Delprato  On 11/10/2013 at 15:01

      Me alegro te sirva :-)
      No es una pregunta fácil de contestar, o inclusive si conviene o no hacerlo, porque depende de muchos factores
      Piensa que si tienes los servidores, hacerlo con el propio sistema no implica ningún costo adicional
      Por lo que conozco, las implementaciones basadas en hardware están más usadas, cuando son aplicaciones orientadas a conexión, por ejemplo una granja de servidores con Remote Desktop

  • Alexander  On 29/02/2016 at 17:23

    Guillermo,

    Es decir que si cada server tiene un solo adaptador de red el método de difusión es Multicast? no es al contrario??

    Gracias

  • Jonathan  On 17/05/2016 at 12:23

    Hola Guillermo,

    Tengo un inconveniente, eh echo la instalación del NBL en ambiente de prueba tal cual, la desactivar el NBL1 me redirige al NBL2 pero cuando trato de hacer la prueba de balanceo con el NBL1 y NBL2 activos en 2 pc diferentes solo me redirige a una sola web, a que se pueda estar debiendo esto …

  • Manuel  On 29/11/2016 at 20:46

    Hola, tengo una consulta. AL momento de realizar la conexión de cluster e ingresr el HOST A, obtengo el error “Host unreachable”, es algo con al resolución del nombre.. pero no encuentro como hacer que resuelva. Alguno ha tenido este comportamiento?

    • Guillermo Delprato  On 30/11/2016 at 06:30

      Hola Manuel, no termino de comprender la pregunta porque no sé a que te refieres con “HOST A” si es uno de los nodos o el cluster
      El problema puede estar relacionado con los parámetros de configuración, te sugiero pongas la pregunta en un foro de soporte, por ejemplo los de Technet en https://social.technet.microsoft.com/Forums/es-ES/home, y des más datos de configuración a ver si alguien puede comprender la situación y sugerir alguna ayuda

Trackbacks

Este espacio es para comentarios sobre la nota. No es un sitio de soporte

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: