Está en la página 1de 8

BALANCEADORES DE CARGA

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
...

Static Round Robin

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

Zen Load Appliance


Balancer

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

Cuenta con soporte

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

Cuenta con soporte

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

las opciones comerciales, es de los que ms me gustan.


Random
Este algoritmo de balanceo de carga distribuye aleatoriamente la carga en
los servidores disponibles, eligiendo un medio de generacin de nmeros
aleatorios y el envi de la conexin actual. A pesar que se encuentra
disponible en varios productos de balanceo de carga, su utilidad es
cuestionable, porque existe la posibilidad de fallar en los intentos de
asignacin de carga cuando alguna de las mquinas se encuentre abajo.

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.

Weighted [Ponderado] Round Robin (llamado Ratio en F5 Big-IP)


En este algoritmo, el nmero de conexiones que cada mquina recibe en el
tiempo es proporcional a un peso ponderado que se define en cada una de
las mquinas. Esto es una mejora sobre Round Robin, porque se puede
indicar por ejemplo "Mquina 3 puede manejar 2x veces la carga de las
mquinas 1 y 2", por lo tanto, el balanceador de carga podra enviar 2
peticiones a la mquina 3 por cada una de las peticiones de las otras
mquinas (1 y 2).

Dynamic Round Robin (llamado Dynamic Ratio en F5 Big-IP)


Es similar a Weigthed Round Robin, sin embargo, las ponderaciones son
basadas en el monitoreo continuo de los servidores, por lo que va
cambiando constantemente. Este es un algoritmo de balanceo dinmico,
que distribuye las conexiones basado en varios aspectos obtenidos del
anlisis de desempeo del servidor en tiempo real, tales como el nmero
actual de conexiones o la velocidad en el tiempo de respuesta de un nodo.
El algoritmo Dynamic Round Robin por lo general, no est disponible en un
balanceador de carga simple.

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.

Radware AppDirector OnDemand Switch: Buen compromiso entre precio y


funcionalidades, ltimamente se ven mucho en nuevas instalaciones.

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.

También podría gustarte