ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Balanceo De Carga MYSQL Con HAPROXY

shogun18 de Septiembre de 2012

784 Palabras (4 Páginas)851 Visitas

Página 1 de 4

Balanceando la carga de MySQL con HAProxy

0. Índice de contenidos.

• 1. Entorno.

• 2. Introducción.

• 3. Vamos al lío.

• 4. Probamos el resultado.

• 5. Conclusiones.

1. Entorno

Este tutorial está escrito usando el siguiente entorno:

• Hardware: Portátil Mac Book Pro 17" (2,6 Ghz Intel Core i7, 8 GB DDR3)

• Sistema Operativo: Mac OS X Snow Leopard 10.6.4

• 5 máquinas virtuales con Ubuntu Server 10.4 en VirtualBox

• MySQL 5.1

• MySQL Cluster

• HAProxy 1.3.22

2. Introducción

En un tutorial anterior ya vimos como conseguir alta disponibilidad con MySQL montando un cluster: Montar un cluster de MySQL. El objetivo del presente tutorial es añadir un balance de carga a nuestra solución de alta disponibilidad.

Las soluciones de balance de carga pueden ser tanto hardware como software. En este caso, nosotros vamos a optar por una solución software llamada HAProxy que instalaremos en otra máquina virtual independiente y que funcionará de proxy con el resto de nodos SQL de la arquitectura, a fin de repartir las peticiones.

3. Vamos al lío

Lo primero que tenemos que hacer es instalar una nueva máquina virtual. Esta máquina solo va a actuar de proxy balanceador por lo que lo único que tenemos que instalar es el paquete HAProxy.

view plainprint?

1. sudo apt-get install haproxy

Una vez instalado vamos a configurarlo para que balance la carga de MySQL. Para ello abrimos con un editor el fichero /etc/haproxy/haproxy.cfg que se ha creado con contenido por defecto en la instalación del paquete.

Esta es una posible configuración para nuestro caso:

view plainprint?

1. global

2. maxconn 4096

3. user haproxy

4. group haproxy

5. daemon

6.

7. defaults

8. mode http

9. option tcplog

10. option dontlognull

11. retries 3

12. option redispatch

13. contimeout 5000

14. clitimeout 50000

15. srvtimeout 50000

16.

17. listen mysql-cluster 0.0.0.0:3307

18. mode tcp

19. balance roundrobin

20.

21. server nodo1 192.168.1.15:3306 check

22. server nodo2 192.168.1.16:3306 check

23. server nodo3 192.168.1.14:3306 check

La parte importante de la configuración se encuentra en la sección [listen] donde estamos indicando que el proxy escuche por el puerto 3307, y que las peticiones que le lleguen por ese puerto las reparta en base a un algoritmo round robin entre los servidores que se especifican. En caso de tener unos servidores más potentes que otros, podríamos definir un peso para cada uno de forma que los más potentes tengan más posibilidades de recibir más peticiones. Para hacer esto añadimos a la definición de los servers el peso que le damos de esta forma:

view plainprint?

1. listen mysql-cluster 0.0.0.0:3307

2. mode tcp

3. balance roundrobin

4.

5. server nodo1 192.168.1.15:3306 check weight 10

6. server nodo2 192.168.1.16:3306 check weight 50

7. server nodo3 192.168.1.14:3306 check weight 40

Reiniciamos el proxy indicándole donde está el fichero de configuración:

view plainprint?

1. sudo haproxy -f /etc/haproxy/haproxy.cfg

Y ya tenemos el proxy listo para empezar a recibir peticiones.

4. Probamos el resultado

Lo primero que tenemos que hacer para probar el resultado es crear y dar permisos de conexión remota al mismo usuario en los distintos nodos SQL que están referenciados en la configuración del proxy.

Estos

...

Descargar como (para miembros actualizados) txt (5 Kb)
Leer 3 páginas más »
Disponible sólo en Clubensayos.com