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

Какая установка устройства ограждения предотвратит взаимное STONITH в двухузловом кластере RHEL?

У меня есть программное обеспечение кластера Red Hat (corosync + rgmanager) на RHEL 6.6 на физических серверах Dell с iDRAC.

Этот кластер предназначен для приложения без сохранения состояния (stunnel, шлюз TLS), поэтому он не требует и не имеет общего диска. Я предпочитаю, чтобы этот кластер был как можно более простым, поэтому я предпочитаю не добавлять какой-либо диск кворума iSCSI (на данный момент вообще никакого qdisk).

Мой cluster.conf содержит:

    <cman expected_votes="1" two_node="1"/>

Если моя ссылка "сердцебиение" полностью не работает, мои тесты убедительно показывают, что это произойдет:

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

Они делают. Когда каждый узел узнает, что другой перестал отвечать, он попытается заблокировать другой. Это может быть похоже на перестрелку в ОК. Коралл, и побеждает тот узел, который быстрее всех выиграет (первым опередит другого). К сожалению, оба узла могут выйти из строя одновременно, потеряв весь кластер. (цитата из https://fedorahosted.org/cluster/wiki/FAQ/CMAN)

Может ли какое-либо устройство ограждения гарантировать, что такая перестрелка отключит только один узел? Разумеется, агенты iDRAC или vmWare не могут этого предотвратить.

Я думаю о каком-то PDU с поддержкой IPMI, который действует только последовательно, например: если есть запрос на отключение порта, этот запрос ожидает всех текущих запросов на отключение питания от других.

Я не могу проверить это в документации PDU, но, возможно, кто-то попробовал это, может порекомендовать что-то, что практически работает таким образом.