Pacemaker Master / Slave Resource для PostreSQL - PullRequest
0 голосов
/ 28 марта 2019

Я пытаюсь использовать ресурсы Pacemaker для HA Postgres-XL с использованием некоторых пользовательских агентов ресурсов (как написано Bitnine https://github.com/bitnine-oss).

Мой процесс заключается в: 1. Создайте примитивный ресурс «data1», который включает функции запуска / остановки / продвижения / понижения. 2. Создайте основной / подчиненный ресурс, который управляет экземплярами примитива.

Здесь я хочу запустить мастер на узле t2 и ведомый на узле t4. Я пытаюсь управлять местоположением ресурса Master / Slave, используя оценку местоположения, как показано ниже.

@ubuntu:~$ sudo pcs -f data1.xml create resource data1 ocf:bitnine:postgres-xl-data datadir=/var/lib/postgresql/DATA/pgxl/nodes/data1 port=15432 nodename=data1
@ubuntu:~$ sudo pcs -f data1.xml resource master data1-ha data1 master-max=1 master-node-max=1 clone-max=2 clone-node-max=1 target-role="Started" notify="True"
@ubuntu:~$ sudo pcs constraint location data1-ha prefers t2=1000 t4=10

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

@ubuntu:~$ sudo pcs status
[sudo] password for michaelscott: 
Cluster name: xl-cluster

WARNINGS:
No stonith devices and stonith-enabled is not false

Stack: corosync
Current DC: t4 (version 1.1.18-2b07d5c5a9) - partition with quorum
Last updated: Thu Mar 28 18:19:32 2019
Last change: Thu Mar 28 17:48:48 2019 by root via crm_resource on t1

5 nodes configured
2 resources configured

Online: [ t1 t2 t3 t4 t5 ]

Full list of resources:

 Master/Slave Set: data1-ha [data1]
     data1  (ocf::bitnine:postgres-xl-data):    FAILED Master t4
     Masters: [ t2 ]
     Stopped: [ t1 t3 t5 ]

Failed Actions:
* data1_monitor_11000 on t4 'master' (8): call=22610, status=complete, exitreason='',
    last-rc-change='Thu Mar 28 18:19:32 2019', queued=0ms, exec=107ms


Daemon Status:
  corosync: active/disabled
  pacemaker: active/disabled
  pcsd: active/enabled

Если я изменю 'master-max = 2', я получу следующее:

@ubuntu:~$ sudo pcs status
[sudo] password for michaelscott: 
Cluster name: xl-cluster

WARNINGS:
No stonith devices and stonith-enabled is not false

Stack: corosync
Current DC: t4 (version 1.1.18-2b07d5c5a9) - partition with quorum
Last updated: Thu Mar 28 18:19:32 2019
Last change: Thu Mar 28 17:48:48 2019 by root via crm_resource on t1

5 nodes configured
2 resources configured

Online: [ t1 t2 t3 t4 t5 ]

Full list of resources:

 Master/Slave Set: data1-ha [data1]
     data1  (ocf::bitnine:postgres-xl-data):    
     Masters: [ t2 t4 ]


Daemon Status:
  corosync: active/disabled
  pacemaker: active/disabled
  pcsd: active/enabled

У меня вопрос: как заставить принудительно запускать мастер-экземпляр на t2 и ведомый на t4? Я потратил пару дней, читая документацию / примеры местоположения / колокейшн в Pacemaker (на что у меня есть предчувствие), но пока не смог заставить что-либо работать.

Спасибо

РЕДАКТИРОВАТЬ:

Сегодня также предприняли попытку ограничить местоположение, чтобы перенести мастер на t2, добавив ограничения в CIB, как показано ниже. Та же ошибка.

  <constraints>
      <rsc_location id="location-data1-ha-t1--INFINITY" node="t1" rsc="data1-ha" score="-INFINITY"/>
      <rsc_location id="location-data1-ha-t3--INFINITY" node="t3" rsc="data1-ha" score="-INFINITY"/>
      <rsc_location id="location-data1-ha-t5--INFINITY" node="t5" rsc="data1-ha" score="-INFINITY"/>
      <rsc_location id="location-data1-ha" rsc="data1-ha">
        <rule id="location-data1-ha-rule" role="master" score="INFINITY">
          <expression attribute="#uname" id="location-data1-ha-rule-expr" operation="eq" value="t2"/>
        </rule>
      </rsc_location>
      <rsc_location id="location-data1-ha-1" rsc="data1-ha">
        <rule id="location-data1-ha-1-rule" role="slave" score="INFINITY">
          <expression attribute="#uname" id="location-data1-ha-1-rule-expr" operation="eq" value="t4"/>
        </rule>
      </rsc_location>
    </constraints>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...