{"id":228,"date":"2009-08-21T04:02:03","date_gmt":"2009-08-21T04:02:03","guid":{"rendered":"http:\/\/asgaur.com\/wp\/?p=228"},"modified":"2009-08-21T04:02:03","modified_gmt":"2009-08-21T04:02:03","slug":"linux-native-multipath-failover-on-sles-9","status":"publish","type":"post","link":"http:\/\/www.asgaur.com\/wp\/linux-native-multipath-failover-on-sles-9\/","title":{"rendered":"Linux: Native Multipath Failover on SLES 9"},"content":{"rendered":"<p><!-- Adsense block #790 not displayed since it exceed the limit of 3 --><\/p>\n<p>1. The multipath-tools package is not installed as part of a default installation of the operating system. The recommended multipath-tools rpm package is available from the Novell<br \/>\nwebsite. The SLES 9 SP3 installation CD includes the multipath-tools package.<\/p>\n<p>2. Verify that the required version of uDev has been installed for your environment. To query the uDev version, execute the command:<\/p>\n<p><code># rpm -q udev<\/code><br \/>\nIf required, upgrade the uDev package and then execute the command to create a new device under the &#8216;\/dev&#8217; directory.<\/p>\n<p><code># udevstart<\/code><br \/>\n3. Novell recommends that &#8216;subfs&#8217; auto-mount be disabled when using MPIO. This is achieved by editing the &#8216;\/etc\/sysconfig\/hotplug&#8217; and setting the value:<\/p>\n<p><code>HOTPLUG_USE_SUBFS=no<\/code><\/p>\n<p>Also, to prevent significant boot-up delays, edit \/etc\/sysconfig\/boot and set the value:<br \/>\nDISABLE_BLKID=yes<\/p>\n<p>4. Load the dm_multipath kernel module if it is not already loaded.<\/p>\n<p><code># modprobe dm_multipath<\/code><br \/>\n5. Replace the default \/etc\/multipath.conf with the following multipath.conf file recommended by EMC for attach to EMC storage.<\/p>\n<p>Follow the instructions in the annotated multipath.conf file for masking internal scsi disks or disks that need to be excluded from multipath control.<\/p>\n<p>## This is the \/etc\/multipath.conf file recommended for<br \/>\n## EMC storage devices.<br \/>\n##<br \/>\n## OS : SLES 9 SP3<br \/>\n## Arrays : CLARiiON and SYMMETRIX<br \/>\n##<br \/>\n## The blacklist is the enumeration of all devices that are to be<br \/>\n## excluded from multipath control<br \/>\ndevnode_blacklist {<br \/>\n## Replace the wwid with the output of the command<br \/>\n## &#8216;scsi_id -g -u -s \/block\/[internal scsi disk name]&#8217;<br \/>\n## Enumerate the wwid for all internal scsi disks.<br \/>\n## Optionally, the wwid of VCM database may also be listed here.<br \/>\nwwid 20010b9fd080b7321<br \/>\ndevnode &#8220;^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*&#8221;<br \/>\ndevnode &#8220;^hd[a-z][[0-9]*]&#8221;<br \/>\ndevnode &#8220;^cciss!c[0-9]d[0-9]*[p[0-9]*]&#8221;<br \/>\n}<br \/>\ndevices {<br \/>\n## Device attributes for EMC SYMMETRIX<br \/>\ndevice {<br \/>\nvendor &#8220;EMC &#8220;<br \/>\nproduct &#8220;SYMMETRIX&#8221;<br \/>\npath_grouping_policy multibus<br \/>\ngetuid_callout &#8220;\/sbin\/scsi_id -g -u -s \/block\/%n&#8221;<br \/>\npath_selector &#8220;round-robin 0&#8221;<br \/>\nfeatures &#8220;0&#8221;<br \/>\nhardware_handler &#8220;0&#8221;<br \/>\nfailback immediate<br \/>\n}<br \/>\n## Device attributes for EMC CLARiiON<br \/>\ndevice {<br \/>\nvendor &#8220;DGC&#8221;<br \/>\nproduct &#8220;*&#8221;<br \/>\npath_grouping_policy group_by_prio<br \/>\ngetuid_callout &#8220;\/sbin\/scsi_id -g -u -s \/block\/%n&#8221;<br \/>\nprio_callout &#8220;\/sbin\/mpath_prio_emc \/dev\/%n&#8221;<br \/>\nhardware_handler &#8220;1 emc&#8221;<br \/>\nfeatures &#8220;1 queue_if_no_path&#8221;<br \/>\nno_path_retry 300<br \/>\npath_checker emc_clariion<br \/>\nfailback immediate<br \/>\n}<br \/>\n}<\/p>\n<p>6. Perform a dry run and evaluate the setup by running the multipath command.<\/p>\n<p>&#8226; With Symmetrix Logical Units, the output will look similar to:<\/p>\n<p># multipath &#8211;v2 -d<br \/>\ncreate: 360060480000190100501533030383842<br \/>\n[size=898 MB][features=&#8221;0&#8243;][hwhandler=&#8221;0&#8243;]<br \/>\n_ round-robin 0 [prio=4]<br \/>\n_ 2:0:2:105 sdaa 65:160 [ready]<br \/>\n_ 2:0:3:105 sdas 66:192 [ready]<br \/>\n_ 3:0:2:105 sdcj 69:112 [ready]<br \/>\n_ 3:0:3:105 sddb 70:144 [ready]<br \/>\ncreate: 360060480000190100501533030383843<br \/>\n[size=898 MB][features=&#8221;0&#8243;][hwhandler=&#8221;0&#8243;]<br \/>\n_ round-robin 0 [prio=4]<br \/>\n_ 2:0:2:106 sdab 65:176 [ready]<br \/>\n_ 2:0:3:106 sdat 66:208 [ready]<br \/>\n_ 3:0:2:106 sdck 69:128 [ready]<br \/>\n_ 3:0:3:106 sddc 70:160 [ready]<br \/>\ncreate: 360060480000190100501533030383844<br \/>\n[size=898 MB][features=&#8221;0&#8243;][hwhandler=&#8221;0&#8243;]<br \/>\n_ round-robin 0 [prio=4]<br \/>\n_ 2:0:2:107 sdac 65:192 [ready]<br \/>\n_ 2:0:3:107 sdau 66:224 [ready]<br \/>\n_ 3:0:2:107 sdcl 69:144 [ready]<br \/>\n_ 3:0:3:107 sddd 70:176 [ready]<br \/>\ncreate: 360060480000190100501533030383845<br \/>\n[size=898 MB][features=&#8221;0&#8243;][hwhandler=&#8221;0&#8243;]<br \/>\n_ round-robin 0 [prio=4]<br \/>\n_ 2:0:2:108 sdad 65:208 [ready]<br \/>\n_ 2:0:3:108 sdav 66:240 [ready]<br \/>\n_ 3:0:2:108 sdcm 69:160 [ready]<br \/>\n_ 3:0:3:108 sdde 70:192 [ready]<\/p>\n<p>&#8226; With CLARiiON Logical Units, the output will look similar to:<\/p>\n<p># multipath &#8211;v2 &#8211;d<br \/>\ncreate: 360060160aa4018002ae6839182a8da11<br \/>\n[size=3 GB][features=&#8221;1 queue_if_no_path&#8221;][hwhandler=&#8221;1 emc&#8221;]<br \/>\n_ round-robin 0 [prio=2]<br \/>\n_ 3:0:0:6 sdbe 67:128 [ready]<br \/>\n_ 2:0:0:6 sdbk 67:128 [ready]<br \/>\n_ round-robin 0<br \/>\n_ 3:0:1:6 sdbr 68:80 [ready]<br \/>\n_ 2:0:1:6 sdi 8:128 [ready]<br \/>\ncreate: 360060160aa4018002ce6839182a8da11<br \/>\n[size=3 GB][features=&#8221;1 queue_if_no_path&#8221;][hwhandler=&#8221;1 emc&#8221;]<br \/>\n_ round-robin 0 [prio=2]<br \/>\n_ 3:0:0:7 sdbf 67:144 [ready]<br \/>\n_ 2:0:0:7 sdbl 67:128 [ready]<br \/>\n_ round-robin 0<br \/>\n_ 3:0:1:7 sdbs 68:96 [ready]<br \/>\n_ 2:0:1:7 sdj 8:144 [ready]<br \/>\ncreate: 360060160aa4018002de6839182a8da11<br \/>\n[size=3 GB][features=&#8221;1 queue_if_no_path&#8221;][hwhandler=&#8221;1 emc&#8221;]<br \/>\n_ round-robin 0 [prio=2]<br \/>\n_ 3:0:1:8 sdbt 68:112 [ready]<br \/>\n_ 2:0:1:8 sdk 8:160 [ready]<br \/>\n_ round-robin 0<br \/>\n_ 3:0:0:8 sdbg 67:160 [ready]<br \/>\n_ 2:0:0:8 sdbm 67:128 [ready]<br \/>\ncreate: 360060160aa4018002ee6839182a8da11<br \/>\n[size=3 GB][features=&#8221;1 queue_if_no_path&#8221;][hwhandler=&#8221;1 emc&#8221;]<br \/>\n_ round-robin 0 [prio=2]<br \/>\n_ 3:0:0:9 sdbh 67:176 [ready]<br \/>\n_ 2:0:0:9 sdbn 67:128 [ready]<br \/>\n_ round-robin 0<br \/>\n_ 3:0:1:9 sdbu 68:128 [ready]<br \/>\n_ 2:0:1:9 sdl 8:176 [ready]<\/p>\n<p>7. If the listing is appropriate, commit the configuration as follows.<\/p>\n<p>a. Start the required multipath processes.<\/p>\n<p><code># \/etc\/init.d\/boot.multipath start<br \/>\n# \/etc\/init.d\/multipathd start<\/code><br \/>\nb. Perform an &#8216;lsmod&#8217; and verify that the processes are running.<\/p>\n<p>&#8226; With Symmetrix attach the following modules should be listed:<\/p>\n<p><code># lsmod |grep dm<br \/>\ndm_round_robin 20480 1<br \/>\ndm_multipath 38544 2 dm_round_robin<br \/>\ndm_mod 77536 10 dm_multipath<\/code><br \/>\n&#8226; With CLARiiON attach the following modules will be listed:<\/p>\n<p><code># lsmod |grep dm<br \/>\ndm_emc 10880 1<br \/>\ndm_round_robin 7680 1<br \/>\ndm_multipath 25352 3 dm_emc,dm_round_robin<br \/>\ndm_mod 61312 1 dm_multipath<\/code><\/p>\n<p>8. To get a listing of the current setup do:<\/p>\n<p><code># multipath -ll<\/code><br \/>\n9. Integrate the startup of the appropriate daemons in the boot sequence as follows:<\/p>\n<p><code># insserv boot.device-mapper multipathd boot.multipath<\/code><br \/>\n10. Device-mapper (dm) names and sd device names may not be persistent across reboots. There are two mechanisms to achieve persistence:<\/p>\n<p>&#8226; Use of scsi_id based persistent names.<\/p>\n<p>The scsi_id based persistent names are populated under the &#8220;\/dev\/disk\/by-name&#8221; directory.<\/p>\n<p>&#8226; Use of LVM-2 on top of device-mapper.<\/p>\n<p>To enable LVM access to devices that are under multipath control, edit the \/etc\/lvm\/lvm.conf and add &#8220;device-mapper&#8221; to the &#8220;types&#8221; extension. By default, device mapper uses the major number of 253.<\/p>\n<p><code>types = [ \"device-mapper\", 253 ]<\/code><\/p>\n<p>Configure logical volumes as necessary. LVM based entries in &#8216;\/etc\/fstab&#8217; are supported. In the normal boot process, the device mapper and the multipath daemons start before LVM starts the discovery process.<\/p>\n<p>You may optionally reboot the host to verify that the required processes automatically startup.<\/p>\n<div class=\"item_footer\">\n<p><small><a href=\"http:\/\/asgaur.com\/asgaur.php\/2009\/08\/21\/linux-native-multipath-failover-on-sles-9\" target=\"_blank\" rel=\"noopener\">Original post<\/a> blogged on <a href=\"http:\/\/b2evolution.net\/\" target=\"_blank\" rel=\"noopener\">b2evolution<\/a>.<\/small><\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>1. The multipath-tools package is not installed as part of a default installation of the operating system. The recommended multipath-tools rpm package is available from the Novell website. The SLES 9 SP3 installation CD includes the multipath-tools package. 2. Verify that the required version of uDev has been installed for your environment. To query the [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"rank_math_lock_modified_date":false,"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[1],"tags":[],"class_list":["post-228","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/www.asgaur.com\/wp\/wp-json\/wp\/v2\/posts\/228","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.asgaur.com\/wp\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.asgaur.com\/wp\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.asgaur.com\/wp\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.asgaur.com\/wp\/wp-json\/wp\/v2\/comments?post=228"}],"version-history":[{"count":0,"href":"http:\/\/www.asgaur.com\/wp\/wp-json\/wp\/v2\/posts\/228\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.asgaur.com\/wp\/wp-json\/wp\/v2\/media?parent=228"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.asgaur.com\/wp\/wp-json\/wp\/v2\/categories?post=228"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.asgaur.com\/wp\/wp-json\/wp\/v2\/tags?post=228"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}