Вот, скажем, ElasticSearch. Для того, чтобы
избежать ситуации split brain, надо конфигурировать три узла - чтобы при потере любого из них оставшиеся смогли выбрать главного. Допустим, один из них может не хранить данные, а только участовать в выборах - но это всё равно процесс, который надо где-то гонять.
А если у меня есть WSFC (Windows Server Failover Cluster) о двух серверах + witness (общий диск или общая папка на третьем хосте), то почему бы не гонять ElasticSearch как "роль" на этом кластере? Это ж просто Windows service, в конце концов. На одном сервере опустили - на другом тут же подняли. Нужен общий диск для данных, конечно, что будет мигрировать вместе с сервисом.
Да, не будет распределения нагрузки и будет некоторый downtime во время фэйловера. Но если это пофигу, то вай бы и нот, действительно?
Update: не, для узлов с данными идея плоха. Фэйловер-то отрабатывается гладко, но только активация шардов может занять кучу времени, во время которого кластер будет в red state.
Зато если у нас есть узел кластера, который занимается исключительно выборами мастера или становится мастером сам, но данных не содержит - то его посадить на WSFC вполне реально. Фэйловер занимает секунд 15, и никому от этого плохо не становится - максимум роль мастера перейдёт к другому узлу.
Если у нас есть множество кластеров ElasticSearch о двух серверах, то можно создать один такой центальный WSFC, который будет гонять множество таких вот "master-only" узлов - один на кластер.