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

Как заставить Pacemaker перезапускать службы в группе

У меня есть установка с 2 машинами с установленными Pacemaker и Corosync. Там у меня работает PostgreSQL Master / Slave Set. Мастер имеет группу ресурсов с виртуальным IP-адресом и две дополнительные службы, которые должны работать на мастере. В случае аварийного переключения, вызванного убийством мастера базы данных, это переносит все службы в группе на другой узел, что именно то, что я ожидаю и хочу, чтобы он выполнял.

Однако дополнительные службы будут помечены как сбойные, когда я их убью, и все. Поскольку я хочу, чтобы миграция происходила только при сбое базы данных, это нормально. Однако я хочу, чтобы Pacemaker перезапускал эти службы в случае их сбоя, а не просто отмечал их как сбойные.

Я ожидал, что он будет делать именно это, когда я добавлю флаг on-fail = restart в монитор op этих служб, но это не так.

Группа выглядит так:

 Group: master-group
  Resource: VirtualIP (class=ocf provider=heartbeat type=IPaddr2)
   Attributes: ip=1.2.3.4 cidr_netmask=24 nic=ens1f0
   Operations: start interval=0s timeout=20s (VirtualIP-start-interval-0s)
               stop interval=0s timeout=20s (VirtualIP-stop-interval-0s)
               monitor interval=30s (VirtualIP-monitor-interval-30s)
  Resource: additional-resource1 (class=ocf provider=heartbeat type=additional-resource1)
   Operations: stop interval=0s timeout=20s (additional-resource1-stop-interval-0s)
               monitor interval=60s timeout=20s (additional-resource1-monitor-interval-60s)
               start interval=0s on-fail=restart timeout=20s (additional-resource1-start-interval-0s)
  Resource: additional-resource2 (class=lsb type=additional-resource2)
   Operations: start interval=10s on-fail=restart timeout=60s (additional-resource2-start-interval-10s)
               stop interval=0s timeout=20s (additional-resource2-stop-interval-0s)
               monitor interval=60s on-fail=restart timeout=0s (additional-resource2-monitor-interval-60s)

Stonith Devices:
Fencing Levels:

Location Constraints:
Ordering Constraints:
  promote msPostgresql then start master-group (score:INFINITY) (non-symmetrical) (id:order-msPostgresql-master-group-INFINITY)
  demote msPostgresql then stop master-group (score:0) (non-symmetrical) (id:order-msPostgresql-master-group-0)
Colocation Constraints:
  master-group with msPostgresql (score:INFINITY) (rsc-role:Started) (with-rsc-role:Master) (id:colocation-master-group-msPostgresql-INFINITY)
Ticket Constraints:

Alerts:
 No alerts defined

Resources Defaults:
 resource-stickiness: INFINITY
 migration-threshold: 1
Operations Defaults:
 No defaults set

Cluster Properties:
 cluster-infrastructure: corosync
 dc-version: 1.1.15-11.el7_3.4-e174ec8
 have-watchdog: false
 last-lrm-refresh: 1498820659
 no-quorum-policy: ignore
 stonith-enabled: false
Node Attributes:
 node1: pgsql-data-status=LATEST
 node2: pgsql-data-status=STREAMING|SYNC

Может ли кто-нибудь объяснить, как этого добиться?