服务器专题 | 第22期:RAID 1/5/10:按故障域和 IO 选型

服务器 · · 九羲科技

一台服务器要上架,配置单上总有一行绕不过去:RAID 选哪一级。有人信 RAID 5,说容量划算;有人只认 RAID 10,说性能和安全都稳。两边各有道理,也各有盲区。这一行真正的问法不是哪一级更好,而是两句先问清楚的话:这组盘要扛住什么样的坏法,以及跑在上面的 IO 是什么形状。坏法和 IO 形状定了,级别往往自己就定了。

故障域先算:能扛几块盘,是有条件的

先把三级的底牌摊在桌面上。RAID 1 是镜像,一份数据写两份,可用容量是原料的一半。RAID 5 是条带加分布式校验,N 块盘里拿一块的容量放校验,可用容量是 (N-1) 块,能扛一块盘坏。RAID 10 是先镜像再条带,同样只剩一半可用容量,保底能扛一块盘坏,每对镜像各坏一块时还能扛更多¹。

级别最少盘数可用容量能扛的坏法
RAID 12一半一对镜像里坏一块
RAID 53(N-1)/N整组坏一块
RAID 104一半每对镜像各坏一块

这张表里最容易读错的是 RAID 10 的容错那一格。“能扛多块”前面有个限定词:坏掉的盘必须分属不同的镜像对。同一对里的两块盘一起坏,阵列就没了。所以 RAID 10 的容错不是“随便坏两块”,是“坏法要分散”。验收和选型时,这个限定词比“能扛几块”那个数字更重要。

RAID 1、RAID 5、RAID 10 的可用容量与容错对照(示意图为程序绘制,数值按标准定义)

故障域还有一层,比盘数更隐蔽。RAID 的数学默认各盘独立损坏,可现实里的盘常常同批、同龄、同机柜,同一批货、同一段高温、同一个电源抖动,会把“独立事件”推成“相关事件”。一盘坏了,剩下的盘正在被重建读满负荷地扫,恰恰是它们最吃力的时候。重建期的第二块故障,历来是 RAID 5 丢数据的头号场景之一³。选型时问一句“这组盘是不是同一批、同一柜”,比多背一条级别定义实在。

IO 形状再算:一次写入,底层要付几次

故障域算完,轮到 IO 形状。校验型 RAID 写一次数据不止写一次盘。RAID 5 的一次小写,要走读旧数据、读旧校验、写新数据、写新校验四步,写惩罚是 4;RAID 6 因为有两份校验,走到 6 步;镜像型 RAID 1 和 RAID 10 只写两份,写惩罚是 2²。

这组数字落到算账里很直观。业务要 1000 次写 IOPS,RAID 5 的盘侧要付出约 4000 次,RAID 10 约 2000 次。读为主的归档、顺序读多的大文件,校验的代价藏得住;小块随机写密的数据库、虚拟机盘,代价会直接顶到延迟和盘的寿命上。控制器写缓存和整条带满写能把惩罚磨平一部分,NVMe 的低延迟也让绝对代价变小,但惩罚本身没有消失,只是被掩盖了²。掩盖住的代价,压力一上来还会回来。

一次逻辑写对应的盘侧 IO 次数:镜像型 2 次,RAID 5 为 4 次,RAID 6 为 6 次(示意图为程序绘制)

所以选型的第二句问话是:这个卷的写,是零星小写,还是成片大写;写占比高不高。写占比高、随机写密,镜像的 2 倍代价比校验的 4 倍划算;读为主、容量敏感,校验省下来的容量才是真金白银。把“数据库默认 RAID 10、归档默认 RAID 6”当成口头禅没错,但口头禅成立的前提正是这两句问话的答案,而不是级别本身的名声。

重建窗口:RAID 5 的账,盘越大越难算

第三笔账是重建。RAID 5 重建时要把幸存盘全部读一遍,读出的数据量随盘容量线性长。拿一个公开计算器的例子算:4 块 8TB 盘做 RAID 5,重建要读 3 块幸存盘,约 24TB,按消费级盘每 10¹⁴ 位一位不可恢复读错误(URE)的标称算,至少撞上一次的概率约 85%;换成 NAS 盘每 10¹⁵ 位一位的标称,约 17%¹。这个例子是按标称规格算的最坏情形,真实盘面通常优于标称,不能把它当成实测故障率;但它说明了一个方向:盘越大,重建窗口越长,窗口里撞上读错误和第二块故障的概率都跟着涨。

RAID 10 的重建不一样。它不需要全组重算,只从镜像对的另一块盘把数据抄回来,读量小、时间短、窗口窄。RAID 6 则多了一份校验,重建时撞上一个读错误还有兜底。这就是大容量机械盘时代,RAID 5 慢慢让位的原因:不是 RAID 5 本身错了,是盘变大之后,它的重建窗口超过了它当初设计时默认的尺寸。

落到一张选型规则上,话可以说得很短。两块盘、只求简单可靠,RAID 1。随机写密、延迟敏感,RAID 10。读为主、盘数多、容量敏感,校验型更划算,盘大时优先看双校验。RAID 5 留给小阵列、小容量盘,或者重建窗口本身就很短的场景。规则之外还有一条底线,任何级别都绕不过:RAID 保的是在线可用,不是备份。误删、勒索加密、机柜断电同时带走整组盘,RAID 一个都挡不住;备份要另做,这是另一笔账,不能记在 RAID 头上。

往深里看,RAID 选型的争论,照出的是另一种惯性:把“坏一块盘”当成孤立事件来算概率,却很少问故障是不是成组来的。盘的批次、机柜的供电、重建期的满负荷,共同决定了第二块故障是不是独立事件。只数盘的级别,不看故障的成因,算出来的安全感常常是虚的。寻根溯源往下走,存储的可靠从来不是某个级别给的,是故障域、IO 形状、重建窗口三样合在一起给的;级别只是把这三样打包成一个名字。名字选对了,是因为三样都对上了,不是名字本身有魔力。

没完全想通、留下一个问题:RAID 5 到底在多大的盘上就该退场,至今没有一家厂商写出一条公开、可复现的红线。按标称算的概率是上限不是实测,真实盘面的 URE 表现又因批次而异。在没有这条线之前,工作规则只能先写成这样:盘越大、组越老,越往双校验或镜像走;重建窗口的读量要先算出来,再谈级别。这条线是作者的工作建议,不是厂商规范——等有人把红线写出来,这张表再改。

觉 然 小 注

RAID 的级别不是信仰,是三笔账的打包。故障域、IO 形状、重建窗口对上了,名字自然就对了。

· · ·

九羲科技|服务器 · 私有 AI · 存力方案

系列目录
第1期 | 73% 的整机钱,都给了 GPU 板组
第2期 | 4500 颗芯片撑起 95% 的机架价值
第3期 | 拆一台 2U 双路:通用服务器的钱花在哪
第4期 | 大铁盒子,值钱的不是铁
第5期 | 冻结点:L5 之后结构不许再改
第6期 | 能点亮不等于能交付:十二层验什么
第7期 | 内存离 CPU 有多远:NUMA 的延迟税
第8期 | 带宽不是买速度,是买并行度
第9期 | 一颗坏芯片,怎样不拖垮整机
第10期 | 数据上台三步,每步都在花时间
第11期 | CXL 内存慢一档,为什么还值得买
第12期 | 存力只在关键路径上才算数
第13期 | 链路是谈出来的:开机几秒谈什么
第14期 | 四电平挤带宽:SerDes在替谁赎买
第15期 | 端口数好看,带宽要看上行
第16期 | 把故障关进一个端口
第17期 | 设备能缓存主机内存,变了什么
第18期 | 数据直进 GPU,省掉了什么
第19期 | 先画归属图,再谈配置
第20期 | 报价单上看不见的内存降频账
第21期 | 查协商速率与AER:出厂体检表

引用与出处
[1] It's FOSS. FREE Online RAID Calculator. itsfoss.com. https://itsfoss.com/tools/raid-calculator/
[2] StarWind. Understanding RAID 5, RAID 6, RAID 50, and RAID 60: Comprehensive Guide to RAID Configurations (Part 2). starwindsoftware.com. https://www.starwindsoftware.com/blog/understanding-raid-5-raid-6-raid-50-and-raid-60-comprehensive-guide-to-raid-configurations-part2/
[3] DiskInternals. RAID 5 Rebuild Failure Probability: Risks, Factors, and Solutions in 2025. diskinternals.com. https://WWW.DISKINTERNALS.COM/raid-recovery/raid-5-rebuild-failure-probability/

下一篇|第23期:风道与线束:L3 的布线为什么决定 L9 的稳定性。

← 返回资讯中心