Отказоустойчивость Mysql master-master на основе Keepalived

Автор:human

Отказоустойчивость Mysql master-master на основе Keepalived

Keepalived позволяет выполнять балансировку трафика и повышает отказоустойчивость за счет виртуального IP на основе протокола VRRP. Для нашей конфигурации мы не будем использовать балансировку трафика, а только настроем виртуальный IP для двух Mysql серверов, работающих в режиме master-master.
Имеем следующие исходные данные:

10.1.11.11 — виртуальный ip, на который маршрутизируются mysql соединения
10.1.11.10 — mysql сервер test1
10.1.11.9 — mysql сервер test2

Mysql на серверах test1 и test2 находятся в master-master репликации, запись одновременно происходит только на один сервер. В случае падение одного из серверов, виртуальный ip автоматически переключается на второй сервер. При восстановление работоспособности сервера возможна автоматическая обратная миграция виртуального ip или же можно ее отключить с помощью опции (nopreempt).
Установку и конфигурацию keepalived будем осуществлять в дистрибутиве RHEL6. Самую последнюю версию keepalived можно скачать с официального сайта. Установка может быть выполнена с помощью исходных кодов или же предварительно создав rpm пакет из исходников, как было описано в предыдущей статье.
Установим keepalived

Отредактируем конфигурационный файл на первом сервере test1:

Скрипт можно создать с помощью следующего мануалы, который описывает процесс отправки сообщений с помощью mutt. Для конфигурации keepalived на втором сервере скопируем конфигурационный файл /etc/keepalived/keepalived.conf и внесем изменения, которые были указаны в комментариях.
Скрипт проверки работоспособности mysql очень простой и состоит из одной строчки, для удобства логирование событий переключения keepalived и проверки доступности mysql обьеденим в один скрипт:

Необходимо скопировать скрипт проверки mysql на второй сервер test2 и сделать его исполняемым:

Запустим keepalived на обоих серверах и проверим, что был поднят виртуальный ip:

Можно протестировать несколько сценариев работы keepalived:
— остановка mysql на мастер сервере
— остановка сетевого подключения на мастер сервере
— перезагрузка ОС на мастер сервере
Для проверки корректной работый необходимо проверить:
— почтовые уведомления
— логи /var/log/messages и /var/tmp/keepalived.log на обоих серверах
— состояния виртуального ip на обоих серверах

— время переключения и доступности mysql (выполняем постоянные подключения к mysql во время переезда VIP):

Об авторе

human administrator

    Оставить ответ

    Войти с помощью: 

     

    Яндекс.Метрика