IBM V7000多路径解决

1、查看主机上光纤卡的WWN

[[email protected] host2]# pwd

/sys/class/fc_host/host2

[[email protected] host2]# cat port_name

0x5001438006342f80

2、在V7000存储上进行mapping

在存储上查看是否能看到该HBA卡的WWN,mapping后可重新扫描设备

[[email protected] host2]# cd /sys/class/scsi_host/host2

[[email protected] host2]# echo "- - -">./scan

可以看到认到盘了

fdisk -l

3、V7000使用Linux device-mapper multipathing driver作为多路径软件

启用步骤:

step1. service multipathd stop

step2.修改/etc/multipah.conf

备份该文件cp /etc/multipath.conf /etc/bak.multipath.conf

blacklist {

# 黑名单,就是禁止哪些设备使用multipathing driver

# 默认情况下所以的设备都在multipath的黑名单中,所以即使启动了multipathd服务并加在了内核模块,multipath也不会对链路进行聚合,必须进行修改

# 可以按照wwid逐一加入,也可以使用devnode的方式按照规律批量加入

wwid 1HITACHI_D60055750023

wwid 1HITACHI_D60055750028

devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"

devnode "^hd[a-z]"

}

defaults {

# 默认情况下multipath生成dm设备之后,会同时在/dev/mapper/下生成以磁盘wwid为名的符号链接指向对应的dm设备。

# 如果想生成 mpath设备,则需要打开user_friendly_names选项

polling_interval 30

failback immediate

no_path_retry 5

rr_min_io 100

path_checker tur

user_friendly_names yes

}

devices {

# Storwize V7000 -->其实应该是SVC,因为2145是SVC的ID,V7000的ID是2076

# Note: If you are using RHEL6 or SUSE Linux Enterprise Server 10 Service Pack 2,

# use prio "alua" instead of prio_callout "/sbin/mpath_prio_alua /dev/%n" to disable

# the Using deprecated prio_callout message. This value disables only the error message

# and does not affect operations. If prio_callout "/sbin/mpath_prio_alua /dev/%n" is set

# on SUSE Linux Enterprise Server 10 Service Pack 2, the Using deprecated prio_callout message

# is issued for all devices when the multipath command is used.

# 根据Linux版本的不同,prio_callout有所不同,具体可参考information center

device {

vendor "IBM"

product "2145"

path_grouping_policy group_by_prio

prio_callout "/sbin/mpath_prio_alua /dev/%n"

}

}

multipaths {

#可以给multipaths取别名,这样用multipath –ll看到的就是自己取的名字了,可以用此办法避免mpath混乱,固定名字,尤其在做双机的时候

multipath {

wwid 360050768028081d5d80000000000000f

alias nectest01

}

multipath {

wwid 360050768028081d5d800000000000010

alias nectest02

}

multipath {

wwid 360050768028081d5d800000000000011

alias nectest03

}

multipath {

wwid 360050768028081d5d800000000000012

alias nectest04

}

}

如何查看磁盘的wwid呢?通过下面两个文件夹中的内容,以及对应存储上的配置,可以找到。

ls -l /dev/disk/by-id

[[email protected] disk]# ls -l ./by-id

total 0

lrwxrwxrwx 1 root root 9 Apr 6 17:00 scsi-360050768028081d5d80000000000000f -> ../../sda

lrwxrwxrwx 1 root root 9 Apr 6 17:00 scsi-360050768028081d5d800000000000010 -> ../../sdf

lrwxrwxrwx 1 root root 9 Apr 6 17:00 scsi-360050768028081d5d800000000000011 -> ../../sdg

lrwxrwxrwx 1 root root 9 Apr 6 17:00 scsi-360050768028081d5d800000000000012 -> ../../sdd

step3.重启multipathd服务(修改multipath.conf文件之后都应该重启multipath服务)

service multipathd restart

step4.chkconfig multipathd on

4、常用的一些multipath工具

清空已有的multipath记录

multipath -F

扫描磁盘,系统中会出现链路聚合之后的dm设备,同时也会在/dev/mapper/、/dev/mpath/目录下生成相应的设备。

multipath -v2

查看multipath拓扑结构

multipath -ll

可以在/dev/mapper下看到磁盘nectest01-nectest04,用这个逻辑名字来建pv、vg

另外一个重要的文件是/var/lib/multipath/bindings,这个文件中是磁盘的别名和wwid的对应关系,

但在我们这里看不到,因为我们在multipath.conf中启用了user_friendly_names,已经显示的指定了别名与wwid的关系

如果要做集群,则要求/dev/mapper下的磁盘别名一致,只要将multipath.conf中定义的磁盘alias一致即可。

发表评论