发现控制器与访问状态
NVMe-oF 多路径的第一步是发现:主机向发现控制器查询可用子系统、传输类型、地址与命名空间当前的访问状态,然后据此建立连接。访问状态由存储侧的非对称命名空间访问机制给出,用于指示哪条路径处于优化状态、哪条处于非优化或不可访问状态。主机侧多路径有两种实现:使用内核原生多路径把多条路径聚合成一个块设备,或关闭原生多路径改用通用多路径软件,两者不叠加使用。
基本信息
| 发现方式 | 向发现控制器查询,返回可连接目标清单 |
|---|---|
| 关键信息 | 子系统名称、地址、传输类型、命名空间访问状态 |
| 原生多路径 | 内核把同一子系统的多条路径聚合成一个块设备 |
| 替代方案 | 关闭原生多路径,交给通用多路径软件管理 |
| 权限要求 | 主机 root/管理员,存储侧授权配置 |
典型使用场景
- 双控制器存储接入主机时确认两条路径均被发现并处于优化状态
- 排查主机只连到一条路径或路径状态异常
- 多路径软件与原生多路径混用导致设备重复,需要统一定位
- 扩容或控制器切换后核对路径状态是否恢复到预期
- 评估路径选择策略对延迟与吞吐的影响
发现与多路径检查
发现与多路径检查
# 1) 发现可用子系统
nvme discover -t tcp -a 10.0.20.11 -s 4420
# 2) 连接全部发现到的目标
nvme connect-all -t tcp -a 10.0.20.11 -s 4420
# 3) 查看子系统下的路径与访问状态
nvme list-subsys
# 4) 确认原生多路径与路径选择策略的当前设置
cat /sys/module/nvme_core/parameters/multipath
cat /sys/module/nvme_core/parameters/io_policy状态与策略判读
| 观察项 | 含义 | 异常提示 |
|---|---|---|
| 优化状态路径 | 应承载主要 I/O | 全部为非优化状态需核对存储侧端口组 |
| 不可访问状态 | 当前无法承载 I/O | 长期存在说明端口或链路有问题 |
| 路径数 | 与规划一致 | 少于规划值说明连接或授权缺失 |
| 原生多路径开关 | 与多路径方案匹配 | 与通用多路径同时启用会造成设备重复 |
| 路径选择策略 | 与业务负载匹配 | 策略不当导致单路径忙其余空闲 |
访问状态的取值与含义、以及路径选择策略的可选项随内核与存储实现不同,配置前应以对应版本的官方文档为准。
原生多路径与通用多路径软件同时管理同一设备,会让同一存储出现重复块设备并可能被同时写入,属于高风险配置,切换方案时必须先断开一侧。