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

Ресурсы НЕЧИСТЫ, когда я отключаю предпочтительный узел

Я очень новичок в конфигурации сети Linux

Я настроил linux pacemaker + corosync + stonith через ssh + drbd + nginx для 3 узлов.

статус ПК:


3 nodes configured
7 resources configured

Online: [ main-node second-node third-node ]

Full list of resources:

 ClusterIP      (ocf::heartbeat:IPaddr2):       Started main-node
 WebSite        (ocf::heartbeat:nginx): Started main-node
 Master/Slave Set: WebDataClone [WebData]
     Masters: [ main-node ]
     Slaves: [ second-node third-node ]
 WebFS  (ocf::heartbeat:Filesystem):    Started main-node
 ssh-fencing    (stonith:ssh):  Started third-node

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

Я тестирую стоунит на этих машинах, просто отключая кабель от сети. Он работает нормально, и Stonith убивает отключенную машину, когда она снова включается. Все остальные машины заботятся о кластере.

Проблема возникает, когда я отключаю компьютер, который предпочитает предоставлять ресурс WebSite. Тогда статус ПК на других подключенных машинах выглядит так:

3 nodes configured
7 resources configured

Node main-node: UNCLEAN (offline)
Online: [ second-node third-node ]

Full list of resources:

 ClusterIP      (ocf::heartbeat:IPaddr2):       Started main-node (UNCLEAN)
 WebSite        (ocf::heartbeat:nginx): Started main-node (UNCLEAN)
 Master/Slave Set: WebDataClone [WebData]
     WebData    (ocf::linbit:drbd):     Master main-node (UNCLEAN)
     Slaves: [ second-node third-node ]
 WebFS  (ocf::heartbeat:Filesystem):    Started main-node (UNCLEAN)
 ssh-fencing    (stonith:ssh):  Started third-node

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

И сайт не работает. Это почему? Разве другие узлы не должны предоставлять ресурсы?

SSH STONITH не является настоящим ограждением, и его не следует использовать в производственной среде, если вы не согласны с тем, что он может привести к определенным типам сбоев, как вы видите в своем тестировании.

Когда вы отсоединяете сетевой кабель узла, кластер будет пытаться STONITH узел, который исчез из кластера / сети. Агент SSH STONITH использует ту же сеть, которую вы отключили, чтобы попытаться отключить питание отсутствующего узла. Он не сможет этого сделать, пока сеть не будет восстановлена ​​(снова подключена). Поскольку кластер не будет предпринимать никаких действий (переключение при отказе), пока агент STONITH не отключит питание отсутствующего узла, у вас останутся службы UNCLEAN (зависшие).

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

Короче говоря, это ожидаемое поведение при использовании SSH STONITH, и для восстановления после тестируемого сценария требуются соответствующие устройства ограждения.