控制器寄存器与属性配置 - 第89页
NVME2.0协议解读 1 min read

控制器寄存器与属性配置 - 第89页

Blog Author

以下是对 NVM Express® Base Specification, revision 2.0b 第 78 页中文深入分析与教学讲解,聚焦在:

  1. Figure 76:多域结构图解说明(6个 Domain)
  2. 3.2.4.2:多域系统中的保留(Persistent Reservation)与划分恢复同步机制
  3. 3.2.4.3:Domain Identifier 的使用建议(Informative)

📊 一、Figure 76:六个 Domain 的复杂结构图解(附图示意与说明)

该结构展示了一个复杂的 NVMe 子系统,具有 6 个 Domain,它们在控制器、NVM 存储资源、命名空间的分布上非常异构:

                 [Fabric 接口互联结构]
         ┌────────────────────────────┐
                    NS A             │← Domain 1 中的私有命名空间
         └─────┬────────────┬─────────┘
                           
         ┌─────▼────┐  ┌────▼────┐
         Ctrl@D1-1   Ctrl@D1-2   Domain 1 (有2控制器 + NVM)
         └──────────┘  └─────────┘       NSID 1,2,3
                            
                 Port v    Port w
                            
         ┌────────────────────────────┐
                    NS B             │← Shared namespace Domain 2无控制器
         └────────────────────────────┘
                     
                 Communication Boundary


         ┌───────┐                 ┌───────┐
         Ctrl@D3│← NVM 存储     Ctrl@D5│← NVM 存储
         └───────┘                 └───────┘


         ┌────────────────────────────┐
                    NS C             │← Domain 1 中的共享命名空间
         └────────────────────────────┘


         ┌────────────────────────────┐
                NS D      NS E       │← Shared NS位于 Domain 4无控制器
         └────────────────────────────┘


         ┌────────────────────────────┐
                  Domain 6           │← 无控制器无存储空域
         └────────────────────────────┘

🔑 Key 总结:

Domain 控制器 存储容量 命名空间
D1 ✅ 2个 NS A(私有)、NS C(共享)
D2 ❌ 无 NS B(共享)
D3 ✅ 2个 ❌ 无
D4 ❌ 无 NS D、E(共享)
D5 ✅ 1个 ❌ 无
D6 ❌ 无 ❌ 无 无(空域)

📌 通信边界(Dashed Line) 用于指示各 Domain 间的隔离与划分状态,划分事件(division)会发生在这些边界上。


🔁 二、3.2.4.2 Persistent Reservations 在多域下的划分与恢复机制

✅ 多域系统支持 Persistent Reservations(持久性保留)时,需要处理划分恢复带来的同步问题:

🔄 场景:

  • 如果系统发生 Division Event(划分事件),导致各 Domain 分裂。
  • 事件恢复后,如果多个 Domain 重新连接,保留状态必须进行同步

❗ 不同步时的行为:

  1. ANA Group 状态转为 Inaccessible(不可访问)
  2. 对应命名空间不可使用,直到 PR 状态同步。

  3. 若无法同步 PR 状态:

  4. 进入 ANA Persistent Loss 状态(§8.1.3.4)
    • 指永久失去访问,但不会触发错误。
  5. 或控制器设置 CSTS.CFS = 1,触发致命错误状态(Controller Fatal Status)

📎 相关协议段落: - §8.1:ANA(Asymmetric Namespace Access) - §8.19:Persistent Reservations(持久性保留)


🧭 三、3.2.4.3 Domain Identifier 的使用建议(Informative)

📌 Domain Identifier 主要功能:表示 NVM 子系统中的逻辑域分布。

主机可以使用这些 ID 实现更加智能的策略,如:

📂 1️⃣ RAID/冗余管理

  • 利用 Endurance Group 的 Domain Identifier 来判断哪些组可能会同时故障(位于同一域中),哪些是独立容灾单元(不同域中);
  • RAID 软件可据此 避免将所有副本分配到同一故障域,提升系统可靠性。

🧠 2️⃣ 控制器识别

  • 主机应用可分析控制器的 Domain Identifier 来判断:
  • 哪些控制器是同一域中的协同节点(可共享存储资源);
  • 哪些控制器是独立域中的(可作为冗余控制器或隔离故障域)。

🧠 总结要点

概念 说明
Figure 76 展示一个高度模块化的多域系统,控制器和存储资源在不同 Domain 中异构分布
通信边界 指示跨域访问的障碍点,是划分发生的边界
划分事件恢复后需同步 PR 状态 否则命名空间将不可访问或触发错误
Domain Identifier 用途 主机可用于 RAID 冗余、容灾管理、命名空间与控制器访问规划

如果你希望我进一步讲解:

  • ANA 机制下的状态转换逻辑图(Inaccessible → Persistent Loss)
  • RAID 与 NVMe 多域结构的实际映射策略(冗余分布设计)
  • 如何在主机端使用 Identify 数据结构提取 Domain 分布信息(含字段解析)

我可以逐项为你讲解。你想继续哪一部分内容?例如进入第 8 章(ANA 与 PR 的详细机制)?