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

может сердцебиение заметить остановленную службу и перезапустить ее

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

Что мне хотелось бы знать:

Если на сервере 1 происходит сбой не полностью, но неожиданно останавливается только одна из служб, можно ли настроить Heartbeat для отслеживания и запуска?

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

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

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

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

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

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

Если на сервере 1 происходит сбой не полностью, но неожиданно останавливается только одна из служб, можно ли настроить Heartbeat для отслеживания и запуска?

Конечно, сердцебиение версия 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.