Documentos de Académico
Documentos de Profesional
Documentos de Cultura
HAProxy es un software libre que acta como balanceador de carga (load balancer)
ofreciendo alta disponibilidad, balanceo de carga y proxy para comunicaciones TCP y
HTTP.
Est pensado especialmente para balanceadores de tipo Layer7.
Round Robin
Este es el mtodo ms conocido de todos y lo que hace es distribuir la carga entre todos
los servers disponibles detrs del balanceador. Para que sea eficiente, requiere que los
servers tengan las mismas caractersticas de hardware y aplicaciones.
...
backend super-server
option tcplog
balance roundrobin
...
Este mtodo los request son repartidos de forma secuencial entre los nodos disponibles
tomando en cuenta el peso que se asigna previamente por quien configura el
balanceador. Lo que se hace asignando los pesos es definir la capacidad de cada server.
Por ejemplo, si tenemos un servidor (A) que es el doble de potente que (B), a (A) le
asignaremos un peso de 100 y a (B) un peso de 50.
...
backend super-server
option tcplog
balance static-rr
server A 1.1.1.1 1.1.1.1:80 check 100
server B 1.1.1.1 1.1.1.1:80 check 50
...
Least Connection
Una desventaja de los dos mtodos anteriores es que no llevan la cuenta de cuntas
conexiones mantiene cada server. Es as como podemos encontrarnos con que el
servidor (B) tiene ms conexiones abiertas, y por lo tanto ms carga, que el servidor
(A). En este caso, no tiene sentido que le envimos ms trfico a (B) porque
probablemente se tarde ms que (A) en responder un request.
...
backend super-servers
option tcplog
balance leastconn
...
Source
Este mtodo genera un hash usando la direccin IP de origen del request que luego ser
utilizado para enviar los request de esa misma IP al mismo server fsico que le contest
por primera vez. Es una especie de persistencia de sesin no muy eficiente ya que puede
causar que un servidor de cargue ms que otro.
...
backend super-server
option tcplog
balance source
...
URI
Este mtodo permite verificar partes especficas de la URL, como por ejemplo valores
enviados por POST, para determinar a qu server se debe enviar el request. Por ejemplo,
podemos definir que un request que contenga en valor hola sea enviado al server (A)
y un request con el valor chao al server (B). En caso de que el request no tenga
ninguno de los valores definidos, se enviar el request a donde el mtodo de balanceo
por defecto nos diga (round robin).
...
backend super-server
option tcplog
balance url_param hola
...
Ejemplos de balanceadores
A continuacin se presenta una tabla de comparacin con diferentes balanceadores de
carga.
Contras
LVS
Parche solo
disponible para
versiones 2.4
Soporte limitado
No parece tener
actualizaciones
para kernel 3.x
Ultra
Monkey
Pound
Para
enrutamiento
directo se tiene
que parchar el
kernel
Fork de LVS
Custom kernel
Poca
documentacin
Poco conocido
Difcil encontrar
un paquete pre
compilado
Pros
Observaciones
Nativo de Linux
Soporta varios
algoritmos de
distribucin
Failover protection
(con ldirector)
Documentacin
extensa
Failover protection
Soporta varios
algoritmos de
distribucin
Failover protection
Soporta varios
algoritmos de
distribucin
Documentacin
extensa
El bug solo se
presenta para el modo
de enrutamiento
directo
La peticin http
parece que la hace
directa, si el sitio no
Apache
No es principalmente
un balanceador
No es
principalmente
un balanceador
No es sencillo
configurarlo
Pfsense
Pirhana
Solo disponible en
redhat
Balancea en varias
capas
Soporta varios
algoritmos a nivel
TCP
Fcil configuracin
Interfaz web
Extensa
documentacin
Failover protection
Soporta varios
algoritmos de
distribucin
Failover protection
Soporta balanceo en
varias capas
Interfaz web
Interfaz web
Fcil configuracin
Documentacin
extensa
Failover protection
Soporta varios
algoritmos
entra directo, no
funciona.
F5 BIG-IP LTM: Los F5 BIG-IP Load Traffic Manager (LTM), son otro de los clsicos
en el mundo del balanceo de carga (los de la pelotita, los llamaba uno de mis
compaeros
). Fciles de usar y optimizados para trabajar sobre la WAN. De
Round Robin
Round Robin entrega cada nueva peticin de conexin al siguiente servidor
en lnea, es decir, distribuye equilibradamente las conexiones a cada uno de
los servidores activos una vez por turno, hasta completar la lista de
servidores y empezar con el primero nuevamente. Round Robin trabaja bien
en la mayora de las configuraciones, pero puede funcionar mejor si los
servidores involucrados tienen caractersticas similares en velocidad de
conexin, velocidad de procesamiento y/o memoria.
Fastest
El algoritmo Fastest entrega una nueva conexin al que tenga el menor
tiempo de respuesta de todos los servidores disponibles. Este algoritmo
puede ser particularmente til en ambientes donde los servidores estn
distribuidos en diferentes redes lgicas. En Big-IP, solamente los servidores
que estn activos pueden ser seleccionados.
Least Connections
Este algoritmo, entrega una nueva conexin al servidor que tenga la menor
cantidad de conexiones en el momento. Least Connections trabaja mejor en
ambientes donde los servidores y otros equipamientos tienen capacidades
similares.
Observed
El algoritmo Observed usa una lgica combinada de los algoritmos Least
Connections y Fastest para el balanceo de carga. Con este algoritmo, los
servidores son rankeados de acuerdo a una combinacin de criterios como
el nmero actual de conexiones y el tiempo de respuesta. Los servidores
que tienen menor cantidad de conexiones y un tiempo de respuesta ms
rpido reciben las nuevas conexiones.
Predictive
El algoritmo Predictive usa la forma de ranking manejada por el algortimo
Observed, sin embargo, con el algoritmo Predictive, el sistema analiza la
tendencia del ranking, determinando cules servidores pueden mejorar o
empeorar su desempeo. Los servidores que tengan una tendencia a la
mejora, recibirn mayor cantidad de conexiones que los servidores que
empeoran su rendimiento. El algoritmo Predictive funciona bien en cualquier
ambiente.
Supported algorithms
cyclic
leastTraffic
leastUsersNumber
leastTrafficLocal
leastUsersNumberLocal
nt-1
nt-2
private-1
private-2
weightedCyclic
static
cck-stats
Coyote Point: Otra solucin comercial apta para el uso Enterprise. Su punto fuerte el
precio sin duda. En Espaa no los veris mucho, pero hay.
Barracuda: Otra solucin Enterprise Ready a un muy buen precio. Adems de las
funcionalidades estndar incluye prevencin de intrusiones, si has ledo bien IPS, no
IDS.
Zen Load Balancer: Soluciones Open Source como he comentado hay muchas y de
gran calidad. Zen Load Balancer es una de ellas y ofrece las funcionalidades bsicas de
un balanceador, por lo que es ideal para entornos en los que no podamos o no sea
aconsejable otro tipo de solucin.