光纤存储的多路径配置: 首先载入多路径的内核模块:
modprobe dm-multipath
查看系统中可配置的多路径设备:
multipath -v2 -d
参数释义:verbosity 2,dry-run
上面命令的输出:
# multipath -v2 -d create: 3xxxxxxxxxxxxxxxxxxx undef IBM ,ServeRAID M5015 size=278G features='0' hwhandler='0' wp=undef `-+- policy='service-time 0' prio=1 status=undef `- 0:2:0:0 sda 8:0 undef ready running create: 3xxxxxxxxxxxxxxxxxxx undef IBM ,ServeRAID M5015 size=929G features='0' hwhandler='0' wp=undef `-+- policy='service-time 0' prio=1 status=undef `- 0:2:1:0 sdb 8:16 undef ready running create: 1HITACHI_XXXXXXXXXXX undef HITACHI ,DF600F size=1000G features='0' hwhandler='0' wp=rw `-+- policy='round-robin 0' prio=1 status=active |- 3:0:0:0 sdc 8:32 active ready running `- 4:0:0:0 sdd 8:48 active ready running
结合系统实际情况和上述输出,sda 和 sdb 都是机内 RAID 硬盘,sdc 和 sdd 是外接存储的两条路径(multipath的由来),远程设备是日立 DF600F 阵列。
如果直接启用 multipath,比如说在系统安装分区时启用,则会造成混乱,包括两个机内硬盘也会作为 multipath 设备配置。我们并不想让这样的事情发生,所以要将两个硬盘加入 multipath.conf 中定义的“黑名单”中。
在 /etc 创建 multipath.conf 文件,仅包含以下内容,使用前请根据自己机器配置更改:
blacklist { device { vendor "IBM" product "ServeRAID M5015" } }
详细的配置参考在 /usr/share/doc/packages/multipath-tools/multipath.conf.annotated
运行 multipath -v3 -d,在输出中可以看到:Apr 04 06:33:58 | (null): (IBM :ServeRAID M5015 ) vendor/product blacklisted。说明机内 RAID 卡上的硬盘已经被加入黑名单,不会对我们的配置产生干扰。
要使多路径服务正常运行,需要启用 multipathd 服务。步骤如下:
# systemctl enable multipathd # 下次开机自动启动服务 # systemctl start multipathd # 现在启动服务 # systemctl restart multipathd # 更改配置后需要重启服务
要使系统开机时能正确识别 multipath 设备,需要加载驱动到 initrd 中,有两种方法:
一 官方说明是在 /etc/sysconfig/kernel 中 INITRD_MODULES 中添加 dm-multipath,执行 mkinitrd
二 经过试验,完成上述配置后直接执行 mkinitrd 即可。要观察其输出的 Kernel Modules 中是否包含 dm-multipath 模块。
如果重启后出现 Found duplicate PV 字样,可修改 /etc/lvm/lvm.conf 中的 filter,我改成了这个样子:
filter = [ "a|/dev/sda.*|", "a|/dev/sdb|", "a|/dev/mapper/.*|", "r/.*/" ]
需要提醒的是,改了之后要运行 pvscan 和 lvscan,而且这个错误提示可以安全地忽略,不会影响系统运行。