for 3nodes - t-matsuo/resource-agents GitHub Wiki
Resource agent for postgresql 3nodes
Sample configuration
property \
no-quorum-policy="ignore" \
stonith-enabled="false" \
crmd-transition-delay="2s"
rsc_defaults \
resource-stickiness="INFINITY" \
migration-threshold="1"
ms msPostgresql postgresql \
meta \
master-max="1" \
master-node-max="1" \
clone-max="3" \
clone-node-max="1" \
notify="true"
group master-group \
vip-master \
vip-rep
clone clnPingCheck pingCheck
primitive vip-master ocf:heartbeat:IPaddr2 \
params \
ip="192.168.0.201" \
nic="eth0" \
cidr_netmask="24" \
op start timeout="60s" interval="0s" on-fail="restart" \
op monitor timeout="60s" interval="10s" on-fail="restart" \
op stop timeout="60s" interval="0s" on-fail="block"
primitive vip-rep ocf:heartbeat:IPaddr2 \
params \
ip="192.168.3.200" \
nic="eth3" \
cidr_netmask="24" \
meta \
resource-stickiness="1" \
op start timeout="60s" interval="0s" on-fail="restart" \
op monitor timeout="60s" interval="10s" on-fail="restart" \
op stop timeout="60s" interval="0s" on-fail="block"
primitive vip-slave1 ocf:heartbeat:IPaddr2 \
params \
ip="192.168.0.202" \
nic="eth0" \
cidr_netmask="24" \
meta \
resource-stickiness="1" \
op start timeout="60s" interval="0s" on-fail="restart" \
op monitor timeout="60s" interval="10s" on-fail="restart" \
op stop timeout="60s" interval="0s" on-fail="block"
primitive vip-slave2 ocf:heartbeat:IPaddr2 \
params \
ip="192.168.0.203" \
nic="eth0" \
cidr_netmask="24" \
meta \
resource-stickiness="1" \
op start timeout="60s" interval="0s" on-fail="restart" \
op monitor timeout="60s" interval="10s" on-fail="restart" \
op stop timeout="60s" interval="0s" on-fail="block"
primitive postgresql ocf:heartbeat:pgsql \
params \
pgctl="/usr/local/pgsql/bin/pg_ctl" \
psql="/usr/local/pgsql/bin/psql" \
pgdata="/var/lib/pgsql/9.1/data" \
start_opt="-p 5432" \
rep_mode="sync" \
node_list="02-sl6 03-sl6 04-sl6" \
primary_conninfo_opt="keepalives_idle=60 keepalives_interval=5 keepalives_count=5" \
master_ip="192.168.3.200" \
restore_command="cp /var/lib/pgsql/9.1/data/pg_archive/%f %p" \
stop_escalate="0" \
restart_on_promote="true" \
op start timeout="60s" interval="0s" on-fail="restart" \
op monitor timeout="60s" interval="7s" on-fail="restart" \
op monitor timeout="60s" interval="2s" on-fail="restart" role="Master" \
op promote timeout="60s" interval="0s" on-fail="restart" \
op demote timeout="60s" interval="0s" on-fail="stop" \
op stop timeout="60s" interval="0s" on-fail="block" \
op notify timeout="60s"
primitive pingCheck ocf:pacemaker:pingd \
params \
name="default_ping_set" \
host_list="192.168.0.100" \
multiplier="100" \
dampen="0" \
op start timeout="60s" interval="0s" on-fail="restart" \
op monitor timeout="60s" interval="10s" on-fail="restart" \
op stop timeout="60s" interval="0s" on-fail="ignore"
location rsc_location-1 msPostgresql \
rule role=master 300: #uname eq 02-sl6 \
rule role=master 200: #uname eq 03-sl6 \
rule role=master 100: #uname eq 04-sl6 \
rule -inf: not_defined default_ping_set or default_ping_set lt 100
location rsc_location-2 vip-slave1 \
rule 200: pgsql-status eq "HS:sync" \
rule 100: pgsql-status eq "PRI" \
rule -inf: not_defined pgsql-status \
rule -inf: pgsql-status ne "HS:sync" and pgsql-status ne "PRI"
location rsc_location-3 vip-slave2 \
rule 300: pgsql-status eq "HS:potential" \
rule 200: pgsql-status eq "HS:sync" \
rule 100: pgsql-status eq "PRI" \
rule -inf: not_defined pgsql-status \
rule -inf: pgsql-status ne "HS:sync" and pgsql-status ne "HS:potential" and pgsql-status ne "PRI"
colocation rsc_colocation-1 inf: msPostgresql clnPingCheck
colocation rsc_colocation-2 inf: master-group msPostgresql:Master
order rsc_order-1 0: clnPingCheck msPostgresql
order rsc_order-2 0: msPostgresql:promote master-group:start symmetrical=false
order rsc_order-3 0: msPostgresql:demote master-group:stop symmetrical=false
crm_mon -Af
============
Last updated: Sat Mar 2 16:48:17 2013
Stack: Heartbeat
Current DC: 04-sl6 (44444444-4444-4444-4444-444444444444) - partition with quorum
Version: 1.0.13-30bb726
3 Nodes configured, unknown expected votes
5 Resources configured.
============
Online: [ 02-sl6 03-sl6 04-sl6 ]
Resource Group: master-group
vip-master (ocf::heartbeat:IPaddr2): Started 02-sl6
vip-rep (ocf::heartbeat:IPaddr2): Started 02-sl6
Master/Slave Set: msPostgresql
Masters: [ 02-sl6 ]
Slaves: [ 03-sl6 04-sl6 ]
Clone Set: clnPingCheck
Started: [ 02-sl6 03-sl6 04-sl6 ]
Node Attributes:
* Node 02-sl6:
+ default_ping_set : 100
+ master-postgresql:0 : 1000
+ postgresql-data-status : LATEST
+ postgresql-master-baseline : 00000000A3000E30
+ postgresql-status : PRI
* Node 03-sl6:
+ default_ping_set : 100
+ master-postgresql:2 : 100
+ postgresql-data-status : STREAMING|SYNC
+ postgresql-status : HS:sync
* Node 04-sl6:
+ default_ping_set : 100
+ master-postgresql:1 : -INFINITY
+ postgresql-data-status : STREAMING|POTENTIAL
+ postgresql-status : HS:potential
Migration summary:
* Node 02-sl6:
* Node 03-sl6:
* Node 04-sl6: