<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>unixpowered.com &#187; multipathing</title>
	<atom:link href="http://www.unixpowered.com/blog/category/multipathing/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.unixpowered.com/blog</link>
	<description></description>
	<lastBuildDate>Wed, 21 Jul 2010 13:42:57 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=abc</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Linux multipathing</title>
		<link>http://www.unixpowered.com/blog/2009/11/27/linux-multipathing/</link>
		<comments>http://www.unixpowered.com/blog/2009/11/27/linux-multipathing/#comments</comments>
		<pubDate>Fri, 27 Nov 2009 22:40:46 +0000</pubDate>
		<dc:creator>somedude</dc:creator>
				<category><![CDATA[centos]]></category>
		<category><![CDATA[fibre channel]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[linux tips]]></category>
		<category><![CDATA[multipathing]]></category>
		<category><![CDATA[redhat]]></category>
		<category><![CDATA[san]]></category>
		<category><![CDATA[storage]]></category>

		<guid isPermaLink="false">http://www.unixpowered.com/blog/?p=381</guid>
		<description><![CDATA[I use MPxIO in Solaris quite often and it works very well for me. This time I needed to test out I/O multipathing in RedHat. What I really needed to do: have a server with two HBA&#8217;s manage a mirror which has submirrors on separate SAN&#8217;s; so that the server has multiple paths to each [...]]]></description>
			<content:encoded><![CDATA[<p>I use MPxIO in Solaris quite often and it works very well for me. This time I needed to test out I/O multipathing in RedHat. What I really needed to do: have a server with two HBA&#8217;s manage a mirror which has submirrors on separate SAN&#8217;s; so that the server has multiple paths to each submirror. That way, if an HBA goes the server has still connection to both submirrors through the remaining HBA. </p>
<p>Gear used in this &#8220;experiment&#8221;:</p>
<ul>
<li>Dell Poweredge server.</li>
<li>Two Qlogic QLA2310 HBA&#8217;s.</li>
<li>RHEL Server 5.3 x86.</li>
<li>Two SAN&#8217;s presenting one LUN each.</li>
</ul>
<p>Rough steps I took to get this working:</p>
<ol>
<li>Make sure device mapper package is installed.</li>
<li>Present two LUN&#8217;s from two SAN&#8217;s.</li>
<li>Probe HBA&#8217;s for presented LUN&#8217;s.</li>
<li>Configure multipathing.</li>
</ol>
<p>First and foremost, make sure <em>qla2xxx</em> driver is loaded. You also have to make sure you have <em>device-mapper-multipath-0.4.7-23.el5</em> installed. Next, configure multipathing daemon so that it starts on boot:</p>
<p><code>[root@carbon ~]# <strong>chkconfig multipathd on</strong></code></p>
<p>When that&#8217;s done you need to make the system aware of the presented LUN&#8217;s. One way to do so is to reboot the server. Another option is to force HBA scan:</p>
<p><code>[root@carbon ~]# <strong>echo "- - -" &gt; /sys/class/scsi_host/host1/scan</strong></code></p>
<p>During this you should watch <em>/var/log/messages</em> to see if your LUN&#8217;s are detected. When done, make <em>multipathd</em> aware of the LUN&#8217;s:</p>
<p><code>[root@</code><code>carbon</code><code> ~]# <strong>multipath -v2 -d</strong></code></p>
<p>The above command is a &#8220;dry run&#8221;. There will be no device map changes committed. You will only be shown device mapper changes that will be made. To commit device map changes run:</p>
<p><code>[root@carbon ~]# <strong>multipath -v2</strong></code></p>
<p>Once this is done you can see what <em>multipathd</em> is seeing:</p>
<p><code>[root@carbon ~]# <strong>multipath -ll</strong><br />
mpath2 (3600508d311100a300000f00001a90000) dm-3 COMPAQ,HSV111 (C)COMPAQ<br />
[size=15G][features=1 queue_if_no_path][hwhandler=0][rw]<br />
\_ round-robin 0 [prio=100][enabled]<br />
&nbsp;\_ 1:0:3:1 sde 8:64  [active][ready]<br />
&nbsp;\_ 2:0:3:1 sdh 8:112 [active][ready]<br />
\_ round-robin 0 [prio=20][enabled]<br />
&nbsp;\_ 1:0:2:1 sdd 8:48  [active][ready]<br />
&nbsp;\_ 2:0:2:1 sdg 8:96  [active][ready]<br />
mpath1 (3600508c362d0a1250000900001490000) dm-2 COMPAQ,HSV111 (C)COMPAQ<br />
[size=15G][features=1 queue_if_no_path][hwhandler=0][rw]<br />
\_ round-robin 0 [prio=100][enabled]<br />
&nbsp;\_ 1:0:0:1 sdb 8:16  [active][ready]<br />
&nbsp;\_ 2:0:4:1 sdi 8:128 [active][ready]<br />
\_ round-robin 0 [prio=20][enabled]<br />
&nbsp;\_ 1:0:1:1 sdc 8:32  [active][ready]<br />
&nbsp;\_ 2:0:1:1 sdf 8:80  [active][ready]</code></p>
<p>If everything looks good, you can create configuration file for <em>multipathd</em>. You will need to edit <em>/etc/multipath.conf</em> and depending on your environment, add or modify some parameters. The configuration file contains enough comments and examples to figure out what different parameters mean. When in doubt, consult the man pages.</p>
<p>First, add a <em>blacklist</em> section, which will make certain device exempt from multipathing. I have my internal drives listed in blacklist section:</p>
<p><code>blacklist&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;devnode&nbsp;"^sd[a-b].*"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;devnode&nbsp;"^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;devnode&nbsp;"^hd[a-z]"<br />
}</code></p>
<p>Next, you are going to need <em>device</em> section. This is going to be specific to your SAN. The one below is for EVA5000. I got the parameters from HP&#8217;s device mapper package:</p>
<p><code>device&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vendor&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"HP|COMPAQ"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;product&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"HSV1[01]1&nbsp;\(C\)COMPAQ|HSV[2][01]0|HSV300"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;path_grouping_policy&nbsp;&nbsp;&nbsp;&nbsp;group_by_prio<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;getuid_callout&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"/sbin/scsi_id&nbsp;-g&nbsp;-u&nbsp;-s&nbsp;/block/%n"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;path_checker&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tur<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;path_selector&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"round-robin&nbsp;0"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;prio_callout&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"/sbin/mpath_prio_alua&nbsp;/dev/%n"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rr_weight&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uniform<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;failback&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;immediate<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hardware_handler&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"0"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;no_path_retry&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;12<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rr_min_io&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;100<br />
}</code></p>
<p>You should also look at <em>defaults</em> section to make sure it is configured for your setup. Again, the parameters in mine are specific to EVA5000:</p>
<p><code>defaults&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;udev_dir&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/dev<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;polling_interval&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;10<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;selector&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"round-robin&nbsp;0"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;path_grouping_policy&nbsp;&nbsp;&nbsp;&nbsp;failover<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;getuid_callout&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"/sbin/scsi_id&nbsp;-g&nbsp;-u&nbsp;-s&nbsp;/block/%n"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;prio_callout&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"/bin/true"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;path_checker&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tur<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rr_min_io&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;100<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rr_weight&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uniform<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;failback&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;immediate<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;no_path_retry&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;12<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;user_friendly_names&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;yes<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bindings_file&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"/var/lib/multipath/bindings"<br />
}</code></p>
<p>Finally, you will need to specify configuration for the presented LUN&#8217;s. This applies to the <em>multipaths</em> section of <em>multipath.conf</em> file:</p>
<p><code>multipath&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wwid&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3600508b4001031250000900001490000<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alias&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;san1data<br />
}<br />
multipath&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wwid&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3600508b400011c300000f00001a90000<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alias&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;san2data<br />
}</code></p>
<p>After you are done, restart multipathd and check output of <em>multipath -ll</em> command:</p>
<p><code>[root@carbon ~]# <strong>multipath -ll</strong><br />
san2data (3600508d311100a300000f00001a90000) dm-3 COMPAQ,HSV111 (C)COMPAQ<br />
[size=15G][features=1 queue_if_no_path][hwhandler=0][rw]<br />
\_ round-robin 0 [prio=100][active]<br />
&nbsp;\_ 1:0:3:1 sde 8:64  [active][ready]<br />
&nbsp;\_ 2:0:3:1 sdh 8:112 [active][ready]<br />
\_ round-robin 0 [prio=20][enabled]<br />
&nbsp;\_ 1:0:2:1 sdd 8:48  [active][ready]<br />
&nbsp;\_ 2:0:2:1 sdg 8:96  [active][ready]<br />
san1data (3600508c362d0a1250000900001490000) dm-2 COMPAQ,HSV111 (C)COMPAQ<br />
[size=15G][features=1 queue_if_no_path][hwhandler=0][rw]<br />
\_ round-robin 0 [prio=50][enabled]<br />
&nbsp;\_ 1:0:0:1 sdb 8:16  [active][ready]<br />
&nbsp;\_ 2:0:4:1 sdi 8:128 [active][ready]<br />
\_ round-robin 0 [prio=20][enabled]<br />
&nbsp;\_ 1:0:1:1 sdc 8:32  [active][ready]<br />
&nbsp;\_ 2:0:1:1 sdf 8:80  [active][ready]</code></p>
<p>That should be it. You should test the setup by disabling paths to see if your LUN&#8217;s stay up.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.unixpowered.com/blog/2009/11/27/linux-multipathing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- www.000webhost.com Analytics Code -->
<script type="text/javascript" src="http://analytics.hosting24.com/count.php"></script>
<noscript><a href="http://www.hosting24.com/"><img src="http://analytics.hosting24.com/count.php" alt="web hosting" /></a></noscript>
<!-- End Of Analytics Code -->
