Настройка: - ОС: CentOS 7, последние версии на Corosync, Pacemaker и PCS - двухузловой активный / активный кластер с виртуальным IP-адресом - на обоих узлах Exim работает для отправки почты (SMTP), ничего особенного в конфигурации - когда Exim выходит из строя на одном из узлов, узел больше не должен участвовать в ответах на виртуальный IP-адрес, пока Exim не будет восстановлен и запущен
Как я пытался заставить это работать: - клонированный ресурс ocf: heartbeat: IPaddr2 для виртуального IP - клонированный ресурс systemd: exim для просмотра Exim с опцией on-fail = "standby"
Проблема: Изначально все работает как надо. Когда один из узлов не может запустить exim, он останавливается правильно, и узел больше не участвует в виртуальном IP. Проблема в том, что каким-то образом после остановки и запуска одного из узлов exim перезапускается (как и должно), но монитор возвращает «не работает». Когда ресурс Exim не настроен с on-fail = "standby", все работает как задумано, и я могу запускать / останавливать Exim и один из узлов столько, сколько захочу.
Сообщение в журнале:
Jan 28 16:17:30 testvm101 crmd[14183]: notice: process_lrm_event: LRM operation exim:0_monitor_30000 (call=141, rc=7, cib-update=211, confirmed=false) not running
Jan 28 16:17:30 testvm101 crmd[14183]: warning: status_from_rc: Action 20 (exim:0_monitor_30000) on testvm101 failed (target: 0 vs. rc: 7): Error
Jan 28 16:17:30 testvm101 crmd[14183]: warning: update_failcount: Updating failcount for exim:0 on testvm101 after failed monitor: rc=7 (update=value++, time=1422458250)
Вывод состояния ПК:
[root@testvm101 ~]# pcs status
Cluster name: smtp_cluster
Last updated: Wed Jan 28 16:31:44 2015
Last change: Wed Jan 28 16:17:13 2015 via cibadmin on testvm101
Stack: corosync
Current DC: testvm101 (1) - partition with quorum
Version: 1.1.10-32.el7_0.1-368c726
2 Nodes configured
4 Resources configured
Node testvm101 (1): standby (on-fail)
Online: [ testvm102 ]
Full list of resources:
Clone Set: virtual_ip-clone [virtual_ip] (unique)
virtual_ip:0 (ocf::heartbeat:IPaddr2): Started testvm102
virtual_ip:1 (ocf::heartbeat:IPaddr2): Started testvm102
Clone Set: exim-clone [exim] (unique)
exim:0 (systemd:exim): Started testvm102
exim:1 (systemd:exim): Started testvm102
Failed actions:
exim:0_monitor_30000 on testvm101 'not running' (7): call=141, status=complete, last-rc-change='Wed Jan 28 16:17:30 2015', queued=6ms, exec=15002ms
Насколько я понимаю, на момент сообщения Exim запущен и работает на systemd. Я уже пытался указать опцию start-delay, надеясь, что это изменит ситуацию (но это не так).
При беге: pcs resource cleanup exim-clone
чтобы очистить счетчик сбоев, все работает до тех пор, пока действие монитора не появится в первый раз, затем узел, помеченный как резервный, переключается другим ...
Пример: Состояние после сбоя монитора Exim на узле testvm102:
[root@testvm101 ~]# pcs status
...
Node testvm102 (2): standby (on-fail)
Online: [ testvm101 ]
Full list of resources:
Clone Set: virtual_ip-clone [virtual_ip] (unique)
virtual_ip:0 (ocf::heartbeat:IPaddr2): Started testvm101
virtual_ip:1 (ocf::heartbeat:IPaddr2): Started testvm101
Clone Set: exim-clone [exim] (unique)
exim:0 (systemd:exim): Started testvm101
exim:1 (systemd:exim): Started testvm101
Failed actions:
exim:0_monitor_30000 on testvm102 'not running' (7): call=150, status=complete, last-rc-change='Wed Jan 28 16:33:59 2015', queued=5ms, exec=15004ms
Я запускаю очистку ресурса exim-resource, чтобы сбросить счетчик сбоев:
[root@testvm101 ~]# pcs resource cleanup exim-clone
Resource: exim-clone successfully cleaned up
По прошествии небольшого времени статус выглядит хорошо (и на самом деле также хорошо работает):
[root@testvm101 ~]# pcs status
...
Online: [ testvm101 testvm102 ]
Full list of resources:
Clone Set: virtual_ip-clone [virtual_ip] (unique)
virtual_ip:0 (ocf::heartbeat:IPaddr2): Started testvm101
virtual_ip:1 (ocf::heartbeat:IPaddr2): Started testvm102
Clone Set: exim-clone [exim] (unique)
exim:0 (systemd:exim): Started testvm101
exim:1 (systemd:exim): Started testvm102
В следующий раз, когда будет выполнено действие монитора, проверка на другом узле завершится ошибкой:
[root@testvm101 ~]# pcs status
...
Node testvm101 (1): standby (on-fail)
Online: [ testvm102 ]
Full list of resources:
Clone Set: virtual_ip-clone [virtual_ip] (unique)
virtual_ip:0 (ocf::heartbeat:IPaddr2): Started testvm102
virtual_ip:1 (ocf::heartbeat:IPaddr2): Started testvm102
Clone Set: exim-clone [exim] (unique)
exim:0 (systemd:exim): Started testvm102
exim:1 (systemd:exim): Started testvm102
Failed actions:
exim:0_monitor_30000 on testvm101 'not running' (7): call=176, status=complete, last-rc-change='Wed Jan 28 16:37:10 2015', queued=0ms, exec=0ms
Может что-то забываю?
Цените помощь