У меня есть два узла, полное переключение 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>
...