在Linux平台使用multipath固化磁盘设备与LUN的对应关系


        在Linux平台做Oracle RAC,经常会遇到两个不同的节点的相同存储设备名对应不同的LUN,这对于Oracle RAC的安装会带来较大的困扰,这个问题可以通过存储的多路径软件配置,Multipath,udev来解决,下面是一个例子,展示了使用Multipath解决这个问题。

        现在越来越多的存储在Linux平台都直接使用Multipath软件作为自己的多路径软件,这样安装和部署都非常的方便。下面这个例子使用的是EMC的存储,没有安装EMC的多路径软件,在安装好Oracle Linux 6的操作系统之后,根据环境自动生成了Multipath配置文件,并且该配置文件生效,有效的避免了前面提到的问题,这里做出记录:
[root@oracle2 etc]# cat multipath.conf
# multipath.conf written by anaconda

defaults {
        user_friendly_names yes
}
blacklist {
        devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
        devnode "^hd[a-z]"
        devnode "^dcssblk[0-9]*"
        device {
                vendor "DGC"
                product "LUNZ"
        }
        device {
                vendor "IBM"
                product "S/390.*"
        }
        # don't count normal SATA devices as multipaths
        device {
                vendor  "ATA"
        }
        # don't count 3ware devices as multipaths
        device {
                vendor  "3ware"
        }
        device {
                vendor  "AMCC"
        }
        # nor highpoint devices
        device {
                vendor  "HPT"
        }
        wwid "366c416a105bce0001956f42f04d4e160"
        wwid "350060160bee0195c50060160bee0195c"
        wwid "20111102-00000002"
        wwid "20111102-00000002"
        wwid "350060160bee0195c50060160bee0195c"
        wwid "350060160bee0195c50060160bee0195c"
        wwid "350060160bee0195c50060160bee0195c"
        device {
                vendor Cisco
                product Virtual_CD_DVD
        }
        wwid "*"
}
blacklist_exceptions {
        wwid "36006016046f03200342f9967bbd8e211"
        wwid "36006016046f03200352f9967bbd8e211"
        wwid "36006016046f032006c060e70bbd8e211"
        wwid "36006016046f032006d060e70bbd8e211"
        wwid "36006016046f03200b84f3077bbd8e211"
        wwid "36006016046f032001af61c82bbd8e211"
        wwid "36006016046f0320040733292bbd8e211"
}
multipaths {
        multipath {
                uid 0
                gid 0
                wwid "36006016046f03200342f9967bbd8e211"
                mode 0600
        }
        multipath {
                uid 0
                gid 0
                wwid "36006016046f03200352f9967bbd8e211"
                mode 0600
        }
        multipath {
                uid 0
                gid 0
                wwid "36006016046f032006c060e70bbd8e211"
                mode 0600
        }
        multipath {
                uid 0
                gid 0
                wwid "36006016046f032006d060e70bbd8e211"
                mode 0600
        }
        multipath {
                uid 0
                gid 0
                wwid "36006016046f03200b84f3077bbd8e211"
                mode 0600
        }
        multipath {
                uid 0
                gid 0
                wwid "36006016046f032001af61c82bbd8e211"
                mode 0600
        }
        multipath {
                uid 0
                gid 0
                wwid "36006016046f0320040733292bbd8e211"
                mode 0600
        }
}

        上面的配置可以作为一个模板保留下来,通过对wwid号的修改可以很好的将系统磁盘设备名称和存储LUN对应并固化下来。

        在multipath中还可以配置别名,例如:
              multipath {
                                 wwid 14f504e46494c4500556e533079542d644c46642d3047614a
                                 alias disk1
                              }
        这样在/dev/mapper目录下会生成对应存储LUN 
wwid号的系统磁盘设备名称。

        完成multipath.conf文件的配置之后,需要执行以下的命令确保multipathd服务能自动启动:
#service multipathd restart
#chkconfig --level 345 multipathd on
#chkconfig --list | grep multipathd

        另外,使用Linux平台的udev工具,预先绑定scsi_id命令收集的LUN ID,也可以达到Multipath软件达到的效果。详情可参考文章:
http://blog.csdn.net/hijk139/article/details/8979941

--end--

请使用浏览器的分享功能分享到微信等