Pull to refresh
70.27
Слёрм
Учебный центр для тех, кто работает в IT

Балансировка MySQL

Reading time 2 min
Views 19K
Это краткая заметка как настроить отказоустойчевый кластер с балансировкой нагрузки из 2 MySQL серверов. Исходные данные 2 свежеустановленных MySQL сервера. Необходимо настроить работу таким образом, что бы в нормальной ситуации запросы балансируются между MySQL серверами, в случае выхода из строя одного из MySQL серверов все запросы идут ко второму.



Для начала необходимо настроить репликацию MySQL типа master-master. Как это сделать, уверен найти не проблема. Так что опустим этот шаг. Что бы настроить балансировку, устанавливаем пакет HAProxy, socat (для просмотра статусов базы данных).

На одном из серверов, выполняем запрос, который создаст пользователя для просмотра статуса БД:

INSERT INTO mysql.user (Host, User) values ('haproxy_ip', 'haproxy'); FLUSH PRIVILEGES;



Теперь конфигурируем HAproxy, собственно сам конфиг, а потом немного комментариев:

global

    log         127.0.0.1 local2
    chroot      /var/lib/haproxy
    pidfile     /var/run/haproxy.pid
    maxconn     4000
    user        haproxy
    group       haproxy
    daemon
    stats socket /var/lib/haproxy/stats mode 777 level admin
listen mysql
    bind 0.0.0.0:3306  
    timeout connect 10s
    timeout client 1m
    timeout server 1m
    mode tcp
    option mysql-check user haproxy
    server server_db1 <FQDN сервера>:3306 weight 1  check inter 1s rise 3 fall 1
    server server_db2  <FQDN сервера>:3306 weight 1  check inter 1s rise 3 fall 1


option mysql-check user haproxy — задает под каким пользователя подключаться к mysql для проверки.
server server_db1 <FQDN сервера>:3306 weight 1 check inter 1s rise 3 fall 1 — задается отображаемое имя сервера, адрес сервера, количество проверок до перехода в состояние недоступности и сколько проверок до перехода в состояние доступен.

Ну и напоследок, для проверки состояния серверов из командной строки можно использовать команду:

echo "show stat" | socat stdio /var/lib/haproxy/stats | cut -d, -f1,2,18,20,21


Автор: системный администратор компании Magvai69
Tags:
Hubs:
+5
Comments 4
Comments Comments 4

Articles

Information

Website
slurm.io
Registered
Founded
Employees
51–100 employees
Location
Россия
Representative
Антон Скобин