Может сердцебиение заметить остановленный сервис и перезапустить его
У меня есть два узла, полный отказоустойчивый 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 не будет успешно запускать ресурсы с холодной загрузки, когда присутствует неисправный узел