У меня есть программное обеспечение кластера 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, но, возможно, кто-то попробовал это, может порекомендовать что-то, что практически работает таким образом.