Buscar

Windows Server: Balanceo de carga (NLB)

Uno de los servicios que integra Windows Server es: NLB (Network Load Balancing) que nos sirve para balancear/distribuir/equilibrar el tráfico TCP y UDP entre servidores.

Al instalar NLB se carga el siguiente driver: WLBS.SYS (WLBS = Windows Load Balancing Services).



A pesar de que en la administración del servicio aparece la palabra: "clúster", no confundir el servicio NLB con un clúster de Microsoft (MSCS = Microsoft Cluster Service), son tecnologías con funcionamiento y requisitos totalmente distintos.

Con NLB (Network Load Balancing), no se requiere storage compartido, NLB es un balanceador de tráfico TCP/UDP.

NLB no requiere de Active Directory, por tanto, los nodos NLB pueden residir en un Workgroup. 

Encontraremos por primera vez disponible NLB (Network Load Balancing) en Windows Server 2000 (ediciones Advanced Server y Datacenter Server) y en versiones Windows Server 2003 y superiores lo tendremos incluido en todas las ediciones.

También hemos de entender que NLB (Network Load Balancing) no tiene en cuenta la carga de CPU, RAM, disco del servidor, solo conexiones TCP y UDP.

Veamos un ejemplo de configuración paso a paso de 2 nodos con balanceo de carga (NLB):

Windows: Balanceo de carga (NLB) paso a paso


1) Esquema conceptual:

Windows: Balanceo de carga (NLB)

En este caso, disponemos de dos equipos con Windows Server (S1 y S2), ambos servidores disponen de dos NICs y una de ellas será la NIC compartida, la dedicada a NLB. 

Según el ejemplo, la NIC dedicada a NLB, es la etiquetada como: NIC1-NLB.

El tráfico dirigido a la dirección IP compartida: 172.19.0.100, será balanceado hacia los dos nodos.

2) Etiquetamos las NICs de ambos servidores:

Para acceder rápidamente a las conexiones de red, podemos ejecutar: ncpa.cpl


Windows: Balanceo de carga (NLB)

3) Configuramos TCP/IP:

S1:

NIC0    : 172.19.0.1 / 255.255.0.0
NIC1-NLB: 172.19.0.10 / 255.255.0.0

S2:

NIC0    : 172.19.0.2 / 255.255.0.0
NIC1-NLB: 172.19.0.20 / 255.255.0.0

*No configuramos la dirección IP compartida: 172.19.0.100

4) Instalamos componentes NLB en los dos Windows Server: S1 y S2.

dism /online /enable-feature /featurename:NetworkLoadBalancingFullServer

dism /online /enable-feature /featurename:NetworkLoadBalancingManagementClient

5) Configuramos el clúster NLB - Primer nodo

Abrimos la herramienta: Administrador de equilibrio de carga de red (nlbmgr.exe) en uno de los dos servidores, en este caso, seleccionaremos: S1

Nos situamos en: "Clústeres de equilibrio de carga de red", botón derecho: "Nuevo clúster".


Windows: Balanceo de carga (NLB)

A continuación indicamos el nombre del servidor y seleccionaremos el interfaz dedicado a NLB:


Windows: Balanceo de carga (NLB)

Vemos la dirección IP del interfaz:


Windows: Balanceo de carga (NLB)

Indicamos la dirección IP compartida:


Windows: Balanceo de carga (NLB)

A continuación, indicamos el nombre de Internet y el modo de operación.

Sobre el modo de operación, veremos más adelante el detalle de cada opción.


Windows: Balanceo de carga (NLB)

Seleccionamos los puertos que queremos que el tráfico sea balanceado utilizando NLB.

En esta pantalla de ejemplo, hemos configurado que se balancee el tráfico TCP y UDP al puerto 80.


Windows: Balanceo de carga (NLB)

6) Configuramos el clúster NLB - Segundo nodo

Nos conectamos al segundo servidor (S2) y abrimos la herramienta: "Administrador de equilibrio de carga de red" (nlbmgr.exe). 

Nos situamos en: "Clústeres de equilibrio de carga de red", botón derecho: "Conectarse a uno existente".

Windows: Balanceo de carga (NLB)

A continuación, indicamos el nombre del primer nodo (S1) y al pulsar "Conectar", veremos el clúster configurado.


Windows: Balanceo de carga (NLB)

Ahora solo nos queda, añadir el segundo nodo dentro del clúster.

Para ello, desde la herramienta de administración, añadimos el segundo nodo.

Nos situamos sobre el nombre del clúster, en este caso: "www.sysadmit.com", botón derecho: "Agregar host al clúster". 

Windows: Balanceo de carga (NLB)

A continuación, indicamos el nombre del host: S2 y seleccionamos el interfaz compartido: NIC1-NLB.


Windows: Balanceo de carga (NLB)

Nos aparecerá la dirección IP, no tocamos nada, solo pulsamos "Siguiente":


Windows: Balanceo de carga (NLB)

y nos aparecen las reglas de tráfico, del clúster: No tocaremos nada. Pulsamos sobre: "Finalizar".


Windows: Balanceo de carga (NLB)

Ya tenemos configurado el clúster NLB de dos nodos:


Windows: Balanceo de carga (NLB)

7) Prueba de funcionamiento:

Instalamos IIS en ambos nodos:

dism.exe /enable-feature /online /featureName:IIS-WebServerRole /featureName:IIS-WebServer

Nos situamos en: C:\inetpub\wwwroot

y creamos un fichero con el nombre default.html

Dentro del fichero default.html, del servidor S1, indicamos el texto: S1

Dentro del fichero default.html, del servidor S2, indicamos el texto: S2

Si accedemos desde otro equipo con conectividad TCP/IP vía navegador a la dirección IP compartida, veremos cómo va cambiando el texto.

¿Cual es la diferencia entre Multicast y Unicast?


La diferencia entre ambos modos es la siguiente:

Unicast: 

- Se genera una MAC compartida entre los nodos.

- Utiliza port flooding.

- La MAC compartida no queda guardada en la tabla ARP de ninguno de los nodos.

- No hay comunicación entre los nodos si solo hay una NIC.

Multicast: 

- Se genera una MAC compartida entre los nodos.

- No utiliza port flooding. 

- La MAC compartida queda guardada en la tabla ARP.

- Permite la comunicación entre nodos con una sola NIC.

VMware y Microsoft NLB: Si las máquinas virtuales con NLB están en un entorno de VMware: ¿Qué elegimos? ¿Unicast o Multicast?


VMware recomienda utilizar el modo Multicast, además recomienda utilizar dos NICs por cada nodo.

VMware y Microsoft NLB: ¿Debemos realizar alguna configuración especial a nivel de VMware?


Debemos evitar que se produzca "port flooding", de esta forma evitamos la transmisión de paquetes RARP en el momentos de iniciar la VM, realizar vMotion, etc..

Para ello configuramos:

* A nivel de "Virtual Switch":

"Notify switches" a: "No".

* A nivel de "Port Group":

"Forged Transmit" a: "Accept"
 
Ejemplo, vista VMware Host Client:

VMware: Configurar Microsoft Network Load Balancing (NLB)

No hay comentarios:

Publicar un comentario