[Pacemaker] configuring postgresql streaming replication cluster
Gregg Jaskiewicz
gryzman at gmail.com
Tue Jun 11 12:05:52 UTC 2013
Hi guys,
I'm trying to wrap my head around the pacemaker, and setting up postgresql cluster using pcs on centos 6.4.
I used so far following commands to set it up. And this seems to work, but all nodes are running as slaves (postgresql wise).
The 'master' node (IP address wise) even connects to itself to replicate (that's a bit of a snafu in postgresql for allowing it).
So question is, how can this be improved, what did I miss, and why doesn't postgresql master get promoted to be 'master' on the 'master' node?
pcs property set stonith-enabled=false
pcs property set no-quorum-policy=ignore
pcs resource rsc defaults resource-stickiness="INFINITY" migration-threshold="1"
# add virtual IP resource for postgres services master
pcs resource create vip-master ocf:heartbeat:IPaddr2 params ip=10.0.0.100 nic=eth1:0 cidr_netmask=24 meta migration-threshold=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=block
# add virtual IP resource for postgres replication master_ip
pcs resource create vip-rep ocf:heartbeat:IPaddr2 params ip=10.0.1.100 nic=eth2:0 cidr_netmask=24 meta migration-threshold=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=block
# Group them up
pcs resource group add master-group vip-master vip-rep
# Start it
pcs resource start master-group
# PostgreSQL stuff
pcs resource create pgsql ocf:heartbeat:pgsql \
params pgctl="/usr/pgsql-9.2/bin/pg_ctl" psql="/usr/pgsql-9.2/bin/psql" pgdata="/var/lib/pgsql/9.2/data/" \
restore_command="cp /var/lib/pgsql/9.2/data/pg_archive/\%f \%p" \
start_opt="-p 5432" \
rep_mode="async" \
node_list="hanode01 hanode02" \
primary_conninfo_opt="keepalives_idle=60 keepalives_interval=5 keepalives_count=5" \
master_ip="10.0.1.100" \
stop_escalate="0" \
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" interval="0s"
pcs resource master msPostgresql pgsql master-max=1 master-node-max=1 clone-max=10 clone-node-max=10 notify=true
pcs constraint colocation add master-group msPostgresql role=Master
# Score needs to be different, otherwise pcs thinks both lines below are trying to do the same
pcs constraint order start master-group then promote msPostgresql symmetrical=false score=2
pcs constraint order stop master-group then demote msPostgresql symmetrical=false score=3
pcs resource update pgsql repuser=rep monitor_password=lemon monitor_user=monitor
Thanks in advance !
--
GJ
More information about the Pacemaker
mailing list