[Pacemaker] why pacemaker does not control the resources

Andrew Beekhof andrew at beekhof.net
Sun Nov 10 23:41:36 UTC 2013


On 8 Nov 2013, at 7:49 am, Andrey Groshev <greenx at yandex.ru> wrote:

> Hi, PPL!
> I need help. I do not understand... Why has stopped working.
> This configuration work on other cluster, but on corosync1.
> 
> So... cluster postgres with master/slave.
> Classic config as in wiki.
> I build cluster, start, he is working.
> Next I kill postgres on Master with 6 signal, as if "disk space left"
> 
> # pkill -6 postgres
> # ps axuww|grep postgres
> root      9032  0.0  0.1 103236   860 pts/0    S+   00:37   0:00 grep postgres 
> 
> PostgreSQL die, But crm_mon shows that the master is still running.
> 
> Last updated: Fri Nov  8 00:42:08 2013
> Last change: Fri Nov  8 00:37:05 2013 via crm_attribute on dev-cluster2-node4
> Stack: corosync
> Current DC: dev-cluster2-node4 (172793107) - partition with quorum
> Version: 1.1.10-1.el6-368c726
> 3 Nodes configured
> 7 Resources configured
> 
> 
> Node dev-cluster2-node2 (172793105): online
>        pingCheck       (ocf::pacemaker:ping):  Started
>        pgsql   (ocf::heartbeat:pgsql): Started
> Node dev-cluster2-node3 (172793106): online
>        pingCheck       (ocf::pacemaker:ping):  Started
>        pgsql   (ocf::heartbeat:pgsql): Started
> Node dev-cluster2-node4 (172793107): online
>        pgsql   (ocf::heartbeat:pgsql): Master
>        pingCheck       (ocf::pacemaker:ping):  Started
>        VirtualIP       (ocf::heartbeat:IPaddr2):       Started
> 
> Node Attributes:
> * Node dev-cluster2-node2:
>    + default_ping_set                  : 100
>    + master-pgsql                      : -INFINITY 
>    + pgsql-data-status                 : STREAMING|ASYNC
>    + pgsql-status                      : HS:async  
> * Node dev-cluster2-node3:
>    + default_ping_set                  : 100
>    + master-pgsql                      : -INFINITY 
>    + pgsql-data-status                 : STREAMING|ASYNC
>    + pgsql-status                      : HS:async  
> * Node dev-cluster2-node4:
>    + default_ping_set                  : 100
>    + master-pgsql                      : 1000
>    + pgsql-data-status                 : LATEST    
>    + pgsql-master-baseline             : 0000000002000078
>    + pgsql-status                      : PRI
> 
> Migration summary:
> * Node dev-cluster2-node4: 
> * Node dev-cluster2-node2: 
> * Node dev-cluster2-node3: 
> 
> Tickets:
> 
> CONFIG:
> node $id="172793105" dev-cluster2-node2. \
>        attributes pgsql-data-status="STREAMING|ASYNC" standby="false"
> node $id="172793106" dev-cluster2-node3. \
>        attributes pgsql-data-status="STREAMING|ASYNC" standby="false"
> node $id="172793107" dev-cluster2-node4. \
>        attributes pgsql-data-status="LATEST"
> primitive VirtualIP ocf:heartbeat:IPaddr2 \
>        params ip="10.76.157.194" \
>        op start interval="0" timeout="60s" on-fail="stop" \
>        op monitor interval="10s" timeout="60s" on-fail="restart" \
>        op stop interval="0" timeout="60s" on-fail="block"
> primitive pgsql ocf:heartbeat:pgsql \
>        params pgctl="/usr/pgsql-9.1/bin/pg_ctl" psql="/usr/pgsql-9.1/bin/psql" pgdata="/var/lib/pgsql/9.1/data" tmpdir="/tmp/pg" start_opt="-p 5432" logfile="/var/lib/pgsql/9.1//pgstartup.log" rep_mode="async" node_list=" dev-cluster2-node2. dev-cluster2-node3. dev-cluster2-node4. " restore_command="gzip -cd /var/backup/pitr/dev-cluster2-master#5432/xlog/%f.gz > %p" primary_conninfo_opt="keepalives_idle=60 keepalives_interval=5 keepalives_count=5" master_ip="10.76.157.194" \
>        op start interval="0" timeout="60s" on-fail="restart" \
>        op monitor interval="5s" timeout="61s" on-fail="restart" \
>        op monitor interval="1s" role="Master" timeout="62s" on-fail="restart" \
>        op promote interval="0" timeout="63s" on-fail="restart" \
>        op demote interval="0" timeout="64s" on-fail="stop" \
>        op stop interval="0" timeout="65s" on-fail="block" \
>        op notify interval="0" timeout="66s"
> primitive pingCheck ocf:pacemaker:ping \
>        params name="default_ping_set" host_list="10.76.156.1" multiplier="100" \
>        op start interval="0" timeout="60s" on-fail="restart" \
>        op monitor interval="10s" timeout="60s" on-fail="restart" \
>        op stop interval="0" timeout="60s" on-fail="ignore"
> ms msPostgresql pgsql \
>        meta master-max="1" master-node-max="1" clone-node-max="1" notify="true" target-role="Master" clone-max="3"
> clone clnPingCheck pingCheck \
>        meta clone-max="3"
> location l0_DontRunPgIfNotPingGW msPostgresql \
>        rule $id="l0_DontRunPgIfNotPingGW-rule" -inf: not_defined default_ping_set or default_ping_set lt 100
> colocation r0_StartPgIfPingGW inf: msPostgresql clnPingCheck
> colocation r1_MastersGroup inf: VirtualIP msPostgresql:Master
> order rsc_order-1 0: clnPingCheck msPostgresql
> order rsc_order-2 0: msPostgresql:promote VirtualIP:start symmetrical=false
> order rsc_order-3 0: msPostgresql:demote VirtualIP:stop symmetrical=false
> property $id="cib-bootstrap-options" \
>        dc-version="1.1.10-1.el6-368c726" \
>        cluster-infrastructure="corosync" \
>        stonith-enabled="false" \
>        no-quorum-policy="stop"
> rsc_defaults $id="rsc-options" \
>        resource-stickiness="INFINITY" \
>        migration-threshold="1"
> 
> 
> 
> 
> Tell me where to look - why does pacemaker not work?

You might want to follow some of the steps at:

   http://blog.clusterlabs.org/blog/2013/debugging-pacemaker/

under the heading "Resource-level failures".


'crm_mon -o' might be a good source of information too.



More information about the Pacemaker mailing list