Как реализовать переключение IP адресов?

Вопрос такой — нужно реализовать переключение IP адресов для MySQL серверов.

Есть 3 сервера. 1 главный мастер, 2 и 3 — пассивные мастера.

Есть 2 айпишника, один из них должен при падении 1 сервера перемещаться на 2, второй ip — на 3 сервер.

В нормальном состоянии оба этих ip на 1 сервере.

После восстановления первого не перемещать обратно (т.е. не автоматически, а вручную).


В какую сторону копать?
  • Вопрос задан
  • 3267 просмотров
Решения вопроса 1
dgeliko
@dgeliko
Corosync и Heartbeat это из пушки по воробьям. Благодаря своему функционалу они слишком избыточны для этого и глючны. Мы использовали в продакшене и то и то, оба выдавали финты ушами, благодаря чему проекты заваливались на ровном месте. На данный момент для «плавающего» IP мы используем vrrpd — посмотрите в его сторону, выполняет свою функцию на ура.
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
@vimvim
Судя по характеру вопроса, Вам нужно организовать резервирование MySQL сервера с возможность прозрачного для клиентов переключения на резервные сервера в случае падения главного? Если так, то это называется MySQL Load Balancer.

Фактически для этой задачи можно обойтись 1 IP адресом ( видимым клиентам MySQL ) который будет присовен Load Balancer instance, который в свою очередь принимая MySQL запросы от клиентов будет переадресовывать их ( в режиме proxy ) соотвествующему MySQL Server.

Кроме переадресации запросов, задачей Load Balancer так же будет периодическое обращение к MySQL серверам и определение их состояния. В случае сбоя одного из серверов ( например master ) он автоматически будет помечен как offline и запросы будут переадресовываться следующему.

Вот некоторая информация на эту тему: barkingiguana.com/2008/07/20/load-balanced-highly-available-mysql-on-ubuntu-804/
Ответ написан
Комментировать
ivnik
@ivnik
Посмотрите в сторону corosync или heartbeat
Ответ написан
Комментировать
opium
@opium
Просто люблю качественно работать
У вас будет крайне глючная схема, так как надо будет менять и конфиги в mysql и это в любом случае простой + если ещё mysql запутается что откуда синкает определенная десинхронизация серверов.
Самое правильное заложить это в самом приложении или реализовать в mysql proxy
Вам метод это метод верной смерти для админа.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы