Может сердцебиение заметить остановленный сервис и перезапустить его

У меня есть два узла, полный отказоустойчивый IP работает для них очень хорошо - когда узел 1 не работает, узел 2 захватывает IP и запускает службы.

То, что я хотел бы знать, это:

если сервер 1 не полностью завершается сбоем, но только одна из служб неожиданно останавливается, можно ли настроить контрольный сигнал, чтобы следить за ним и запускать его?

РЕДАКТИРОВАТЬ: это возможно с кардиостимулятором?

цитата из http://clusterlabs.org/wiki/FAQ

Pacemaker поддерживает работу ваших приложений, когда они или машины, на которых они работают, выходят из строя

2 ответа

Решение

если сервер 1 не полностью завершается сбоем, но только одна из служб неожиданно останавливается, можно ли настроить контрольный сигнал, чтобы следить за ним и запускать его?

Конечно, сердцебиение версии 2 может сделать это.

С версией 1 ваш /etc/ha.d/haresources выглядит так:

master              129.79.136.4 apache

затем вы можете сгенерировать файл конфигурации heartbeat 2, выполнив:

python /usr/lib64/heartbeat/haresources2cib.py > /var/lib/heartbeat/crm/cib.xml

/var/lib/heartbeat/crm/cib.xml

...
    <resources>
        <group id="group_1">
            <primitive class="ocf" id="IPaddr_129_79_136_4" provider="heartbeat" type="IPaddr">
                <operations>
                    <op id="IPaddr_129_79_136_4_mon" interval="5s" name="monitor" timeout="5s"/>
                </operations>
                <instance_attributes id="IPaddr_129_79_136_4_inst_attr">
                    <attributes>
                        <nvpair id="IPaddr_129_79_136_4_attr_0" name="ip" value="129.79.136.4"/>
                    </attributes>
                </instance_attributes>
            </primitive>
            <primitive class="ocf" id="apache_2" provider="heartbeat" type="apache">
                <operations>
                    <op id="apache_2_mon" interval="120s" name="monitor" timeout="60s"/>
                </operations>
            </primitive>
        </group>
    </resources>
...

Но я бы посоветовал вам пойти с corosync а также Pacemaker,

Не используйте Heartbeat (v2). Совсем. Немедленно отойдите от него и выберите Pacemaker в качестве менеджера ресурсов кластера, а Corosync - уровень обмена сообщениями. Вы даже не найдете поддержки Heartbeat v2 ни на одном из различных каналов сообщества Linux HA, и на самом деле вас могут кричать на использование устаревшей технологии. Совершенно хорошие преемники Heartbeat существуют в Pacemaker и Corosync.

Pacemaker - это менеджер ресурсов кластера для стека высокой доступности Linux, разработанный специально для того, что вы просите. Он контролирует ресурсы (IP-адреса, сервисы, файловые системы, точки монтирования, маршруты и т. Д.) И может и попытается перезапустить их, если они потерпят неудачу. Конечно, это также делает намного больше, чем это.

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

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