Equilibrador de carga

(Redirigido desde «Balanceador de carga»)

Un equilibrador de carga (también balanceador de carga como traducción más literal del inglés load balancer) fundamentalmente es un dispositivo de hardware o software que se pone al frente de un conjunto de servidores que atienden una aplicación y, tal como su nombre lo indica, asigna las solicitudes que llegan de los clientes a los servidores usando algún algoritmo (desde un simple round-robin hasta algoritmos más sofisticados) para equilibrar la carga de trabajo entre los servidores.[1]

Es un método para distribuir la carga de trabajo en varias computadoras separadas o agrupadas en un clúster.[2]

Para que se considere exitoso un equilibrador de carga:

  • Debe minimizar tiempos de respuesta.
  • Mejorar el desempeño del servicio.
  • Evitar la saturación.

Formas de implementar el equilibrado de carga

editar
  • Equilibrado de carga basado en DNS. Se hace por medio de registros DNS para que una URL apunte a más de una dirección IP. Es fácil su implementación.
  • Equilibrado de carga basado en software. Por medio de los servidores web comparten una dirección IP, la cual resuelve el dominio. Estos servidores negocian entre ellos cual responderá a la siguiente petición.
  • Equilibrado de carga dedicado. Cualquier hardware que contenga una aplicación de equilibrado de carga de código libre o comercial.

Métodos de equilibrio de carga

editar
  • De petición
  • Basado en sesión
  • De métodos

Métodos de conexiones

editar
  • Round-Robin: las peticiones son distribuidas entre los servidores de forma cíclica, independientemente de la carga del servidor. Distribuye de forma ecuánime el número de peticiones, pero no la carga.
  • Weighted Round-Robin: Las peticiones se entregan dependiendo del peso que se le dé a cada servidor.
  • LeastConnection: Cada petición es atendida por el servidor con menos conexiones activas en ese momento.
  • Weighted LeastConnection: Las peticiones se entregan dependiendo del peso y el número de conexiones que se tengan
  • IP-hash: se selecciona el servidor que atenderá la petición con base en algún dato como la dirección IP, de esta forma todas las peticiones de un usuario son atendidas por el mismo servidor.

Ejemplos de equilibradores de carga

editar

A continuación se presenta una tabla de comparación con diferentes equilibradores de carga.

Contras

Pros

Observaciones

LVS

  • Para enrutamiento directo se tiene que parchar el kernel
  • Parche solo disponible para versiones 2.4
  • Nativo de Linux
  • Soporta varios algoritmos de distribución
  • Failover protection (con ldirector)
  • Documentación extensa

El bug solo se presenta para el modo de enrutamiento directo

Ultra Monkey

  • Soporte limitado
  • No parece tener actualizaciones para kernel 3.x
  • Fork de LVS
  • Custom kernel
  • Failover protection
  • Soporta varios algoritmos de distribución

Pound

  • Poca documentación
  • Poco conocido
  • Difícil encontrar un paquete pre compilado
  • Failover protection
  • Soporta varios algoritmos de distribución

Zevenet (aka Zen Load Balancer)

  • Documentación extensa
  • Cuenta con soporte
  • Balancea en varias capas
  • Soporta varios algoritmos a nivel TCP
  • Fácil configuración
  • Interfaz web

Soporta transparencia con destination NAT y source NAT.

Apache

No es principalmente un balanceador

  • Extensa documentación
  • Failover protection
  • Soporta varios algoritmos de distribución

Pfsense

  • No es principalmente un balanceador
  • No es sencillo configurarlo
  • Failover protection
  • Cuenta con soporte
  • Soporta balanceo en varias capas
  • Interfaz web

Pirhana

Solo disponible en redhat

  • Interfaz web
  • Fácil configuración
  • Documentación extensa
  • Failover protection
  • Soporta varios algoritmos

Véase también

editar
  1. «Blog Tecnocacharrero. Soluciones de Balanceo de Carga Abril de 2009». tecnocacharrero.blogspot.com. 
  2. Dulce Campos. «Moodle-alta-disponibilidad». Consultado el 2013.