配置设备映射器多路径
大约 50 分钟
配置设备映射器多路径
来源:官方文档 原始多页入口:配置设备映射器多路径 内容规模:约 51,922 字符,54 个章节标题,180 个命令/代码块,18 条提示框
阅读提要
- 副标题:配置和管理设备映射器多路径功能
- 摘要:使用设备映射器多路径(DM Multipath),您可以将服务器节点和存储阵列间的多个 I/O 路径配置为单一设备。这些 I/O 路径是可包含独立电缆、交换机和控制器的物理 SAN 连接。 多路径聚合了 I/O 路径并生成由聚合路径组成的新设备。
- 主要章节:配置和管理设备映射器多路径功能;对红帽文档提供反馈;第 1 章 设备映射器多路径概述;第 2 章 多路径设备;第 3 章 配置 DM 多路径;第 4 章 修改 DM 多路径配置文件;第 5 章 防止设备多路径;第 6 章 管理多路径卷;第 7 章 删除存储设备;第 8 章 DM 多路径故障排除;第 9 章 使用 eh_deadline 配置存储错误恢复的最大时间
- 推荐阅读顺序:先看“阅读提要”和目录,再按章节查看“关键点/命令/注意”;需要原文细节时点击来源链接。
章节笔记
概览
- 该章节主要为下一级主题的入口。
配置和管理设备映射器多路径功能
- 要点:摘要
对红帽文档提供反馈
- 要点:我们致力于为您提供高质量的文档,您的反馈将对我们有很大帮助。为帮助我们改进,您可以通过 Red Hat Jira 跟踪系统提交建议或报告错误。
- 要点:流程
- 列表:登录到 Jira 网站。 如果您还没有帐户,请创建一个。
- 列表:单击顶部导航栏中的 Create。
- 列表:在 Summary 字段中输入描述性标题。
- 列表:在 Description 字段中输入您对改进的建议。包括文档相关部分的链接。
- 列表:点窗口底部的 Create。
第 1 章 设备映射器多路径概述
- 要点:设备映射器(DM)多路径通过主动/被动配置中故障转移来提供冗余,并通过在多个路径中分布 I/O 提高性能。
- 要点:DM 多路径提供:
- 列表:您系统上的 multipath (8) 和 multipathd (8) 手册页
- 列表:/etc/multipath.conf 文件
- 注意:注意 路径的数量取决于设置。通常,DM 多路径设置具有到存储的 2、4 或 8 路径,但也有可能使用其他数字。
1.1. 带一个 RAID 设备的主动/被动多路径配置
- 要点:主动/被动配置通过双主机总线适配器(HBA)和存储区域网络(SAN)交换机提供冗余的 I/O 路径。这些路径连接到独立磁盘的单一冗余阵列(RAID)设备,从而启用自动故障转移。
- 要点:在此配置中,服务器中有两个 HBA、两个 SAN 交换机和两个 RAID 控制器。以下是在这个配置中可能出现的故障:
- 列表:HBA 故障
- 列表:光纤通道电缆失败
- 列表:SAN 交换机故障
- 列表:阵列控制器端口故障
1.2. 带两个 RAID 设备的主动/被动多路径配置
- 要点:具有双 RAID 设备的主动/被动配置为多个存储阵列提供冗余路径。这样可确保使用专用控制器跨独立 RAID 系统进行故障转移保护。
- 要点:在此配置中,服务器中存在两个 HBA,两个 SAN 交换机,每个有两个 RAID 控制器。配置 DM 多路径后,任何 I/O 路径点会导致 DM 多路径切换到备用 I/O 路径。下图展示了一个配置,每个 RAID 设备有两个 I/O 路径。在这里,每个 RAID 设备有两个 I/O 路径。
1.3. 带一个 RAID 设备的主动/主动多路径配置
- 要点:主动/主动配置支持跨多个路径到独立磁盘冗余阵列(RAID)设备的 I/O,在保持故障转移功能的同时分发工作负载以提高性能。
- 要点:在这个配置中,每个配置有两个:
- 列表:服务器上的主机总线适配器(HBA)
- 列表:存储区域网络(SAN)交换机
- 列表:RAID 控制器。
1.4. DM 多路径组件
- 要点:设备映射器(DM)多路径由内核模块、实用程序和守护进程组成,它们一起管理多个 I/O 路径,包括 multipathd 守护进程和 multipath 命令工具。
- 要点:下表描述了 DM 多路径组件。
- 表格样本(共 7 行):
- 组件 | 描述
- dm_multipath 内核模块 | 为路径和路径组群重新路由 I/O 并支持故障切换。
- mpathconf 工具 | 配置并启用设备映射器多路径。
- multipath 命令 | 列出并配置多路径设备。每当添加块设备时,它也由 udev 执行,以确定该设备是否是多路径设备的一部分。
1.5. 显示多路径拓扑
- 要点:要有效地监控路径,对多路径问题进行故障排除,或者检查多路径配置是否被正确设置,您可以显示多路径拓扑。
- 要点:流程
- 列表:显示多路径设备拓扑: # multipath -ll mpatha (3600d0230000000000e13954ed5f89300) dm-4 WINSYS,SF2372 size=233G features='1 queue_if_no_path' hwhandler='0' wp=rw
-+- policy='service-time 0' prio=1 status=active- 6:0:0:0 sdf 8:80 active ready running 输出可以被分成三个部分。每个部分都显示以下组的信息: 多路径设备信息: mpatha (3600d0230000000000e13954ed5f89300)… - 列表:多路径设备信息: mpatha (3600d0230000000000e13954ed5f89300): alias (如果与别名不同,则为 wwid) dm-4: dm 设备名称 WINSYS,SF2372: 厂商,产品 size=233G: 大小 features='1 queue_if_no_path': 特性 hwhandler='0': 硬件处理程序 wp=rw: 写权限
- 列表:mpatha (3600d0230000000000e13954ed5f89300): alias (如果与别名不同,则为 wwid)
- 列表:dm-4: dm 设备名称
- 列表:WINSYS,SF2372: 厂商,产品
- 列表:size=233G: 大小
- 命令/配置摘录:
# multipath -ll
mpatha (3600d0230000000000e13954ed5f89300) dm-4 WINSYS,SF2372 size=233G features='1 queue_if_no_path' hwhandler='0' wp=rw `-+- policy='service-time 0' prio=1 status=active `- 6:0:0:0 sdf 8:80 active ready running- 注意:注意 在某些情况下,如创建多路径设备,多路径拓扑会显示一个参数,其表示是否采取了任何措施。例如,以下命令输出显示 create: 参数,来表示创建了一个多路径设备: create: mpatha (3600d0230000000000e13954ed5f89300) undef WINSYS,SF2372 size=233G features='1 queue_if_no_path' hwhandler='0' wp=undef
-+- policy='service-time 0' prio=1 status=undef- 6:0:0:0 sdf 8:80 undef ready running
1.6. 路径状态
- 要点:路径状态表示单个存储路径的当前状态,范围从就绪、功能到故障或延迟之间,帮助确定多路径设备健康和行为。
- 要点:multipathd 守护进程会根据 /etc/multipath.conf 文件中定义的轮询间隔定期对路径状态进行更新。就内核而言,dm 状态与路径状态类似。dm 状态将保持其当前状态,直到路径检查程序完成为止。
第 2 章 多路径设备
- 要点:DM 多路径会在多个 I/O 路径到同一存储中创建单个多路径设备,以逻辑方式组织它们。如果没有它,每个路径都会被视为单独的设备,即使它们将同一服务器连接到同一存储控制器。
2.1. 多路径设备识别符
- 要点:多路径设备使用特定的命名约定来确定它们如何出现在文件系统中。根据您的配置首选项,它们可以通过其全球识别符(WWID)或用户友好名称(如 mpathN )来标识。
- 要点:当新设备受设备映射器(DM)多路径控制时,这些设备会在 /dev/mapper/ 和 /dev/ 目录中创建。
- 列表:当 user_friendly_names 配置选项设置为 no 时,多路径设备的名称被设置为 World Wide Identifier(WWID)。默认情况下,多路径设备的名称被设置为它的 WWID。设备名称应为 /dev/mapper/WWID。它还在 /dev/ 目录中创建,名为 /dev/dm-X。
- 列表:另外,您可以在 /etc/multipath.conf 文件中将 user_friendly_names 选项设置为 yes。这会将 multipath 部分中的 alias 设置为 mpathN 格式的节点唯一名称。该设备名称应该是 /dev/mapper/mpathN 和 /dev/dm-X。但不能保证,在所有使用多路径设备的节点中的设备名称都是一致的。如果您在 /etc/multipath.conf 文件中设置了 alias 选项,该名称不会自动在集群中的所有节点中保持一致。
- 列表:您系统上的 multipath (8) 和 multipath.conf (8) 手册页
- 列表:/etc/multipath.conf 文件
- 注意:注意 任何格式为 /dev/dm-X 的设备都仅供内部使用,且不应该被管理员直接使用。
- 注意:注意 如果您使用 LVM 在多路径设备中创建逻辑设备,这不应造成问题。要让您的多路径设备名称在每个节点上一致,请禁用 user_friendly_names 选项。
2.2. 逻辑卷中的多路径设备
- 要点:多路径设备与 LVM 无缝集成。这可让您使用多路径设备名称而不是独立磁盘路径来创建物理卷、卷组和逻辑卷。
- 要点:创建多路径设备后,您可以使用多路径设备名称作为物理设备名称。您可以在创建逻辑卷管理器(LVM)物理卷时执行此操作。例如,如果 /dev/mapper/mpatha 是多路径设备的名称,则 pvcreate /dev/mapper/mpatha 命令将 /dev/mapper/mpatha 标记为物理卷。
- 列表:LUN 未就绪: end_request: I/O error, dev sdc, sector 0 sd 0:0:0:3: Device not ready: <6>: Current: sense key: Not Ready Add. Sense: Logical unit not ready, manual intervention required
- 列表:读失败: /dev/sde: read failed after 0 of 4096 at 0: Input/output error
- 列表:在为机器提供主动/被动路径的存储设备上配置多路径。
- 列表:路径是直接访问的,而不是通过多路径设备访问。
- 命令/配置摘录:
end_request: I/O error, dev sdc, sector 0 sd 0:0:0:3: Device not ready: <6>: Current: sense key: Not Ready Add. Sense: Logical unit not ready, manual intervention required
/dev/sde: read failed after 0 of 4096 at 0: Input/output error- 注意:注意 如果您试图在配置的分区的整个设备上创建 LVM 物理卷,则 pvcreate 命令会失败。如果您不具体指定每个块设备,Anaconda 和 Kickstart 安装程序会创建空分区表。如果您要使用整个设备而不是创建分区,请从该设备中删除现有分区。您可以使用 kpartx -d device 命令和 fdisk 实用程序删除现有分区。如果您的系统有大于 2Tb 的块设备,使用 parted 工具删除分区。
第 3 章 配置 DM 多路径
- 要点:使用 mpathconf 工具配置 DM 多路径,该工具创建或编辑 /etc/multipath.conf 配置文件以建立基本故障切换和其他存储选项。
- 要点:这个工具会根据以下情况创建或编辑 /etc/multipath.conf 多路径配置文件:
- 列表:如果 /etc/multipath.conf 文件已存在,则 mpathconf 实用程序将编辑该文件。
- 列表:如果 /etc/multipath.conf 文件不存在,则 mpathconf 实用程序将从头开始创建 /etc/multipath.conf 文件。
3.1. 检查 device-mapper-multipath 软件包
- 要点:在配置多路径前,验证系统上是否安装了 device-mapper-multipath 软件包,以确保所有必要的组件都可用。这可防止因为缺少核心软件导致潜在的故障。
- 要点:步骤
- 列表:检查您的系统是否包含 device-mapper-multipath 软件包: # rpm -q device-mapper-multipath device-mapper-multipath-current-package-version 如果您的系统没有包括这个软件包,它会输出以下内容: package device-mapper-multipath is not installed
- 列表:如果您的系统没有包括这个软件包,请运行以下命令安装它: # dnf install device-mapper-multipath
- 命令/配置摘录:
# rpm -q device-mapper-multipath
device-mapper-multipath-current-package-version3.2. 使用 DM 多路径设置基本故障切换配置
- 要点:为 DM 多路径建立基本故障切换配置提供了路径冗余,并增强了存储可靠性。它确保在失败时 I/O 操作将继续通过备用路径,从而防止停机或数据丢失。
- 要点:先决条件
- 列表:管理访问权限.
- 列表:启用并初始化多路径配置文件: # mpathconf --enable
- 列表:可选:编辑 /etc/multipath.conf 文件。 大多数默认设置都已配置,包括设置为 failover 的 path_grouping_policy 。
- 列表:可选:多路径设备的默认命名格式被设置为 /dev/mapper/mpathn 格式。如果您希望使用不同的命名格式: 将 DM 多路径配置为使用多路径设备 WWID 作为其名称,而不是 mpath_n_ user 友好命名方案: # mpathconf --enable --user_friendly_names n 重新载入 DM 多路径守护进程的配置: # systemctl reload multipathd.service
- 列表:将 DM 多路径配置为使用多路径设备 WWID 作为其名称,而不是 mpath_n_ user 友好命名方案: # mpathconf --enable --user_friendly_names n
- 列表:重新载入 DM 多路径守护进程的配置: # systemctl reload multipathd.service
- 命令/配置摘录:
# mpathconf --enable
# mpathconf --enable --user_friendly_names n3.3. 在生成多路径设备时忽略本地磁盘
- 要点:要防止 DM 多路径使用本地小型计算机系统接口(SCSI)磁盘,您可以在多路径设备生成过程中将其配置为忽略这些设备。将 find_multipaths 设置为 on 上简化了此过程;否则,配置文件中需要手动排除。
- 要点:流程
- 列表:使用已知参数(如设备的模型、路径或厂商)来识别内部磁盘。使用以下选项确定其 WWID: 显示现有的多路径设备: # multipath -v2 -l mpatha (WDC_WD800JD-75MSA3_WD-WMAM9FU71040) dm-2 ATA,WDC WD800JD-75MS size=33 GB features="0" hwhandler="0" wp=rw `-+- policy='round-robin 0' prio=0 status=active |- 0:0:0:0 sda 8:0 active undef running 显示 DM 多路径可能创建的附加多路径设备: # multipath -v2 -…
- 列表:显示现有的多路径设备: # multipath -v2 -l mpatha (WDC_WD800JD-75MSA3_WD-WMAM9FU71040) dm-2 ATA,WDC WD800JD-75MS size=33 GB features="0" hwhandler="0" wp=rw `-+- policy='round-robin 0' prio=0 status=active |- 0:0:0:0 sda 8:0 active undef running
- 列表:显示 DM 多路径可能创建的附加多路径设备: # multipath -v2 -d : mpatha (WDC_WD800JD-75MSA3_WD-WMAM9FU71040) dm-2 ATA,WDC WD800JD-75MS size=33 GB features="0" hwhandler="0" wp=undef `-+- policy='round-robin 0' prio=1 status=undef |- 0:0:0:0 sda 8:0 undef ready running
- 列表:显示设备信息: # multipathd show paths raw format "%d %w" | grep sda sda WDC_WD800JD-75MSA3_WD-WMAM9FU71040 在这个示例中,/dev/sda 是内部磁盘,其 WWID 是 WDC_WD800JD-75MSA3_WD-WMAM9FU71040。
- 列表:编辑 /etc/multipath.conf 文件的 blacklist 部分,以使用其 WWID 属性忽略这个设备: blacklist { wwid WDC_WD800JD-75MSA3_WD-WMAM9FU71040 } 警告 虽然您可以使用其 devnode 参数(如 sda )识别设备,但这不安全。无法保证 /dev/sda 标识符在重启后引用同一设备。
- 列表:检查 /etc/multipath.conf 文件中的任何配置错误: # multipath -t > /dev/null 要查看完整报告,请不要丢弃命令输出: # multipath -t
- 命令/配置摘录:
# multipath -v2 -l
mpatha (WDC_WD800JD-75MSA3_WD-WMAM9FU71040) dm-2 ATA,WDC WD800JD-75MS size=33 GB features="0" hwhandler="0" wp=rw `-+- policy='round-robin 0' prio=0 status=active |- 0:0:0:0 sda 8:0 active undef running- 注意:警告 虽然您可以使用其 devnode 参数(如 sda )识别设备,但这不安全。无法保证 /dev/sda 标识符在重启后引用同一设备。
- 注意:注意 当在使用时,无法删除本地磁盘之上的多路径设备。要忽略这样的设备,请停止该设备的所有用户。例如,通过卸载其上的任何文件系统,并停用使用它的任何逻辑卷。如果这是不可能的,您可以重启系统来删除多路径设备。
3.4. 使用 DM 多路径配置附加存储
- 要点:默认情况下,DM 多路径包括支持 DM 多路径的最常见存储阵列的内置配置。如果您的存储阵列还没有配置,您可以通过编辑 /etc/multipath.conf 文件添加一个。
- 要点:考虑在初始配置过程中添加额外的存储设备,以使设置与您的预期需求保持一致。DM 多路径支持以后为可扩展性或升级添加设备,但这种方法可能需要调整配置以确保兼容性。
- 列表:查看默认配置值和支持的设备: # multipathd show config
- 列表:编辑 /etc/multipath.conf 文件来配置多路径配置。以下是 HP OPEN-V 存储设备的 DM 多路径配置示例: # Set default configurations for all devices managed by DM Multipath defaults { # Enable user-friendly names for devices user_friendly_names yes } devices { # Define configuration for HP OPEN-V storage device { vendor "HP" pproduct "OPEN-V" no_pa…
- 列表:保存更改并关闭编辑器。
- 列表:通过扫描新设备来更新多路径设备列表: # multipath -r
- 列表:确认多路径设备是否被正确识别: # multipath -ll
- 命令/配置摘录:
# multipathd show config
# Set default configurations for all devices managed by DM Multipath3.5. 在 initramfs 中配置多路径
- 要点:在 initramfs 中设置多路径可确保多路径设备在引导过程早期可用。这对于需要冗余和负载平衡的存储设置至关重要,有助于维护系统的完整性并避免启动期间出现问题。
- 要点:先决条件
- 列表:在您的系统上配置 DM 多路径。
- 列表:使用多路径配置文件重建 initramfs 文件系统: # dracut --force --add multipath 注意 在 initramfs 中使用多路径并修改其配置文件时,请记住重建 initramfs 以使更改生效。如果您的 root 设备使用多路径,则 dracut 命令将在 initramfs 中自动包含多路径模块。
- 列表:可选:如果 initramfs 中的多路径不再需要: 删除多路径配置文件: # rm /etc/dracut.conf.d/multipath.conf 使用添加的多路径配置重建 initramfs : # dracut --force --omit multipath
- 列表:删除多路径配置文件: # rm /etc/dracut.conf.d/multipath.conf
- 列表:使用添加的多路径配置重建 initramfs : # dracut --force --omit multipath
- 列表:检查与多路径相关的文件和配置是否存在: # lsinitrd /path/to/initramfs.img -m | grep multipath
- 命令/配置摘录:
# dracut --force --add multipath
# rm /etc/dracut.conf.d/multipath.conf- 注意:注意 在 initramfs 中使用多路径并修改其配置文件时,请记住重建 initramfs 以使更改生效。如果您的 root 设备使用多路径,则 dracut 命令将在 initramfs 中自动包含多路径模块。
- 注意:注意 虽然提供的验证步骤可以让您显示成功,但您必须执行最后的测试引导,以确保配置按预期工作。
第 4 章 修改 DM 多路径配置文件
- 要点:通过编辑 /etc/multipath.conf 文件来覆盖 DM 多路径默认配置值,以自定义多路径行为并为不支持的存储阵列添加支持。
- 要点:在多路径配置文件中,您只需要指定配置所需的部分,或者需要更改默认值的部分。如果文件中没有与您的环境相关的部分,或者不需要覆盖默认值,您可以将其注释掉,因为它们位于初始文件中。
- 注意:注意 如果您从 initramfs 文件系统运行多路径并对多路径配置文件进行任何更改,则必须重建 initramfs 文件系统以使更改生效。
4.1. 配置文件概述
- 要点:多路径配置文件包含用于列入黑名单、默认值、设备、多路径和覆盖的不同部分,以便优先决定设备行为。
- 要点:多路径配置文件可分为以下几个部分:
- 列表:multipaths 部分
- 列表:overrides 部分
- 列表:devices 部分
- 列表:defaults 部分
- 列表:如果在多路径设备上安装机器,则默认多路径配置会自动应用。默认配置包括以下内容: 如需默认配置值的完整列表,请运行 multipath -t 或 multipathd show config 命令。 有关配置选项及描述的列表,请查看您系统上的 multipath.conf 手册页。
- 列表:如需默认配置值的完整列表,请运行 multipath -t 或 multipathd show config 命令。
4.2. 配置文件默认设置
- 要点:defaults 部分为 DM 多路径行为建立全局配置参数,包括轮询间隔、路径分组策略和应用到所有多路径设备的故障转移设置。
- 要点:/etc/multipath.conf 配置文件包含一个 defaults 部分。本节包含设备映射器 (DM) 多路径的默认配置。默认值根据您的初始设备设置可能会有所不同。
- 表格样本(共 176 行):
- 属性 | 描述
- polling_interval | 指定两个路径检查间隔(以秒为单位)。对于可正常工作的路径,检查间的间隔会逐渐增加到 max_polling_interval。
- 默认值为 5。
- max_polling_interval | 指定两个路径检查间隔的最大长度(以秒为单位)。
4.3. 修改多路径配置文件默认设置
- 要点:通过编辑 multipath.conf 文件的 defaults 部分来自定义全局 DM 多路径行为。设置系统范围的值,如轮询间隔、路径选择算法和超时以匹配存储环境的需求和性能目标。
- 要点:流程
- 列表:查看 /etc/multipath.conf 配置文件,其中包含配置默认值模板: #defaults { # polling_interval 10 # path_selector "round-robin 0" # path_grouping_policy multibus # uid_attribute ID_SERIAL # prio alua # path_checker readsector0 # rr_min_io 100 # max_fds 8192 # rr_weight priorities # failback immediate # no_path_retry fail # user_friendly_nam…
- 列表:覆盖任何配置参数的默认值。您可以从此模板将相关行复制到 defaults 部分,并取消注释它。 例如,要将 path_grouping_policy 参数覆盖为 multibus,而不是默认值 failover,请将模板中的相应行复制到配置文件的初始默认值部分,然后取消对它的注释,如下所示: defaults { user_friendly_names yes path_grouping_policy multibus }
- 列表:通过运行以下命令之一修改多路径配置文件后,验证 /etc/multipath.conf 文件: 要显示任何配置错误,请运行: # multipath -t > /dev/null 要显示使用添加的更改显示新配置,请运行: # multipath -t
- 列表:要显示任何配置错误,请运行: # multipath -t > /dev/null
- 列表:要显示使用添加的更改显示新配置,请运行: # multipath -t
- 列表:重新载入 /etc/multipath.conf 文件并重新配置 multipathd 守护进程以使更改生效: # service multipathd reload
- 命令/配置摘录:
#defaults { # polling_interval 10 # path_selector "round-robin 0" # path_grouping_policy multibus # uid_attribute ID_SERIAL # prio alua # path_checker readsector0 # rr_min_io 100 # max_fds 8192 # rr_weight priorities # failback immediate # no_path_retry fail # user_friendly_names yes #}
defaults { user_friendly_names yes path_grouping_policy multibus }4.4. 配置文件 multipaths 部分
- 要点:multipaths 部分允许通过 WWID 自定义特定多路径设备,使用特定于设备的配置(如别名和路径策略)覆盖全局设置。
- 要点:使用 /etc/multipath.conf 配置文件的 multipaths 部分设置单个多路径设备的属性。设备映射器(DM)多路径使用这些属性覆盖所有其他配置设置,包括 overrides 部分中的设置。
- 列表:配置文件默认设置
- 列表:配置文件覆盖部分
- 命令/配置摘录:
multipaths { multipath { wwid 3600508b4000156d70001200000b0000 alias yellow path_grouping_policy multibus path_selector "round-robin 0" failback manual no_path_retry 5 } multipath { wwid 1DEC_321816758474 alias red } }- 表格样本(共 3 行):
- 属性 | 描述
- wwid | 指定多路径设备的 WWID,多路径属性应用到其中。这个参数对于 multipath.conf 文件的这个部分是必需的。
- alias | 指定多路径设备的符号名称,多路径属性应用到其中。如果您使用 user_friendly_names,请不要将此值设置为 mpath <n>。这可能导致与自动分配的用户友好名称冲突,并为您提供不正确的设备节点名称。
4.5. 配置文件 devices 部分
- 要点:devices 部分定义了特定存储控制器类型的配置设置,由厂商、产品和修订模式标识,以优化每个设备的多路径行为。
- 要点:使用 multipath.conf 配置文件的 devices 部分为单个存储控制器类型定义设置。本节中设置的值覆盖 defaults 部分中的指定的值。
- 列表:配置文件默认设置
- 注意:重要 最新版本的 device 子部分中的配置属性会覆盖任何之前 devices 子部分中的属性,以及 defaults 部分中的属性。
- 注意:重要 Linux 内核(版本 4.3 及更新版本)会自动将设备处理程序附加到已知的设备中。这包括支持 SCSI-3 ALUA 的所有设备。之后,内核不会启用更改处理程序。在这些内核上设置此类设备的 hardware_handler 属性不会起作用。
- 表格样本(共 14 行):
- 属性 | 描述
- vendor | 指定与设备厂商名称匹配的正则表达式。这是一个必需属性。
- 产品 | 指定与设备产品名称匹配的正则表达式。这是一个必需属性。
- revision | 指定与设备产品修订匹配的正则表达式。如果缺少 revision 属性,则所有设备修订都匹配。
4.6. 配置文件覆盖部分
- 要点:overrides 部分对所有设备应用配置更改,其具有优先于设备和默认设置的可选协议部分。
- 要点:overrides 部分可以识别可选的 protocol 子部分,并可包含多个 protocol 子部分。系统使用强制 type 属性将路径设备与 protocol 子部分匹配。匹配 protocol 子部分中的属性优先于其它 overrides 部分中的属性。如果有多个匹配的 protocol 子部分,则后续条目具有更高的优先级。如需更多信息,请参阅您系统上的 multipath.conf (5) 手册页。
- 列表:fast_io_fail_tmo
- 列表:dev_loss_tmo
- 列表:eh_deadline
- 列表:配置文件默认设置
- 表格样本(共 4 行):
- 属性 | 描述
- type | 指定路径设备的协议字符串。可能的值包括:
- scsi:fcp, scsi:spi, scsi:ssa, scsi:sbp, scsi:srp, scsi:iscsi, scsi:sas, scsi:adt, scsi:ata, scsi:unspec, ccw, cciss, nvme, undef
- 此属性不是正则表达式。路径设备协议字符串必须完全匹配。
4.7. DM 多路径覆盖设备超时
- 要点:recovery_tmo sysfs 选项控制特定互联网小型计算机系统接口(iSCSI)设备的超时时间。
- 要点:以下选项全局覆盖 recovery_tmo 值:
- 列表:replacement_timeout 配置选项会全局覆盖所有 iSCSI 设备的 recovery_tmo 值。
- 列表:对于由 DM 多路径管理的所有 iSCSI 设备,DM 多路径中的 fast_io_fail_tmo 选项会全局覆盖 recovery_tmo 值。 DM 多路径中的 fast_io_fail_tmo 选项会覆盖光纤通道设备的 fast_io_fail_tmo 选项。
4.8. 修改具体设备的多路径设置
- 要点:在 multipath.conf 文件的 multipaths 部分中,使用 WWID 为特定设备定义设置。这些设置将覆盖覆盖每个设备的值、默认值和设备值。允许多个条目。
- 要点:流程
- 列表:修改特定多路径设备的 multipaths 部分。以下示例显示了在配置文件中为两个特定多路径设备指定的多路径属性: 第一个设备的 WWID 为 3600508b4000156d70001200000b0000,符号链接名为 yellow。 示例中的第二个多路径设备的 WWID 为 1DEC_321816758474,符号链接名为 red。 在本例中,rr_weight 属性设置为 priorities。 multipaths { multipath { wwid 3600508b4000156d70001200000b0000 alias yellow path_grouping_policy multibus path…
- 列表:第一个设备的 WWID 为 3600508b4000156d70001200000b0000,符号链接名为 yellow。
- 列表:示例中的第二个多路径设备的 WWID 为 1DEC_321816758474,符号链接名为 red。
- 列表:通过运行以下命令之一修改多路径配置文件后,验证 /etc/multipath.conf 文件: 要显示任何配置错误,请运行: # multipath -t > /dev/null 要显示使用添加的更改显示新配置,请运行: # multipath -t
- 列表:要显示任何配置错误,请运行: # multipath -t > /dev/null
- 列表:要显示使用添加的更改显示新配置,请运行: # multipath -t
- 命令/配置摘录:
multipaths { multipath { wwid 3600508b4000156d70001200000b0000 alias yellow path_grouping_policy multibus path_selector "round-robin 0" failback manual rr_weight priorities no_path_retry 5 } multipath { wwid 1DEC_321816758474 alias red rr_weight priorities } }
# multipath -t > /dev/null4.9. 使用协议修改特定设备的多路径配置
- 要点:您可以使用 /etc/multipath.conf 的 overrides 部分中的 protocol 子部分来根据传输类型设置特定于路径的选项。这些设置将覆盖 overrides, devices, 和 defaults 中的值,并只适用于匹配的类型值。
- 要点:先决条件
- 列表:您已在系统中配置了设备映射器 (DM) 多路径。
- 列表:您有多路径设备,其中并非所有路径都使用相同的传输协议。
- 列表:运行以下命令查看具体路径协议: # multipathd show paths format "%d %P" dev protocol sda scsi:ata sdb scsi:fcp sdc scsi:fcp
- 列表:通过为每个多路径类型添加 protocol 子部分,编辑 /etc/multipath.conf 文件的 overrides 部分。 overrides 部分可以包含多个 protocol 部分。 重要 protocol 部分必须包含 type 参数。然后,使用匹配 type 参数配置所有路径,然后使用 protocol 子部分中列出的其余参数进行更新。 路径设备的设置,使用 scsi:fcp 协议: overrides { dev_loss_tmo 60 fast_io_fail_tmo 8 protocol { type "scsi:fcp" dev_loss_tmo 70 fast_io_fail_tmo 10 …
- 列表:路径设备的设置,使用 scsi:fcp 协议: overrides { dev_loss_tmo 60 fast_io_fail_tmo 8 protocol { type "scsi:fcp" dev_loss_tmo 70 fast_io_fail_tmo 10 eh_deadline 360 } }
- 列表:使用 scsi:iscsi 协议的路径设备设置: overrides { dev_loss_tmo 60 fast_io_fail_tmo 8 protocol { type "scsi:iscsi" dev_loss_tmo 60 fast_io_fail_tmo 120 } }
- 命令/配置摘录:
# multipathd show paths format "%d %P"
dev protocol sda scsi:ata sdb scsi:fcp sdc scsi:fcp- 注意:重要 protocol 部分必须包含 type 参数。然后,使用匹配 type 参数配置所有路径,然后使用 protocol 子部分中列出的其余参数进行更新。
4.10. 修改存储控制器的多路径设置
- 要点:在 multipath.conf 的 devices 部分中为特定存储供应商和型号自定义 DM 多路径设置。这些属性可以优化性能并覆盖默认值,除非被多路径中的值替换,或覆盖匹配路径的值。
- 要点:流程
- 列表:查看默认配置值的信息,包括支持的设备: # multipathd show config # multipath -t 在多路径配置中,默认包括支持多路径的许多设备。
- 列表:可选:如果需要修改默认配置值,您可以通过在配置文件中包含覆盖这些值的设备的条目来覆盖默认值。您可以复制 multipathd show config 命令显示的设备的设备配置默认值,并覆盖您要更改的值。
- 列表:通过设置 vendor 和 product 参数,将没有被默认自动配置的设备添加到配置文件的 devices 部分。打开 /sys/block/device_name/device/vendor 和 /sys/block/device_name/device/model 文件,其中 device_name 是多路径的设备,如下例所示: # cat /sys/block/sda/device/vendor WINSYS # cat /sys/block/sda/device/model SF2372
- 列表:可选: 根据您的具体设备指定附加参数: 主动/主动 设备 通常,在这种情况下不需要设置附加参数。如果需要,您可以将 path_grouping_policy 设置为 multibus。其他可能需要设置的参数为 no_path_retry 和 rr_min_io。 主动/被动 设备 如果它自动将 I/O 的路径切换到被动路径,您需要将检查程序功能更改为不会将 I/O 发送到路径路径,以测试其是否工作,否则您的设备会保持故障。这意味着,您已将 path_checker 设置为 tur,它适用于支持 Test unit Ready 命令的所有 SCSI 设备。 如果设备需要特殊命令来切换路径,则为多路径配置这个设备需要硬件处理器内核模块…
- 列表:通过运行以下命令之一修改多路径配置文件后,验证 /etc/multipath.conf 文件: 要显示任何配置错误,请运行: # multipath -t > /dev/null 要显示使用添加的更改显示新配置,请运行: # multipath -t
- 列表:要显示任何配置错误,请运行: # multipath -t > /dev/null
- 命令/配置摘录:
# multipathd show config
# multipath -t4.11. 为所有设备设定多路径值
- 要点:使用 multipath.conf 中的 overrides 部分,将全局设置应用到所有设备,确保一致的路径管理、超时和其他参数。这些值将覆盖默认值和设备,除非在 multipaths 部分中替换。
- 要点:流程
- 列表:覆盖特定于设备的设置。例如,您可能希望所有设备都将 no_path_retry 设置为 fail。当所有路径都失败时,使用以下命令关闭队列。这会覆盖任何特定于设备的设置。 overrides { no_path_retry fail }
- 列表:通过运行以下命令之一修改多路径配置文件后,验证 /etc/multipath.conf 文件: 要显示任何配置错误,请运行: # multipath -t > /dev/null 要显示使用添加的更改显示新配置,请运行: # multipath -t
- 列表:要显示任何配置错误,请运行: # multipath -t > /dev/null
- 列表:要显示使用添加的更改显示新配置,请运行: # multipath -t
- 列表:重新载入 /etc/multipath.conf 文件并重新配置 multipathd 守护进程以使更改生效: # service multipathd reload
- 命令/配置摘录:
overrides { no_path_retry fail }
# multipath -t > /dev/null第 5 章 防止设备多路径
- 要点:您可以将 DM 多路径配置为在配置多路径设备时忽略所选设备。DM 多路径不会将这些忽略的设备分组到多路径设备中。
5.1. DM 多路径为路径创建多路径设备的条件
- 要点:DM 多路径使用 find_multipaths 参数和设备发现规则自动决定何时为检测到的存储路径创建多路径设备。
- 要点:DM 多路径有默认规则,以确定是否为路径创建多路径设备还是忽略它。您可以配置行为。
- 列表:至少有两个路径有相同的全局-Wide Identification(WWID)没有禁用。
- 列表:您可以使用 multipath 命令指定设备来手动强制创建设备。
- 列表:一个路径的 WWID 与之前创建的多路径设备相同,即使该设备不再存在。每当创建多路径设备时,多路径都会记住其 WWID。然后,它会在检测到具有该 WWID 的路径时自动重新创建该设备。这可让多路径自动选择到多路径设备的正确路径,而无需在其它设备上禁用多路径。
- 列表:使用设备名称删除多路径设备。 # multipath -w /dev/sdb wwid '3600d0230000000000e13954ed5f89300' removed
- 列表:使用设备的 WWID 删除多路径设备。 # multipath -w 3600d0230000000000e13954ed5f89300 wwid '3600d0230000000000e13954ed5f89300' removed
- 命令/配置摘录:
# Multipath wwids, Version : 1.0 # NOTE: This file is automatically maintained by multipath and multipathd. # You should not need to edit this file in normal circumstances. # # Valid WWIDs: /3600d0230000000000e13955cc3757802/ /3600d0230000000000e13955cc3757801/ /3600d0230000000000e13955cc3757800/ /3600d02300069c9ce09d41c31f29d4c00/ /SWINSYS SF2372 0E13955CC3757802/ /3600d0230000000000e13955cc3757803/
# multipath -w /dev/sdb5.2. 在某些设备中禁用多路径的条件
- 要点:来自多路径的设备排除使用标准,如 WWID、设备名称、类型、属性或协议,以优先级顺序评估,但异常列表具有优先权。
- 要点:您可以根据以下标准在设备中禁用多路径:
- 列表:WWID
- 列表:设备名称
- 列表:设备类型
- 列表:属性
- 列表:protocol
- 列表:devnode
- 注意:注意 默认情况下,禁用了各种设备类型,即使您注释掉了配置文件的初始 黑名单 部分。
5.3. 使用 WWID 禁用多路径
- 要点:通过在 multipath.conf 文件中使用 WWID 禁用特定的设备,从多路径中排除它们。这对本地磁盘、单一路径设备或需要在多路径框架之外特殊处理的存储很有用。
- 要点:流程
- 列表:查找设备的 WWID: # multipathd show paths raw format "%d %w" | grep sdb sdb 3600508b4001080520001e00011700000
- 列表:使用 wwid 条目在 /etc/multipath.conf 配置文件中禁用设备。 以下示例显示了 DM 多路径配置文件中禁用了 WWID 为 3600508b4001080520001e00011700000 的设备的行: blacklist { wwid 3600508b4001080520001e00011700000 }
- 列表:通过运行以下命令之一修改多路径配置文件后,验证 /etc/multipath.conf 文件: 要显示任何配置错误,请运行: # multipath -t > /dev/null 要显示使用添加的更改显示新配置,请运行: # multipath -t
- 列表:要显示任何配置错误,请运行: # multipath -t > /dev/null
- 列表:要显示使用添加的更改显示新配置,请运行: # multipath -t
- 列表:重新载入 /etc/multipath.conf 文件并重新配置 multipathd 守护进程以使更改生效: # service multipathd reload
- 命令/配置摘录:
# multipathd show paths raw format "%d %w" | grep sdb
sdb 3600508b4001080520001e000117000005.4. 使用设备名称禁用多路径
- 要点:使用其设备名称(如 multipath.conf 文件中的 /dev/sda )为特定设备禁用多路径。这可防止 DM 多路径将本地磁盘、USB 设备或其他存储分组到多路径设备中,将其保留为单独的块设备。
- 要点:流程
- 列表:显示设备信息: # udevadm info --query=all -n /dev/mapper/sd*
- 列表:使用 devnode 条目在 /etc/multipath.conf 配置文件中禁用设备。下面的例子显示,DM 多路径配置文件中禁用所有 SCSI 设备的行,因为它也禁用所有 sd* 设备: blacklist { devnode "^sd[a-z]" } 您可以使用 devnode 条目禁用单个设备,而不是禁用特定类型的所有设备。但不建议这样做,因为除非由 udev 规则静态映射,否则无法保证重启后特定设备的名称相同。例如:重启后,设备名称可以从 /dev/sda 改为 /dev/sdb。 默认情况下,DM 多路径会禁用所有不是以下内容的设备: 小型计算机系统接口(SCSI) Non-Volatile Memory Expre…
- 列表:小型计算机系统接口(SCSI)
- 列表:Non-Volatile Memory Express (NVMe)
- 列表:直接访问存储设备(DASD)。 要禁用,它会使用以下 devnode 条目: blacklist { devnode "!^(sd[a-z]|dasd[a-z]|nvme[0-9])" } 这个条目禁用的设备通常不支持 DM 多路径。
- 列表:通过运行以下命令之一修改多路径配置文件后,验证 /etc/multipath.conf 文件: 要显示任何配置错误,请运行: # multipath -t > /dev/null 要显示使用添加的更改显示新配置,请运行: # multipath -t
- 命令/配置摘录:
# udevadm info --query=all -n /dev/mapper/sd*
blacklist { devnode "^sd[a-z]" }5.5. 根据设备类型禁用多路径
- 要点:通过在 multipath.conf 的 device 部分指定 vendor 和 product info,从多路径中排除整个设备类别。这可防止 DM 多路径对某些模型或厂商的设备进行分组,将其保留为单独的块设备。
- 要点:流程
- 列表:显示设备类型: # multipathd show paths raw format "%d %s" | grep sdb sdb HP,HSV210
- 列表:使用 device 部分在 /etc/multipath.conf 配置文件中禁用设备。 以下示例禁用所有 IBM DS4200 和 HP 设备的多路径: blacklist { device { vendor "IBM" product "3S42" #DS4200 Product 10 } device { vendor "HP" product ".*" } }
- 列表:通过运行以下命令之一修改多路径配置文件后,验证 /etc/multipath.conf 文件: 要显示任何配置错误,请运行: # multipath -t > /dev/null 要显示使用添加的更改显示新配置,请运行: # multipath -t
- 列表:要显示任何配置错误,请运行: # multipath -t > /dev/null
- 列表:要显示使用添加的更改显示新配置,请运行: # multipath -t
- 列表:重新载入 /etc/multipath.conf 文件并重新配置 multipathd 守护进程以使更改生效: # service multipathd reload
- 命令/配置摘录:
# multipathd show paths raw format "%d %s" | grep sdb
sdb HP,HSV2105.6. 使用 udev 属性禁用多路径
- 要点:使用 multipath.conf 文件中的 udev 属性从多路径中排除设备。这个方法允许根据硬件类型或连接等系统检测的属性进行灵活的过滤,从而精确控制多路径中排除哪些设备。
- 要点:流程
- 列表:显示设备的 udev 变量: # udevadm info --query=all -n /dev/sdb
- 列表:使用 property 参数在 /etc/multipath.conf 配置文件中禁用设备。此参数是一个正则表达式字符串,与设备的 udev 环境变量名称匹配。 以下示例禁用了所有使用 udev 属性 ID_ATA 的设备上的多路径: blacklist { property "ID_ATA" }
- 列表:通过运行以下命令之一修改多路径配置文件后,验证 /etc/multipath.conf 文件: 要显示任何配置错误,请运行: # multipath -t > /dev/null 要显示使用添加的更改显示新配置,请运行: # multipath -t
- 列表:要显示任何配置错误,请运行: # multipath -t > /dev/null
- 列表:要显示使用添加的更改显示新配置,请运行: # multipath -t
- 列表:重新载入 /etc/multipath.conf 文件并重新配置 multipathd 守护进程以使更改生效: # service multipathd reload
- 命令/配置摘录:
# udevadm info --query=all -n /dev/sdb
blacklist { property "ID_ATA" }5.7. 使用设备协议禁用多路径
- 要点:使用 multipath.conf 中的设备协议设置,从多路径中排除设备协议设置。这可用于防止本地或特定协议中的多路径更好地管理多路径。
- 要点:流程
- 列表:可选:查看路径使用的协议: # multipathd show paths raw format "%d %P" | grep sdb sdb scsi:fcp
- 列表:使用 protocol 参数在 /etc/multipath.conf 配置文件中禁用设备。 protocol 参数使用正则表达式,并将具有匹配协议字符串的所有设备列入黑名单。例如,要在所有 nvme 设备上禁用多路径,请使用: blacklist { protocol "nvme" } DM 多路径识别 protocol 字符串,如 scsi:fcp, scsi:spi, scsi:ssa, scsi:sbp, scsi:srp, scsi:iscsi, scsi:sas, scsi:adt, scsi:ata, scsi:unspec, ccw, cciss, nvme:pcie, nvme:rdma, nvme:fc, n…
- 列表:通过运行以下命令之一修改多路径配置文件后,验证 /etc/multipath.conf 文件: 要显示任何配置错误,请运行: # multipath -t > /dev/null 要显示使用添加的更改显示新配置,请运行: # multipath -t
- 列表:要显示任何配置错误,请运行: # multipath -t > /dev/null
- 列表:要显示使用添加的更改显示新配置,请运行: # multipath -t
- 列表:重新载入 /etc/multipath.conf 文件并重新配置 multipathd 守护进程以使更改生效: # service multipathd reload
- 命令/配置摘录:
# multipathd show paths raw format "%d %P" | grep sdb
sdb scsi:fcp5.8. 为禁用多路径的设备添加例外
- 要点:通过在 multipath.conf 中添加例外,为特定设备重新启用多路径。这在出现广泛排除规则时很有用,但某些设备仍需要多路径。这允许精确控制由 DM 多路径管理的设备。
- 要点:先决条件
- 列表:在某些设备中禁用多路径。
- 列表:使用 /etc/multipath.conf 配置文件的 blacklist_exceptions 部分对设备启用多路径。 当在 blacklist_exceptions 部分中指定设备时,您必须使用与 blacklist 部分相同的条件。例如: WWID 异常不适用于 devnode 条目禁用的设备,即使与该 WWID 关联。同样,devnode 例外仅适用于 devnode 条目,device 例外则仅适用于设备条目。 以下是为禁用多路径的设备添加例外的示例 WWID 异常 如果您有很多设备,并且只想多路径 WWID 3600d0230000000000e13955cc3757803,您可以禁用所有设备,然后添加一个例外。在 …
- 列表:WWID 异常 如果您有很多设备,并且只想多路径 WWID 3600d0230000000000e13955cc3757803,您可以禁用所有设备,然后添加一个例外。在 /etc/multipath.conf 文件中添加以下行: blacklist { wwid ".*" } blacklist_exceptions { wwid "3600d0230000000000e13955cc3757803" } 另外,您可以使用感叹号(!)来反转 黑名单 条目,该条目会禁用除指定 WWID 外的所有设备: blacklist { wwid "!3600d0230000000000e13955cc3757803" }
- 列表:udev 属性的例外 property 参数的工作方式与其他 blacklist_exception 参数不同。property 参数的值必须与 udev 数据库中变量名称匹配。否则,设备会被禁用。使用这个参数,您可以在某些 SCSI 设备中禁用多路径,如 USB 盘和本地硬盘。 要只在可合理多路径的 SCSI 设备中启用多路径,请将此参数设置为 (SCSI_IDENT_|ID_WWN),如下例所示: blacklist_exceptions { property "(SCSI_IDENT_|ID_WWN)" }
- 列表:通过运行以下命令之一修改多路径配置文件后,验证 /etc/multipath.conf 文件: 要显示任何配置错误,请运行: # multipath -t > /dev/null 要显示使用添加的更改显示新配置,请运行: # multipath -t
- 列表:要显示任何配置错误,请运行: # multipath -t > /dev/null
- 命令/配置摘录:
blacklist { wwid ".*" } blacklist_exceptions { wwid "3600d0230000000000e13955cc3757803" }
blacklist { wwid "!3600d0230000000000e13955cc3757803" }第 6 章 管理多路径卷
- 要点:您可以使用 multipath、dmsetup 和 multipathd 命令来管理 多路径 卷,这些卷由设备映射器(DM)多路径提供,以调整设备、移动文件系统和管理 multipathd 守护进程。
6.1. 重新定义在线多路径设备大小
- 要点:使用 multipathd 和 resize2fs 命令调整在线多路径设备及其文件系统的大小。这样,您可以在不停机的情况下扩展存储容量,确保应用程序在扩展的同时保持可用,以满足不断增长的数据需求。
- 要点:流程
- 列表:重新定义您的物理设备大小。
- 列表:查找逻辑单元号(LUN)的路径: # multipath -l
- 列表:重新定义您的路径大小。对于小型计算机系统接口(SCSI)设备,将 1 写入设备的 rescan 文件会导致 SCSI 驱动程序重新扫描,如下所示: # echo 1 > /sys/block/path_device/device/rescan 请确定您为每个路径设备运行这个命令。例如:如果您的路径设备是 sda、sdb、sde 和 sdf,请运行以下命令: # echo 1 > /sys/block/sda/device/rescan # echo 1 > /sys/block/sdb/device/rescan # echo 1 > /sys/block/sde/device/rescan # echo 1 > /sys/blo…
- 列表:重新定义多路径设备大小: # multipathd resize map multipath_device
- 列表:重新调整文件系统大小,假设没有使用 LVM 或 DOS 分区: # resize2fs /dev/mapper/mpatha
- 命令/配置摘录:
# multipath -l
# echo 1 > /sys/block/path_device/device/rescan6.2. 将 root 文件系统从单一路径设备移动到多路径设备中
- 要点:将根文件系统从单一路径设备移动到多路径设置,以确保关键系统数据的路径冗余。这使得系统能够引导和运行,即使一个存储路径失败,从而提高了整体可用性。
- 要点:先决条件
- 列表:您已安装了 device-mapper-multipath 软件包。
- 列表:创建 /etc/multipath.conf 配置文件: # mpathconf --enable
- 列表:启用 multipathd 服务: # systemctl enable multipathd.service
- 列表:如果 上的 find_multipaths 没有设置为,请编辑 /etc/multipath.conf 的 blacklist 和 blacklist_exceptions 部分,如 Preventing 设备来自于多路径 中所述。
- 列表:将设备的 WWID 添加到 /etc/multipath/wwids 文件中: # multipath -a /dev/sdb wwid '3600d02300069c9ce09d41c4ac9c53200' added 使用 root 设备名称替换 /dev/sdb。
- 列表:确认您的配置文件已正确配置: # multipath -d 3600d02300069c9ce09d41c4ac9c53200 : mpatha (3600d02300069c9ce09d41c4ac9c53200) undef 3PARdata,VV size=446M features='1 queue_if_no_path' hwhandler='1 alua' wp=undef
-+- policy='service-time 0' prio=50 status=undef- 5:0:0:0 sdb 8:16 undef ready running 将 3600d02300069c9ce09d41c4ac9c532… - 命令/配置摘录:
# mpathconf --enable
# systemctl enable multipathd.service6.3. 将 swap 文件系统从单一路径设备移动到多路径设备中
- 要点:将交换文件系统从单一路径移到多路径存储,以确保冗余并防止性能问题。如果交换使用逻辑卷管理器(LVM),则不需要特殊步骤。但是,非 LVM swap 设备可能需要编辑 /etc/fstab 以使用正确的多路径设备名称。
- 要点:流程
- 列表:创建 /etc/multipath.conf 配置文件: # mpathconf --enable
- 列表:启用 multipathd 服务: # systemctl enable multipathd.service
- 列表:如果 find_multipaths 配置参数没有设置为 on,请编辑 /etc/multipath.conf 文件的 blacklist 和 blacklist_exceptions 部分,如从多路径中阻止设备 中所述。
- 列表:将设备的 WWID 添加到 /etc/multipath/wwids 文件中: # multipath -a /dev/sdb wwid '3600d02300069c9ce09d41c4ac9c53200' added 使用 swap 设备名称替换 /dev/sdb。
- 列表:确认您的配置文件已正确配置: # multipath -d 3600d02300069c9ce09d41c4ac9c53200 : mpatha (3600d02300069c9ce09d41c4ac9c53200) undef 3PARdata,VV size=446M features='1 queue_if_no_path' hwhandler='1 alua' wp=undef
-+- policy='service-time 0' prio=50 status=undef- 5:0:0:0 sdb 8:16 undef ready running 将 3600d02300069c9ce09d41c4ac9c532… - 列表:在 /etc/multipath.conf 文件中为 swap 设备配置别名: multipaths { multipath { wwid WWID_of_swap_device alias swapdev } }
- 命令/配置摘录:
# mpathconf --enable
# systemctl enable multipathd.service6.4. 确定多路径设备的设备映射器条目
- 要点:使用 multipathd 命令识别配置的多路径设备的设备映射器条目。这有助于将多路径设备名称链接到其底层设备映射器条目,帮助监控、故障排除和系统管理任务,以便准确识别设备。
- 要点:流程
- 列表:显示所有设备映射器设备: # multipathd show maps format "%n %d" name sysfs mpathd dm-4 mpathb dm-3 mpatha dm-2 mpathh dm-9
- 命令/配置摘录:
# multipathd show maps format "%n %d"
name sysfs mpathd dm-4 mpathb dm-3 mpatha dm-2 mpathh dm-96.5. 管理 multipathd 守护进程
- 要点:使用其命令管理和与 multipathd 守护进程交互。管理 multipathd 对于监控路径状态、查看设备信息以及控制多路径行为至关重要,而无需服务重启或系统重启。
- 要点:流程
- 列表:查看 multipathd show maps 命令输出的默认格式: # multipathd show maps name sysfs uuid mpathc dm-0 360a98000324669436c2b45666c567942
- 列表:有些 multipathd 命令包括 format 选项,后跟通配符。使用以下命令显示可用通配符列表: # multipathd show wildcards multipath format wildcards: %n name %w uuid %d sysfs ...
- 列表:显示 multipathd 监控的多路径设备。使用通配符指定显示的字段: # multipathd show maps format "%n %w %d %s" name uuid sysfs vend/prod/rev mpathc 360a98000324669436c2b45666c567942 dm-0 NETAPP,LUN
- 列表:显示 multipathd 监控的路径。使用通配符指定显示的字段: # multipathd show paths format "%n %w %d %s" target WWNN uuid dev vend/prod/rev 0x50001fe1500d2250 3600508b4001080520001e00011700000 sdb HP,HSV210
- 列表:以原始格式显示数据: # multipathd show maps raw format "%n %w %d %s" mpathc 360a98000324669436c2b45666c567942 dm-0 NETAPP,LUN 在原始格式中,不会打印标头,且不会添加字段来与标头匹配。此输出更易于用来编写脚本。
- 命令/配置摘录:
# multipathd show maps
name sysfs uuid mpathc dm-0 360a98000324669436c2b45666c567942第 7 章 删除存储设备
- 要点:您可以从正在运行的系统中安全地删除存储设备,这有助于防止系统内存过载和数据丢失。
- 要点:不要删除系统上的存储设备,其中:
- 列表:空闲内存低于内存总量的 5%,每 100 个超过 10 个样本。
- 列表:交换是活跃的(在 vmstat 命令的输出中非零的 si 和 so 列)。
- 命令/配置摘录:
# vmstat 1 100
# free7.1. 安全删除存储设备
- 要点:从正在运行的系统中安全地删除存储设备需要顶级的方法。从顶层(通常是应用程序或文件系统)开始,并工作到底层。底层是物理设备。
- 要点:您可以通过多种方式使用存储设备,它们可以在物理设备之上有不同的虚拟配置。例如,您可以将设备的多个实例分组到多路径设备中。您还可以将其包含在独立磁盘的冗余阵列(RAID)中。您还可以使逻辑卷管理器(LVM)组的设备部分成为逻辑卷管理器(LVM)组。此外,设备可以通过文件系统访问,也可以直接访问设备,如"原始"设备。
- 列表:要删除的设备没有被使用
- 列表:对该设备的所有待处理的 I/O 都会被清除
- 列表:操作系统无法引用存储设备
7.2. 删除块设备和相关的元数据
- 要点:要从正在运行的系统中安全地删除块设备,并避免内存过载或数据丢失,请首先删除其元数据。从文件系统向下处理每个层,以确保系统保持稳定且处于一致状态。
- 要点:先决条件
- 列表:您有一个现有的包含文件系统、逻辑卷和卷组的块设备堆栈。
- 列表:您确保没有其他应用程序或服务正在使用您要删除的设备。
- 列表:备份您要删除的设备中的数据。
- 列表:可选:如果要删除多路径设备,且您无法访问其路径设备,请禁用多路径设备的队列。运行以下命令: # multipathd disablequeueing map multipath-device 这可让设备的 I/O 失败,允许使用该设备的应用程序关闭。
- 列表:对于 LVM,运行 lvremove、vgremove 和 pvremove。
- 列表:对于软件独立磁盘的冗余阵列(RAID),请运行 mdadm 来删除阵列。如需更多信息,请参阅 管理 RAID。
- 命令/配置摘录:
# multipathd disablequeueing map multipath-device
# umount /mnt/mount-point- 注意:注意 一次一层地删除设备及其元数据可确保不会在磁盘上保留过时的签名。
- 注意:警告 重新扫描小型计算机系统接口(SCSI)总线或执行更改操作系统状态的其他操作可能会导致延迟。这些延迟可能会导致 I/O 超时、意外删除设备或数据丢失。
第 8 章 DM 多路径故障排除
- 要点:通过检查守护进程状态、"queue_if_no_path"功能问题以及 multipathd 互动控制台用于诊断来排除多路径配置问题。
- 要点:以下问题可能会导致多路径配置缓慢或无法正常工作:
8.1. 对 queue_if_no_path 功能的问题进行故障排除
- 要点:通过在 /etc/multipath.conf 中设置 no_path_retry N,解决 queue_if_no_path 的 I/O 挂起,在所有路径失败时限制重试。您还可以在运行时为特定逻辑单元号(LUN)禁用队列,以防止应用程序在路径中断期间挂起。
- 要点:流程
- 列表:禁用队列: 对于特定设备: # multipathd disablequeueing map device 对于所有设备: # multipathd disablequeueing maps 禁用队列后,它将保持禁用状态,直到您重启或重新加载 multipathd。
- 列表:对于特定设备: # multipathd disablequeueing map device
- 列表:对于所有设备: # multipathd disablequeueing maps 禁用队列后,它将保持禁用状态,直到您重启或重新加载 multipathd。
- 列表:将队列重置为以前的值: 对于特定设备: # multipathd restorequeueing map device 对于所有设备: # multipathd restorequeueing maps
- 列表:对于特定设备: # multipathd restorequeueing map device
- 列表:对于所有设备: # multipathd restorequeueing maps
- 命令/配置摘录:
# multipathd disablequeueing map device
# multipathd disablequeueing maps8.2. 使用 multipathd 互动控制台进行故障排除
- 要点:使用 multipathd -k 互动控制台实时对多路径问题进行故障排除。此控制台提供对状态信息、配置详情和控制命令的访问。输入 help for commands 并按 Ctrl+D 退出而不中断服务。
- 要点:流程
- 列表:在退出控制台前显示多路径配置,包括默认值: # multipathd -k multipathd> show config multipathd> Ctrl+D
- 列表:确定多路径获取对 multipath.conf 文件的所有更改: # multipathd -k multipathd> reconfigure multipathd> Ctrl+D
- 列表:确保路径检查程序正常工作: # multipathd -k multipathd> show paths multipathd> Ctrl+D
- 列表:您也可以直接从命令行运行单个 multipathd 交互式命令,而无需启动交互式控制台。例如,要检查多路径是否获取了对 multipath.conf 文件的所有更改,请运行以下命令: # multipathd reconfigure
- 列表:配置 DM 多路径
- 命令/配置摘录:
# multipathd -k
multipathd> show config multipathd> Ctrl+D第 9 章 使用 eh_deadline 配置存储错误恢复的最大时间
- 要点:您可以配置最大允许的时间来恢复失败的 SCSI 设备。这个配置保证了 I/O 响应时间,即使存储硬件因为失败而变得无响应。
9.1. eh_deadline 参数
- 要点:eh_deadline 参数为小型计算机系统接口(SCSI)错误恢复操作设置最大时间限制,之后系统会重置整个主机总线适配器以防止无限期挂起。
- 要点:SCSI 错误处理(EH)机制尝试在失败的 SCSI 设备上执行错误恢复。SCSI 主机对象 eh_deadline 参数允许您配置恢复的最大时间。配置的时间过期后,SCSI EH 会停止并重置整个主机总线适配器(HBA)。
- 列表:关闭失败的路径,
- 列表:切换路径,或者
- 列表:禁用 RAID 分片。
- 列表:如果启用了 RSCN
- 列表:如果 HBA 没有注册链接不可用
- 注意:警告 当 eh_deadline 过期时,SCSI EH 会重置 HBA,影响那个 HBA 中的所有目标路径,而不仅仅是失败的路径。如果由于其他原因无法使用冗余路径,则可能会出现 I/O 错误。如果在所有目标上都配置了多路径,请只启用 eh_deadline。另外,如果您的多路径设备没有完全冗余,您应该验证 no_path_retry 是否设置为足够大,以允许路径恢复。
9.2. 设置 eh_deadline 参数
- 要点:配置 eh_deadline 参数,以限制小型计算机系统接口(SCSI)错误恢复允许的最大时间。这样可确保可预测的 I/O 响应时间,并防止其挂起,允许应用程序处理带有定义的超时限制的无响应存储。
- 要点:流程
- 列表:您可以使用以下方法之一配置 eh_deadline : multpath.conf 文件的 defaults 部分 在 multpath.conf 文件的 defaults 部分,将 eh_deadline 参数设置为所需的秒数: # eh_deadline 300 注意 在 RHEL 8.4 中,使用 multpath.conf 文件的 defaults 部分设置 eh_deadline 参数是首选的方法。 要使用此方法关闭 eh_deadline 参数,请将 eh_deadline 设置为 off。 sysfs 将秒数写入 /sys/class/scsi_host/host<host-number>/eh_deadline 文…
- 列表:multpath.conf 文件的 defaults 部分 在 multpath.conf 文件的 defaults 部分,将 eh_deadline 参数设置为所需的秒数: # eh_deadline 300 注意 在 RHEL 8.4 中,使用 multpath.conf 文件的 defaults 部分设置 eh_deadline 参数是首选的方法。 要使用此方法关闭 eh_deadline 参数,请将 eh_deadline 设置为 off。
- 列表:sysfs 将秒数写入 /sys/class/scsi_host/host<host-number>/eh_deadline 文件中。例如,要在 SCSI 主机 6 上通过 sysfs 设置 eh_deadline 参数: # echo 300 > /sys/class/scsi_host/host6/eh_deadline 要使用此方法关闭 eh_deadline 参数,请使用 echo off。
- 列表:内核参数 使用 scsi_mod.eh_deadline 内核参数为所有 SCSI 主机总线适配器(HBA)设置默认值。 # echo 300 > /sys/module/scsi_mod/parameters/eh_deadline 要使用此方法关闭 eh_deadline 参数,请使用 echo -1。
- 列表:如何使用 udev 规则永久设置 eh_deadline 和 eh_timeout
- 命令/配置摘录:
# eh_deadline 300
# echo 300 > /sys/class/scsi_host/host6/eh_deadline- 注意:注意 在 RHEL 8.4 中,使用 multpath.conf 文件的 defaults 部分设置 eh_deadline 参数是首选的方法。
完整目录
- 配置和管理设备映射器多路径功能
- 对红帽文档提供反馈
- 第 1 章 设备映射器多路径概述
- 1.1. 带一个 RAID 设备的主动/被动多路径配置
- 1.2. 带两个 RAID 设备的主动/被动多路径配置
- 1.3. 带一个 RAID 设备的主动/主动多路径配置
- 1.4. DM 多路径组件
- 1.5. 显示多路径拓扑
- 1.6. 路径状态
- 第 2 章 多路径设备
- 2.1. 多路径设备识别符
- 2.2. 逻辑卷中的多路径设备
- 第 3 章 配置 DM 多路径
- 3.1. 检查 device-mapper-multipath 软件包
- 3.2. 使用 DM 多路径设置基本故障切换配置
- 3.3. 在生成多路径设备时忽略本地磁盘
- 3.4. 使用 DM 多路径配置附加存储
- 3.5. 在 initramfs 中配置多路径
- 第 4 章 修改 DM 多路径配置文件
- 4.1. 配置文件概述
- 4.2. 配置文件默认设置
- 4.3. 修改多路径配置文件默认设置
- 4.4. 配置文件 multipaths 部分
- 4.5. 配置文件 devices 部分
- 4.6. 配置文件覆盖部分
- 4.7. DM 多路径覆盖设备超时
- 4.8. 修改具体设备的多路径设置
- 4.9. 使用协议修改特定设备的多路径配置
- 4.10. 修改存储控制器的多路径设置
- 4.11. 为所有设备设定多路径值
- 第 5 章 防止设备多路径
- 5.1. DM 多路径为路径创建多路径设备的条件
- 5.2. 在某些设备中禁用多路径的条件
- 5.3. 使用 WWID 禁用多路径
- 5.4. 使用设备名称禁用多路径
- 5.5. 根据设备类型禁用多路径
- 5.6. 使用 udev 属性禁用多路径
- 5.7. 使用设备协议禁用多路径
- 5.8. 为禁用多路径的设备添加例外
- 第 6 章 管理多路径卷
- 6.1. 重新定义在线多路径设备大小
- 6.2. 将 root 文件系统从单一路径设备移动到多路径设备中
- 6.3. 将 swap 文件系统从单一路径设备移动到多路径设备中
- 6.4. 确定多路径设备的设备映射器条目
- 6.5. 管理 multipathd 守护进程
- 第 7 章 删除存储设备
- 7.1. 安全删除存储设备
- 7.2. 删除块设备和相关的元数据
- 第 8 章 DM 多路径故障排除
- 8.1. 对 queue_if_no_path 功能的问题进行故障排除
- 8.2. 使用 multipathd 互动控制台进行故障排除
- 第 9 章 使用 eh_deadline 配置存储错误恢复的最大时间
- 9.1. eh_deadline 参数
- 9.2. 设置 eh_deadline 参数
