目的:使用 multipath 设定光纤磁盘多路径

环境:Redhat6,EMC vplex+VNC 5400

原因:默认情况下所以的设备都在 multipath 的黑名单中,所以即使启动了 multipathd 服务并加在了内核模块,multipath 也不会对 链路进行聚合,找到下面的 3 行并注释掉(在行首加上 #号)

  1. 修改配置文件 nano /etc/multipath.conf

  2. 找到下列行

1
2
3
4
5
6
7
注釋 # wwid "*"

#devnode_blacklist {

# devnode "*"

#}
  1. 重啟 服務
1
service multipathd restart
  1. 查詢路徑有無新增
1
multipath -ll
  1. 查询结果如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31

mpathb (36000144000000010b003031c8223469f) dm-5 EMC,Invista

size=500G features='1 queue_if_no_path' hwhandler='0' wp=rw

`-+- policy='round-robin 0' prio=1 status=active

|- 0:0:0:1 sdb 8:16 active ready running

|- 1:0:0:1 sdf 8:80 active ready running

|- 0:0:1:1 sdd 8:48 active ready running

`- 1:0:1:1 sdh 8:112 active ready running

mpatha (36000144000000010b003031c82234698) dm-0 EMC,Invista

size=60G features='1 queue_if_no_path' hwhandler='0' wp=rw

`-+- policy='round-robin 0' prio=1 status=active

|- 0:0:0:0 sda 8:0 active ready running

|- 1:0:0:0 sde 8:64 active ready running

|- 0:0:1:0 sdc 8:32 active ready running

`- 1:0:1:0 sdg 8:96 active ready running

--------------------------------

b 默认情况下 multipath 生成 dm 设备之后,会同时在 / dev/mapper / 下生成以磁盘 wwid 为名的符号链接指向对应的 dm 设备。如果想生成 mpath 设备,则需要打开 user_friendly_names 选项,将配置文件中下面 3 行的注释取消(去掉行首的 #号)

1
2
3
4
5
6
7

defaults {

user_friendly_names yes

}

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

(4)扫描磁盘

#multipath -v2

使用上面命令之后,系统中会出现链路聚合之后的 dm 设备,同时也会在 / dev/mapper/、/dev/mpath / 目录下生成相应的设备。

查看 multipath 拓扑结构

#multipath -ll

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

mpath0 3600508b4000c3af700008000002d0000

(5)需要注意的问题,multipath 也会为本地的磁盘生成相应的 dm 设备,所以需要在 multipath.conf 中将本地磁盘加入到黑名单,配置的方法可以参考下面的示例

1
2
3
4
5
6
7
8
9
10
devnode_blacklist {

wwid 36005076b08164f4011ae88b23efb95fe

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

devnode "^hd[a-z]"

}

如上例所示,可以通过 wwid 或者设备名将本地磁盘加入到黑名单中。