В настоящее время я настраиваю двухузловой кластер высокой доступности на базе CentOS с DRBD. Большинство сервисов упаковано в виртуальные машины с возможностью миграции.
Я еще не решил, где разместить некоторые основные службы, такие как: dhcp, ldap, dns, которые критичны для всей сетевой инфраструктуры. Есть две возможности:
Какая лучшая практика?
Избыточный, особенно для чего-то такого маленького, что также имеет встроенный функционал кластера - как dns, так и dhcp имеют реализации аварийного переключения.
Я полностью за отказоустойчивость HA на уровне виртуальных машин, но там, где это имеет смысл, не за облегченную базовую виртуальную машину, которая предоставляет сверхкритичные, но также неинтенсивные службы памяти и ЦП.
После некоторого исследования проблемы я пришел к выводу, что упаковка основных служб в виртуальную машину и ретрансляция при отказе на уровне виртуальной машины не является хорошей практикой:
Более того, в руководстве по настройке двухузлового кластера Miscrosoft рекомендуется размещать контроллеры домена извне, даже не на аппаратном обеспечении кластера. По основным причинам, я считаю, что основные сервисы должны быть максимально изолированы от всех остальных.
В моем случае (CentOS) основная проблема заключается в том, что из трех рассматриваемых мной служб (ldap, dns, dhcp) только один (ldap - 389 Server) имеет полную функциональность аварийного переключения. Спасибо TomTom, который сообщил мне, что другие могут использовать LDAP в качестве бэкэнда.
В поисках стабильного интегрированного решения я обнаружил, что проект FreeIPA и его реализация RedHat в Identity Management Server - это именно то, что мне нужно.