概览
MD3200 系列存储阵列使用 Linux 操作系统软件框架(名为 Device Mapper(DM))以在 Linux 主机服务器上启用多路径功能。DM 多路径功能由驱动程序和公用程序的组合提供。本章介绍如何使用这些公用程序在 Linux 系统上完成启用 MD3200 系列存储阵列的过程。
Device Mapper 技术取代了名为 MPP 的早期专用技术。MPP 用于为上一代 MD 产品 MD3000 系列存储阵列启用多路径。
注:通过在服务器上运行 MD3200 系列资源介质安装程序并选择 Full(完整)或 Host(主机)安装选项,可将所需的 Device Mapper 软件组件安装在 Linux 主机服务器上。有关详细的安装步骤,请参阅 Dell PowerVault MD3200 和 MD3220 存储阵列的《部署指南》。 |
使用 DM 多路径功能的优点包括:
- 检测路径故障并将 I/O 重新路由至其他可用路径
- 在路径恢复后重新验证有故障的路径
- 利用多个可用路径使性能最大化
- 根据路径状态和错误条件重新配置路径使用
- 将多个设备节点统一为单个逻辑多路径设备节点
- 识别新的多路径 LU 并自动配置新的多路径节点
- 在 /dev/mapper/ 下为 DM 设备提供永久的设备名称
使用 DM 多路径设备
注:如果使用或修改多路径设备节点以外的任何节点,则可能导致阵列或文件系统故障,包括断开与阵列的通信以及文件系统损坏。避免访问多路径设备之外的任何设备。 |
注:在多路径设备上创建分区之后,所有 IO 操作(包括创建文件系统、原始 I/O 和文件系统 I/O)都必须通过分区节点完成,而非通过多路径设备节点完成。 |
必要步骤
在继续操作前必须完成以下任务。有关步骤 1和 2 的更多信息,请参阅 MD3200 和 MD3220 存储阵列部署指南。有关步骤 3 的详细信息,请参阅创建虚拟磁盘。
注: |
- 在安装程序提示时重新引导
— 在完成安装时安装程序会提示用户重新引导主机服务器。
- 使用
MDSM 创建并映射虚拟磁盘 —在使用 Modular Disk Configuration Utility(MDCU)配置阵列后,运行 MDSM 创建并映射虚拟磁盘。
使用 MDSM 软件:
注: |
Device Mapper 配置步骤
完成 DM 多路径配置并使存储阵列可用于 Linux 主机服务器:
- 扫描虚拟磁盘。请参阅扫描新增的虚拟磁盘。
- 显示多路径设备拓扑。请参阅使用多路径命令显示多路径设备拓扑。
- 在多路径设备节点上创建分区。请参阅在多路径设备节点上新建 fdisk 分区。
- 向 DM 添加分区。请参阅向 Device Mapper 添加新分区。
- 在 DM 分区上创建文件系统。请参阅在 Device Mapper 分区上创建文件系统。
- 安装 DM 分区。请参阅安装 Device Mapper 分区。
以下说明显示如何完成这些步骤。
在以下命令说明中,<x> 用于指示应该进行替换的地方。在 RHEL 系统上,<x> 为分配给设备的编号。在 SLES 系统上,<x> 为分配给设备的字母。
扫描新增的虚拟磁盘
rescan_dm_devs 命令扫描主机服务器系统,查找映射至主机服务器的现有和新增的虚拟磁盘。
# rescan_dm_devs
如果有阵列虚拟磁盘(VD)稍后映射到主机服务器,则必须再次运行
使用多路径命令显示多路径设备拓扑
多路径命令会将新扫描到的虚拟磁盘和映射的虚拟磁盘添加至 Device Mapper 表,然后在主机服务器的 /dev/mapper 目录中为其创建条目。这些设备与主机中的其他所有块设备相同。
要列出所有多路径设备,请运行以下命令。
# multipath Cll
输出应与该示例相似,以显示一个映射的虚拟磁盘的输出。
mpath1 (3600a0b80005ab1770000175
[size=5.0G][features=3 queue_if_no_path pg_init_retries 50][hwhandler=1 rdac][rw]
\_ round-robin 0 [prio=6][active]
\_ 97:0:0:0 sdc 8:32 [active][ready]
\_ round-robin 0 [prio=0][enabled]
\_ 4:0:0:0 sdb 8:16 [active][ghost]
其中
mpath1
DELL
MD3200
Sdc
Sdb
SLES 输出的示例如下:
mpathb (360080e500017b2f80000c6c
[size=1.0G][features=3 queue_if_no_path pg_init_retries 50][hwhandler=1 rdac][rw]
\_ round-robin 0 [prio=6][active]
\_ 4:0:0:22 sdx 65:112 [active][ready]
\_ round-robin 0 [prio=0][enabled]
\_ 6:0:0:22 sdcl 69:144 [active][ghost
其中
mpathb
DELL
MD3200
Sdx
Sdcl
在多路径设备节点上新建 fdisk 分区
fdisk 命令可为特定文件系统创建分区空间,这些文件系统位于提供给 Device Mapper 的新扫描到的虚拟磁盘和新映射的虚拟磁盘上。
例如,使用以下命令用多路径设备节点 /dev/mapper/mpath<x> 创建分区,其中 mpath<x> 是要在其上创建分区的多路径设备节点:
# fdisk /dev/mapper/mpath<x>
注:<x> 值是取决于字母数字操作系统的格式。使用先前运行的¹¬²æ¹命令,可看到映射的虚拟磁盘的相应值。有关 fdisk 的其他信息,请参阅操作系统文档。 |
向 Device Mapper 添加新分区
kpartx
# kpartx Ca /dev/mapper/mpath<x>
如果成功执行,则命令不会显示输出。要验证命令是否成功并查看确切的分区命名,用户可使用这些命令查看分配的完整分区名称。
# cd /dev/mapper
# ls
一般映射格式的部分示例如下:
在 RHEL 主机上,分区节点的格式为 /dev/mapper/mpath<x>p<y>,其中 <x> 是多路径设备的字母数字编号,<y> 是该设备的分区编号。
在 SLES 11.x 主机上,分区节点的格式为 /dev/mapper/mpath<x>-part<y>,其中 <x> 是分配给多路径设备的字母,而 <y> 是分区编号。
在 SLES 10.3 主机上,分区节点的格式为 /dev/mapper/mpath<x>_part<y>,其中 <x> 是分配给多路径设备的字母,而 <y> 是分区编号。
注:在多路径设备上创建分区之后,所有 I/O 操作(包括创建文件系统、原始 I/O 和文件系统 I/O)都必须通过分区节点完成,而不是通过多路径设备节点完成。 |
在 Device Mapper 分区上创建文件系统
使用标准的
# mkfs -t <filesystem type> /dev/mapper/<partition node>(# mkfs Ct <文件系统类型> /dev/mapper/<分区节点>)
其中 <分区节点> 是要在其上创建文件系统的分区。
安装 Device Mapper 分区
使用标准的
# mount /dev/mapper/<partition_node> <mounting_point>
已可使用
MD3200 系列阵列上新创建的虚拟磁盘已设置完毕,并可随时使用。之后重新引导时,会自动查找多路径设备及其分区。
有关特殊分区的重要命令
在将 Device Mapper 用于 MD3200 系列阵列时,所有物理磁盘都分配了一个磁盘设备节点。其中包括用于 MD3200 系列阵列的带内管理的特殊设备类型,其名为 Access Disk 或 Universal Xport 设备。
小心: |
只能安装使用上面给出的命令创建的多路径设备节点和分区节点,或通过主机系统或其用户以任意方式访问这些节点。
限制和已知问题
dmsetup message [device] 0 "fail_if_no_path"(dmsetup message [设备] 0 "fail_if_no_path")
其中
- 如果在卸载卷之前删除了 Device Mapper 设备,I/O 可能会挂起。
- 如果 scsi_dh_rdac 模块未包含在 initrd 中,设备搜索可能变得更缓慢,并且系统日志可能会写满缓冲区 I/O 错误信息。
- 如果主机服务器或存储阵列在 I/O 活动时重新引导,则 I/O 可能会挂起。在关闭或重新引导主机服务器或存储阵列之前,应该停止存储阵列的所有 I/O。
- 对于 MD3200 系列阵列,在恢复发生故障的路径之后,由于驱动程序无法在没有强制重新扫描的情况下自动检测设备,因此未自动完成故障恢复。运行命令
rescan_dm_devs 强制重新扫描主机服务器。由此可恢复发生故障的路径,并激活故障恢复。
- 如果主机系统正在执行繁重的 I/O 操作,则故障恢复可能会很慢。此时若主机服务器的 CPU 利用率也很高,则会加剧该问题。
- 如果主机系统正在执行繁重的 I/O 操作,则 Device Mapper 多路径服务可能会很慢。此时若主机服务器的 CPU 利用率也很高,则会加剧该问题。
- 如果未将根磁盘列入 multipath.conf 文件中的黑名单,则可为根磁盘创建多路径节点。命令
multipath -ll 会列出有助于确定该问题的供应商/产品 ID。
故障排除