Сердцебиение в Linux: кто станет мастером?
Предположим, что я сконфигурировал 2 машины, чтобы они были активными / пассивными, с помощью пульса и ритма сердца Linux, затем я создаю группу ресурсов в узле 1 и фиксирую ее. Если я прав, конфигурация будет распространена на узел 2. Группа ресурсов собирается отслеживать один из сервисов на машине.
Мой вопрос заключается в том, что на двух узлах запущен одинаковый сервис, какой из них становится активным в первую очередь? Или сердцебиение Linux решит, что (эти два имеют равные возможности)?
1 ответ
С Pacemaker у вас нет "активного узла" и "пассивного узла". Все узлы кластера (их может быть больше 2) могут запускать службы одинаково, и правила в базе данных CIB сообщают CRM (диспетчеру ресурсов Pacemaker), какой узел может запускать какие службы.
Если вы настроили службу для работы в качестве одного экземпляра, который может работать на обоих узлах без ограничений, вы не сможете сказать, какой узел будет ее запускать. Если у вас есть две такие службы, вы можете закончить тем, что одна будет работать на одном узле, а другая - на другом. Для первого сервисный узел1 будет активен, а для второго - узел2.
Вы определяете фактическое предпочтение, объявляя некоторые константы. Пример: "запустить службу 1 на узле, где работает служба 2" или "всегда предпочитать узел 1 для обеих служб".
Обычно у вас есть служба, которая определяет "логический мастер" - это может быть IP-адрес или том DRBD в основном состоянии - тогда все остальные службы зависят от этого, и вы выбираете "мастер", устанавливая предпочтения для основной службы.
См. Документацию Pacemaker для получения подробных сведений об установке ограничений.
Само сердцебиение, когда оно используется с Pacemaker, не принимает никаких решений о состоянии master / slave или о том, какие ресурсы запущены.