Назад | Перейти на главную страницу

Heartbeat или bash или что-то еще для тривиального управления кластером?

Я думаю, что то, что я пытаюсь сделать, может быть достигнуто с помощью сценариев bash, но мне определенно нужна помощь здесь! Хорошо, вот сценарий:

У меня есть двухузловой кластер MySQL с репликацией Master-Master. Теперь рассматриваемое приложение (SOGo) работает на этих двух узлах. В любой момент времени оба экземпляра приложения должны выполнять чтение / запись в одну реплику, очевидно, во избежание дублирования записей.

Итак, если экземпляр A записывает в свою локальную базу данных, то B также удаленно записывает в эту базу данных. И наоборот.

Если A выходит из строя, мне нужно заменить директиву конфигурации в экземпляре B SOGo, чтобы он теперь использовал свою локальную базу данных. Это можно сделать с помощью простого оператора sed и перезапуска службы.

После этого, когда A вернется снова, я могу либо проинструктировать A записать в копию B, либо попросить B прекратить запись в его локальную копию и вместо этого записать в копию A.

Итак, что было бы лучше всего сделать для автоматизации этой процедуры?

Вы можете установить пакет heartbeat для обеспечения необходимой функциональности. Heartbeat можно настроить для назначения IP-адреса, называемого виртуальным IP (VIP), для текущей активной машины. Этот IP-адрес должен отличаться от двух других IP-адресов, назначенных обоим серверам.

Итак, ваше приложение может использовать этот VIP для доступа к базе данных. Когда один сервер выходит из строя, VIP будет автоматически перемещен на другой сервер. Таким образом, ваше приложение не нужно перезапускать и / или настраивать для использования другого IP-адреса. Возможно, вам просто нужно проверить соединение!