[Pacemaker] Pacemaker unnecessarily (?) restarts a vm on active node when other node brought out of standby

David Vossel dvossel at redhat.com
Tue May 13 18:46:33 UTC 2014





----- Original Message -----
> From: "Ian" <cl-3627 at jusme.com>
> To: "Clusterlabs (pacemaker) mailing list" <pacemaker at oss.clusterlabs.org>
> Sent: Monday, May 12, 2014 3:02:50 PM
> Subject: [Pacemaker] Pacemaker unnecessarily (?) restarts a vm on active node when other node brought out of standby
> 
> Hi,
> 
> First message here and pretty new to this, so apologies if this is the
> wrong place/approach for this question. I'm struggling to describe this
> problem so searching for previous answers is tricky. Hopefully someone
> can give me a pointer...

does setting resource-stickiness help?

http://clusterlabs.org/doc/en-US/Pacemaker/1.1-pcs/html-single/Pacemaker_Explained/index.html#s-resource-options

-- Vossel



> Brief summary:
> --------------
> 
> Situation is: dual node cluster (CentOS 6.5), running drbd+gfs2 to
> provide active/active filestore for a libvirt domain (vm).
> 
> With both nodes up, all is fine, active/active filesystem available on
> both nodes, vm running on node 1
> 
> Place node 2 into standby, vm is unaffected. Good.
> 
> Bring node 2 back online, pacemaker chooses to stop the vm and gfs on
> node 1 while it promotes drbd to master on node 2. Bad (not very "HA"!)
> 
> Hopefully I've just got a constraint missing/wrong (or the whole
> structure!). I know there is a constraint linking the promotion of the
> drbd resource to the starting of the gfs2 filesystem, but I wouldn't
> expect this to trigger on node 1 in the above scenario as it's already
> promoted?
> 
> 
> Versions:
> ---------
> 
> Linux sv07 2.6.32-431.11.2.el6.centos.plus.x86_64 #1 SMP Tue Mar 25
> 21:36:54 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
> 
> pacemaker-libs-1.1.10-14.el6_5.2.x86_64
> pacemaker-cli-1.1.10-14.el6_5.2.x86_64
> pacemaker-cluster-libs-1.1.10-14.el6_5.2.x86_64
> pacemaker-1.1.10-14.el6_5.2.x86_64
> 
> 
> Configuration (abridged):
> -------------------------
> 
> (I can provide full configs/logs if it isn't obvious and anyone cares to
> dig deeper)
> 
> res_drbd_vm1 is the drbd resource
> vm_storage_core_dev is a group containing the drbd resources (just
> res_drbd_vm1 in this config)
> vm_storage_core_dev-master is the master/slave resource for drbd
> 
> res_fs_vm1 is the gfs2 filesystem resource
> vm_storage_core is a group containing the gfs2 resources (just
> res_fs_vm1 in this config)
> vm_storage_core-clone is the clone resource to get the gfs2 filesystem
> active on both nodes
> 
> res_vm_nfs_server is the libvirt domain (vm)
> 
> (NB, The nfs filestore this server is sharing isn't from the gfs2
> filesystem, but another drbd volume that is always active/passive)
> 
> 
> # pcs resource show --full
>   Master: vm_storage_core_dev-master
>    Meta Attrs: master-max=2 master-node-max=1 clone-max=2
> clone-node-max=1 notify=true
>    Group: vm_storage_core_dev
>     Resource: res_drbd_vm1 (class=ocf provider=linbit type=drbd)
>      Attributes: drbd_resource=vm1
>      Operations: monitor interval=60s (res_drbd_vm1-monitor-interval-60s)
> 
>   Clone: vm_storage_core-clone
>    Group: vm_storage_core
>     Resource: res_fs_vm1 (class=ocf provider=heartbeat type=Filesystem)
>      Attributes: device=/dev/drbd/by-res/vm1 directory=/data/vm1
> fstype=gfs2 options=noatime,nodiratime
>      Operations: monitor interval=60s (res_fs_vm1-monitor-interval-60s)
> 
>   Resource: res_vm_nfs_server (class=ocf provider=heartbeat
> type=VirtualDomain)
>    Attributes: config=/etc/libvirt/qemu/vm09.xml
>    Operations: monitor interval=60s
> (res_vm_nfs_server-monitor-interval-60s)
> 
> 
> # pcs constraint show
> 
> Ordering Constraints:
>    promote vm_storage_core_dev-master then start vm_storage_core-clone
>    start vm_storage_core-clone then start res_vm_nfs_server
> 
> Colocation Constraints:
>    vm_storage_core-clone with vm_storage_core_dev-master
> (rsc-role:Started) (with-rsc-role:Master)
>    res_vm_nfs_server with vm_storage_core-clone
> 
> 
> /var/log/messages on node 2 around the event:
> ---------------------------------------------
> 
> May 12 19:23:02 sv07 attrd[3156]:   notice: attrd_trigger_update:
> Sending flush op to all hosts for: master-res_drbd_vm1 (10000)
> May 12 19:23:02 sv07 attrd[3156]:   notice: attrd_perform_update: Sent
> update 1067: master-res_drbd_vm1=10000
> May 12 19:23:02 sv07 crmd[3158]:   notice: do_state_transition: State
> transition S_IDLE -> S_POLICY_ENGINE [ input=I_PE_CALC
> cause=C_FSA_INTERNAL origin=abort_transition_graph ]
> May 12 19:23:02 sv07 attrd[3156]:   notice: attrd_trigger_update:
> Sending flush op to all hosts for: master-res_drbd_live (10000)
> May 12 19:23:02 sv07 attrd[3156]:   notice: attrd_perform_update: Sent
> update 1070: master-res_drbd_live=10000
> May 12 19:23:02 sv07 pengine[3157]:   notice: LogActions: Promote
> res_drbd_vm1:0#011(Slave -> Master sv07)
> May 12 19:23:02 sv07 pengine[3157]:   notice: LogActions: Restart
> res_fs_vm1:0#011(Started sv06)
> May 12 19:23:02 sv07 pengine[3157]:   notice: LogActions: Start
> res_fs_vm1:1#011(sv07)
> May 12 19:23:02 sv07 pengine[3157]:   notice: LogActions: Restart
> res_vm_nfs_server#011(Started sv06)
> May 12 19:23:02 sv07 pengine[3157]:   notice: process_pe_message:
> Calculated Transition 140: /var/lib/pacemaker/pengine/pe-input-855.bz2
> May 12 19:23:02 sv07 pengine[3157]:   notice: LogActions: Promote
> res_drbd_vm1:0#011(Slave -> Master sv07)
> May 12 19:23:02 sv07 pengine[3157]:   notice: LogActions: Restart
> res_fs_vm1:0#011(Started sv06)
> May 12 19:23:02 sv07 pengine[3157]:   notice: LogActions: Start
> res_fs_vm1:1#011(sv07)
> May 12 19:23:02 sv07 pengine[3157]:   notice: LogActions: Restart
> res_vm_nfs_server#011(Started sv06)
> May 12 19:23:02 sv07 pengine[3157]:   notice: process_pe_message:
> Calculated Transition 141: /var/lib/pacemaker/pengine/pe-input-856.bz2
> May 12 19:23:02 sv07 crmd[3158]:   notice: te_rsc_command: Initiating
> action 4: cancel res_drbd_vm1_cancel_60000 on sv07 (local)
> May 12 19:23:02 sv07 crmd[3158]:   notice: te_rsc_command: Initiating
> action 250: stop res_vm_nfs_server_stop_0 on sv06
> May 12 19:23:02 sv07 crmd[3158]:   notice: te_rsc_command: Initiating
> action 264: notify res_drbd_vm1_pre_notify_promote_0 on sv07 (local)
> May 12 19:23:02 sv07 crmd[3158]:   notice: te_rsc_command: Initiating
> action 266: notify res_drbd_vm1_pre_notify_promote_0 on sv06
> May 12 19:23:02 sv07 crmd[3158]:   notice: process_lrm_event: LRM
> operation res_drbd_vm1_notify_0 (call=1539, rc=0, cib-update=0,
> confirmed=true) ok
> 
> 
> Thanks for looking,
> Ian.
> 
> 
> _______________________________________________
> Pacemaker mailing list: Pacemaker at oss.clusterlabs.org
> http://oss.clusterlabs.org/mailman/listinfo/pacemaker
> 
> Project Home: http://www.clusterlabs.org
> Getting started: http://www.clusterlabs.org/doc/Cluster_from_Scratch.pdf
> Bugs: http://bugs.clusterlabs.org
> 




More information about the Pacemaker mailing list