PLP:掉电保护是一道能量算术题
掉电保护常被简化为“板上有电容”,实际是一道必须闭环的能量算术题。掉电瞬间需要保住的不只是主机已确认写入的用户数据,还包括 FTL 映射表的增量、正在编程的 NAND 页、以及日志区的元数据。J750/J770 规划的功耗规格是典型 18W、最大 22W、空闲 6W,最坏情况下的刷写窗口要按接近最大功耗的瞬时电流来估算,而不是按典型值。
工程上我们把预算拆成三段:主机断电检测与 PCIe 链路停写的响应时延、控制器把 SRAM/DRAM 中脏数据组织成可写入形态的时间、以及 NAND 编程本身的时间——TLC 的编程时间在整个窗口里占比最大,也是预算里最敏感的一段。储能容量还要按 5 年质保期末的容值衰减与高温工况留余量,而不是按出厂初值。平台目前处于产品定义/EVT 阶段,这段预算的验证方式是在不同队列深度与温度点上反复施加随机时刻的断电,观察上电后的一致性表现与恢复过程,而不是拔一次电看能否重新上电。
T10 DIF/DIX:保护信息要穿过整条主机栈才有意义
盘内的 ECC 与端到端保护解决的是不同问题:ECC 管住的是介质与读通道,而从主机内存到 NAND 之间的 DMA、缓冲、地址计算环节,靠 ECC 是看不见的。T10 DIF 的做法是给每个逻辑块附加 8 字节保护信息(Guard/Application/Reference 三个字段),DIX 则把这段保护信息的生成点推到主机侧应用或文件系统。
要真正拿到收益,必须整条链路配合:盘侧通过 Namespace 的元数据格式声明支持的保护类型(Type 1/2/3)与元数据布局,主机侧的 HBA、驱动与文件系统按同一约定生成并校验。Reference Tag 与 LBA 的绑定关系尤其重要——它能抓住“数据完整但写错地址”这类静默错误,这是单纯 CRC 抓不到的。我们的 J750/J770 支持 NVMe 1.4+ 协议,DIF/DIX 与多命名空间在固件里是同一套元数据管理逻辑的两个出口,因此在设计阶段就一起做,而不是后期打补丁。
多命名空间:把隔离粒度做到租户级
多命名空间的价值不是“把盘分区”,而是让每个命名空间拥有独立的 LBA 空间、独立的块大小与元数据格式、独立的保护类型配置。在多租户场景里,这意味着一块 15.36TB 的盘可以拆给不同工作负载:给数据库的命名空间开启 DIF Type 1,给日志的命名空间用不同的块尺寸,两者的地址空间互不重叠,误寻址不会跨界污染。
难点在写放大与磨损的账要算清。命名空间是逻辑隔离,共享同一组物理块与同一个垃圾回收引擎,如果一个租户持续做小块随机写,产生的写放大会消耗共享的耐久预算。规划中 J770 的 3 DWPD 与 J750 的 1 DWPD 都是整盘口径,划分命名空间不会创造额外耐久。我们的做法是把按命名空间统计的写入量与 GC 归因数据通过 Telemetry 暴露出来,让运维侧能看到是谁在消耗预算,再结合低延迟 QoS 能力对相互干扰做抑制。
NVMe-MI:带外通道决定了故障能不能被提前发现
NVMe-MI 走的是 SMBus/I2C 带外路径,它的价值在于不依赖数据面。当一块盘因为固件异常或链路问题在带内已经不响应时,BMC 仍然可以读到温度、寿命百分比与告警状态,这决定了机房是“提前换盘”还是“事后救数据”。
配合 Telemetry 的日志导出、在线固件升级与回滚,以及 TCG OPAL / Secure Boot / Sanitize 这一组安全能力,构成了整机柜可运维的最小闭环:能看见状态、能安全升级、能失败回退、能在退役时可信擦除。这些能力在 J750/J770 上属于功能基线,SR-IOV 与 OCP 相关项排在 P1 阶段。四个方向合起来看,企业级的门槛并不落在某一项指标上,而在于它们必须同时成立,并且每一项都在内部工程平台 JH-E4U-C 上按用例逐条验证,而不是以“支持”二字写进规格表就算完成。
