1 存储系统硬件要理解什么
把文件复制到服务器,进度条结束时,数据究竟到了哪里?它可能还在操作系统的内存里,也可能进入带保护的控制器缓存,或者已经写到闪存芯片与磁盘盘片。屏幕上的完成提示对应哪种状态,由软件调用、设备承诺和硬件保护共同决定。理解存储硬件,首先要能沿着这条路径指出数据所在的位置,并解释突然断电时哪些内容能够留下。
存储系统也不只是装满硬盘的机箱。典型设备里有处理请求的 CPU、暂存数据与元数据的内存、连接介质的控制器、承载连接器的背板、面向其他机器的网卡,以及维持环境的电源与风扇。CPU 忙、内存不足、链路拥塞、背板接触不良,都可能让正常的硬盘表现得像坏盘。硬盘型号只能描述路径中的部分能力,不能代替整机能力。
先区分容量、性能和可用性。容量回答能放多少;性能回答在给定请求大小与并发下,完成得多快;可用性回答发生故障后是否还能服务,以及多久恢复保护。比如 12 块标称 12 TB 的 HDD,原始容量是 144 TB,但冗余、备用空间、文件系统开销会继续占用容量。TB 与 TiB 的计量方式也不同,采购清单中的数值不能直接当成操作系统最终显示值。
再区分延迟、IOPS 与吞吐。延迟是请求从发出到完成的时间;IOPS 是每秒完成的输入输出次数;吞吐是每秒传输的数据量。近似关系是吞吐等于 IOPS 乘以平均请求大小,但必须保证统计口径相同。4 KiB 随机读取与 1 MiB 连续读取,考验的部件和队列行为不同,不能把前者的 IOPS 与后者的带宽拼成同时成立的指标。
本课以机架中的存储节点为观察对象:它向计算服务器提供数据,内部连接 HDD 或 SSD,维护人员能够更换盘、电源和风扇。学习目标是看懂数据经过的部件、判断共享瓶颈、识别共同故障域,并将正常、降级、重建这 3 种状态写进方案。芯片内部算法与复杂分布式协议只保留必要边界,后续再深入。

2 介质、控制器与后端网络
HDD 依靠旋转盘片与磁头读写,容量成本通常较低,适合容量占比高、访问相对连续的场景。随机访问需要等待机械定位,增加并发可以排队,却不能消除定位时间。SSD 使用闪存,没有磁头运动,随机访问延迟通常更低,但擦写寿命、持续写入表现与掉电行为需要单独确认。不能仅凭“都是 SSD”就推断它们适合相同任务。
接口与介质要分开看。SATA、SAS 是常见盘接口;NVMe 是面向非易失性存储的协议,在服务器内部常经 PCIe 连接。外观相近的盘托可能容纳不同接口,M.2 也首先是形态规格,不能仅凭长度判断协议。采购时需要核对盘、盘托、背板和控制器是否配套,尤其是背板是否布线到所需接口,以及整机是否支持相应热插拔方式。
总线规格提供上限,真实数据还要穿过共享路径。例如 PCIe 4.0 每条通道每方向理论可用带宽约 1.97 GB/s,x4 约 7.88 GB/s,设备实际吞吐还要扣除协议与系统开销。若多块盘经交换芯片共享 x8 上行,所有盘的标称读取速度相加可能远超上行能力。主板上的插槽外形也不保证电气通道数,必须查看实际连接与插槽共享规则。
HBA 可理解为主机连接存储设备的适配器;RAID 控制器则可能进一步组织磁盘冗余、管理缓存与完成部分恢复工作。不同产品能力会重叠,判断依据应是工作模式与数据路径。选择由软件管理冗余时,要确认控制器能否稳定呈现独立磁盘、设备标识和健康信息,避免上层只看见经过再次封装的虚拟盘,难以定位真实故障。
写缓存能合并写入并缩短前端等待,但要问清确认条件。若设备在数据进入易失缓存后就返回成功,断电可能丢失已确认的数据。带电池或电容保护的缓存,可以在设计条件下保住缓存内容或将其转存;SSD 的掉电保护也有覆盖范围。需要核对保护状态监控、失效后的策略以及恢复流程,而不能把“有缓存”直接写成可靠性保证。
网络存储还多出前端与后端的区分。前端承接计算服务器的访问,后端承担节点之间的数据复制、恢复或其他内部通信;这是职责划分,不一定对应完全独立的网卡。25 Gb/s 链路的原始位速率换算为 3.125 GB/s,应用有效吞吐更低。若正常写入与恢复流量共用该链路,盘仍有余力时,网络也可能先排满。

3 JBOD、专用阵列与软件定义
JBOD 通常指将多块磁盘集中连接、供上层分别使用的设备或模式。常见扩展柜包含磁盘、背板、扩展器、电源和风扇,计算与数据组织工作由连接它的服务器承担。JBOD 本身不等于已经具备数据冗余;盘很多,也可能仍只有单份数据。还需确认扩展柜、控制器和软件如何组合,以及某条连接断开时会失去哪些盘。
专用阵列通常把控制器、缓存、盘柜和管理能力作为完整系统提供。它可向服务器呈现逻辑卷,将盘组管理与故障处理封装起来。优势在于兼容性与维护边界相对集中,但仍要核对双控制器切换条件、缓存保护、主机多路径支持和升级影响。“双控制器”只是部件数量描述,只有连接、状态同步和切换路径都成立,才能支撑预期可用性。
软件定义存储把数据组织、冗余与恢复策略主要交给运行在服务器上的软件,常使用标准服务器、网卡和本地盘。它允许按节点扩展,但也将 CPU、内存与网络纳入存储资源预算。校验、复制、压缩等功能可能争用处理能力;内存既要服务缓存,也要支持索引和后台任务。盘位空着不代表还能直接扩盘,主机资源也可能先到边界。
这些形态不是可靠性从低到高的排名。由合适软件管理的 JBOD 可以形成可靠系统,昂贵的专用阵列也可能因错误接线形成单点。选择时应比较相同业务目标:需要多少可用容量、允许多长中断、由谁维护、如何扩容,以及故障后能否在可接受时间内恢复保护。不能只比较原始 TB 单价。
机箱形态也影响决策。2U 的 24 盘位设备有较高密度,但满配后的供电、风道、线缆与维修空间都需要验证。更多盘集中在同一机箱,意味着机箱级故障可能同时影响更多数据副本。若设计声称副本位于不同故障域,就要落实到不同节点、机箱、电源路径乃至机架,不能只检查盘号不同。
用副本举例,3 副本的理论容量效率约为 1/3,实际还需保留运行与恢复空间。校验冗余可以提供不同容量效率,但代价与布局有关,本课不展开编码算法。入门阶段先掌握原则:冗余方法决定正常写入额外做多少工作,也决定故障时要读多少剩余数据、经哪些链路搬运,以及需要多少可用空间才能完成恢复。

4 动手:对照一次重建对前端影响
重建是设备失效后,利用仍然存在的数据重新形成所需冗余的过程。它通常需要读取存活设备、执行复制或计算、写入目标设备,有些系统还要经过后端网络。业务请求与此同时继续到达,所以重建不是只在后台消耗少量时间的维护动作,而是与业务共享资源的工作负载。
练习使用可丢弃数据的测试环境。准备可控的前端读写负载、足够的冗余和恢复空间,并确认已经有独立备份;优先使用平台提供的故障注入或维护功能。先依据平台流程检查系统健康,再模拟失效。物理拔盘涉及热插拔能力与槽位识别,不应拿生产数据或不明配置的机器试验。
先固定测试条件,例如前端采用 64 KiB 随机混合访问,读写比例为 70:30,固定工作集、客户端数量与并发上限。记录测试数据是否落在缓存中,工作集应能代表业务。保持请求模型不变,才能将后续变化合理归因于重建。若每轮同时改变并发、数据集与请求大小,图表差异就很难解释。
正常状态预热后,采集连续 10 分钟基线:完成吞吐、实际完成 IOPS、p50 与 p99 延迟、错误和超时数。p99 表示约 99% 的已统计请求延迟不超过该值,能帮助看见较慢的尾部请求。还应记录未完成队列和超时,避免只统计成功请求而漏掉最差体验。采样周期保持一致,前端与设备时间对齐。
接着注入受支持的故障,标注失效时刻、降级开始、重建开始和结束。每隔 10 秒采集盘吞吐与延迟、网络收发、丢包或重传、CPU、内存以及恢复进度。前端即使没有报错,也可能出现明显排队。降级期间的读写路径与重建期间不同,应分段比较,不能把整个过程平均成单个数字。
最后比较恢复限速的影响。例如观察到基线 p99 为 8 ms,重建时达到 45 ms,降低恢复速率后为 18 ms,这只能说明这组条件下业务尾延迟改善;还必须同时报告重建完成时间从多少变为多少。重建越慢,系统处于保护不足状态的时间越长。把限速当成免费优化,会隐藏恢复窗口内再次发生故障的风险。
练习报告应包含配置、请求模型、阶段时间线与证据,而不是只有“重建影响不大”。若没有实际设备,可以用给定观测表练习推断,但必须标为演示数据。仅凭前端吞吐下降无法确定瓶颈,下一步应检查盘、后端网络和 CPU 的同时间段变化,再用受控调整验证假设。

5 性能与耐久取舍
配置 SSD 时,经常同时看到容量、读取速度和耐久指标。耐久描述设备在规定条件下能够承受的累计写入量,常用 TBW 或 DWPD 表达。DWPD 表示在规定保修年限内,每天可写入相当于多少次整盘容量。它是选型与质保判断依据,不是精确到某天的寿命倒计时,实际状态仍需持续监控。
例如容量为 3.84 TB、标注 1 DWPD、期限为 5 年的设备,按每年 365 天粗算,对应主机写入额度约为 3.84 × 365 × 5 = 7008 TB,仍需以规格中的工作负载与限制为准。如果业务平均每天写入 2 TB,不能只看单盘容量足够;需要把副本、日志、临时数据、重建与增长带来的实际写入也纳入相关设备预算。
主机写入与闪存内部写入并不相同。设备可能为回收空间与整理数据额外搬运内容,形成写放大;软件层的副本与日志又会增加送往设备的流量。这些是不同层次的放大,统计时要明确起止边界。不能看到某个内部计数就直接与规格中的主机 TBW 相比,也不能在估算里将同一份副本开销重复乘入。
可用空间会影响持续表现。设备接近满盘时,后台整理空间可能更紧张;系统接近满容量时,也可能没有位置恢复副本。预留空间不是闲置浪费,而是容量规划中的运行条件。预留比例应依据系统建议、增长与故障恢复量确定,并在预计占用率下测试,不能只用刚初始化的空盘跑出的峰值作为验收结果。
吞吐需求也要落到路径预算。前端持续写入 1 GB/s,若采用 3 副本,理想化稳态下就需要形成合计约 3 GB/s 的介质写入;实际还存在元数据等开销。若某节点接收原始数据后,经同一网卡向其他节点发送额外 2 份,其发送方向约需承载 2 GB/s 的副本流量。具体网络总量取决于布局,不能直接把副本数套到每条链路。
耐久、速度与容量的取舍应从访问模式开始。日志写入需要关注持续写入、确认延迟与掉电保护;大文件归档更关心容量成本、连续传输与恢复时间;混合共享存储还要关注请求之间的干扰。缓存命中率高时看起来很快,并不能证明后端能够持续承接缓存耗尽后的写入,也不能证明断电后数据完整。
保留性能余量时,要说明余量服务于什么变化,例如业务突发、恢复流量或软件升级后的额外处理。将日常利用率压到某个百分比本身不是目标。更有意义的验收是:在指定占用率、请求模型和故障状态下,吞吐、p99 延迟与恢复时间同时达到约定门槛,且电力和散热没有触发降频。
6 常见坑:忽略后端网络瓶颈
某存储节点装了 8 块 NVMe SSD,每块标称连续读取 3 GB/s,是否就能向客户端提供 24 GB/s?首先要检查主板连接与软件能力,然后还要看客户端到节点的网络。即使本地盘能提供相应数据,单条 25 Gb/s 前端链路也只有 3.125 GB/s 的原始换算上限。若后端还共享这张网卡,恢复和复制会进一步占用资源。
全双工链路允许收发同时进行,但不代表任意路径都没有争用。应分别核算每个端口的发送和接收方向,以及交换机上联。多个节点同时向某个恢复目标发送数据时,目标网卡的接收方向可能成为热点;多个机架流向同一上联时,上联也会拥塞。把所有网卡标称带宽相加,会掩盖这些汇聚点。
一种典型现象是:正常读写基本达标,重建后 p99 明显升高,盘队列不长,后端端口却长期接近有效上限。此时增加盘数未必改善服务。应对照端口吞吐、队列丢弃、错误、重传与请求延迟,确认是否存在持续相关性;同时检查 CPU 是否因为网络处理或数据校验而繁忙,避免只凭网络利用率高就下结论。
端口速率正常也不代表物理链路健康。线缆或模块问题可能导致错误与重传,聚合链路也可能因流量分布而只用满部分成员。单个连接是否能使用多条路径,取决于协议和配置,不能把 2 条 25 Gb/s 直接视作单连接 50 Gb/s。双网卡接到同台交换机,还可能共享交换机这个故障域。
排查应从证据最接近的地方收敛。先检查业务是否所有客户端都慢,再对齐前后端端口、节点和设备指标;若异常只集中在某个节点,检查它的链路、PCIe 连接与硬件告警。每次只调整关键变量,例如在可控环境中限制恢复速率,观察尾延迟与网络队列是否同时变化。调整 MTU、驱动或链路配置应遵循完整路径要求,不能靠随机改参数碰运气。
方案中的“后端独立网络”也需要具体化:采用什么速率,连接哪些交换机,是否存在共享上联,故障后剩余路径能承担多少流量。隔离可能改善资源竞争与故障定位,但不能凭独立布线就保证足够带宽。验收应覆盖重建与链路故障同时存在的受支持状态,让网络预算成为整机性能的一部分。

7 案例:风扇/供电冗余不足掉盘
设想 1 台装有 12 块 HDD 的 2U 存储服务器,原本配置 2 个电源模块。某次维护后,其中 1 个模块未完全插紧;同时风扇组件存在告警。平时低负载访问尚可,故障恢复启动后,多块盘活动增加,温度与用电需求上升,系统随后报告多个磁盘槽位短暂失联。这是教学情境,不能据此推断所有类似掉盘都由电源或风扇引起。
现场若只看到“磁盘离线”,容易连续更换硬盘。更有效的起点是时间关系:多个槽位是否在接近时刻失联,是否共用背板或供电支路,失联前有无温度、电压、风扇转速和电源冗余告警。多个独立介质同时损坏并非不可能,但共享部件异常是需要优先验证的假设,尤其当故障集中在同个机箱时。
风扇故障可能造成局部热积累,引起设备过温保护、性能下降或复位;供电不足或接触问题也可能造成设备掉电与链路重置。这些路径的表现会相似,必须依靠管理控制器的事件日志、盘温、控制器日志与插槽分布进一步区分。读不到设备健康信息,本身也可能是链路中断的结果,不能直接当成介质坏死的证明。
处理时先保护剩余数据与服务,依据平台流程降低非必要负载、确认备份和故障范围,再处理散热与电源。存在过温或电气异常时应遵从设备维护要求停机,不能为了观察重建而持续压测。恢复电源冗余与风道后,还需检查盘身份、数据一致性和保护状态,避免设备重新出现就误判为全部恢复。
所谓电源 N+1,是满足负载需要 N 个模块时再增加 1 个冗余模块。对 2 模块设备,若目标是失去任意 1 个模块仍满载运行,就要求剩余模块及其输入路径能够支撑相应负载;并不是安装 2 个就自然满足。还要核对启动、故障恢复与高温降额条件,以及电源线是否实际接到独立且可用的供电路径。
风扇冗余同样有前提:机箱盖、空盘位挡板、线缆与进风温度都影响气流。拆掉挡板可能让空气绕开高阻力区域,造成热点。案例最终应形成可核验的维护项:记录电源冗余状态、风扇告警处理时限、满配功耗与温度基线,并明确更换部件后的健康检查。冗余只有处于可监控、可维护状态,才能持续发挥作用。

8 把存储硬件写进选型方案
选型说明先写业务边界,再写部件。业务边界包括当前有效数据量、增长速度、读写比例、请求大小、峰值并发、可接受尾延迟,以及可接受的数据损失与服务中断范围。数据损失目标与中断目标不能混为同个指标;冗余也不能替代备份,误删和逻辑损坏仍可能被同步到其他副本。
容量表至少分出原始容量、冗余后容量、运行预留与预计业务可用容量,并注明 TB 或 TiB。若要求失去某节点后还能恢复保护,还需为重建目标预留空间。采购只按日常数据量填满所有盘位,后续可能既放不下新数据,也无法完成恢复。扩容粒度、盘位上限和扩容期间性能应一起写清。
硬件清单需要能被交付人员逐项核对:CPU 与内存容量、盘接口及耐久等级、控制器模式、背板连接、PCIe 通道、网卡端口与速率、电源模块、风扇配置及机架空间。CPU 与内存无需在本课深入到微架构参数,但必须说明已经包含数据服务与后台恢复需求。网卡和盘共享的总线资源也应在拓扑中可见。
可靠性说明应把故障与剩余能力配对。例如失去 1 块盘后允许继续读写,但需要在约定时限内恢复保护;失去 1 条后端链路后,业务仍需满足指定的降级性能。若某类故障明确不支持持续服务,也应写出恢复步骤与预计中断,而不是笼统宣称“全冗余”。可用性是可验证的行为,不是清单上的形容词。
最后给出验收方法与运维证据。按真实占用率运行代表性负载,分别记录正常、降级和重建阶段的吞吐、p99、超时与完成时间;验证掉电保护状态、告警可达、槽位定位与备件替换流程。验收测试须限定在设备支持的方式内,并保留配置版本与测试条件,使未来更换盘型或升级软件后能够做有意义的对照。
9 从存储系统硬件走向AI 集群架构(A50)
存储进入 AI 集群后,仍然面对容量、带宽、延迟与故障恢复,只是访问节奏发生变化。训练可能由多台计算服务器同时读取大量样本;检查点保存又可能让多台服务器在接近时刻集中写入。平均每天写入量并不能揭示短时间峰值,需要分别估算读取阶段与检查点阶段的并发和数据量。
例如 8 台服务器各需持续读取 1 GB/s,存储到计算侧就要提供合计 8 GB/s 的有效数据吞吐,并保证路径分布合理。若集中在单个 25 Gb/s 端口,原始带宽已经不够。若样本文件很小,还需要考虑每秒请求次数、文件打开与元数据访问;仅用大文件连续读取结果,无法证明能够喂饱训练任务。
本地 NVMe 可以缓存数据,减少共享存储的重复读取,但要预算首次装载时间、缓存容量与失效后的重新装载。检查点也不能只因为写到了本地盘就视为已经获得集群级保护。数据什么时候从计算节点离开、经过哪些网络、在哪些故障域保存,是跨越计算与存储边界仍需继续追问的问题。
走向 A50 时,把本课的硬件路径扩展成集群路径:CPU 与内存准备数据,存储与网卡搬运数据,加速器消费数据,交换机连接这些节点。此时需要同时看服务器形态、网络拓扑、电力散热与作业节奏。本课带走的判断方法很直接:找到共享资源,核算实际方向上的流量,再检查故障后剩余资源能否支撑任务。
放进方案里
某团队计划建设共享存储,为 8 台计算服务器提供训练数据和检查点空间。方案先规定当前有效数据为 120 TB,未来 12 个月增长到 180 TB;读取阶段每台服务器目标为 1 GB/s,合计有效吞吐为 8 GB/s。检查点写入应另行给出总量、并发和允许窗口,不能用读取指标代替。所有容量统一注明十进制 TB,并将冗余开销与运行预留单列。
硬件部分列出节点数量、CPU、内存、盘型、盘接口、控制器模式、背板和 PCIe 连接。耐久预算根据实际落到各设备的主机写入量估算,覆盖业务、日志与恢复,并核对 SSD 的 DWPD 条件和掉电保护范围。前端与后端分别画出网卡、交换机和共享上联,注明每方向有效带宽预算,证明读取峰值和恢复流量具有可接受的竞争关系。
可靠性部分说明副本或校验数据跨越哪些节点和机箱,写清允许的故障组合、故障后的服务目标与恢复空间。电源和风扇以满配、满载和规定进风温度为条件核验冗余,记录独立供电路径、告警接收人及备件安排。备份独立列项,注明恢复范围,避免将磁盘冗余当成误删保护。
验收在预计占用率与代表性数据集下执行,保留正常、降级、重建的阶段标记,记录吞吐、p99 延迟、超时与恢复完成时间。用受支持的故障注入检验单盘或单链路失效后的行为,并对照后端端口、盘队列、CPU、功耗和温度判断余量。交付材料包含拓扑、配置版本、测试条件和更换流程,使后续扩容能够沿用同套证据标准。
另列缓存保护验收项:保存电池或电容健康记录,按设备支持的方法验证保护失效时的缓存策略与告警,确认不会继续以无保护的易失写缓存返回持久化成功。槽位表需对应盘序列号与控制器端口,更换测试后核对设备身份和重建结果;未经验证的盘型、背板或固件组合列为交付边界。
10 小结:下一步AI 集群架构(A50)
存储能力来自完整路径:介质提供持久空间,控制器与总线组织访问,CPU 与内存支持数据处理,网络连接节点,供电散热维持工作条件。任何共享环节都可能限制性能,任何共同故障域都可能削弱冗余。
进入 A50 前,试着解释 3 个问题:为什么增加 SSD 后吞吐可能不变?为什么降低重建速率既有收益也有代价?为什么安装 2 个电源仍需验证冗余?能结合拓扑、方向带宽与故障状态回答,就可以继续把存储放到 AI 集群的计算、网络与机房约束中理解。