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

MySQL HA + LB: Keepalived + HAProxy против только Keepalived

Сценарий

Для моего приложения я хотел бы иметь высокодоступную установку MySQL / MariaDB. Я нахожу Galera Cluster быть интересным в этом случае из-за автоматического резервирования данных и немедленной доступности. Мои цели таковы:

  1. Скрыть сложность кластера от приложения (кластер может стать больше и изменить топологию, добавив некоторые асинхронные узлы)

  2. Прозрачная обработка отказа вне приложения

  3. Обеспечьте балансировку нагрузки для некоторых распространенных операций записи и чтения для обоих синхронных экземпляров,

  4. Тем не менее разрешить приложениям доступ к определенным, например async, узел (ы), который оптимизирован, скажем, для последовательного чтения для аналитики. Если этот узел выйдет из строя, я бы хотел, чтобы приложение переключилось на стандартный экземпляр Galera, чтобы все оставалось в рабочем состоянии.

Готово

Я прочитал много статей о том, как настроить высокую доступность и балансировку нагрузки. MySQL кластер с тандемом HAProxy и Keepalived, но ни один из них не объясняет, зачем вообще использовать этот дуэт для сценария MySQL / MariaDB / Galera. Некоторые примеры:

Когда дело доходит до назначения виртуального IP-адреса, этим занимается Keepalived на основе собственных скриптов для проверки работоспособности и VRRP.

Балансировка нагрузки также поддерживается Keepalived, реализовано несколько алгоритмов, с помощью которых LB-соединения связываются с пунктами назначения: https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Load_Balancer_Administration/ch-initial-setup-VSA.html

HAProxy предлагает некоторые расширенные функции для HTTP, но это не мой случай.

Вопрос

В чем преимущество использования HAProxy с участием Keepalived только что Keepalived для MySQL для сценария, представленного выше?