ESXi 多路径是什么
ESXi 通过 PSA 框架管理存储多路径:SATP 声明规则决定设备由哪个插件管理,NMP 插件负责路径选择,PSP 策略决定 I/O 如何在多条路径间分发(常见有最近使用、固定与轮询)。阵列到主机通常有多条物理链路,链路故障时框架应自动切换;查看链路与设备状态,是判断冗余是否真的生效、I/O 是否分布均匀的基础。
基本信息
| 链路查看 | esxcli storage core path list |
|---|---|
| 设备与策略 | esxcli storage nmp device list |
| 改轮询参数 | esxcli storage nmp psp roundrobin deviceconfig set |
| 切换策略 | esxcli storage nmp device set --device=<设备> --psp=<策略> |
| 观察 | 改后复核设备状态与链路分布是否均匀 |
典型使用场景
- 核对存储链路冗余是否完整,避免实际单链路运行
- 按阵列厂商建议调整 PSP,优化多链路吞吐
- 链路故障后确认是否已自动切换并恢复冗余
- 排查某条路径长期处于非活动状态的原因
- 存储扩容或更换 HBA 后复核路径与设备映射
查看与切换轮询策略
查看与切换轮询策略
esxcli storage core path list | head -40 # 路径与状态(active / standby / dead)
esxcli storage nmp device list # 设备、SATP 与 PSP 策略
esxcli storage nmp psp roundrobin deviceconfig set --type=iops --iops=1 --device=naa.<设备ID>
esxcli storage nmp device set --device=naa.<设备ID> --psp=VMW_PSP_RR # 切换为轮询
esxcli storage core adapter list # 确认 HBA 与驱动版本输出逐项读法
| 对象 | 含义 | 正常与异常 |
|---|---|---|
| 路径状态 | active 在用、standby 备用、dead 失效 | 出现 dead 会影响冗余,需要定位物理链路 |
| 设备状态 | 设备是否可访问 | 设备 offline 时虚机 I/O 直接报错 |
| PSP 策略 | 路径分发策略类型 | 阵列建议为轮询却仍是固定,性能可能不达标 |
| SATP | 管理该设备的插件声明 | 声明不匹配时策略无法生效 |
| 运行路径数 | 设备实际可用的路径条数 | 少于预期说明部分链路未生效 |
多路径策略变更影响 I/O 分布:先确认阵列厂商建议的 PSP 与参数,避开业务高峰,改完在业务低峰观察一段时间再推广到其他主机。
轮询的切换频率参数不宜照抄:iops 或 bytes 阈值与阵列缓存行为有关,设置过小会让 I/O 频繁换路径,反而降低缓存命中率。
链路冗余要连物理层一起核对:两台交换机各自接入一条链路才算真正冗余,如果多条路径实际汇聚到同一台交换机,该交换机故障仍会同时中断所有路径。