Other sample settings for pgsql RA with replication - t-matsuo/resource-agents GitHub Wiki

Very very simple version

figure

Reference: http://linux-ha.sourceforge.jp/wp/archives/3680 (Japanese)

It needs to replace pgsq RA under fedora 19.

for pcs under fedora 19(pcs-0.9.48-1.fc19.x86_64).

pcs cluster cib pgsql_cfg

pcs -f pgsql_cfg property set no-quorum-policy="ignore"
pcs -f pgsql_cfg property set stonith-enabled="false"
pcs -f pgsql_cfg resource op defaults resource-stickiness="INFINITY"
pcs -f pgsql_cfg resource op defaults migration-threshold="1"

pcs -f pgsql_cfg resource create vip-master IPaddr2 \
ip="192.168.0.252" \
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"

pcs -f pgsql_cfg resource create vip-rep IPaddr2 \
ip="192.168.1.252" \
nic="eth1" \
cidr_netmask="24" \
meta migration-threshold="0" \
op start   timeout="60s" interval="0s"  on-fail="stop" \
op monitor timeout="60s" interval="10s" on-fail="restart" \
op stop    timeout="60s" interval="0s"  on-fail="ignore"

pcs -f pgsql_cfg resource create pgsql pgsql \
pgctl="/usr/bin/pg_ctl" \
psql="/usr/bin/psql" \
pgdata="/var/lib/pgsql/data/" \
rep_mode="sync" \
node_list="52-fe19 53-fe19" \
restore_command="cp /var/lib/pgsql/pg_archive/%f %p" \
master_ip="192.168.1.252" \
primary_conninfo_opt="keepalives_idle=60 keepalives_interval=5 keepalives_count=5" \
restart_on_promote='true' \
op start   timeout="60s" interval="0s"  on-fail="restart" \
op monitor timeout="60s" interval="10s" on-fail="restart" \
op monitor timeout="60s" interval="9s"  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 -f pgsql_cfg resource master msPostgresql pgsql \
master-max=1 master-node-max=1 clone-max=2 clone-node-max=1 notify=true

pcs -f pgsql_cfg resource group add master-group vip-master vip-rep

pcs -f pgsql_cfg constraint colocation add master-group with Master msPostgresql INFINITY
pcs -f pgsql_cfg constraint order promote msPostgresql then start master-group symmetrical=false score=INFINITY
pcs -f pgsql_cfg constraint order demote  msPostgresql then stop  master-group symmetrical=false score=0

pcs cluster push cib pgsql_cfg

for crm

property \
    no-quorum-policy="ignore" \
    stonith-enabled="false"

rsc_defaults \
    resource-stickiness="INFINITY" \
    migration-threshold="1"

ms msPostgresql pgsql \
    meta \
        master-max="1" \
        master-node-max="1" \
        clone-max="2" \
        clone-node-max="1" \
        notify="true"

group master-group \
    vip-master \
    vip-rep

primitive vip-master ocf:heartbeat:IPaddr2 \
    params \
        ip="192.168.0.252" \
        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.1.252" \
        nic="eth1" \
        cidr_netmask="24" \
    meta \
        migration-threshold="0" \
    op start   timeout="60s" interval="0s"  on-fail="stop" \
    op monitor timeout="60s" interval="10s" on-fail="restart" \
    op stop    timeout="60s" interval="0s"  on-fail="ignore"

primitive pgsql ocf:heartbeat:pgsql \
    params \
        pgctl="/usr/bin/pg_ctl" \
        psql="/usr/bin/psql" \
        pgdata="/var/lib/pgsql/data/" \
        rep_mode="sync" \
        node_list="52-fe19 53-fe19" \
        restore_command="cp /var/lib/pgsql/pg_archive/%f %p" \
        master_ip="192.168.1.252" \
        primary_conninfo_opt="keepalives_idle=60 keepalives_interval=5 keepalives_count=5" \
        restart_on_promote='true' \
    op start   timeout="60s" interval="0s"  on-fail="restart" \
    op monitor timeout="60s" interval="10s" on-fail="restart" \
    op monitor timeout="60s" interval="9s"  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"

colocation colocation-1 inf: master-group msPostgresql:Master
order order-1 inf: msPostgresql:promote  master-group:start symmetrical=false
order order-2 0:   msPostgresql:demote   master-group:stop  symmetrical=false