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

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

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

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

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

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

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

1 ответ

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

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

Другие вопросы по тегам