路径控制模块属性
除了 AIX® 缺省路径控制模块 (PCM) 外,特定于设备的 PCM 可能由设备供应商提供。 用户可更改属性的集合是由设备供应商定义的。 特定于设备的 PCM 可以具有设备和路径属性。
- algorithm
- 确定将 I/O 分布于设备的多条路径中的方法。 算法属性具有以下值:注: 某些设备仅支持这些值的子集。
- 故障转移
- 发送所有 I/O 操作到单条路径。 如果该路径标记为失败或禁用,那么将选择下一个可用路径用于发送所有 I/O 操作。 此算法根据 path priority 属性的升序值来维护有序列表中的所有已启用路径。 将为每个 I/O 操作选择具有最低路径优先级值的有效路径。
- Round_robin
- 将 I/O 操作分布于多个启用的路径。 对于具有主动和被动路径或者具有首选或非首选路径的设备,仅部分路径用于 I/O 操作。 如果某条路径标记为失败或禁用,那么该路径将不再用于发送 I/O 操作。 I/O 操作基于 path priority 属性进行分发。 具有较高路径优先级值的路径将接受较大份额的 I/O 操作。
- 最短队列
- 将 I/O 操作分布于多个启用的路径。 对于具有主动和被动路径或者具有首选或非首选路径的设备,仅部分路径用于 I/O 操作。 此算法类似于 round_robin 算法。 但是, shortest_queue 算法根据每条路径上的暂挂 I/O 操作数来分发 I/O 操作。 将选择当前具有的暂挂 I/O 操作最少的路径用于下一个操作。 当算法设置为 shortest_queue时,将忽略 path priority 属性。
- hcheck_mode
- 确定在使用运行状况检查功能时必须检查的路径。 该属性支持以下方式:
- 启用
- 通过状态为启用的路径发送 healthcheck 命令。 该方式不会通过状态为禁用或缺失的路径发送 healthcheck 命令.
- 失败
- 通过状态为失败的路径发送 healthcheck 命令。 该方式不会通过状态为启用、禁用或缺失的路径发送 healthcheck 命令.
- nonactive
- (缺省值)通过没有设备的活动 I/O 的路径(包括状态为失败或启用的路径)发送 healthcheck 命令。 该方式不会通过状态为禁用或缺失的路径发送 healthcheck 命令.
- hcheck_interval
- 定义在某个设备的路径上执行运行状况检查的频率。 该属性支持的范围是 0 - 3600 秒。 当所选的值为 0 时,会禁用运行状况检查。注: 仅当磁盘由某个进程打开且尚未关闭时,才会执行运行状况检查。 如果实体没有已打开的磁盘,那么即使将设备的 hcheck_interval 属性设置为非零值,“路径控制”模块也不会检查路径。
- dist_tw_width
- 定义“时间窗口”的持续时间。 这是时间帧,在此期间分布式错误检测算法将累积返回错误的 I/O 数。 dist_tw_width 属性的计量单位是毫秒。 减小此属性值将减少采用的每个样本的持续时间,并降低算法对 I/O 错误小型脉冲串的灵敏度。 增大该属性的值会增加算法对错误小型脉冲串的灵敏度以及路径发生错误的几率。
- dist_err_perc%
- 定义“时间窗口”在由于性能下降导致路径发生错误之前具有路径上允许的错误的百分比。 dist_err_percent 的范围为 0-100。 当属性设置为零 (0) 时,将禁用分布式错误检测算法。 缺省设置为零。 分布式错误检测算法对将设备连接到适配器的光纤网进行采样以分析错误。 该算法计算带有错误的样本的百分比,并且如果计算的值大于 dist_err_perc% 属性值,那么路径将失败。
以下是 AIX PCM 的 path 属性:
- 路径优先级
- 修改路径列表上的算法方法的行为。
当算法属性值为 fail_over 时,路径将保留在列表中。 该列表中的顺序将确定首先选择的路径以及(如果某条路径失败)下一个选择的路径。 顺序是由路径优先级属性的值确定的。 值为 1 的优先级是最高优先级。 多条路径可以具有相同的优先级值,但如果所有路径都具有相同的值,那么选择是基于配置每条路径的时间的。
当算法属性值为 round_robin时, path priority 算法会将优先级值分配给每个路径。 将根据路径优先级来为 I/O 操作选择路径。 因此,具有较高优先级值的路径将被选择用于更多 I/O 操作。 如果所有路径的优先级均相同,那么将均等地选择路径。
- cntl_hcheck_int
控制器运行状况检查序列会在检测到存储器光纤网传输故障之后启动。 cntl_delay_time 属性会确定控制器运行状况检查序列保持活动时的最大持续时间(以秒计)。 如果控制器运行状况检查命令成功完成,并检测到可用的路径,那么许可 I/O 恢复的控制器运行状况检查序列将会退出。 在控制器运行状况检查序列结束时,如果未检测到良好路径,那么设备的暂挂 I/O 及后续 I/O 将失败,直到设备运行状况检查程序检测到返回失败的路径为止。
当控制器运行状况检查序列处于活动时,cntl_hcheck_interval 属性是发出下一组控制器运行状况检查命令时的时间量(以秒计)。 cntl_hcheck_interval 属性必须小于 cntl_delay_time,除非设置为 0 或禁用。 如果将 cntl_delay_time 或 cntl_hcheck_interval 设置为 0,那么将禁用此功能。
- cntl_delay_time
控制器运行状况检查序列会在检测到存储器光纤网传输故障之后启动。 cntl_delay_time 属性会确定控制器运行状况检查序列保持活动的最大持续时间(以秒计)。 如果控制器运行状况检查命令成功完成,并检测到可用的路径,那么许可 I/O 恢复的控制器运行状况检查序列将退出。 在控制器运行状况检查序列结束时,如果未检测到良好路径,那么设备的暂挂 I/O 及后续 I/O 将失败,直到设备运行状况检查程序检测到返回失败的路径为止。
当控制器运行状况检查序列处于活动时,cntl_hcheck_interval 属性是发出下一组控制器运行状况检查命令的时间量(以秒计)。 cntl_hcheck_interval 属性必须小于 cntl_delay_time,除非设置为 0 或禁用。 如果将 cntl_delay_time 或 cntl_hcheck_interval 设置为 0,那么将禁用此功能。
- timeout_policy
- 针对命令超时和传输错误调整 PCM 的行为。 如果 timeout_policy 设置为
fail_path 或 disable_path,那么在多路径 I/O
(MPIO) 设备在设备的某些路线上发生间歇存储区域网络 (SAN) 光纤网问题时,性能降级可能得到改善。 timeout_policy 属性具有以下值:
- retry_path
- 在路径上第一次出现命令超时不会导致路径立即失败。 如果运行状况检查恢复了由于传输问题导致失败的路径,那么所恢复的路径立即可以使用。
- fail_path
- 路径在第一次出现命令超时的时候失败。 如果由于传输问题导致失败的路径恢复,那么在经过一段时间该路径上未发生故障之后,才会将该路径用于读或写 I/O 操作。 启用此功能时,在将读或写 I/O 路由至从传输错误恢复的路径之前,可能会发生延迟。
- fail_ctlr
- 此设置会使 MPIO 更快地从首选控制器切换到非首选控制器。 如果您不启用此设置,那么在 MPIO 从首选控制器切换到非首选控制器之前,到首选控制器的所有路径都将失败。 启用此设置时,如果到首选控制器的两条路径发生错误,那么 MPIO 将切换。 该设置与 fail_path 设置相似。
- disable_path
- 路径在第一次出现命令超时的时候失败。 如果由于传输问题导致失败的路径恢复,那么在经过一段时间该路径上未发生故障之后,才会将该路径用于读或写 I/O。 如果在一段时间内此路径继续发生多次命令超时,系统可能会将其禁用。 在您执行以下动作之一以前,禁用的路径保持禁用(并且不可用):运行 chpath 命令启用禁用的路径、重新配置受影响的磁盘或重新启动系统。