命名空间与子系统的关系
在 NVMe 世界里,存储暴露的单元叫命名空间,它由子系统对外提供,主机通过控制器连接到子系统并访问其中的命名空间。子系统用 NQN 标识,命名空间除子系统内的编号外还有全局唯一标识,便于在主机侧稳定追踪同一份存储。与传统块存储相比,授权对象从「主机端口标识」转向「主机名称标识」,多路径也不靠 SCSI 的路径组优先级,而由命名空间访问状态驱动。
基本信息
| 子系统 | 对外提供存储的逻辑单元,用 NQN 命名 |
|---|---|
| 控制器 | 主机建立的通信端点,一个子系统可有多个 |
| 命名空间 | 可被主机访问的存储单元,具备全局标识 |
| 发现服务 | 使用约定的发现子系统名称与监听方式对外告知目标 |
| 授权方式 | 按主机名称授予命名空间访问权限 |
典型使用场景
- 设计子系统与命名空间的划分粒度,决定共享与隔离范围
- 为多台主机授权同一存储时的命名空间分配规划
- 排查主机连上子系统却看不到命名空间的问题
- 扩容时按命名空间新增并核对授权范围
- 对照既有 SCSI 映射台账建立 NVMe 侧台账
查看结构关系
查看结构关系
# 1) 查看子系统、控制器与路径
nvme list-subsys
# 2) 列出命名空间及其块设备映射
nvme list
# 3) 查看某子系统的命名空间明细(含全局标识)
nvme id-ns /dev/nvme0n1
# 4) 查看子系统信息
nvme id-ctrl /dev/nvme0概念对照
| NVMe 概念 | 含义 | 传统对照 |
|---|---|---|
| 子系统 NQN | 存储侧逻辑单元名称 | 目标端 WWN 或 IQN |
| 主机 NQN | 发起端名称,用于授权 | 主机 WWN 或 IQN |
| 命名空间 | 可访问的存储单元 | LUN |
| 命名空间标识 | 全局唯一,便于跨路径识别 | LUN 标识或设备标识 |
| 控制器 | 主机到子系统的连接端点 | 目标端口 |
发现服务通常使用约定的发现子系统名称与监听方式对外通告目标;具体名称、端口与配置方式以所用存储与官方规范文档为准。
命名空间授权按主机名称生效,克隆主机或复用名称会让两台主机获得相同授权,出现争用与数据风险;部署后应核查主机名称清单的唯一性。