Balanceo De Carga MYSQL Con HAPROXY
Enviado por shogun • 18 de Septiembre de 2012 • 784 Palabras (4 Páginas) • 827 Visitas
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
...