Обслуживание серверов в кластере на базе Pacemaker

Jan 18, 2016 17:26 · 260 words · 2 minute read pacemaker corosync cluster

Порой возникает необходимость внести изменения в конфигурационные файлы или обновить пакеты на отдельных серверах-нодах, входящих в состав кластера на базе Pacemaker и Corosync.

В таких ситуациях встроенные компоненты мониторинга и миграции кластера могут привести к неожиданным побочным эффектам — давайте разберемся, как этого избежать!

Специально для таких моментов разработчики Pacemaker предусмотрели специальный режим для кластера — «режим обслуживания» (maintenance mode). В режиме обслуживания компоненты мониторинга и миграции убирают «руки прочь» от кластерных ресурсов и не предпринимают попыток переключения на другие ноды.

Включить режим обслуживания в кластере на базе Pacemaker и Corosync можно следующей командой:

crm configure property maintenance-mode=true

При этом, возле ресурсов кластера в скобках появится надпись unmanaged:

...
 Master/Slave Set: ms_drbd_mysql [drbd_mysql] (unmanaged)
     drbd_mysql:0	(ocf::linbit:drbd):	Master db1 (unmanaged)
     drbd_mysql:1	(ocf::linbit:drbd):	Started db2 (unmanaged)
 Master/Slave Set: ms_drbd_www [drbd_www] (unmanaged)
     drbd_www:0	(ocf::linbit:drbd):	Master db1 (unmanaged)
     drbd_www:1	(ocf::linbit:drbd):	Started db2 (unmanaged)
...

В таком состоянии можно останавливать/перезапускать любые кластерные ресурсы — Pacemaker не будет пытаться запустить их.

Отключить режим обслуживания можно так:

crm configure property maintenance-mode=false

В случаях, когда изменения конфигурации могут занимать несколько часов (на такое время опасно оставлять кластер «без присмотра»), можно отключить мониторинг и восстановление только для одного ресурса — остальные ресурсы будут по прежнему под управлением кластера.

Для этого открываем на редактирование настройки нужного ресурса кластера (например, отказоустойчивый ip-адрес):

crm configure edit failover_ip

и добавляем/изменяем следующие meta-атрибуты:

meta is-managed=false
op monitor interval=60 enabled=false

Эти значения переведут ресурс кластера failover_ip в режим обслуживания:

 failover_ip	(ocf::heartbeat:IPaddr2):	Started db1 (unmanaged)

Включить мониторинг и передать ресурс под управление кластера можно так:

crm configure edit failover_ip

и

meta is-managed=true
op monitor interval=60 enabled=true
tweet Share