Назад | Перейти на главную страницу

Pacemaker - как отслеживать и останавливать службу на неправильном узле (без зависимых служб)

У меня есть четыре узла A-D с клоном service1 (clone-max 3) и с 3 виртуальными IP-адресами. У меня есть ограничения - clone-ip1, clone-ip2, clone-ip3 - это хорошо работает, когда службы обрабатывает только кардиостимулятор.

Я бы хотел, чтобы Pacemaker автоматически «проверял» узлы, чтобы при запуске службы без ограничений кардиостимулятор останавливал ее. Похоже, что когда узлы A, B, C работают в активном состоянии - кардиостимулятору все равно, что происходит на узле D. Когда я принудительно перепробую crm_resource -P - он останавливает ненужное обслуживание на узле D. Есть ли способ заставить кардиостимулятор проверять все узлы? (multiple_active, похоже, не работает ...)

В кластере Pacemaker Pacemaker действительно должен управлять всеми услугами.

В вашем примере Pacemaker не имеет записи о запуске clone-ip * на Node-D, поэтому он также не будет запускать операции мониторинга там.

crm_resource -P указывает кластеру проверить все узлы для всех служб, определенных в кластере, и затем соответствующим образом отреагировать; вот почему ваш IP удален.

Возможно, вы сможете достичь своей цели, увеличив clone-max=4и поместив ограничение местоположения отрицательной бесконечности в ваш CIB, чтобы служба не работала на Node-D:

clone clone-ip1 p_ip1 \
    meta clone-max=4 clone-node-max=1
location l_clone-ip1_never_on_node-d clone-ip1 -inf: node-d