Sei sulla pagina 1di 3

23-01-12

Balance de carga con HAPro

Maestros del Web

Un espacio para los entusiastas del web

Balance de carga con HAProxy

Cuando hablamos de “Web” nos referimos a un protocolo, HTTP y a distintas clases de contenidos que puede transportar ese protocolo como:

imágenes, películas ash, o páginas en HTML. Sin embargo, HTTP no es el nico protocolo utilizado en la web y se basa en protocolos inferiores para su funcionamiento. De esta forma, HTTP no debe preocuparse por cómo llegar a una máquina, pues esa lógica de transporte la delega a los protocolos inferiores.

lógica de transporte la delega a los protocolos inferiores. Es necesario entender que por debajo de

Es necesario entender que por debajo de HTTP está el protocolo TCP y a nivel de TCP se habla de puertos, que sirven para identi car servicios en una misma máquina. Por debajo de TCP está el protocolo IP y a nivel del protocolo IP se habla de números de IP, que sirven para diferenciar máquinas en Internet.

Entonces, si se tiene un servidor web en 192.168.12.5:80, eso signi ca que el servidor podrá ser contactado en la IP 192.168.12.5 y que escuchará en el puerto 80. De esta forma, se puede instalar otro servidor, de mail por ejemplo, en la misma máquina pero escuhando en otro puerto, 192.168.12.5:25. Es el IP quien lleva los paquetes, y dentro de la máquina, TCP el que entrega los datagramas al servidor correspondiente.

Problemas que soluciona el balance de carga

El problema a solucionar es la sobrecarga de los servidores. Se puede balancear cualquier protocolo, pero dado que este sitio se centra en las tecnologías web, el artículo trata exclusivamente de balancear servidores HTTP.

Al mismo tiempo, si el balanceador detecta la caída de uno de los servidores web, puede optar por no enviarle más peticiones. De esta forma, si uno de los servidores web se cae, las peticiones del cliente no se dirigen al servidor caído.

Vemos que el balance de carga también contribuye a una infraestructura redundante y de alta disponibilidad (aunque no la asegura, el balance de carga por sí mismo no alcanza para tener HA1 ). En este punto creo conveniente introducir los conceptos básicos que se manejarán a lo largo del artículo:

Balanceador: es un sistema, software o hardware, que distribuye las peticiones de los clientes de forma es un sistema, software o hardware, que distribuye las peticiones de los clientes de forma equitativa entre distintos servidores de “backend”.

Servidor de backend: es un servidor (web en este caso), que responde la petición del usuario. es un servidor (web en este caso), que responde la petición del usuario.

Así el balanceador distribuye las peticiones y son los servidores de backend, quienes arman la respuesta efectiva al cliente. Para balancear la carga entre varios servidores es deseable que el mismo balanceador sea justo (fair), y que detecte servidores sobrecargados para dejar de enviarle peticiones hasta que no baje su carga. Este mismo mecanismo sirve para que un balanceador no envíe peticiones a un servidor caído.

23-01-12

Balance de carga con HAPro

Alternativas para balancear

La forma más elemental de balancear la carga entre varios servidores esa utilizando el DNS. Por ejemplo, si buscamos la IP de www.yahoo.com.ar:

$ d

i

g

w

w

w

.

y

a

h

o

o

.

c

o

m

.

a

r

?

; <

<

D

i

G

9

.

7

.

0

-

P

1

<

<

w

w

w

.

y

a

h

o

o

.

c

o

m

.

a

r

; ;

g

l

o

b

a

l

o

p

t

i

o

n

s

:

+

c

m

d

; ;

G

o

t

a

n

s

w

e

r

:

; ;

-

H

E

A

D

E

R

<

<

-

o

p

c

o

d

e

:

Q

U

E

R

Y

,

s

t

a

t

u

s

:

N

O

E

R

R

O

R

,

i

d

:

2

1

9

7

1

; ;

f

l

a

g

s

:

q

r

r

d

r

a

;

Q

U

E

R

Y

:

1

,

A

N

S

W

E

R

:

5

,

A

U

T

H

O

R

I

T

Y

:

2

,

A

D

D

I

T

I

O

N

A

L

:

1

;

;

Q

U

E

S

T

I

O

N

S

E

C

T

I

O

N

:

;

w

w

w

.

y

a

h

o

o

.

c

o

m

.

a

r

.

I

N

A

;

;

A

N

S

W

E

R

S

E

C

T

I

O

N

:

w

w

w

.

y

a

h

o

o

.

c

o

m

.

a

r

.

7

1

4

I

N

C

N

A

M

E

r

c

.

y

a

h

o

o

.

c

o

m

.

r

c

.

y

a

h

o

o

.

c

o

m

.

1

2

7

I

N

C

N

A

M

E

r

c

.

g

0

1

.

y

a

h

o

o

d

n

s

.

n

e

t

.

r

c

.

g

0

1

.

y

a

h

o

o

d

n

s

.

n

e

t

.

2

8

2

I

N

C

N

A

M

E

a

n

y

-

r

c

.

a

0

1

.

y

a

h

o

o

d

n

s

.

n

e

t

.

a

n

y

-

r

c

.

a

0

1

.

y

a

h

o

o

d

n

s

.

n

e

t

.

6

I

N

A

2

0

6

.

1

9

0

.

6

0

.

3

7

a

n

y

-

r

c

.

a

0

1

.

y

a

h

o

o

d

n

s

.

n

e

t

.

6

I

N

A

6

8

.

1

8

0

.

2

0

6

.

1

8

4

;

;

A

U

T

H

O

R

I

T

Y

S

E

C

T

I

O

N

:

0

a 1

.

y

a

h

o

o

d

n

s

.

n

e

t

.

5

3

3

7

6

I

N

N

S

y

f

1

.

y

a

h

o

o

.

c

o

m

.

0

a 1

.

y

a

h

o

o

d

n

s

.

n

e

t

.

5

3

3

7

6

I

N

N

S

y

f

2

.

y

a

h

o

o

.

c

o

m

.

; ;

A

D

D

I

T

I

O

N

A

L

S

E

C

T

I

O

N

:

y

f

2

.

y

a

h

o

o

.

c

o

m

.

1

4

8

0

I

N

A

6

8

.

1

8

0

.

1

3

0

.

1

5

;

;

Q

u

e

r

y

t

i

m

e

:

2

5

m

s

e

c

;

;

S

E

R

V

E

R

:

2

0

0

.

4

9

.

1

3

0

.

3

0

#

5

3

(

2

0

0

.

4

9

.

1

3

0

.

3

0

)

;

;

W

H

E

N

:

T

h

u

F

e

b

1

7

2

2

:

Vemos que, en definitiva, son dos los servidores que responden: 68.180.206.184 y

206.190.60.37.

Este es el tipo de balanceo más elemental que se puede hacer, y tiene una ventaja muy importante: simplicidad y e ciencia; ya que en principio lo nico que se necesitan son varios servidores con distintas IPs, por lo que es barato, simple y fácil de mantener. Sin embargo, el balance de carga por DNS tiene algunos inconvenientes. Por un lado, un balanceador puede tener en cuenta la carga de cada equipo y distribuir las peticiones seg n esas cargas, mientras que al balancear por DNS no se tiene en cuenta la carga de los equipos.

Además, si un servidor queda fuera de línea, el balanceador de carga lo detecta y redirige las peticiones web a los otros servidores. Pero esto no ocurre cuando se balancea con DNS (excepto que la aplicación sea consciente que se está balanceando y quiera probar con otro servidor, pero en este artículo hablamos de balance de carga transparente para la aplicación).

Por ltimo, la mayoría de los balanceadores pueden mantener las sesiones de los usuarios, de forma que un usuario que inicia sesión en el servidor “A” siempre sea dirigido por el balanceador al mismo servidor “A” (de no hacerlo el usuario perdería la sesión). Sin embargo, el balance de carga por DNS es del tipo “Round Robin”, por lo que es casi seguro que el usuario pierda la sesión.

Una guía de 5 artículos

Esta es una guía de 5 artículos acerca del balance de carga para servidores web donde aprenderás cómo configurar un balance de carga con HAProxy y para qué sirve. Revisa los siguiente pasos.

1. Balance de carga con HAProxy

2. Sesiones en el balance de carga con HAProxy

con HAProxy 2. Sesiones en el balance de carga con HAProxy .maestrosdel eb.com/editorial/balance-de-carga-hapro /

23-01-12

Balance de carga con HAPro

3. Balance de carga con HAProxy: Instalaci n

con HAPro 3. Ba l ance de carga con HAProxy: Instalaci n 4. Ba l ance

4. Balance de carga con HAProxy: Configuraci n

n 4. Ba l ance de carga con HAProxy: Configuraci n 5. Ba l ance de

5. Balance de carga con HAProxy: Prueba de instalaci n y conclusiones

carga con HAProxy: Prueba de instalaci n y conclusiones T T i i t t t

TT iitttteeaarr

instalaci n y conclusiones T T i i t t t t e e a a

Me gusta

A 11 les gusta una página. Reg strate para ver qué les gusta a tus amigos.

Sobre el Autor

Matias Banchoff Emprendedor iniciando 3-ik y completando una licenciatura en Informática en la U.N.L.P. Apasionado por las redes, los servidores y sin hacer a un lado la programación.

ltimos artículos:

Balance de carga con HAProxy: Prueba de instalaci n y conclusiones Balance de carga con
Balance de carga con HAProxy: Prueba de instalaci n y conclusiones
Balance de carga con HAProxy: Configuraci n
Balance de carga con HAProxy: Instalaci n
Sesiones en el balance de carga con HAProxy

3.758 Lecturas 8 Comentarios Archivado en: Hosting, Optimización, balance, protocolos, servidores