Тестирование кластера на базе Corosync и Pacemaker
Aug 22, 2016 20:51 · 536 words · 3 minute read
Теперь, когда мы успешно установили и настроили 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