Un Balanceador de carga 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 o balancea las solicitudes que llegan de los clientes a los servidores usando algún algoritmo (desde un simple round-robin hasta algoritmos más sofisticados).[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[3]balanceador de carga:
Debe minimizar tiempos de respuesta.
Mejorar el desempeño del servicio.
Evitar la saturación.
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.
De petición
Basado en sesión
De métodos
Round-Robin: las peticiones son distribuidas entre los servidores de forma cíclica, independientemente de la carga del servidor. Distribuye las peticiones de forma ecuánime pero la carga no.
Weighted Round-Robin: Las peticiones se entregan dependiendo del peso que se le de 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.
s
Es de bajo costo.
Transparente para el usuario.
Funcionalidad permanente.
Evita la saturación de servidores.
A continuación se presenta una tabla de comparación con diferentes balanceadores 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