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

Я очень новичок в конфигурации сети 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 на этих машинах просто отключив кабель от сети. Он работает нормально, и 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

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

1
задан 29 July 2019 в 23:07
1 ответ

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

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

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

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

1
ответ дан 3 December 2019 в 23:02

Теги

Похожие вопросы