[Pacemaker] Failover when storage fails

Max Williams Max.Williams at betfair.com
Thu Jun 2 16:47:17 UTC 2011


Just to update the list with the outcome of this issue, it's resolved in Pacemaker 1.1.5.
Cheers,
Max

-----Original Message-----
From: Max Williams [mailto:Max.Williams at betfair.com] 
Sent: 13 May 2011 09:55
To: The Pacemaker cluster resource manager (pacemaker at oss.clusterlabs.org)
Subject: Re: [Pacemaker] Failover when storage fails

Well this is not what I am seeing here. Perhaps a bug?
I also tried adding "op stop interval=0 timeout=10" to the LVM resources but still when the storage disappears the cluster just stops where it is and those log entries (below) just get printed in a loop.
Cheers,
Max

-----Original Message-----
From: Tim Serong [mailto:tserong at novell.com]
Sent: 13 May 2011 04:22
To: The Pacemaker cluster resource manager (pacemaker at oss.clusterlabs.org)
Subject: Re: [Pacemaker] Failover when storage fails

On 5/12/2011 at 02:28 AM, Max Williams <Max.Williams at betfair.com> wrote: 
> After further testing even with stonith enabled the cluster still gets 
> stuck in this state, presumably waiting on IO. I can get around it by 
> setting "on-fail=fence" on the LVM resources but shouldn't Pacemaker 
> be smart enough to realise the host is effectively offline?

If you've got STONITH enabled, nodes should just get fenced when this occurs, without your having to specify on-fail=fence for the monitor op.
What *should* happen is, the monitor fails or times out, then pacemaker will try to stop the resource.  If the stop also fails or times out, the node will be fenced.  See:

http://www.clusterlabs.org/doc/en-US/Pacemaker/1.1/html/Pacemaker_Explained/s-resource-operations.html

Also, http://ourobengr.com/ha#causes is relevant here.

Regards,

Tim

> Or am I missing some timeout
> value that would fix this situation? 
>  
> pacemaker-1.1.2-7.el6.x86_64
> corosync-1.2.3-21.el6.x86_64
> RHEL 6.0
>  
> Config: 
>  
> node host001.domain \ 
>         attributes standby="off" 
> node host002.domain \ 
>         attributes standby="off" 
> primitive MyApp_IP ocf:heartbeat:IPaddr \ 
>         params ip="192.168.104.26" \ 
>         op monitor interval="10s" 
> primitive MyApp_fs_graph ocf:heartbeat:Filesystem \ 
>         params device="/dev/VolGroupB00/AppLV2" directory="/naab1"  
> fstype="ext4" \ 
>         op monitor interval="10" timeout="10" 
> primitive MyApp_fs_landing ocf:heartbeat:Filesystem \ 
>         params device="/dev/VolGroupB01/AppLV1" directory="/naab2"  
> fstype="ext4" \ 
>         op monitor interval="10" timeout="10" 
> primitive MyApp_lvm_graph ocf:heartbeat:LVM \ 
>         params volgrpname="VolGroupB00" exclusive="yes" \ 
>         op monitor interval="10" timeout="10" on-fail="fence" depth="0" 
> primitive MyApp_lvm_landing ocf:heartbeat:LVM \ 
>         params volgrpname="VolGroupB01" exclusive="yes" \ 
>         op monitor interval="10" timeout="10" on-fail="fence" depth="0" 
> primitive MyApp_scsi_reservation ocf:heartbeat:sg_persist \ 
>         params sg_persist_resource="scsi_reservation0" devs="/dev/dm-6 
> /dev/dm-7" required_devs_nof="2" reservation_type="1"
> primitive MyApp_init_script lsb:AppInitScript \ 
>         op monitor interval="10" timeout="10" 
> primitive fence_host001.domain stonith:fence_ipmilan \ 
>         params ipaddr="192.168.16.148" passwd="password" login="root"  
> pcmk_host_list="host001.domain" pcmk_host_check="static-list" \ 
>         meta target-role="Started" 
> primitive fence_host002.domain stonith:fence_ipmilan \ 
>         params ipaddr="192.168.16.149" passwd="password" login="root"  
> pcmk_host_list="host002.domain" pcmk_host_check="static-list" \ 
>         meta target-role="Started" 
> group MyApp_group MyApp_lvm_graph MyApp_lvm_landing MyApp_fs_graph 
> MyApp_fs_landing MyApp_IP MyApp_init_script \
>         meta target-role="Started" migration-threshold="2" on-fail="restart"  
> failure-timeout="300s" 
> ms ms_MyApp_scsi_reservation MyApp_scsi_reservation \ 
>         meta master-max="1" master-node-max="1" clone-max="2" clone-node-max="1"  
> notify="true" 
> colocation MyApp_group_on_scsi_reservation inf: MyApp_group 
> ms_MyApp_scsi_reservation:Master order 
> MyApp_group_after_scsi_reservation inf:
> ms_MyApp_scsi_reservation:promote MyApp_group:start property 
> $id="cib-bootstrap-options" \
>         dc-version="1.1.2-f059ec7ced7a86f18e5490b67ebf4a0b963bccfe" \ 
>         cluster-infrastructure="openais" \ 
>         expected-quorum-votes="2" \ 
>         no-quorum-policy="ignore" \ 
>         stonith-enabled="true" \ 
>         last-lrm-refresh="1305129673" 
> rsc_defaults $id="rsc-options" \ 
>         resource-stickiness="1" 
>  
>  
>  
>  
>  
> From: Max Williams [mailto:Max.Williams at betfair.com]
> Sent: 11 May 2011 13:55
> To: The Pacemaker cluster resource manager
> (pacemaker at oss.clusterlabs.org)
> Subject: [Pacemaker] Failover when storage fails
>  
> Hi,
> I want to configure pacemaker to failover a group of resources and 
> sg_persist (master/slave) when there is a problem with the storage but 
> when I cause the iSCSI LUN to disappear simulating a failure, the 
> cluster always gets stuck in this state:
>  
> Last updated: Wed May 11 10:52:43 2011
> Stack: openais
> Current DC: host001.domain - partition with quorum
> Version: 1.1.2-f059ec7ced7a86f18e5490b67ebf4a0b963bccfe
> 2 Nodes configured, 2 expected votes
> 4 Resources configured. 
> ============
>  
> Online: [ host002.domain host001.domain ]
>  
> fence_host002.domain     (stonith:fence_ipmilan):        Started  
> host001.domain 
> fence_host001.domain     (stonith:fence_ipmilan):        Started  
> host001.domain
> Resource Group: MyApp_group 
>      MyApp_lvm_graph    (ocf::heartbeat:LVM):   Started host002.domain  
> FAILED 
>      MyApp_lvm_landing  (ocf::heartbeat:LVM):   Started host002.domain  
> FAILED 
>      MyApp_fs_graph     (ocf::heartbeat:Filesystem):    Started  
> host002.domain 
>      MyApp_fs_landing   (ocf::heartbeat:Filesystem):    Started  
> host002.domain 
>      MyApp_IP   (ocf::heartbeat:IPaddr):        Stopped 
>      MyApp_init_script   (lsb:abworkload):              Stopped 
> Master/Slave Set: ms_MyApp_scsi_reservation 
>      Masters: [ host002.domain ] 
>      Slaves: [ host001.domain ]
>  
> Failed actions: 
>     MyApp_lvm_graph_monitor_10000 (node=host002.domain, call=129, 
> rc=-2, status=Timed Out): unknown exec error
>     MyApp_lvm_landing_monitor_10000 (node=host002.domain, call=130, 
> rc=-2, status=Timed Out): unknown exec error
>  
> This is printed over and over in the logs: 
>  
> May 11 12:34:56 host002 lrmd: [2561]: info: perform_op:2884: operation 
> stop[202] on ocf::Filesystem::MyApp_fs_graph for client 31850, its
> parameters: fstype=[ext4] crm_feature_set=[3.0.2] 
> device=[/dev/VolGroupB00/abb_graph] CRM_meta_timeout=[20000] 
> directory=[/naab1]  for rsc is already running.
> May 11 12:34:56 host002 lrmd: [2561]: info: perform_op:2894: 
> postponing all ops on resource MyApp_fs_graph by 1000 ms May 11
> 12:34:57 host002 lrmd: [2561]: info: perform_op:2884: operation 
> stop[202] on ocf::Filesystem::MyApp_fs_graph for client 31850, its
> parameters: fstype=[ext4] crm_feature_set=[3.0.2] 
> device=[/dev/VolGroupB00/abb_graph] CRM_meta_timeout=[20000] 
> directory=[/naab1]  for rsc is already running.
> May 11 12:34:57 host002 lrmd: [2561]: info: perform_op:2894: 
> postponing all ops on resource MyApp_fs_graph by 1000 ms May 11
> 12:34:58 host002 lrmd: [2561]: info: perform_op:2884: operation 
> stop[202] on ocf::Filesystem::MyApp_fs_graph for client 31850, its
> parameters: fstype=[ext4] crm_feature_set=[3.0.2] 
> device=[/dev/VolGroupB00/abb_graph] CRM_meta_timeout=[20000] 
> directory=[/naab1]  for rsc is already running.
> May 11 12:34:58 host002 lrmd: [2561]: info: perform_op:2894: 
> postponing all ops on resource MyApp_fs_graph by 1000 ms May 11
> 12:34:58 host002 lrmd: [2561]: WARN: MyApp_lvm_graph:monitor process 
> (PID 1938) timed out (try 1).  Killing with signal SIGTERM (15).
> May 11 12:34:58 host002 lrmd: [2561]: WARN: MyApp_lvm_landing:monitor 
> process (PID 1939) timed out (try 1).  Killing with signal SIGTERM (15).
> May 11 12:34:58 host002 lrmd: [2561]: WARN: operation monitor[190] on 
> ocf::LVM::MyApp_lvm_graph for client 31850, its parameters:
> CRM_meta_depth=[0] depth=[0] exclusive=[yes] crm_feature_set=[3.0.2] 
> volgrpname=[VolGroupB00] CRM_meta_on_fail=[standby] 
> CRM_meta_name=[monitor] CRM_meta_interval=[10000] 
> CRM_meta_timeout=[10000] : pid [1938] timed out May 11 12:34:58
> host002 lrmd: [2561]: WARN: operation monitor[191] on ocf::LVM::MyApp_lvm_landing for client 31850, its parameters:
> CRM_meta_depth=[0] depth=[0] exclusive=[yes] crm_feature_set=[3.0.2] 
> volgrpname=[VolGroupB01] CRM_meta_on_fail=[standby] 
> CRM_meta_name=[monitor] CRM_meta_interval=[10000] 
> CRM_meta_timeout=[10000] : pid [1939] timed out May 11 12:34:58
> host002 crmd: [31850]: ERROR: process_lrm_event: LRM operation
> MyApp_lvm_graph_monitor_10000 (190) Timed Out (timeout=10000ms) May 11
> 12:34:58 host002 crmd: [31850]: ERROR: process_lrm_event: LRM 
> operation MyApp_lvm_landing_monitor_10000 (191) Timed Out
> (timeout=10000ms) May 11 12:34:59 host002 lrmd: [2561]: info: 
> perform_op:2884: operation stop[202] on 
> ocf::Filesystem::MyApp_fs_graph for client 31850, its
> parameters: fstype=[ext4] crm_feature_set=[3.0.2] 
> device=[/dev/VolGroupB00/abb_graph] CRM_meta_timeout=[20000] 
> directory=[/naab1]  for rsc is already running.
> May 11 12:34:59 host002 lrmd: [2561]: info: perform_op:2894: 
> postponing all ops on resource MyApp_fs_graph by 1000 ms
>  
> And I noticed there are about 100 vgdisplay processes running in D state. 
>  
> How can I configure Pacemaker so the other host forces sg_persist to 
> be a master and then just takes the whole resource group without fencing?
>  
> I've tried "on-fail=standby" or "migration-threshold=0" but it just 
> always gets stuck in this state. If I reconnect the LUN everything 
> resumes and it instantly fails over but this is less than ideal.
>  
> Thanks,
> Max
>  
>  
>  
>  
>  
>  
>  
> ______________________________________________________________________
> __ In order to protect our email recipients, Betfair Group use SkyScan 
> from MessageLabs to scan all Incoming and Outgoing mail for viruses.
>  
> ______________________________________________________________________
> __
>  
> ______________________________________________________________________
> __ In order to protect our email recipients, Betfair Group use SkyScan 
> from MessageLabs to scan all Incoming and Outgoing mail for viruses.
>  
> ______________________________________________________________________
> __




--
Tim Serong <tserong at novell.com>
Senior Clustering Engineer, OPS Engineering, Novell Inc.



_______________________________________________
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://developerbugs.linux-foundation.org/enter_bug.cgi?product=Pacemaker

________________________________________________________________________
In order to protect our email recipients, Betfair Group use SkyScan from MessageLabs to scan all Incoming and Outgoing mail for viruses.

________________________________________________________________________

_______________________________________________
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://developerbugs.linux-foundation.org/enter_bug.cgi?product=Pacemaker

________________________________________________________________________
In order to protect our email recipients, Betfair Group use SkyScan from 
MessageLabs to scan all Incoming and Outgoing mail for viruses.

________________________________________________________________________




More information about the Pacemaker mailing list