Ubuntu: Автоматическая остановка/запуск/перезапуск зависимых служб

Ubuntu: Автоматическая остановка/запуск/перезапуск зависимых служб

У меня есть небольшой кластер из 2 серверов Apache/PHP, работающих под управлением HAProxy, подключенных к 2 кластеризованным серверам MySQL. Сайты обслуживаются с обоих серверов Apache, а DNS RR используется для отказоустойчивости и грубой балансировки нагрузки.

Диаграмма:

Apache/PHP -- HAProxy -- MySQL
                      \/
                      /\
Apache/PHP -- HAProxy -- MySQL

(извините за отсутствие навыков работы с ASCII-графикой!)

Проблема, с которой я столкнулся, заключается в том, что периодически возникают сбои в работе сети между одним из серверов Apache/PHP/HAProxy и обоими серверами MySQL.

Однако поскольку Apache все еще работает, он начинает выдавать ошибки всякий раз, когда запрос зависит от доступности MySQL (как и следовало ожидать!).

В идеале Apache следует остановить, если MySQL недоступен, и, по возможности, перезапустить автоматически, когда MySQL снова станет доступен.

Это приведет к тому, что клиентские запросы будут обрабатываться другим сервером Apache без какого-либо ручного вмешательства.

Кто-нибудь знает пакет, который можно настроить так, чтобы он делал это «из коробки»?

решение1

Pacemaker — это менеджер ресурсов кластера, который можно настроить для обеспечения ограничений местоположения и порядка для ваших служб. Если какая-либо операция монитора дает сбой, кластер может перезапустить зависимые службы в указанном порядке.

Более подробную информацию о проекте Pacemaker можно найти на сайте ClusterLabs:http://clusterlabs.org/

Связанный контент