RHCS quorum/multipath
Frank Clements <[email protected]> Mon, 28 Sep 2009 09:05:38 -0400
| Newsgroups | gmane.linux.redhat.rhn.user |
|---|---|
| Message-ID | <AC3080AE48D50941B2FA63A2406B15CA020B9757EC@INT-EXCHMAIL1.int.inetu.net> |
Hello list, I'm in the process of setting up a two node cluster attached to a Dell MD3000i. Both nodes are connected via two switches to provide full backend redundancy. The dell MPP drivers are installed and reporting everything as Ok, path failover is working as expected (although longer than I would expect). The issue I'm running into is that in the event of path failure CMAN complains about losing contact with the quorum and eventually fences the node which lost the path. I've attempted tuning the totem and quorum_dev_poll to higher values (all configs/logs attached). The quorum is slightly lower than both. I actually followed the RH KB doc 2882 which states to set the quorum timeout (interval * tko) to a value 1.7x larger than the multipath failover value and totem to a value 2.7x greater. Now, there is little no documentation from Dell on what the values in mpp.conf mean. I _think_ I've reset these to some fairly low values, but have since reverted back to the default config in the initrd image. In the attached messages file I shutdown one of the backend interfaces to simulate path failure, after about a minute the node is evicted and fenced. I just can't seem to get all the values to line up to allow path failover without node fencing. I'm wondering if anyone else has experienced this and how it's resolved? I'm at a loss at this point so any help is appreciated. Frank Clements _______________________________________________ rhn-users mailing list [email protected] https://www.redhat.com/mailman/listinfo/rhn-users
messages
(application/octet-stream, 2.9 KB) - not displayed
mpp.conf
(application/octet-stream, 697 B)
VirtualDiskProductId=MD Virtual Disk DebugLevel=0x0 NotReadyWaitTime=270 BusyWaitTime=270 QuiescenceWaitTime=270 InquiryWaitTime=60 MaxLunsPerArray=256 MaxPathsPerController=4 ScanInterval=60 InquiryInterval=1 MaxArrayModules=30 ErrorLevel=3 SelectionTimeoutRetryCount=0 UaRetryCount=10 RetryCount=10 SynchTimeout=170 FailOverQuiescenceTime=20 FailoverTimeout=120 FailBackToCurrentAllowed=1 ControllerIoWaitTime=300 ArrayIoWaitTime=600 DisableLUNRebalance=0 IdlePathCheckingInterval=60 RecheckFailedPathWaitTime=30 FailedPathCheckingInterval=60 ArrayFailoverWaitTime=300 PrintSenseBuffer=0 ClassicModeFailover=0 AVTModeFailover=0 LunFailoverDelay=3 LoadBalancePolicy=1 S2ToS3Key=5c53621e5dde8941
cluster.conf
(application/octet-stream, 3 KB)
<?xml version="1.0"?>
<cluster name="ineturd-cluster" config_version="2009092506">
<!-- Make note of the two node count 0
- The fact that there is a quorum device means this is a 3 node cluster
- which is reflected by the expected_vote.
-->
<cman expected_vote="3" two_node="0" quorum_dev_poll="23900"/>
<!-- Setup the CMAN timeout interval
- This value is set to 2.7x the ArrayFailoverWaitTime found in mpp.conf
-
- The token value is defined in milliseconds.
-->
<totem token="24300"/>
<!-- The heuristics below are used to identify whether or not the storage is actually available.
-
- Notice the interval and tko values. The quorum failover = interval * tko. the quorum failover
- time was computed from 1.7x the ArrayFailoverWaitTime found in mpp.conf
-->
<quorumd device="/dev/sdd" interval="3" lable="51ba2bbe-3a83-4a33-a3eb-2fb899aef3ca" min_score="1" tko="53" tko_up="3" votes="1" status_file="/qdisk_status">
<heuristic program="/bin/ping -c1 -i1 192.168.100.101" score="1" interval="2" tko="3"/>
<heuristic program="/bin/ping -c1 -i1 192.168.100.102" score="1" interval="2" tko="3"/>
<heuristic program="/bin/ping -c1 -i1 192.168.101.101" score="1" interval="2" tko="3"/>
<heuristic program="/bin/ping -c1 -i1 192.168.101.102" score="1" interval="2" tko="3"/>
</quorumd>
<clusternodes>
<clusternode name="ineturd-cnode01.lab.inetu.net" votes="1" nodeid="1">
<fence>
<method name="single">
<device name="ineturd-cnode01-ipmi"/>
</method>
</fence>
</clusternode>
<clusternode name="ineturd-cnode02.lab.inetu.net" votes="1" nodeid="2">
<fence>
<method name="single">
<device name="ineturd-cnode02-ipmi"/>
</method>
</fence>
</clusternode>
</clusternodes>
<fencedevices>
<fencedevice name="ineturd-cnode01-ipmi" agent="fence_ipmilan" ipaddr="192.168.10.197" login="root" passwd="lkjlkj" option="reboot" auth="password"/>
<fencedevice name="ineturd-cnode02-ipmi" agent="fence_ipmilan" ipaddr="192.168.10.198" login="root" passwd="lkjlkj" option="reboot" auth="password"/>
</fencedevices>
<!-- Resource manager configuration section
- The following sections outline the services which will be monitored
- and controled by the cluster.
-->
<rm>
<!-- Failover domain configuration for MySQL -->
<failoverdomains>
<failoverdomain name="MySQLFailoverDomain" restricted="1" ordered="0" nofailback="1">
<failoverdomainnode name="ineturd-cnode01.lab.inetu.net" priority="50"/>
<failoverdomainnode name="ineturd-cnode02.lab.inetu.net" priority="50"/>
</failoverdomain>
</failoverdomains>
<!-- No resources defined by default -->
<resources/>
<!-- Service definition for the MySQL service and it's IP -->
<service autostart="1" domain="MySQLFailoverDomain" name="MySQL" recovery="restart" max_restarts="3" restart_expire_time="60">
<ip address="192.168.10.50" monitor_link="1"/>
<mysql name="ClusteredMySQL" config_file="/clustered_storage/my.cnf"/>
</service>
</rm>
</cluster>
smime.p7s
(application/x-pkcs7-signature, 3.5 KB) - not displayed