为什么多路径-ll和多路径.conf显示不同的值?
适用场景
- ONTAP 9
- SAN
- 多路径实用程序
问题解答
multipath -ll
中"Features (功能)"参数的输出与建议的设置略有不同。这是因为 NetApp 建议使用2项功能、而主机采用这2项功能并将 其再加一项、使其 在multipath -ll
输出下总共具有3项功能。- Target向操作系统询问详细信息、我们在
multipath -ll
中看到的是操作系统的最终协商结果。 - 当
hardware_handler
的输入为零时、 设备的处理方式由操作系统决定、并且主机分配基于AUA的设备处理。 - 操作系统会根据我们的输入自行调用、并且我们的输入默认在多路径库中进行设置 (前提是我们 不会明确更改它们)
- 在LUN发现期间、ONTAP会将LUN的块特征作为AUA投诉公布、因为没有为NetApp定义硬件处理内核模块 、因此我们会在
multipath -ll
输出下看到hwhandler='1 alua'
。这是设计上的。
主机应使用内核中的默认参数、并且内核中的
Hardware_handler
设置为0。multipath -ll
选择Hardware_handler上的参数为"1 alua
"而不是 "0
"(即使未显式配置Multipath.conf文件)的原因。这是因为在multipathd config
中有一个功能"retain_attached_hw_handler = yes
"、因此它会将Hardware_handler
设置为1 ALOA""、因为参数retain_attached_hw_handler
设置为Yes
。
:~ # multipathd -k"show config" |more
device {
vendor "NETAPP"
product "LUN"
path_grouping_policy "group_by_prio"
features "2 pg_init_retries 50"
prio "ontap"
failback "immediate"
no_path_retry "queue"
flush_on_last_del "yes"
dev_loss_tmo "infinity"
user_friendly_names "no"
}
3600a098038314e51665d57554f687xxx dm-14 NETAPP,LUN C-Mode
size=10G features='3 queue_if_no_path pg_init_retries 50' hwhandler='1 alua' wp=rw
`-+- policy='service-time 0' prio=50 status=active
|- 13:0:3:19 sdao 66:128 active ready running
|- 13:0:2:19 sdu 65:64 active ready running
|- 14:0:2:19 sdbi 67:192 active ready running
`- 14:0:3:19 sdcc 69:0 active ready running
追加信息
multipath -ll -d -v3
命令可用于检查系统上的当前配置。- 根据NetApp的建议, 除非 需要更改任何参数,否则不应编辑或更新
multipath.conf
文件。 - 但是、 当NetApp建议的所有设置安装在服务器上时、它们都会在多路径二进制包中进行硬编码、在扫描LUN时、服务器将使用相同的参数。
- hw_handler (硬件处理程序)功能-
- hw_handler参数用于指定要用于特定设备的硬件处理程序。硬件处理程序是一个内核模块、用于为特定类型的存储硬件提供特定处理、尤其是在故障转移和路径管理环境中。硬件处理程序可以实施供应商专用的逻辑、以更高效地管理路径和处理故障转移。
- 常见硬件处理程序:
0 (无硬件处理程序):表示未使用任何特定的硬件处理程序。
1 ALOA (非对称逻辑单元访问):用于支持ALOA的设备、从而使系统能够了解和使用存储阵列提供的首选路径。
1 RDAC (冗余磁盘阵列控制器):用于需要RDAC专用处理的设备。
1 EMC (EMC PowerPath):用于需要由EMC PowerPath软件提供的特定处理的EMC存储阵列。
- retain附加的hw_handler功能-
- retain附加的hw_handler参数用于指定多路径子系统是否应保留首次发现设备时附加到该设备的硬件处理程序。如果硬件处理程序需要在重新配置或路径更改之间保持一致、则这一点非常有用。
值:
是:保留最初连接到设备的硬件处理程序。
否:请勿保留硬件处理程序;如有必要、可以对其进行更改。
示例:
retain附加的hw_handler yes
主要区别:
- 目的:
hw_handler:指定用于管理特定存储设备的路径和故障转移的硬件处理程序类型。
retain附加的硬件处理程序:确定在重新配置期间是否保留初始连接的硬件处理程序。
- 用法:
hw_handler:直接设置要使用的硬件处理程序模块(例如、1个AUA用于AUA支持)。
retain附加的hw_handler:控制在设备重新配置期间保留或更改硬件处理程序的行为。
- 配置上下文:
hw_handler:通常在多路径配置的devices部分中配置、用于指定特定设备的处理程序。
retain附加的hw_handler:可以在默认部分或特定设备配置中进行配置、以控制保留行为。