Я изучаю методы кластеризации и высокой доступности и наткнулся на статью о настройке сети с парой серверов с использованием DRBD для репликации и пульса для мониторинга и аварийного переключения. В статье говорится, что у меня должно быть 2 сетевых адаптера на каждом сервере: оба eth0 идут в локальную сеть, и оба eth1 должны быть подключены друг к другу через перекрестный кабель, как на этом изображении:
Описание изображения к статье:
Чтобы обеспечить автоматическое переключение при отказе, пульс отслеживает первичный сервер следующим образом: 1. Вторичный сервер постоянно контролирует соединение с первичным сервером по кросс-кабелю, соединяющему два сервера. Если первичный недоступен, вторичный принимает статус первичного. 2. Основной сервер постоянно отслеживает подключения к высокодоступному сетевому устройству, например, маршрутизатору. Если сетевое устройство недоступно, оно передает управление вторичному серверу. Таким образом, переключение происходит автоматически в следующих сценариях: 1. Сбой сети для основного 2. Отказ оборудования, такого как источник питания, ЦП, ОЗУ и т. Д.
Это вызвало следующий вопрос:
Если контрольный сигнал на вторичном / пассивном сервере отслеживает первичный через eth1, что произойдет, если eth1 выйдет из строя на любом из серверов?
Мне кажется, что сердцебиение подумает, что первичный выключен, и активирует вторичный. Разве это не привело бы к возникновению состояния «раздвоения мозга»? Поскольку первичный сервер по-прежнему подключен к LAN через eth0 и работает, сломалась только связь периодического сигнала / репликации (eth1). Итак, теперь у нас будет два активных сервера одновременно?
Я все еще понимаю эту концепцию, извините, если я несу чушь.
Статья, которую вы читаете, скорее всего, давно устарела. Использование Heartbeat для управления ресурсами (остановка и запуск ресурсов при отказе) устарело примерно с 2008 года. Кардиостимулятор это новое стандартное решение для управления ресурсами Linux-HA. Однако Pacemaker по-прежнему требуется что-то для взаимодействия с кластером. Для уровня связи вы все еще можете использовать Сердцебиение, но наиболее популярным решением в наши дни является Corosync.
Что касается вашего первоначального вопроса, краткий ответ - да. Если вы прервете сеть, которая передает данные кластера, это может привести к разделению мозга, если вы не используете STONITH, Что вам следует!. Можно найти хорошие статьи о том, зачем вам STONITH Вот и Вот.
Помимо STONITH, Heartbeat и Corosync поддерживают резервные ссылки / сети. Это означает, что вы можете использовать несколько интерфейсов, чтобы отказ одного интерфейса не мешал обмену данными в кластере.
Надеюсь это поможет!