LINUX.ORG.RU
ФорумAdmin

Прошу помощи с pacemaker ha кластер centos7

 , , ,


0

1

Добрый день!

Вопрос тривиальный, но моих познаний для его решения не хватает. Прошу совета/помощи бывалых.

Есть три ноды в ha кластере с виртуальным ip адресом. Необходимо настроить кластер так, чтобы активная нода отправляла сетевой трафик с айпишника виртуального ip адреса кластера.

Диспозиция:

node01 = 10.0.0.11,

node02 = 10.0.0.12,

node03 = 10.0.0.13.

Виртуальный ip адрес = 10.0.0.10.

Указанные ресурсы:

pcs resource create virt_ip ocf:heartbeat:IPaddr2 ip=10.0.0.10 cidr_netmask=24 op monitor interval=30s on-fail=restart

pcs resource create src_ip ocf:heartbeat:IPsrcaddr ipaddress=10.0.0.10 cidr_netmask=24

pcs constraint colocation add src_ip with virt_ip score=INFINITY

pcs constraint order virt_ip then src_ip

pcs status при поднятой первой ноде

Online: [ node01 node02 node03 ]

Full list of resources:

virt_ip (ocf::heartbeat:IPaddr2): Started node01

src_ip (ocf::heartbeat:IPsrcaddr): Started node01

Failed Actions:

  • src_ip_start_0 on node02 ‘not installed’ (5): call=27, status=complete, exitreason=‘We are not serving [10.0.0.10], hence can not make it a preferred source address’,

    last-rc-change=‘Wed Nov 27 19:29:19 2019’, queued=1ms, exec=40ms

  • src_ip_start_0 on node03 ‘not installed’ (5): call=27, status=complete, exitreason=‘We are not serving [10.0.0.10], hence can not make it a preferred source address’,

    last-rc-change=‘Wed Nov 27 19:29:19 2019’, queued=0ms, exec=91ms

Daemon Status: corosync: active/enabled pacemaker: active/enabled pcsd: active/enabled

На активной ноде (node01) всё работает корректно. При её выключении айпишник передаётся другой ноде, но не запускается ресурс src_ip (IPsrcaddr). Также во время выключения активной ноды мне приходится долго смотреть на «A stop job is running for Pacemaker High Availability Cluster Manager». После выключения активной ноды по питанию (т.к. штатное выключение не происходит за 5 минут, «вися» на этом статусе) на следующей активной ноде происходит следующее:

Ситуация с кластером при выключенной первой ноде:

Online: [ node02 node03 ]

OFFLINE: [ node01 ]

Full list of resources:

virt_ip (ocf::heartbeat:IPaddr2): Started node02

src_ip (ocf::heartbeat:IPsrcaddr): Stopped

Failed Actions:

  • src_ip_start_0 on node02 ‘not installed’ (5): call=27, status=complete, exitreason=‘We are not serving [10.0.0.10], hence can not make it a preferred source address’,

    last-rc-change=‘Wed Nov 27 19:29:19 2019’, queued=1ms, exec=40ms

  • src_ip_start_0 on node03 ‘not installed’ (5): call=27, status=complete, exitreason=‘We are not serving [10.0.0.10], hence can not make it a preferred source address’,

    last-rc-change=‘Wed Nov 27 19:29:19 2019’, queued=0ms, exec=91ms

. . . . P.S. Или мне придётся прописывать «ip route add default via 10.0.0.1 src 10.0.0.10» на всех нодах?

Если на остальных нодах при этом отсутствие default gateway это нормально, то можно просто ocf:heartbeat:Route использовать.

Если при этом надо ещё default менять - я решал этот допиливанием ocf:heartbeat:Route - https://github.com/ClusterLabs/resource-agents/blob/master/heartbeat/Route - под свои нужды, можно добавить параметр под старый гейт и при старте проверять, есть ли существующий маршрут, заменять его и при остановке возвращать обратно.

alestro ()

Спасибо за рекомендацию. Route тоже привёл к этой же ошибке.

Заработало следующим образом: от безысходности установил crmsh и настроил на 100% аналогичную конфигурацию через него вместо pcs. Завелась мгновенно. В данный момент pcs status выдаёт корректное состояние ресурсов. С чем это может быть связано - не понимаю.

При этом осталась проблема с выключением/перезагрузкой сервера. Сервер не выключается штатно. В /var/log/messages вижу

Stopping crmd

Stopping Pacemaker High Availability Cluster Manager…,

но отсутствуют «Stopped» на эти демоны. При удалении ресурса src_ip (IPsrcaddr) выключение сервера проходит штатно.

При выключении сервера по питанию оба ресурса (IPaddr2 и IPsrcaddr) успешно переезжают на другую ноду. До выключения по питанию (т.е. пока сервер находится в режиме выключения «shutdown -P now») - нет. Статус:

virt_ip (ocf::heartbeat:IPaddr2): Started node01

src_ip (ocf::heartbeat:IPsrcaddr): node01 (blocked)

Failed Actions:

src_ip_stop_0 on node01 ‘unknown error’ (1): call=15, status=complete, exitreason=‘command ‘ip route replace dev eth0’ failed’,

last-rc-change=‘Thu Nov 28 11:44:51 2019’, queued=0ms, exec=578ms

В /var/log/pacemaker.log и /var/log/cluster/corosync.log тишь да гладь.

Буду рад услышать советы

adragushin ()