Назад | Перейти на главную страницу

Pacemaker - кластер не переходит на другой узел после отключения интерфейса.

У меня следующий сценарий в Corosync + Pacemaker

Узел 1:

eth0: 10.143.0.21/24

eth1: 10.10.10.1/30 (связь Corosync)

eth2: 192.168.5.2/24

Узел 2:

eth0: 10.143.0.22/24

eth1: 10.10.10.2/30 (связь Corosync)

eth2: 192.168.5.3/24

Плавающие IP-адреса

eth0: 10.143.0.23/24

eth2: 192.168.5.1/24

Интерфейс eth1 используется только для связи corosync.

Например, я отключил сетевой кабель от интерфейса eth0, но ничего не произошло, в другом примере я отключил сетевой кабель от интерфейса eth2, и у меня тот же результат, но я отключил сетевой кабель от интерфейса eth1 (связь corosync) и проход плавающего IP-адреса на другой узел.

Как я могу сделать так, чтобы при отключении любого интерфейса ресурсы переходили на другой узел?

С уважением

ОБНОВИТЬ

Я тестировал со следующими настройками

crm configure primitive PING-WAN ocf:pacemaker:ping params host_list="10.143.0.1" multiplier="1000" dampen="1s" op monitor interval="1s"
crm configure primitive Failover-WAN ocf:heartbeat:IPaddr2 params ip=10.143.0.23 nic=eth0 op monitor interval=10s meta is-managed=true
crm configure primitive Failover-LAN ocf:heartbeat:IPaddr2 params ip=192.168.5.1 nic=eth2 op monitor interval=10s meta is-managed=true
crm configure group Cluster Failover-WAN Failover-LAN
crm configure location Best_Connectivity Cluster rule pingd: defined pingd

У меня это работает, при отключении сетевого кабеля от eth0 и потере пинга до пункта назначения ресурсы 10.143.0.1 (шлюз) были перемещены на другой узел, но мой сценарий - это 3 интерфейса, поэтому я решил добавить тест ping еще

crm configure primitive PING-LAN ocf:pacemaker:ping params host_list="192.168.5.4" multiplier="1000" dampen="1s" op monitor interval="1s"

Но теперь необходимо потерять соединение с двумя хостами (10.143.0.1 и 192.168.5.4), чтобы ресурсы были перемещены на другой узел.

Я ищу информацию, но не могу заставить работать следующий сценарий:

Если узел теряет связь с любым хостом, который добавляет к тесту ping, другие ресурсы переходят к другому узлу без необходимости терять возможность подключения всех тестов ping одновременно.

Вам нужно сказать Pacemaker, что вы беспокоитесь о сбоях интерфейсов. Посмотрите на ocf:pacemaker:ping ресурс. Вы можете использовать этот агент-ресурс для проверки связи с другими списками хостов в сетях с разными интерфейсами, и Pacemaker отреагирует, если эти проверки связи не пройдут.

Если вы сгруппируете ocf:pacemaker:ping ресурсов или используйте ограничения, чтобы связать их с тем, чем вы управляете в Pacemaker, все они будут перемещаться вместе.

Кроме того, я готов поспорить, что когда вы отключите eth1 в ваших предыдущих тестах было видно, что IP-адрес не «перемещался», а скорее запускался на ОБЕИХ узлах кластера одновременно; к узлам кластера, они оба думали, что их одноранговый узел пропал. По сути, вы тестировали, что произойдет, если кластер разделится.

В этой заметке вам обязательно следует настроить второе избыточное кольцо в своей конфигурации Corosync, как предлагается в другом ответе, но это не даст желаемого эффекта.

ОБНОВЛЕНИЕ 0: Вы должны добавить оба IP-адреса к одному ping примитив host_list вместо добавления дополнительных ping примитив и установите failure_score на этом примитиве все, что приемлемо.

Из ocf:pacemaker:ping агент ресурсов (# crm ra info ocf:pacemaker:ping):

...
failure_score (integer):
Resource is failed if the score is less than failure_score.
Default never fails.

host_list* (string): Host list
A space separated list of ping nodes to count.
...

Что-то вроде: # crm configure primitive PING-O-DOOM ocf:pacemaker:ping params host_list="10.143.0.1 192.168.5.4" failure_score="2" op monitor interval="10s"

Вам необходимо настроить оба интерфейса в кольце corosync.

Пример:

pcs cluster auth node1 node2
pcs cluster setup --start --name zfs-cluster zfs-node1,zfs-node1-ext zfs-node2,zfs-node2-ext

Куда:

# Management addresses of both nodes
172.16.40.15    zfs-node1.ewwhite.net zfs-node1
172.16.40.16    zfs-node2.ewwhite.net zfs-node2

# Cluster ring address for heartbeat
192.168.91.1    zfs-node1-ext
192.168.91.2    zfs-node2-ext