RAID 容量与重建时间计算器
选 RAID 级别、填盘数与单盘容量,算出可用容量、容量利用率、容错盘数与写惩罚;再按重建速率估算重建要多久,以及重建窗口里出现不可恢复读错误的概率。全部在浏览器里算,不发任何请求。
参数
RAID 级别
RAID 5:至少 3 块盘,允许任意 1 块故障;每次随机写要读改写 4 次(写惩罚 4)。
高级假设(改了结果就跟着变)
机械盘 7200 rpm 约 75 ~ 150 IOPS,企业级 SAS 约 150 ~ 210,SATA SSD 约 5 000 ~ 90 000,NVMe 可到几十万。填你手上盘的真实数字,随机写的估算才对得上。文件系统开销默认 5%(ext4 给 root 保留的块比例),填 0 就是「阵列级可用容量」的口径。
改任意一项都会即时重算;按钮只是给键盘与触屏一个明确入口。
容量与冗余
可用容量
裸容量(全部盘相加)
容量利用率
容错盘数
写惩罚
随机写 IOPS(估算)
重建估算(降级后重建一块盘)
重建窗口内遇到不可恢复读错误(URE)的概率
读取 24 TB = 1.92×10¹⁴ 位,概率按 1 − e^(−位数 ÷ URE) 估算。这只是「至少碰上一次坏扇区」的概率,不是预言。
容量口径:厂商标称与系统显示
RAID 级别对照:容量、容错与写惩罚
| 级别 | 最少盘数 | 可用容量 | 容错 | 写惩罚 | 说明 |
|---|---|---|---|---|---|
| 单盘 / JBOD | 1 | n × 单盘 | 无 | 1 | 每块盘各自独立使用,不条带、不校验。坏哪块丢哪块上的数据,容量可用满。 |
| RAID 0 | 2 | n × 单盘 | 无 | 1 | 只条带不冗余,读写最快、容量全用;任何一块盘故障,整个阵列全损。适合缓存与临时数据。 |
| RAID 1 | 2 | 1 × 单盘 | 1 块 | 1 | 镜像写、两份同时下发,随机读好、重建只读幸存的那块;三副本时容错 2 块。容量利用率 = 1 ÷ 盘数。 |
| RAID 5 | 3 | (n − 1) × 单盘 | 1 块 | 4 | 一块盘的容量用于分布式校验,容量与性能折中;重建期间再坏一块即全损,大容量盘上风险明显。 |
| RAID 6 | 4 | (n − 2) × 单盘 | 2 块 | 6 | 两块校验(P + Q),容忍双盘故障;随机写最慢、容量开销最大,适合大容量近线存储。 |
| RAID 10 | 4(偶数) | n ÷ 2 × 单盘 | 每组 1 块 | 2 | 先镜像成对、再跨对条带。随机写普遍最好,重建只读它的镜像伙伴;利用率固定 50%。 |
| RAID 50 | 6(≥2 组 × 3 盘) | (n − g) × 单盘(g = 组数) | 每组 1 块 | 4 | 多个 RAID 5 组再条带。重建范围只限本组、速度快,但两块故障落在同一组仍会全损。 |
| RAID 60 | 8(≥2 组 × 4 盘) | (n − 2g) × 单盘(g = 组数) | 每组 2 块 | 6 | 多个 RAID 6 组再条带,容量开销大、重建压力分散在组内;写性能最吃亏,胜在能扛。 |
表里的容量公式只在「所有盘同规格」时成立;混插不同容量时,只有最小那块(或最小公共容量)参与条带,多出来的部分通常被浪费或用不上。
容量公式、写惩罚与随机 IOPS 都是通用 RAID 口径;重建时长是「读取量 ÷ 重建速率」的量级估算,URE 概率按标称不可恢复读错误率做泊松近似。真实结果取决于控制器、固件、盘的型号与健康状态,请以实测为准。
一、RAID 解决的是三件事,而这三件事互相冲突
RAID(廉价磁盘冗余阵列)最初的想法很朴素:用一堆便宜的小盘拼出一块又大又快的盘。今天的实现千差万别,但它回答的始终是三个问题——容量能不能拼起来、速度能不能叠加、坏一块盘数据还在不在。
麻烦在于这三件事抢的是同一份资源。想要速度和容量,就把数据切开分散写到所有盘上(条带),可这样一来任何一块盘故障都会带走一部分数据;想要容错,就得额外存一份或存校验,容量立刻打折;想随机写快,就不能每次写都去算一遍校验。于是有了今天这一串级别:RAID 0 换速度、RAID 1 换安全、RAID 5 想在中间站住、RAID 6 承认大容量盘时代需要两块冗余、RAID 10 干脆用一半容量买最稳的随机写。级别没有优劣,只有取舍。
还有一件事必须写在最前面:RAID 不是备份。它能挡的是「一块盘物理坏掉」,挡不住误删、勒索软件加密、控制器或固件故障、机箱进水、阵列配置表丢失。本站那篇《RAID 是怎么来的、有哪些级别》把各个级别的来历和适用场景讲得更细,可以对着看。
二、可用容量的公式:从 RAID 0 到 RAID 60
同规格盘组成的阵列,可用容量都能写成一个式子(记 n 为盘数、g 为组数):
- RAID 0:n × 单盘 —— 全部容量可用,代价是没有冗余。
- RAID 1:1 × 单盘 —— 无论 2 块还是 3 块,可用容量都只有一块盘。三副本的容错是 2 块,但容量利用率掉到 1/3。
- RAID 5:(n − 1) × 单盘 —— 一块盘的容量被拿去存分布式校验。4 块 8 TB 的阵列因此只有 24 TB 可用,利用率 75%。
- RAID 6:(n − 2) × 单盘 —— 两块校验。6 块 8 TB 只剩 32 TB,利用率 66.7%。
- RAID 10:n ÷ 2 × 单盘 —— 先两两镜像再条带,利用率固定 50%,与盘数无关。
- RAID 50 / 60:(n − g) × 单盘 / (n − 2g) × 单盘 —— 先分组做 5 或 6,再把各组条带起来,校验开销按组数而非整阵列计算。
注意这里的「单盘容量」指的是参与条带的那部分。混插不同容量的盘时,只有最小容量(或所有盘的最小公共容量)能被条带化,多出来的部分在 RAID 0 / 5 / 6 里通常白白浪费——所以「先买两块 8 TB、以后再补两块 16 TB」这种做法,结果多半是把 16 TB 当 8 TB 用。真想把不同容量的盘用起来,RAID 之上再叠一层卷管理更合适,这也是混合存储架构(RAID + Btrfs + LvmCache)那篇在讲的事。
三、写惩罚:为什么 RAID 5 的随机写只剩四分之一
顺序写大文件时,RAID 5 / 6 的表现还不错:数据被切成大块分散到各盘,校验也能攒在控制器的缓存里成批算。真正难受的是随机小块写——改一个扇区,就得同时更新落在别的盘上的校验块。
以 RAID 5 改一个旧数据块为例,控制器要做四件事:读旧数据、读旧校验、算出新校验、写新数据和新校验。这就是「写惩罚 = 4」的来历(RAID 6 有两套校验,因此是 6;RAID 1 的两份镜像可以并行下发,记 1;RAID 10 因为叠加了条带,按保守口径记 2)。用公式表达,阵列的随机写能力大致是:
随机写 IOPS ≈ 盘数 × 单盘随机 IOPS ÷ 写惩罚
所以 4 块 150 IOPS 的机械盘做 RAID 5,随机写只有 150 IOPS 左右,和一块单盘的随机写能力差不多——而同样 4 块盘做 RAID 10,是 300 IOPS。这也解释了为什么数据库、虚拟机这类随机写密集的负载普遍选 RAID 10:它用一半容量买的是随机写和重建代价。控制器上的写缓存(BBU / 超级电容保护、写回模式)能大幅缓解这件事,它把多次小写攒成大块再落盘;缓存失效或掉电保护没做好时,性能会掉回公式算出来的水平。
四、重建时间怎么估:读的是成员盘,不是你的数据量
阵列降级后,控制器要把缺的那块盘重算出来。对 RAID 5 来说,这个过程必须把幸存成员盘上的数据(含校验)全部读一遍——不是读你的「可用容量」,而是读成员盘上的原始数据量。所以重建读取量是:
- RAID 1:读 1 × 单盘(只读它镜像伙伴那一块)
- RAID 5:读 (n − 1) × 单盘(全部幸存成员盘)
- RAID 6:读 (n − 1) × 单盘(一块盘故障时同样要扫过其余成员)
- RAID 10:读 1 × 单盘(只重建故障盘所在的那一对)
- RAID 0 / JBOD:没有冗余,谈不上重建
时长就是「读取量 ÷ 重建速率」,但速率不是盘的理论顺序读速度。机械盘外圈快、内圈慢,平均下来 150 MB/s 上下;很多控制器默认把重建限速到正常性能的 30 ~ 50%,免得业务被拖垮;再加上重建期间还要应付主机读写请求,实际窗口常常比「理论 ÷ 速率」更长。SSD 快得多,但要留意写入耐久、SLC 缓存用尽后的降速,以及同批次的故障相关性。
按 4 块 8 TB 的 RAID 5 估算:要读 24 TB,按 150 MB/s 算约 44 小时,接近两天。这两天里阵列一直是降级运行:没有第二份冗余,而且全阵列都在被满负荷扫读——这恰好是坏盘最容易暴露的时候。想缩短窗口,能做的有:换成 SAS 或 SSD、放宽控制器的重建限速(前提是业务扛得住)、把阵列拆小一点(组数多、每组盘少)。
五、URE 与「重建失败」:为什么大容量 RAID 5 让人不放心
硬盘规格里有个参数叫 URE(Unrecoverable Read Error,不可恢复读错误率),写法是「每读 10N 位出现一次」。消费级盘常见 1014,企业级 1015,企业级增强盘 1016。把它换算成容量:1014 位 = 12.5 TB,意思是「平均每读 12.5 TB 数据,就可能碰到一个怎么重试都读不出来的扇区」。
现在把上一节的重建读取量代进去:4 块 8 TB 的 RAID 5 重建要读 24 TB ≈ 1.92 × 1014 位。用 1014 档的盘,碰上至少一次坏扇区的概率约 85%;换 1015 档约 17.5%;1016 档约 1.9%。在 RAID 5 里,重建期间只要有一块幸存盘读不出来,这个条带的数据就补不回去——整块阵列的数据都受影响,而不是只丢那一个扇区。这就是「大容量 RAID 5 重建失败率高」的数学来源:容量越大,重建要读的位数越多,撞上 URE 的窗口越宽。
要强调的是,这是概率而不是判决:单块盘的 URE 标称值、这批盘的实际质量、温度、震动、服役年限都会让结果偏离,实际阵列上重建成功仍然是常态。但方向是清楚的——盘越来越大,RAID 5 的安全边际越来越薄。常见的应对:改用 RAID 6 或 RAID 10、配一块热备盘(故障后立刻自动开始重建,不用等人来换)、把单盘容量控制在合理范围、把阵列拆成多个小组,以及最要紧的一条——始终有可用的备份。盘的健康状态值得提前盯:用 smartctl 看 SMART 属性里的重映射扇区、待定扇区与 UDMA CRC 计数,比等它坏掉再重建划算得多。存储协议与链路怎么选,可以看《常用存储协议扫一遍》。
六、TB、TiB、GiB:8 TB 的盘为什么显示 7.28 TiB
厂商标称容量用的是 1000 进制:1 TB = 1012 字节。操作系统与阵列管理界面用的是 1024 进制:1 TiB = 240 字节 = 1.0995 × 1012 字节。同一块 8 TB 的盘,在系统里就显示为 7.28 TiB(或 7451 GiB)。
这里有个常被搞混的地方:「少了 7%」和「少了 9%」其实都对,区别在用了哪一级单位。GB 与 GiB 之间是 (1000/1024)3 ≈ 0.9313,所以写成 GiB 时数字少 6.87%;TB 与 TiB 之间是 (1000/1024)4 ≈ 0.9095,所以写成 TiB 时数字少 9.05%。换句话说,8 TB 的盘在系统里显示 7451 GiB(比 8000 GB 少 6.87%),也就是 7.28 TiB(比 8 TB 少 9.05%)——同一件事,两种说法。
所以这通常不是厂商缺斤少两,而是单位口径不同。做容量规划时把它算进去:一块「8 TB」的盘,实际可用于条带的是 8 × 1012 字节;阵列的可写容量还要再扣掉文件系统元数据与保留块——ext4 默认给 root 保留 5% 的块,XFS / Btrfs 的元数据一般占 1 ~ 3%。这也和闪存介质的选择有关:TLC 与 QLC 该选谁讲的是同一件事的另一面——容量、耐久与成本怎么平衡。
常见问题
RAID 5 的可用容量怎么算?4 块 8 TB 为什么系统里只有 21.8 TiB?
公式是 (n − 1) × 单盘容量:(4 − 1) × 8 TB = 24 TB,也就是 24 × 1012 字节。换成系统显示口径就是 21.83 TiB(22 352 GiB)——数字看起来「少了」,是因为单位从十进制换成了二进制,不是容量被吃掉了。再扣掉文件系统元数据与保留块,实际可写大约在 21 TiB 出头。
RAID 重建一般要多久?
按「重建读取量 ÷ 重建速率」估算,量级通常是几小时到几天。4 块 8 TB 的 RAID 5 要读 24 TB,150 MB/s 下约 44 小时;同样容量的 RAID 10 只要读 8 TB,约 15 小时;8 块 16 TB 的 RAID 6 要读 112 TB,按 150 MB/s 接近 9 天。实际会更慢:控制器常把重建限速、机械盘内圈速率低、业务负载还要抢 I/O。想知道自己这套的窗口,把盘数与容量填进上面的工具换几个速率看。
大容量 RAID 5 真的会重建失败吗?我该选 RAID 6 还是 RAID 10?
先看清风险来自哪里:RAID 5 在降级状态下只有一份冗余,重建期间再坏一块盘、或者在某块幸存盘上读到无法恢复的扇区,这个条带就补不回来了。盘越大,重建要读的位越多,撞上 URE 的概率越高(4 块 8 TB 用消费级盘,估算约 85%)。RAID 6 用两块校验换第二次机会,适合大容量、写压力不高的近线存储;RAID 10 重建只读镜像伙伴、窗口最短、随机写最好,代价是只能用一半容量,适合数据库与虚拟化。两者都比 RAID 5 更保守,也都不能替代备份。
写惩罚是什么?为什么 RAID 5 是 4、RAID 6 是 6?
写惩罚指「一次逻辑写会变成几次物理 I/O」。RAID 5 修改一个数据块时,要读旧数据、读旧校验、写新数据、写新校验,共 4 次,所以写惩罚是 4;RAID 6 有两套独立校验(P 和 Q),要读的旧校验多一份,记 6;RAID 0 与 RAID 1 直接把数据写下去(镜像两份可并行下发),记 1;RAID 10 因为叠加了条带,按保守口径记 2。随机写能力 ≈ 盘数 × 单盘 IOPS ÷ 写惩罚,这就是 RAID 5 / 6 在小块随机写下吃力的原因。
热备盘(Hot Spare)算不算阵列容量?
不算。热备盘不参与条带,也不贡献可用容量,它只是「待命」——一旦检测到某块盘故障,控制器立刻用它顶上并开始重建,省掉「等人发现、等人采购、等人到场」的这段时间。对重建窗口以天计的大容量阵列来说,这段省下来的时间往往比多买一块盘的钱值钱得多。要注意有些阵列的全局热备会被多个阵列共享,也可能被自动重建策略「抢走」。
能用 RAID 代替备份吗?
不能。RAID 挡的是「盘坏了」,挡不住误删、误格式化、勒索软件、控制器故障、阵列配置表损坏、机箱进水或整机被偷。这些情况下 RAID 会把「坏」同步复制到每一块盘上。正确的组合是:RAID 保证可用性(继续能跑),备份保证可恢复性(还能回到昨天)。3-2-1 原则依然适用:至少 3 份数据、2 种介质、1 份异地。NAS 上的做法与选购考虑,可以看绿联 NAS DXP4800 的购买使用介绍。
关于数据
工具里的容量公式(RAID 0 = n × 单盘、RAID 1 = 单盘、RAID 5 = (n − 1) × 单盘、RAID 6 = (n − 2) × 单盘、RAID 10 = n ÷ 2 × 单盘)、写惩罚(0 / 1 = 1、5 = 4、6 = 6、10 = 2)与随机写 IOPS 估算,都是通用 RAID 口径,不针对某个品牌或某款控制器。重建时长按「重建读取量 ÷ 重建速率」计算;URE 概率按标称值做泊松近似(1 − e−位数 ÷ URE),读取量里已包含校验块。
这个工具是纯前端计算:不向服务器发送任何请求,输入与切换全部在浏览器里完成,不写 cookie、不加载外部脚本。所有速率、IOPS 与 URE 都是可以改的假设值——它们决定的是结果的数量级,而不是精确答案;真实表现取决于控制器型号与固件版本、盘的型号与批次、条带大小、业务读写模型与环境温度。本站的工具一贯只给清单与口径,不下「你这套阵列行不行」的判决。
顺手指个路:RAID 是怎么来的、有哪些级别讲级别与来历;混合存储架构讲怎么在阵列上再叠缓存与卷管理;折腾一套万兆内网讲盘之外的另一半瓶颈。本站自制的工具都收在《站点小工具》这一页里,全部不需要注册。

