Тестирование кластера на базе Corosync и Pacemaker

Aug 22, 2016 20:51 · 536 words · 3 minute read pacemaker corosync cluster

Теперь, когда мы успешно установили и настроили Active/Passive Cluster на базе Corosync и Pacemaker давайте протестируем его работоспособность!

Прежде всего, разберемся с миграцией ресурсов на конкретном примере. Смотрим, на какой ноде сейчас запущен ресурс failover_ip:

crm resource status failover_ip
resource failover_ip is running on: db1

Ресурс сейчас запущен на db1, давайте выполним миграцию ресурса failover_ip на ноду db2:

crm resource migrate failover_ip

Проверяем:

crm resource status failover_ip
resource failover_ip is running on: db2

Однако стоит помнить, что при «ручной» миграции ресурсов с db1 на db2, автоматически будет создан вес -inf на первой ноде (db1). Вес определяет приоритет запуска ресурсов кластера, соответственно с весом -inf ресурс никогда не будет запущен на ноде db1. Если же вы захотите еще раз выполнить crm resource migrate failover_ip, то ресурс просто будет остановлен.

Проверить текущий вес ресурса можно так:

crm resource constraints failover_ip
* failover_ip
  : Node db1                      (score=-INFINITY, id=cli-ban-failover_ip-on-db1)
loop failover_ip

Чтобы вернуть настройки ресурсов кластера в первоначальный вид, необходимо выполнить одну из трех команд (на ваш выбор):

crm_resource -U --resource failover_ip

или:

crm resource unmigrate failover_ip

или:

crm configure delete cli-ban-failover_ip-on-db1

Теперь проверим зависимости ресурсов. Текущее состояние кластера:

crm status noheaders
Online: [ db1 db2 ]

 Master/Slave Set: ms_drbd_mysql [drbd_mysql]
     Masters: [ db1 ]
     Slaves: [ db2 ]
 Master/Slave Set: ms_drbd_www [drbd_www]
     Masters: [ db1 ]
     Slaves: [ db2 ]
 Resource Group: group_mysql
     fs_mysql	(ocf::heartbeat:Filesystem):	Started db1
     failover_ip	(ocf::heartbeat:IPaddr2):	Started db1
     mysql	(lsb:mysql):	Started db1
     index-on-shm	(lsb:index-on-shm):	Started db1
     sphinxsearch	(lsb:sphinxsearch):	Started db1
     sphinxsearch-admin	(lsb:sphinxsearch-admin):	Started db1
     gearman-job-server	(lsb:gearman-job-server):	Started db1
 Resource Group: group_www
     fs_www	(ocf::heartbeat:Filesystem):	Started db1
     nfs-kernel-server	(lsb:nfs-kernel-server):	Started db1
     nfs-common	(lsb:nfs-common):	Started db1
 Clone Set: pingnetclone [pingnet]
     Started: [ db1 db2 ]

Согласно настройкам нашего кластера, если не запущен ресурс failover_ip, то остальные зависимые от него ресурсы также должны быть остановлены. Давайте убедимся в этом:

crm resource stop failover_ip

Проверяем:

crm status noheaders
Online: [ db1 db2 ]

 Master/Slave Set: ms_drbd_mysql [drbd_mysql]
     Masters: [ db1 ]
     Slaves: [ db2 ]
 Master/Slave Set: ms_drbd_www [drbd_www]
     Masters: [ db1 ]
     Slaves: [ db2 ]
 Resource Group: group_mysql
     fs_mysql	(ocf::heartbeat:Filesystem):	Started db1
     failover_ip	(ocf::heartbeat:IPaddr2):	(target-role:Stopped) Stopped
     mysql	(lsb:mysql):	Stopped
     index-on-shm	(lsb:index-on-shm):	Stopped
     sphinxsearch	(lsb:sphinxsearch):	Stopped
     sphinxsearch-admin	(lsb:sphinxsearch-admin):	Stopped
     gearman-job-server	(lsb:gearman-job-server):	Stopped
 Resource Group: group_www
     fs_www	(ocf::heartbeat:Filesystem):	Started db1
     nfs-kernel-server	(lsb:nfs-kernel-server):	Started db1
     nfs-common	(lsb:nfs-common):	Started db1
 Clone Set: pingnetclone [pingnet]
     Started: [ db1 db2 ]

Запускаем ресурс failover_ip командой:

crm resource start failover_ip

Еще может быть очень полезно выводить одну ноду из кластера, например для обновления ПО или апгрейда оборудования (для выполнения таких работ, как минимум, обязательно надо переводить кластер в режим обслуживания). При выводе активной ноды (db1) из кластера, ресурсы переезжают на вторую (db2):

crm node standby db1

Проверяем:

crm status noheaders
Node db1: standby
Online: [ db2 ]

 Master/Slave Set: ms_drbd_mysql [drbd_mysql]
     Masters: [ db2 ]
 Master/Slave Set: ms_drbd_www [drbd_www]
     Masters: [ db2 ]
 Resource Group: group_mysql
     fs_mysql	(ocf::heartbeat:Filesystem):	Started db2
     failover_ip	(ocf::heartbeat:IPaddr2):	Started db2
     mysql	(lsb:mysql):	Started db2
     index-on-shm	(lsb:index-on-shm):	Started db2
     sphinxsearch	(lsb:sphinxsearch):	Started db2
     sphinxsearch-admin	(lsb:sphinxsearch-admin):	Started db2
     gearman-job-server	(lsb:gearman-job-server):	Started db2
 Resource Group: group_www
     fs_www	(ocf::heartbeat:Filesystem):	Started db2
     nfs-kernel-server	(lsb:nfs-kernel-server):	Started db2
     nfs-common	(lsb:nfs-common):	Started db2
 Clone Set: pingnetclone [pingnet]
     Started: [ db2 ]

Вернуть ноду обратно в кластер можно командой (при этом ресурсы останутся запущенными на ноде db2):

crm node online db1
tweet Share