в corosync, drbd, mysql, pacemaker, sphinxsearch

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

active-passive 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

Добавить комментарий