Кардиостимулятор - кластер не переходит на другой узел после отключения интерфейса
У меня следующий сценарий в Corosync + Pacemaker
Node1:
eth0: 10.143.0.21/24
eth1: 10.10.10.1/30 (Corosync Comunication)
eth2: 192.168.5.2/24
Node2:
eth0: 10.143.0.22/24
eth1: 10.10.10.2/30 (Corosync Comunication)
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 интерфейса, поэтому я решил добавить тест пинга больше
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 одновременно.
2 ответа
Вы должны сообщить 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"
Вам необходимо настроить оба интерфейса в кольце синхронизации.
Пример:
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