Симптом
В инвентаре числятся две ноды одной страны — казалось бы, отказоустойчивая пара: ляжет одна, останется вторая. По факту при отказе падают обе разом, и резерва нет.
Причина
Две записи в панели с разными IP на деле обслуживаются одним физическим сервером: один хост с двумя адресами на разных интерфейсах и двумя экземплярами процесса ноды. В инвентаре они выглядят независимыми, но делят одно железо, одно электропитание, один канал. Отказ хоста уносит обе «ноды» одновременно. Формально резерв есть, физически — нет.
Обнаруживается сверкой физической идентичности, а не IP: совпадающий machine-id, одинаковый hostname, два адреса на одной машине.
Решение
- Автоматизировать детект «две логические ноды на одном физическом хосте»: собирать
machine-idи hostname с узлов и помечать пары, где разные записи парка сидят на одном железе. - Считать такую пару единой точкой отказа в модели надёжности. Для реального резерва разносить ноды на разные физические хосты — лучше у разных провайдеров и в разных локациях.
Вывод. Резервирование считается по общим точкам отказа, а не по числу записей в инвентаре. Разные IP, разные имена и даже разные процессы не дают отказоустойчивости, если под ними одно железо, питание и канал. Проверяйте физическую независимость реплик по машинным идентификаторам — иначе «пара для надёжности» окажется одной точкой отказа.