OracleLinux快速配置多路径multipath
多路径multipath作用
使用设备映射器多路径(DM Multipath),您可以将服务器节点和存储阵列间的多个 I/O 路径配置为单一设备。这些 I/O 路径是可包含独立电缆、交换机和控制器的物理 SAN 连接。多路径聚合了 I/O 路径并生成由聚合路径组成的新设备。
比如按下图所示:
server主机通过2个hba卡分别接到2台SAN交换机,2台SAN交换机又分别接了存储的控制器1和2.
此时从存储1映射给主机的1个LUN就会识别到多个路径,变成4块磁盘。为了达到高可用冗余的效果,就需要把多个磁盘聚合成一个设备来使用,这样任何一条路径发生故障,都不会影响业务运行。
多路径软件分为Linux操作系统自带的multipath和存储厂商提供的专用多路径软件。
常见的比如华为的UltraPath、EMC的power path、ibm存储的SDDPCM(AIX下特有)、Veritas的StorageFoundation
用存储厂商的好处就是能针对自家的存储做负载链路优化,可以自动屏蔽质量有问题的链路(这点multipathd不具备,经常会出现一条链路有问题,导致存储卡顿的情况)
当然也是有缺点的,就是一台主机只能安装一个厂商的多路径软件,这样的话,你一台服务器要是连多个厂家的存储就会出现问题。
此时multipath的高兼容性就体现出来了,用它可以配置同时连接多个厂家的存储。
我次就遇到了坑,华为的存储多路径软件最新居然只支持到oracle linux 7.6不支持7.9,真是让人大跌眼镜!oracle linux7.9都出了多少年了,居然没有人适配(估计改一下install.sh安装脚本里的版本校验就能安上。。。研发懒得改了),我一定要给他们提需求🤣。
我下面的示例就是用华为的OceanStor Dorado 2000连接Oracle linux7.9为例(这里的device配置和以前的V2/V3/V5完全不一样,因为dorado存储又做了改动)
安装multipath
首先先要检查、安装multipath
1 | --检查是否安装了该软件包 |
配置YUM安装
1 | --增加本地YUM配置文件 |
配置multipathd服务
安装之后,需要启用multipath,执行如下命令初始化多路径配置文件。
1 | mpathconf --enable |
此时会生成默认的/etc/multipath.conf文件,配置multipath开机启动
1 | systemctl enable multipathd.service |
需要注意的是一定要配置多路径忽略本地磁盘,因为系统盘很有可能在下次重启的时候不是sda了,可以参考之前我写的文章《Linux解决multipath多路径磁盘盘符与系统盘盘符重叠问题》。这里我再说一下基本操作,需要先获取系统盘的WWID
1 | ====LINUX 5.0==== |
然后下一步就是要编辑多路径配置文件了,这里先把原来的配置备份,再按我配置好的模板新建一下。
1 | --备份配置 |
简单说一下multipath.conf的配置文件分为几个部分
blacklist
不视为多路径的特定设备列表。
defaults
DM 多路径的常规默认设置。
devices
各个存储控制器的设置。这些值覆盖了在 配置文件的
defaults部分中指定的内容。如果您使用默认不支持的存储阵列,您可能需要为阵列创建devices子部分。multipaths
各个多路径设备特性的设置。这些值会覆盖在配置文件中的
overrides,devices, 和defaults部分指定的值。
具体各个部分的参数我就不详细说了,大家直接看红帽官方文档就行,我就不在这里水篇幅了。我只说我这个配置模板里的重要参数:
1、defaults里标注使用user_friendly_names,否则的话生成的设备文件就是WWID看起来不是很友好,这里对应下面multipahs里的alias标出设备别名
2、blacklist的WWID代表本地磁盘或都你想要屏蔽掉的磁盘WWID
3、multipaths里每个multipath{}代表一个生成的存储设备,按实际情况填写,具体磁盘的WWID可以用multipath -ll找到或者用scsi_id命令获取,这个建议是存储侧LUN的名称和要生成的多路径设备的名称对应,这样既避免用错盘,也方便日后排错。磁盘的WWID也可以在存储的管理界面匹配上LUN的WWID
4、devices里的每个device{}代表一个存储型号。这块可以直接找存储厂家要,不要自己瞎配置,会影响使用效果(比如多路径磁盘用来做oracle asm磁盘,你要不用厂商的配置自己瞎写可能就识别有问题)
最后配置完毕最后重新load multipathd服务配置文件即可,执行systemctl reloal multipathd。最后就是去/dev/mapper下直接使用生成的别名设备就行了。
关于更多配置
关于多路径常用的命令也是建议直接看红帽的官方文档就行,有中文
具体参考:
欢迎联系我一起讨论。我的微信号:Eric_xu_2023
也欢迎关注我的公众号:









