Network Load Balancing (NLB) ofrece una solución de alta disponibilidad para aplicaciones de servidor basadas en TCP/IP. Network Load Balancing (NLB) es especialmente apropiado para aplicaciones sin estado (stateless applications), de tal modo, que cada petición que reciba el Cluster NLB pueda ser despachada indistintamente por cualquiera de los Nodos del Cluster NLB, al poder tratarse como operaciones totalmente independientes. Sin embargo, Network Load Balancing también es capaz de ofrecer alta disponibilidad a las aplicaciones que mantienen estado, como se explica más adelante en éste Artículo (en este caso, el reparto de la carga puede no ser tan equitativo).
Network Load Balancing (NLB) es una tecnología de Microsoft disponible desde Microsoft Windows NT 4, disponiendo actualmente de varios años de funcionamiento en entornos de producción en todo tipo de empresas.
Es importante tener en consideración que Network Load Balancing (NLB):
- No ofrece ninguna funcionalidad para replicar los datos de aplicación entre los distintos Nodos del Cluster NLB. Por ejemplo, en el caso de una aplicación Web que se esté ejecutando sobre un Cluster NLB, será necesario instalar dicha aplicación en todos los Nodos del Cluster.
- No es capaz de balancear la carga ante una caída o error de la aplicación en alguno de los Nodos (no monitoriza el funcionamiento de las aplicaciones). Si la aplicación deja de responder en uno de los Nodos del Cluster NLB, pero dicho Nodo sigue vivo, el Cluster NLB seguirá contando con dicho Nodo al repartir la carga de trabajo.
- No monitoriza los servicios de Windows para su inicio y/o parada.
- No ofrece un Nombre de Equipo NetBIOS al que conectarse (como SI hace Microsoft Cluster MSCS). En su lugar, muestra una dirección IP Virtual (Microsoft la denomina VIP: Virtual IP address), suficiente para servir conexiones TCP y/o UDP.
- El balanceo se realiza en función de la carga de red (sólo y exclusivamente), y NO en función de la carga de CPU, consumo de memoria, etc.
Algunas de estas funcionalidades son cubiertas por otra de las soluciones de alta disponibilidad de Windows Server 2003, en particular, por Microsoft Cluster (MSCS), como se detalla en el Artículo Instalar y Configurar Microsoft Cluster (MSCS) en Windows Server 2003.
Network Load Balancing (NLB) permite crear agrupaciones de hasta 32 Nodos (Hosts) en un Cluster NLB, sobre los que distribuir las conexiones entrantes TCP y/o UDP. Así, es posible crear varios Clusters NLB (siendo cada uno de hasta 32 Nodos), de igual modo que es posible que un Nodo pertenezca a distintos Clusters NLB (aunque cada uno posea distintos miembros). Si se necesita superar el límite de los 32 Nodos por Cluster NLB, es posible utilizar varios Clusters NLB, y balancear entre ellos la carga utilizando la funcionalidad Round Robin de DNS (RRDND).
Desde el punto de vista del cliente, el Cluster NLB se muestra como un único servidor que responde a las peticiones de los clientes. Conforme se incrementa el tráfico de red (o la carga de trabajo), es posible añadir un nuevo Nodo al Cluster NLB para así conseguir cubrir las necesidades del servicio.
Network Load Balancing (NLB) permite mejorar el rendimiento, la escalabilidad (agregando más Nodos al Cluster NLB) y la disponibilidad. Si un Nodo se cae, el servicio se continúa ofreciendo, repartiendo la carga entre el resto de Nodos vivos del Cluster NLB, gracias al proceso de Convergencia (el proceso de Convergencia se explica más adelante en éste Artículo).
Existen multitud de aplicaciones que se pueden aprovechar de Network Load Balancing (NLB), como las aplicaciones Web y otras soluciones basadas en HTTP, FTP, Firewalls y Proxys (como RRAS e ISA Server), servidores de túneles (VPNs – como RRAS e ISA Server), Terminal Services, Windows Media Services, Mobile Information Server, etc.
Network Load Balancing (NLB) es preferible a otras soluciones software como DNS Round Robin (RRDNS), debido a que Round Robin distribuye las peticiones de red entre varios servidores, pero sin ofrecer ningún mecanismo que garantice que el servidor al que se direcciona el tráfico de red está vivo. Network Load Balancing (NLB) si garantiza que el servidor al que se direcciona una solicitud está vivo, ofreciendo un mejor resultado (RRDNS podría enviar las peticiones incluso con el servidor apagado).
Una pregunta típica es ¿En qué ediciones de Windos Server 2003 está disponible NLB? Microsoft Network Load Balancing (NLB) está disponible en todas las ediciones de Windows Server 2003, incluida la edición más pequeña, la Web Server Edition.
Microsoft Network Load Balancing (NLB) está disponible en arquitecturas x86, x64 e Itanium (IA64).
Network Load Balancing (NLB) ha sido diseñado para ser utilizado en redes Ethernet, y probado sobre diferente hardware y electrónica de red (está probado por Microsoft sobre redes de 10 Mbps, 100 Mbps y 1Gbps), incluyendo también sobre adaptadores de red en Team (teaming network adapters) compatibles con Windows Server 2003. Network Load Balancing (NLB) NO es compatible con redes ATM, ATM LAN ó Token Ring.
También es posible encontrar soluciones hardware capaces de realizar el balanceo de carga de red, en vez de utilizar soluciones software como la ofrecida por Microsoft (Network Load Balancing). Suelen ser administrables a través de Web, y la principal ventaja de estas alternativas por hardware, es que permiten liberar a los servidores de aplicaciones (ej: los servidores Web que deseamos balancear) de la carga de trabajo propia del balanceo de carga de red, y además limitan el tráfico de red de los conmutadores (es decir, evitan el switch port flooding) maximizando el rendimiento y el ancho de banda. Algunas de estas soluciones hardware de balanceo de carga de red son:
- WebMux Load Balancing, de CAI Networks.
- Big IP Local Traffic Manager, de F5. Quizás sea la principal alternativa.
- Barracuda Load Balancer, de Barracuda Networks.
- Cisco Arrowpoint.
Del mismo modo, existen otras alternativas Software. El principal motivo de plantearse utilizar alternativas software a Microsoft Network Load Balancing (NLB) es superar su límite de 32 Nodos (Hosts), aunque siempre es posible crear múltiples Clusters NLB, cada uno de hasta 32 Nodos. Así, existen multitud de alternativas software, como las de Citrix, WTS Gateway Pro, etc. Recordar que también existe la posibilidad de jugar con varios Clusters NLB, balanceados entre sí por DNS Round Robin.