Linux 设备映射器 (DM) 多路径

用户友好的设备名称

为了有效地进行故障排除,可以将 device-mapper 配置为在 /dev/mapper 下具有人类可读、用户友好的设备名称,而不是使用 WWID。
可以通过在 /etc/multipath.conf 文件中启用 user_friendly_names 选项来创建像 /dev/mapper/mpath0 这样的用户友好名称:

defaults {
    user_friendly_names yes
}

我们还可以使用别名选项控制特定 LUN 的名称:

multipaths {
    multipath {
            wwid     3600a0b8000473abc0000bafc52fac127  
            alias    mdisk001
              }
}

如何验证是否安装并配置了 DMMP

1.检查是否安装了device-mapper。

# rpm -qa |grep device-mapper
device-mapper-1.02.39-1.el5
device-mapper-multipath-0.4.7-34.el5
device-mapper-1.02.39-1.el5
device-mapper-event-1.02.39-1.el5
  1. 检查以下设备映射器模块是否已加载。
# lsmod |grep dm_multipath
dm_multipath           56921  2 dm_round_robin
scsi_dh                42177  2 scsi_dh_rdac,dm_multipath
dm_mod                101649  11 dm_mirror,dm_multipath,dm_raid45,dm_log
  1. 如果满足上述条件,请检查文件/etc/multipath.conf 是否配置。
    确保将粗体行注释掉以启用设备映射器。
# This is a basic configuration file with some examples, for device mapper multipath
......
# Blacklist all devices by default. Remove this to enable multipathing
# on the default devices.
#blacklist {
#        devnode "*"
#}
......
  1. 检查 multipathd 是否正在运行。
# /etc/init.d/multipathd status
 "multipathd (pid  11405) is running..."
  1. 如果是,请使用以下命令检查列出的任何设备。
# multipath -v2 or # multipath -ll
mpath15 (3600a0b8000473abc0000bafc52fac127) dm-14 SUN,STK6580_6780
[size=10G][features=0][hwhandler=0][rw]
_ round-robin 0 [prio=1][enabled]
 _ 8:0:0:2  sds 65:32 [active][ready]
_ round-robin 0 [prio=0][enabled]
 _ 9:0:0:2  sdu 65:64 [active][faulty]
mpath13 (3600a0b8000473abc0000bb74530aa7da) dm-12 SUN,STK6580_6780
[size=931G][features=0][hwhandler=0][rw]
_ round-robin 0 [prio=1][enabled]
 _ 9:0:0:0  sdp 8:240 [active][ready]
_ round-robin 0 [prio=0][enabled]
 _ 8:0:0:0  sdo 8:224 [active][faulty]

如果以上所有步骤都成功,则系统已配置为 DMMP。

Linux删除多路径 DM multipathing

删除多路径设备的所有路径后,运行以下命令以完全删除多路径设备:

# multipath -f [device]

在停止 multipahtd 守护进程后刷新所有多路径设备:

# multipath -F

验证配置

multipath 命令可用于验证 multipathinf 配置。
要列出有关多路径设备的信息:

# multipath -ll
mpath0 (3600a0b8000473abc0000bafc52fac127) dm-14 SUN,STK6580_6780
[size=10G][features=0][hwhandler=0][rw]
_ round-robin 0 [prio=1][enabled]
 _ 8:0:0:2  sds 65:32 [active][ready]
_ round-robin 0 [prio=0][enabled]
 _ 9:0:0:2  sdu 65:64 [active][faulty]

输出显示多路径 LUN mpath0 。
后面的数字是 LUN 的 WWID 。
状态 active/ready 表示路径已准备好进行 I/O。
如果路径显示错误/失败,则需要在将其用于 I/O 之前对其进行修复。
配置完成后,我们可以持久启动multipathd:

# /etc/init.d/multipathd start
# chkconfig multipathd on
www. On IT Road .com

多路径配置

在开始配置多路径之前,请确保安装了 device-mapper-multipath 包。
如果未安装,请使用 yum 安装:

# yum -y install device-mapper-multipath

设备映射器多路径使用配置文件 /etc/multipath.conf 进行配置。
如果对此文件进行任何更改,则必须运行 multipath 命令以重新配置多路径设备。
创建此文件的最简单方法是使用 mpathconf 实用程序。
如果存在现有的配置文件 mpathconf 将编辑它,如果不存在这样的文件它将复制 /usr/share/doc/device-mapper-multipath-*/multipath.conf 。

# mpathconf --enable --with_multipathd y --with_chkconfig y

配置文件由 5 个主要部分组成,如下所示:

部分说明
defaults系统级默认配置
blacklist列入黑名单的设备。 不应在 DMMP 下配置的设备
blacklist_exceptions列入黑名单的设备的例外情况
devices单个存储控制器设备的设置
multipaths微调单个 LUN 的配置

什么是设备映射器多路径

设备映射器多路径 即Device Mapper Multipathing(或者 DM-multipathing)是一个 Linux 原生多路径工具,它允许我们将服务器节点和存储数组之间的多个 I/O 路径配置到单个设备中。
这些 I/O 路径是物理 SAN 连接,可以包括单独的电缆、交换机和控制器。
多路径聚合 I/O 路径,创建由聚合路径组成的新设备。
无论使用的供应商硬件如何,设备映射器都会在 /dev/mapper/ 下为连接到系统的每个 LUN 创建一个块设备。

设备映射器组件

Device Mapper 多路径的重要组成部分是:

组件描述
dm-multipath内核模块负责在正常/失败条件下做出路由决策
multipath用于查看/列出多路径设备和初始配置的命令
multipathd守护路径,标记失败的路径,重新激活恢复的路径,根据需要添加/删除设备文件。
kpartx用于为多路径 LUN 上的分区创建设备映射器条目的命令。 使用 multipath 命令时会自动调用它。

多路径(Multipathing)概述

路径是服务器和底层存储之间的连接。
由于 HBA 故障、电缆故障等多种原因,路径可能会被切断。
为了避免这种单点故障,存在多路径。
多路径确保系统使用多个物理路径来提供冗余和增加的吞吐量。
有许多特定于供应商的多路径实施,例如 EMC 的 powerpath 和 Symantecs VxDMP。

日期:2020-09-17 00:12:46 来源:oir作者:oir