2. Alletra核心架构解析

Alletra 的核心架构可以概括为一句话:以 NVMe 全闪存为介质底座,以双控制器节点为计算与冗余单元,以 PCIe/NVMe 后端交换为互联骨架,最终形成一条从主机到介质、端到端无 SCSI 协议转换的数据路径。理解这条路径,是后续做部署规划、性能调优和故障定位的基础。本节先讲清“是什么”,再落到“怎么判断它是否工作在预期状态”。

一、NVMe 全闪存设计:从协议到介质

传统全闪存阵列常把 NVMe SSD 挂在 SAS 或 SCSI 后端上,SSD 本身很快,但协议栈要经过 SAS 控制器、SCSI 命令层转换,队列深度受限、单队列串行化明显。Alletra 的设计取向是让 NVMe 协议从主机一直延伸到介质:主机侧通过 FC-NVMe 或 NVMe over TCP 下发 NVMe 命令,控制器节点内部以 PCIe 直连或 PCIe Switch 连接 NVMe SSD,命令不再被翻译成 SCSI。

NVMe 的关键收益来自两点:一是多队列,每个 CPU 核可绑定独立提交/完成队列,避免锁竞争;二是高队列深度,单队列可支持 64K 级命令,配合 SSD 内部并行通道,把随机小 IO 的 IOPS 拉满。以教学示例参数说明:假设单块 NVMe SSD 标称 4K 随机读 800K IOPS、写 300K IOPS,一个节点挂 24 块,理论裸容量与性能需按 RAID 与控制器开销折算,实际可用值应以阵列实测为准,这里仅用于理解量级关系。

二、控制器节点:双活对称与故障切换

Alletra 采用双控制器节点对称双活架构。两个节点同时对外提供前端端口,主机通过多路径软件(如 MPIO、DM-Multipath)看到同一卷的多条路径。每个节点内部包含 CPU、内存、缓存、前端 HBA/网卡、后端 PCIe 交换接口和 NVRAM/电池保护单元。写 IO 进入节点后先写入缓存并镜像到对端节点缓存,双方确认后才向主机返回写完成,这就是写缓存镜像,也是节点故障时数据不丢的关键。

节点故障切换的判断依据通常包括:心跳链路超时、后端 PCIe 链路异常、节点电源或风扇告警。切换后,幸存节点接管故障节点的卷归属,主机侧多路径把 IO 切到幸存节点的可用路径。工程上要关注的是切换时间与路径收敛:如果主机多路径参数(如 path_checker、no_path_retry)设置不当,可能出现 IO 挂起而非快速切换。

三、后端交换架构:PCIe 与 NVMe 互联

后端交换是 Alletra 区别于传统双控的关键。两个控制器节点通过 PCIe 交换结构连接所有 NVMe SSD,形成共享后端。每个 SSD 可被两个节点访问,但同一时刻由归属节点负责 IO,另一节点通过 PCIe 路径做镜像或接管。这种结构让 SSD 不再“绑死”在某个控制器上,扩容和故障域划分更灵活。

后端链路需要关注:PCIe 代际与 lane 数(如 Gen4 x4 单链路约 8GB/s 单向)、交换芯片端口利用率、SSD 与交换的拓扑层级。若后端出现 PCIe 降速(如 Gen4 协商成 Gen3),单盘带宽会腰斩,表现为大块顺序读带宽低于预期,而小 IO IOPS 可能变化不明显——这是排障时区分“协议/队列问题”和“链路降速问题”的重要线索。

Alletra 端到端 NVMe 数据路径与后端交换架构 主机 A MPIO 多路径 主机 B MPIO 多路径 FC-NVMe / NVMe-TCP FC-NVMe / NVMe-TCP 控制器节点 1(双活) CPU / 缓存 NVRAM 镜像 前端 HBA 后端 PCIe 接口 控制器节点 2(双活) CPU / 缓存 NVRAM 镜像 前端 HBA 后端 PCIe 接口 心跳 + 写缓存镜像 后端 PCIe / NVMe 交换结构(共享后端) NVMe SSD 0 Gen4 x4 NVMe SSD 1 Gen4 x4 NVMe SSD 2 Gen4 x4 NVMe SSD 3 Gen4 x4 NVMe SSD n Gen4 x4 数据路径:主机 → 前端 NVMe → 控制器缓存(镜像)→ 后端 PCIe 交换 → NVMe SSD

四、数据路径:一次写 IO 的完整旅程

把上面三部分串起来,一次写 IO 的路径是:主机通过 FC-NVMe 或 NVMe-TCP 把命令发到某个控制器节点的前端端口;节点解析 NVMe 命令,定位卷与归属关系;若归属在本节点,写入本地缓存并同时镜像到对端节点 NVRAM;两端确认后返回写完成;后台再把脏数据经后端 PCIe 交换刷入对应 NVMe SSD。读 IO 则先查缓存,未命中再经后端交换从 SSD 读取。

这条路径上有三个值得观察的环节:前端端口队列深度、缓存镜像链路健康度、后端 PCIe 链路速率。它们分别对应主机侧性能、节点冗余和后端带宽。排障时可按“主机多路径状态 → 节点事件日志 → 后端链路速率”的顺序逐层收敛。

判断后端是否降速的实用方法:在阵列侧查看 PCIe 链路协商速率与宽度,若显示 Gen3 x4 而 SSD 标称 Gen4 x4,则单盘带宽上限约为标称的一半;此时大块顺序读带宽会明显偏低,而 4K 随机 IOPS 可能仍接近正常,可据此区分链路问题与协议/队列问题。

五、部署时需要落地的关键参数

基于上述架构,部署阶段应确认以下内容:主机多路径策略与路径检查周期;前端端口与 zone/子网划分;节点心跳与镜像链路状态;后端 PCIe 链路速率与 SSD 归属分布;缓存保护单元(电池/超级电容)健康状态。下面给出一份可直接参考的检查表,字段按 Alletra 实际语境选取。

检查项观察对象预期/判断依据
前端路径主机多路径状态每个卷至少 2 条 active 路径,分属两个节点
节点冗余心跳与缓存镜像镜像链路正常,无“镜像降级”告警
后端链路PCIe 协商速率/宽度与 SSD 标称一致(如 Gen4 x4)
SSD 归属卷与 SSD 归属节点归属分布均衡,无单节点过载
缓存保护NVRAM/电池状态健康,无写缓存禁用告警

理解这条端到端路径后,后续做容量规划、性能压测和故障切换演练时,就能明确每一步该看哪个对象、哪个参数,而不是只盯着主机侧的应用响应时间。