Cuando implementamos nuestros sistemas buscamos que tengan las siguientes características:

  • Seguridad: Permisos, DAC, cortafuegos, NAP, RADIUS, VPNs, …
  • Continuidad: Queremos que si el sistema se cae, se recupere pronto. DRP y BCP.
  • Disponibilidad: Queremos que el sistema se caiga poco.
  • Escalabilidad: El sistema puede adaptarse a una demanda creciente sin pérdida de rendimiento.

El clúster NLB proporciona:

  • Disponibilidad (High Availability, HA)
  • Escalabilidad: Podemos añadir y eliminar nodos según lo necesitemos.

Está especialmente indicado para aplicaciones stateless.

Como recomendación se espera que todos los nodos sean iguales (igual RAM, tarjeta de red, software instalado…).

También es recomendable que tenga dos tarjetas de red: Una para peticiones de usuario y otra para heartbeat y gestión.

La instalación que vamos a realizar es de un cluster con 2 nodos

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

NLB.adatum.com
Dirección IP: 192.168.10.250/24
Funcionalidad: servidor web

NLB1.adatum.com
Dirección IP: 192.168.10.151/24

NLB2.adatum.com
Dirección IP: 192.168.10.152/24

 

 

INSTALACIÓN DE NETWORK LOAD BALANCING.

Tenemos que instalar en los dos nodos la característica NLB, para ello vamos a Server Manager -> Manage -> Add Roles and Features y dentro de Features instalamos Network Load Balancing.

 

Una vez instalado en LON-NBL1 y LON-NBL2 abrimos la consola y procedemos a la instalación de los nodos del cluster

Desde NLB1 se crea el “Cluster NLB,para esto abrimos la consola Network Load Balancing Manager desde el menú Tools de Server Manager

Y con botón derecho comenzamos el asistente para la creación del y configuración del clúster NLB:

 

El primer paso añadimos el nombe del primer host, y conectar.

Verifiquemos que resuelva a la dirección IP correcta y continuamos.

El parámetro Priority es un simple identificador de nodo (podemos tener un máximo de 32 nodos por clúster). Sólo tendrá el significado de prioridad cuando configuremos las Reglas de Puertos.

Cuando el clúster se inicia, cada nodo puede estar en 3 estados:

  • Iniciado: arranca con el clúster y empieza a atender peticiones.
  • Parado: no arranca con el clúster, no atiende peticiones y no mantiene la sincronización con el resto del clúster.
  • Suspendido: no arranca con el clúster, no atiende peticiones, pero mantiene la sincronización con el resto del clúster. Si reiniciamos la máquina, pasa a modo Iniciado si no indicamos lo contrario.

Añadimos la dirección IP del Cluster.

Indicamos el nombre con el que será accesible el Cluster, en este caso “nlb.root.adatum.com” 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

Las reglas de puertos identifican los puertos en los que va a funcionar el clúster.

Por defecto, el cluster trata de balancear las conexiones de todos los puertos (0 a 65535), nosotros queremos que balancee sólo acceso HTTP (TCP-80)

Edit, y ponemos puerto 80 tanto en inicio como en fin

El Modo de Filtrado nos permite decidir si para un conjunto de puertos va a responder cualquier nodo del clúster o sólo uno de los nodos.

Multiple: Todos los nodos del clúster atienden peticiones para ese rango de puertos y se reparten la carga según el algoritmo de NLB. El nodo que menos trabajo tenga atiende la siguiente petición.

La Afinidad sólo se puede configurar si el modo de filtrado es Multiple Hosts. 

  • Single: Si un usuario con una IP de origen determinada hace una petición al clúster, se le dirige a uno de los nodos y a partir de ese momento, ese usuario (en función de su IP de origen) se dirige siempre a ese mismo nodo. Puede ser un problema si múltiples usuarios acceden al clúster usando NAT, ya que todos irían al mismo nodo.
  • Network: Distribuye la carga entre los nodos según a qué red de clase C pertenece la IP de origen
  • None: Balanceo de carga puro. Cada petición va al siguiente nodo con menor carga. Sólo útil si las aplicaciones son stateless.

Single Host: Sólo hay un host que atiende peticiones. El nodo que atiende peticiones es el que tenga un valor Priority más bajo. Si ese nodo falla, las peticiones pasan al siguiente nodo en orden de prioridad. Deja de ser un NLB y pasa a comportarse como un Failover.

Disable this port range: El clúster no balancea el tráfico para el rango de puertos indicado en la regla de puertos.

Tanto en modo Single como en modo Network, cuando una petición de una IP se ha dirigido a un nodo, siempre se dirige al mismo nodo las siguientes peticiones. Esto se puede cambiar con el Timeout.  Si Timeout=0, las peticiones de un usuario siempre van al mismo nodo. Si Timeout=5, todas las peticiones de un usuario irán al mismo nodo durante los siguientes 5 minutos.

 

Una vez instalado el Cluster procedemos a instalar el siguiente nodo (NLB2) y lo podemos hacer desde la misma consola.

De nuevo botón derecho New host y seguimos el asistente:

Lo primero añadimos el nombre del primer nodo, y con el botón correspondiente nos conectamos. Verifiquemos que resuelva a la dirección IP correcta y continuamos.

Indicamos la Prioridad y el Estado por defecto.

Finalizamos la instalación.

Tardará unos instantes en converger y ver que está todo bien

Cuando el clúster está configurado, podemos controlar los diferentes nodos, que pueden estar en varios estados:

  • Start: inicia el nodo.
  • Stop: para el nodo.
  • Suspend: pone el nodo en espera.
  • Resume: reactiva el nodo.
  • Drainstop: para el nodo pero espera a que las peticiones que ha recibido terminen de ser atendidas. Durante ese tiempo no atiende peticiones nuevas.

Con esto queda configurado para balancear servicios web nuestro Cluster con dos Nodos.

 

Autor: Daniel Lara
Curso: Microsoft MCSE Private Cloud
Centro: Tajamar
Año académico: 2015-2016