Equilibrio de carga

El equilibrio de carga mejora la disponibilidad y escalabilidad del sitio web al agrupar en clúster y de forma transparente los servidores proxy y los servidores de aplicaciones. La escalabilidad de una infraestructura IT mejorará en gran medida porque puede añadirse de forma transparente la potencia del proceso de fondo.

Equilibrio de carga entre varios sistemas principales que alojan contenidos

Puede satisfacer la alta demanda duplicando los contenidos en varios sistemas principales, pero, a continuación, necesita una manera de equilibrar la carga entre ellos. El DNS (Servicio de nombres de dominio) puede proporcionar un equilibrio básico de carga de modalidad rotatoria, pero existen varias situaciones en las que no da buen rendimiento.

Una solución más sofisticada para equilibrar la carga de varios sistemas principales de contenido es utilizar el componente Dispatcher de Load Balancer tal y como se muestra en la Figura 5. En esta configuración, todos los sistemas principales de contenido (las máquinas marcadas como 5) almacenan el mismo contenido. Están definidos para formar un clúster con equilibrio de carga y una de las interfaces de red de la máquina de Load Balancer (4) tiene asignados un nombre de sistema principal y una dirección IP dedicados al clúster. Cuando un usuario final que trabaja en una de las máquinas marcadas como 1 solicita el archivo X, la solicitud atraviesa Internet (2) y entra en la red interna de la empresa mediante su pasarela Internet (3). Dispatcher intercepta la solicitud porque su URL está correlacionado con el nombre del sistema principal y la dirección IP de Dispatcher. Dispatcher determina cuál de los sistemas principales que alojan contenidos del clúster es actualmente el más capacitado para atender a la solicitud y reenvía la solicitud a este sistema principal, que, una vez configurado el método de reenvío MAC, devuelve el archivo X directamente al cliente (es decir, el archivo X no pasa por Load Balancer).

Figura 5. Equilibrio de carga de varios sistemas principales que alojan contenidos
El gráfico que aparece aquí describe el equilibrio de carga de varios sistemas principales de contenido
Leyenda: 1—Cliente   2—Internet   3—Direccionador/Pasarela   4—Dispatcher   5—Sistema principal de contenido
Nota:
Dispatcher proporciona tres métodos de reenvío:

De manera predeterminada, Dispatcher utiliza el equilibrio de carga de modalidad rotatoria como lo hace el DNS, pero incluso así trata algunas de las insuficiencias del DNS. De manera diferente al DNS, rastrea si un sistema principal que aloja contenidos está inaccesible o no disponible y no continúa dirigiendo a los clientes a un sistema principal que aloja contenidos no disponibles. Además, considera la carga actual del sistema principal que aloja contenidos rastreando las conexiones nuevas, activas y finalizadas. Es posible seguir optimizando el equilibrio de carga mediante la activación de los componentes de gestor y asesor opcionales de Load Balancer, que rastrean el estado de un sistema principal que aloja contenidos incluso de forma más precisa e incorporan la información adicional al proceso de decisiones del equilibrio de carga. El gestor le permite asignar diferentes pesos a los diferentes factores utilizados en el proceso de decisiones, a fin de personalizar más el equilibrio de carga para el sitio.

Equilibrio de carga entre varios servidores proxy inversos

El componente Dispatcher de Load Balancer también puede realizar el equilibrio de carga para varias máquinas de Caching Proxy. Si el sitio web de la empresa es popular, es posible que exista una mayor demanda de sus contenidos de la que pueda satisfacer un único servidor proxy con eficacia, lo que ocasionará cierta lentitud en el rendimiento del servidor proxy.

Puede tener varios sistemas del Caching Proxy realizando funciones de proxy para un único sistema principal de contenido (similar a la configuración que se muestra en la Figura 1), Sin embargo, si el sitio es lo suficientemente popular como para necesitar varios servidores proxy, es posible que necesite también varios sistemas principales que alojen contenido y cuyas cargas se equilibren mediante Load Balancer. La Figura 6 muestra esta configuración. Dispatcher marcado con un 4 equilibra la carga de un clúster de dos servidores proxy (5), y Dispatcher marcado con un 7 equilibra la carga de un clúster de tres sistemas principales que alojan contenido (8).

Figura 6. Equilibrio de carga entre varios servidores proxy y sistemas principales de contenido
El gráfico que aparece aquí describe el equilibrio de carga de varios servidores proxy y sistemas principales de contenido
Leyenda: 1—Cliente   2—Internet   3—Direccionador/Pasarela   4—Dispatcher   5—servidor proxy   6—Memoria caché   7—Dispatcher   8—Sistema principal de contenido

El nombre de sistema principal del clúster de Dispatcher marcado con un 4 es el nombre de sistema principal que aparece en los URL para los contenidos web de la empresa (es decir, es el nombre del sitio web como se ve en Internet). El nombre de sistema principal del clúster para Dispatcher marcado como 7 no está visible en Internet y así puede ser cualquier valor que desee. Por ejemplo, en la empresa ABC, un nombre de sistema principal adecuado para Dispatcher marcado como 4 es www.abc.com, mientras que Dispatcher marcado como 7 puede tener un nombre parecido a http-balancer.abc.com .

Suponga que un navegador en una de las máquinas de cliente marcadas como 1 necesita acceder al archivo X almacenado en los servidores de contenido marcados como 8. La solicitud HTTP atraviesa Internet (2) y entra en la red interna de la empresa mediante la pasarela (3). El direccionador dirige la solicitud al Dispatcher marcado como 4, que la pasará al servidor proxy (5), que actualmente está más capacitado para manejarla según el algoritmo de equilibrio de carga. Si el servidor proxy tiene el archivo X en su memoria caché (6), lo devolverá directamente al navegador, pasando por alto al Dispatcher marcado como 4.

Si el servidor proxy no tiene una copia del archivo X en su memoria caché, crea una nueva solicitud que tiene su propio nombre de sistema principal en el campo de origen de la cabecera y lo envía al Dispatcher marcado como 7. Load Balancer determina cuál de los sistemas principales de contenido (8) está actualmente más capacitado para satisfacer la solicitud, y allí la direcciona. El sistema principal que aloja contenido recupera el archivo X del almacenamiento y lo devuelve directamente al servidor proxy, pasando por alto al Dispatcher marcado como 7. El servidor proxy almacena en caché el archivo X, si corresponde, y lo envía al navegador, pasando por alto el Dispatcher marcado como 4.

Equilibrio de carga entre varios servidores proxy de envío

Si proporciona acceso de Internet a un gran número de clientes, pueden generar más demanda de acceso a Internet de la que puede proporcionar un solo proxy de forma eficaz. A medida que se sobrecarga el Caching Proxy con solicitudes, los clientes pueden experimentar tiempos de respuesta peores que con el acceso directo a Internet. Y si el Caching Proxy falla o pasa a estar inaccesible debido a un error de red, el acceso a Internet se hace imposible. La solución es instalar varias máquinas del Caching Proxy y utilizar el Dispatcher de Load Balancer para equilibrar la carga entre ellos.

Sin el Dispatcher, puede proporcionar un proxy verdaderamente transparente con varias máquinas Caching Proxy sólo si los direccionadores pueden direccionar el mismo tipo de tráfico a más de un Caching Proxy; no todos los direccionadores dan soporte al mismo. Se puede proporcionar un servicio de proxy de envío regular en varias máquinas de Caching Proxy sin el Dispatcher pero debe configurar explícitamente los navegadores de cliente para que utilicen una de las máquinas de Caching Proxy como su proxy primario. Si dicho Caching Proxy falla, o se sobrecarga o no se puede acceder al mismo, los usuarios no pueden acceder a Internet. Para evitar esta situación, puede crear un archivo PAC (Proxy Automatic Configuration), tal y como se describe en el apartado Caching Proxy de envío transparente (sólo sistemas Linux), que indica al navegador que realice la sustitución por anomalía de uno o varios Caching Proxys secundarios. Un archivo PAC no cubre la necesidad de equilibrar la carga entre las máquinas de Caching Proxy, no obstante, si un Caching Proxy recibe muchas más solicitudes que otro, su rendimiento puede disminuir y someter de este modo a los clientes del navegador a tiempos de respuesta más lentos. Para que todos los clientes experimenten un rendimiento similar, debe configurar un número de aproximadamente igual de navegadores que utilicen cada Caching Proxy y realizar manualmente un seguimiento de la distribución para así poder mantener la carga equilibrada mientras añade o suprime navegadores.

En la Figura 7 se muestra una configuración de red en la que el Dispatcher equilibra la carga en un clúster de máquinas de Caching Proxy. Una de las interfaces de red de la máquina de Dispatcher se configura para que tenga el nombre de sistema principal y la dirección IP dedicados del clúster. Los navegadores de cliente se configuran para dirigir las solicitudes de Internet al nombre de sistema principal del clúster. Cuando, por ejemplo, una navegador de una de las máquinas de cliente marcada con el 1 necesita acceder al archivo X de un sistema principal de contenido (7), dirige las solicitudes al nombre de sistema principal del clúster o dirección en la que Dispatcher (2) la intercepta y la dirige al Caching Proxy adecuado (3). El Caching Proxy crea una nueva solicitud, la pasa a través de la pasarela empresarial (5) y a través de Internet (6) y, si corresponde, almacena el archivo retornado en su memoria caché (4), tal y como se describe con detalle en el apartado Caching Proxy de envío.

Nota:
La función de proxy transparente está disponible únicamente en sistemas Linux.
Figura 7. Utilización de Dispatcher para equilibrar la carga de varios Caching Proxy.
Este gráfico describe el equilibrio de carga entre varios proxy

Dispatcher detecta cuando una de las máquinas de Caching Proxy no está disponible y automáticamente direcciona las solicitudes al otro. Esto permite concluir una máquina de Caching Proxy para labores de mantenimiento sin interrumpir el acceso a Internet. Dispatcher tiene muchas opciones de configuración que puede utilizar para controlar los factores que tiene en cuenta en la toma de decisiones de equilibrio de carga. También puede instalar programas de Dispatcher auxiliares en las máquinas de Caching Proxy para supervisar su estado y devolver la información a Dispatcher. Par obtener más información, consulte la publicación WebSphere Application Server Load Balancer Administration Guide. Si se utilizan varios Caching Proxy se puede restar eficacia, ya que más de un Caching Proxy puede almacenar en caché el mismo archivo si varios clientes solicitan el archivo a través de diferentes máquinas de Caching Proxy. Para eliminar la redundancia, puede configurar RCA (Remote Cache Access) lo que permite que todos los proxys de un grupo definido compartan el contenido de sus memorias caché entre sí. Todos los proxys del grupo RCA utilizan el mismo algoritmo para determinar qué Caching Proxy es responsable de un URL determinado. Cuando un Caching Proxy intercepta un URL del que no es responsable, pasa la solicitud al Caching Proxy responsable. El Caching Proxy responsable efectúa el trabajo necesario para satisfacer la solicitud, recuperándola de su memoria caché o dirigiendo la solicitud al sistema principal de contenido relevante y almacenando en la memoria caché el archivo devuelto, si corresponde. A continuación, el Caching Proxy responsable pasa el archivo al Caching Proxy original, que lo entrega al usuario final de la solicitud.

En el grupo RCA, si el Caching Proxy responsable de un URL determinado falla, entonces el Caching Proxy original que ha recibido la solicitud del cliente, accederá directamente el sistema principal de contenido (o un servidor de Caching Proxy de reservad, si se ha definido). Esto significa que los usuarios pueden acceder a los archivos siempre que como mínimo un Caching Proxy de un grupo RCA funcione correctamente.

Esta configuración satisface una demanda elevada de acceso a Internet ya que utiliza Dispatcher para equilibrar la carga de solicitudes a través de varias máquinas de Caching Proxy. Un problema potencial es que Dispatcher es un punto de anomalía individual. Si este falla o se vuelve inaccesible debido a una anomalía de red, los clientes del navegador no pueden conectar a los Caching Proxy o Internet. La solución es configurar otro Dispatcher para que actúe como reserva para el Dispatcher primario, tal y como se muestra en la Figura 8.

Figura 8. Utilización de un Dispatcher primario y otro de reserva para proporcionar acceso a Internet de alta disponibilidad
Este gráfico muestra un Dispatcher primario y uno de reserva para equilibrar la carga entre varios proxies

Aquí, un navegador que se ejecuta en una de las máquinas marcadas con 1 dirige normalmente su solicitud de un archivo X al Dispatcher primario (2), que direcciona la solicitud al Caching Proxy (4) seleccionado de acuerdo con el criterio de equilibrio de carga de Dispatcher. El Caching Proxy crea una nueva solicitud, la direcciona a través de la pasarela empresarial (6) a través de Internet (7) hasta el sistema principal que aloja contenido (8) y almacena el archivo retornado X en su memoria caché (5), si corresponde (para obtener una descripción más detallada de esta parte del proceso, consulte el apartado Caching Proxy de envío).

En esta configuración, el Dispatcher (3) de reserva no efectúa el equilibrio de carga siempre que el primario esté operativo. El Dispatcher primario y el de reserva rastrean mutuamente su estado intercambiando de forma periódica mensajes denominados pulsaciones. Si el Dispatcher de reserva detecta que el primario ha fallado, toma el control automáticamente del equilibrio de carga interceptando las solicitudes dirigidas al nombre de sistema principal y dirección IP del Dispatcher primario. También se puede configurar dos Dispatcher para obtener una alta disponibilidad mutua. En este caso, cada uno de ellos efectúa activamente el equilibrio de carga para un clúster de Caching Proxys diferente, actuando simultáneamente como reserva para su colega. Para obtener una descripción más detallada, consulte el manual WebSphere Application Server Load Balancer Administration Guide.

Generalmente, Dispatcher no consume muchos procesos o recursos de memoria y otras aplicaciones pueden ejecutarse en la máquina de Dispatcher. Si resulta importante minimizar los costes del equipo, es incluso posible ejecutar el Dispatcher de reserva en la misma máquina que el Caching Proxy. La Figura 9 muestra una configuración en la que el Dispatcher de reserva se ejecuta en la misma máquina (3) que el Caching Proxy.

Figura 9. Ubicación del Dispatcher de reserva en una máquina de Caching Proxy.
Este gráfico muestra un Dispatcher primario y uno de reserva para equilibrar la carga entre varios proxies