Я намагаюся налаштувати активний / пасивний (2 вузли) кластер Linux-HA з коросинхронізацією та кардіостимулятором, щоб підтримувати і працювати з DatagreSQL-Database. Він працює через DRBD та сервіс-ip. Якщо node1 виходить з ладу, node2 повинен перебрати. Те саме, якщо PG працює на node2, і він не працює. Все працює добре, крім речі STONITH.
Між вузлами є виділений HA-з'єднання (10.10.10.X), тому у мене є така конфігурація інтерфейсу:
eth0 eth1 host
10.10.10.251 172.10.10.1 node1
10.10.10.252 172.10.10.2 node2
Stonith увімкнено, і я тестую агента ssh для вбивства вузлів.
crm configure property stonith-enabled=true
crm configure property stonith-action=poweroff
crm configure rsc_defaults resource-stickiness=100
crm configure property no-quorum-policy=ignore
crm configure primitive stonith_postgres stonith:external/ssh \
params hostlist="node1 node2"
crm configure clone fencing_postgres stonith_postgres
crm_mon -1
показує:
============
Last updated: Mon Mar 19 15:21:11 2012
Stack: openais
Current DC: node2 - partition with quorum
Version: 1.0.9-74392a28b7f31d7ddc86689598bd23114f58978b
2 Nodes configured, 2 expected votes
4 Resources configured.
============
Online: [ node2 node1 ]
Full list of resources:
Master/Slave Set: ms_drbd_postgres
Masters: [ node1 ]
Slaves: [ node2 ]
Resource Group: postgres
fs_postgres (ocf::heartbeat:Filesystem): Started node1
virtual_ip_postgres (ocf::heartbeat:IPaddr2): Started node1
postgresql (ocf::heartbeat:pgsql): Started node1
Clone Set: fencing_postgres
Started: [ node2 node1 ]
Проблема полягає в тому, що коли я перериваю зв’язок між інтерфейсами eth0, він вбиває обидва вузли . Я думаю, що це проблема з кворумом, адже всього 2 вузла. Але я не хочу додавати 3-й вузол лише для обчислення правильного кворуму.
Чи є ідеї для вирішення цієї проблеми?
crm_mon
коли ваш кластер знаходиться в невдалому стані?