共计 1781 个字符,预计需要花费 5 分钟才能阅读完成。
Linux 下多路径 Multipath 的简单配置
1、启用 Multipath:
(1)启动 multipathd 服务
#service multipathd start 或者 #/etc/init.d/multipathd start
(2)修改 multipath 配置文件 /etc/multipath.conf:
a 默认情况下所以的设备都在 multipath 的黑名单中,所以即使启动了 multipathd 服务并加在了内核模块,multipath 也不会对链路进行聚合,找到下面的 3 行并注释掉(在行首加上 #号)
#devnode_blacklist {
# devnode “*”
#}
b 默认情况下 multipath 生成 dm 设备之后,会同时在 /dev/mapper/ 下生成以磁盘 wwid 为名的符号链接指向对应的 dm 设备。如果想生成 mpath 设备,则需要打开 user_friendly_names 选项,将配置文件中下面 3 行的注释取消(去掉行首的 #号)
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 中将本地磁盘加入到黑名单,配置的方法可以参考下面的示例
devnode_blacklist {
wwid 36005076b08164f4011ae88b23efb95fe
devnode “^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*”
devnode “^hd[a-z]”
}
如上例所示,可以通过 wwid 或者设备名将本地磁盘加入到黑名单中。
2、固定 multipath 设备的命名:
通过 wwid 和设备别名一一对应的方式固定 multipath 设备的名称,这些和别名对应的设备会被创建到 /dev/mapper/ 目录下,使用时直接使用这个目录的的设备。
(1)通过 /var/lib/multipath/bindings 可以获取所有磁盘的 wwid,确定每个磁盘的别名之后,在 /etc/multipath.conf 中的 multipaths 段中加入相应的配置,如将 wwid 为 3600508b4000c3b910000c00000330000 的磁盘命名为 etl01,wwid 为 3600508b4000c3b910000c00000390000 的磁盘命名为 etl02,配置文件如下所示
multipaths {
multipath {
wwid 3600508b4000c3b910000c00000330000
alias etl01
}
multipath {
wwid 3600508b4000c3b910000c00000390000
alias etl02
}
}
(2)配置完成之后,重启 multipathd 服务,使用下面的命令清空已有的 multipath 记录
#multipath -F
然后使用 multipath -v2 重新扫描设备,这时会在 /dev/mapper/ 目录下生成和别名对应的设备文件。
#ls /dev/mapper/
control etl01 eth02
(3)如果多台服务器的存储链路完全相同,并希望各服务器上同一磁盘的设备名相同,可以在一台服务器上配置好别名绑定之后,将 multipaths {} 中间的配置复制到其他服务器,这样各台服务器 /dev/mapper/ 下面的设备将会保持一致。
Multipath 实现 LUN 设备名称的持久化 http://www.linuxidc.com/Linux/2013-04/83300.htm