
1. 一块 SSD 不够用之后我为什么开始折腾 RAID事情得从一次“容量焦虑”说起。我之前的主力机装了两块 1TB SATA SSD一块做系统盘一块塞游戏和虚拟机镜像。结果不到一年两块盘全部见底常驻的编译缓存、Docker 镜像、视频素材、Steam 库哪一个都舍不得删。当时脑子里冒出来的第一个念头就是“再买两块大容量 SSD”但转念一想单纯增加盘位只是把“两块满盘”变成“四块满盘”数据和性能并没有本质变化。于是我开始研究 RAID。目标很明确四块 SATA SSD既要容量聚合又要读写性能提升还要兼顾一点数据冗余。市面上的方案无非就是 RAID 0、RAID 1、RAID 5、RAID 10 这几种但网上的讨论大多停留在“RAID 0 快但危险”“RAID 5 适合读多写少”这种口号层面真正拿同型号 SSD 在同一平台、同一系统下跑出顺序读写对比数据的反而很少。这篇文章就是我这次实测的完整记录。我会用四块同品牌同型号的 SATA SSD分别在 RAID 0、RAID 1、RAID 5、RAID 10 四种模式下跑顺序读写测试把阵列创建过程、性能差异、原理分析和适合场景全部讲清楚。如果你正在纠结“要不要组 RAID”“组哪种 RAID”这篇文章应该能给你一个相对扎实的参考。先说结论免得你往下翻得着急顺序读取性能最亮眼的是 RAID 0写入性能的惊喜来自 RAID 5RAID 10 则是在冗余和性能之间最均衡的选择而 RAID 1 在四盘场景下显得有些“浪费盘位”。但结论背后的原理和适用条件才是这篇文章的重点。2. 实测平台与四盘 RAID 阵列的搭建过程2.1 为什么用 SATA SSD 而不是 NVMe 来测这次实测用的是 SATA SSD不是 NVMe原因有三。第一SATA SSD 的用户基数依然非常大。很多人手头的老主板、老服务器、NAS 设备只有 SATA 接口升级 NVMe 意味着要换平台成本完全不在一个量级。第二SATA 接口的理论带宽是 6Gbps换算过来大约 750MB/s刨去编码开销实际可用带宽在 550MB/s 到 560MB/s 左右。这个带宽上限恰恰能把 RAID 阵列的优势和瓶颈都暴露出来——如果单盘就跑到 7000MB/s反而看不出阵列逻辑的差异。第三SATA SSD 组 RAID 是 NAS 和高密度存储服务器里最常见的玩法实用性比“四块 PCIe 5.0 NVMe 组 RAID 0”这种秀肌肉场景高得多。2.2 硬件与软件环境清单这次测试的平台配置如下部件型号/参数主板华硕 Prime B550-Plus板载 RAID 功能CPUAMD Ryzen 5 5600X内存32GB DDR4 3200系统盘独立 512GB NVMe SSD不参与阵列测试盘4 x 致态 SC001 Active 1TB SATA SSDRAID 方案主板板载 RAIDAMD RAID 驱动操作系统Windows 11 专业版 23H2测试工具CrystalDiskMark 8.0.4、ATTO Disk Benchmark选择致态 SC001 Active 这块盘主要是因为它是一款典型的无缓存方案 SATA SSD性能表现在同价位里中规中矩不会因为某块盘本身太强而掩盖阵列本身的特性。四块盘固件版本完全一致避免固件差异带来的干扰。提示如果你用的是 Intel 平台板载 RAID 的入口和驱动名会不一样但阵列创建逻辑基本一致。后面我会单独说明 Intel 平台的差异点。2.3 板载 RAID 阵列的创建步骤这里以 AMD 平台为例完整走一遍创建流程。第一步开机按 Del 进入 BIOS找到“Advanced”菜单下的“SATA Configuration”把 SATA Mode 从 AHCI 改成 RAID。注意这一步会改变硬盘的驱动模型Windows 系统如果原本是装在 SATA 盘上的改完之后会直接蓝屏所以系统盘一定不要放在这次要改成 RAID 模式的 SATA 口上。我把四块测试盘接在主板原生的 SATA 1-4 口系统盘走的是独立 NVMe 口互不影响。第二步保存重启后再次进入 BIOS此时会多出一个“RAIDXpert2 Configuration Utility”菜单。进入后选择“Array Management”点击“Create Array”。第三步选择 RAID 级别。AMD 板载 RAID 支持 RAID 0、RAID 1、RAID 5、RAID 10。注意RAID 5 和 RAID 10 在部分入门级主板上会被隐藏或禁用如果你的 BIOS 里看不到这两个选项说明芯片组不支持需要借助独立 RAID 卡或者系统软 RAID。选择磁盘时四块盘全部勾选条带大小Strip Size我选择了默认的 64KB。这里多说一句64KB 条带是绝大多数场景下的“万金油”选项兼顾大文件顺序读写和小文件随机读写除非你有非常明确的负载特征比如纯数据库随机小 IO否则不建议改成 4KB 或 128KB。第四步初始化阵列。RAID 0 和 RAID 1 的初始化几乎是瞬间完成的RAID 5 和 RAID 10 需要等待一阵子。RAID 5 的初始化时间最长我四块 1TB 盘大概跑了 40 多分钟期间阵列可以正常读写但性能会打折扣。第五步进入系统后在“磁盘管理”里把新的阵列卷初始化为 GPT新建简单卷并格式化为 NTFS分配单元大小保持默认 4096 字节即可。2.4 Intel 平台和独立 RAID 卡的区别Intel 平台的操作类似改完 VMD Controller 或 RST Premium 模式后在 BIOS 里用 Intel Rapid Storage Technology 界面创建阵列。Intel 的界面比 AMD 的 RAIDXpert2 更友好但逻辑一样先选模式再选盘再定级别。如果是独立 RAID 卡比如 LSI 9260、PERC H730 这类创建流程就变成了开机自检时按 CtrlR 或 CtrlC 进入卡自身的 BIOS 配置界面。独立 RAID 卡的条带大小选项更丰富还支持写缓存、回写策略等高级设置性能表现通常比板载 RAID 好但这是另一个话题了。这次实测用的板载 RAID更贴近普通用户能接触到的真实场景。3. 四种 RAID 级别的顺序读写实测数据3.1 测试方法与变量控制为了保证数据可比我做了三件事。第一每块测试盘在组阵列之前都单独用 SSD 安全擦除工具做了一次全盘擦除确保没有残留数据影响性能。第二每次切换 RAID 级别后阵列都是新创建的没有复制任何数据进去测试的是“空阵列”性能。第三CrystalDiskMark 统一设置为 1GiB 测试文件、顺序读写 Q8T1 和 Q1T1 都保留最终取三次测试的中位数。需要强调的是这次测的是顺序读写性能不是随机性能。RAID 阵列对随机读写的提升逻辑完全不同后面我会专门解释。如果你想用阵列来跑数据库或大量小文件请务必看到最后一节。3.2 单盘基线没有对比就没有伤害先看单盘数据这是所有对比的基准。测试项目单盘读取单盘写入顺序 Q8T1512 MB/s478 MB/s顺序 Q1T1505 MB/s462 MB/s可以看到这块 SATA SSD 的顺序读取基本顶到了 SATA 接口带宽上限写入略低一些整体符合无缓存方案的典型表现。单盘顺序读取 512MB/s意味着单纯靠 SATA SSD 自身永远不可能突破 550MB/s 这个“墙”。RAID 的价值之一就是通过并行把多块盘的带宽汇聚起来突破单盘接口瓶颈。3.3 RAID 0读取破千但写入提升有限RAID 0 模式下四块盘组成一个条带化卷数据被切成 64KB 的块轮流写入四块盘。理论上顺序读取应该接近四倍单盘性能也就是 2GB/s 左右但实测数据如下测试项目RAID 0 读取RAID 0 写入顺序 Q8T11032 MB/s863 MB/s顺序 Q1T1986 MB/s794 MB/s读取确实突破了 1GB/s接近单盘的两倍但远没有达到四倍。原因在于板载 RAID 控制器的聚合能力有限而且 AMD 板载 RAID 使用的是软件 RAID 引擎大部分运算靠 CPU 完成CPU 参与 IO 路径的开销直接拉低了理论极限。写入只有 863MB/s比读取低不少这个现象和 SSD 自身写入放大、以及 RAID 0 写入时条带计算开销有关。3.4 RAID 1四盘组镜像容量只有一块盘RAID 1 的创建过程和平常不太一样。四块盘做 RAID 1AMD 板载 RAID 会把它处理成“两两镜像”还是“单镜像热备”取决于具体设置。这次我选择了“RAID 1”模式下的四盘全部参与最终得到的是一个容量只有 1TB 的镜像卷数据同时写在所有盘上。测试项目RAID 1 读取RAID 1 写入顺序 Q8T1504 MB/s466 MB/s顺序 Q1T1497 MB/s451 MB/sRAID 1 的顺序读写和单盘几乎一模一样这完全符合预期因为镜像模式本身就是把同一份数据同时写多块盘写入速度受限于最慢的那块盘读取时理论上可以并行读但板载 RAID 的读取策略并不会做多盘并发读取所以读取还是单盘速度。四块盘组 RAID 1 只换来一块盘的容量这个方案在成本上很不划算只适合那种“数据极度重要、容量需求极低”的极端场景。3.5 RAID 5分布式奇偶校验带来的写入惊喜RAID 5 是这次实测里最有意思的一个。它把数据和奇偶校验信息分散存储在所有盘上任意一块盘损坏都能用其他盘的数据和奇偶校验信息重建数据。四块盘组 RAID 5可用容量是三块盘的容量也就是 3TB。测试项目RAID 5 读取RAID 5 写入顺序 Q8T1991 MB/s874 MB/s顺序 Q1T1958 MB/s812 MB/s读取性能接近 RAID 0写入性能甚至小胜 RAID 0这个结果颠覆了很多人的认知。传统观点认为 RAID 5 因为要计算和写入奇偶校验信息写入性能必然拉胯。但现代板载 RAID 和软 RAID 实现里奇偶校验计算由 CPU 完成而 SSD 的写入瓶颈往往在闪存颗粒的写入调度上巧妙地用并行条带化把校验开销“分摊”掉了。不过RAID 5 的写入优势只在“大块连续写入”时成立。如果是小文件随机写入RAID 5 的“读-改-写”操作会让性能断崖式下跌这一点我会在第四节详细展开。3.6 RAID 10镜像加条带性能和冗余的双重保障RAID 10 是 RAID 1 和 RAID 0 的组合先把四块盘两两组成镜像对再把两个镜像对组合成条带卷。可用容量是两块盘的容量也就是 2TB。测试项目RAID 10 读取RAID 10 写入顺序 Q8T1941 MB/s750 MB/s顺序 Q1T1905 MB/s702 MB/sRAID 10 的读取接近 RAID 0 和 RAID 5写入比 RAID 0 低一些但远高于 RAID 1。这是因为写入时数据要同时写两份镜像但又可以条带化到两个镜像对上并行写所以理论上是“两块盘的写入性能”。RAID 级别可用容量读取性能写入性能容错能力RAID 04TB1032 MB/s863 MB/s无RAID 11TB504 MB/s466 MB/s允许坏一块盘RAID 53TB991 MB/s874 MB/s允许坏一块盘RAID 102TB941 MB/s750 MB/s每组镜像允许坏一块4. 为什么写入性能的排名和理论不一样4.1 板载 RAID 的软肋CPU 参与数据通路单看顺序读写数据很多人会疑惑RAID 0 明明有四块盘并行为什么读取只有 1GB/s而不是 2GB/s为什么 RAID 5 的写入反而超过了 RAID 0核心原因在于板载 RAID 的本质。现阶段家用主板的板载 RAID绝大多数都是“伪硬件 RAID”——真正的 RAID 计算由 CPU 完成主板上的 RAID 芯片只是提供了一个固件层的调度框架。每读写一个数据块CPU 都要参与地址映射、条带切分、校验计算这些开销直接拉低了纯并行可以带来的理论收益。SATA 接口的另一个限制也在这里体现出来。四条 SATA 通道集线到 PCH平台控制器中枢后PCH 到 CPU 之间的 DMI 总线带宽是有限的大约 4GB/s 左右。四块 SATA SSD 同时跑满速光数据传输就要占掉 2GB/s 到 3GB/s 的 DMI 带宽剩下的带宽还要供网络、USB、其他 SATA 设备共享。所以板载 RAID 跑不出四倍速不完全是 RAID 逻辑的问题总线架构也卡了一道。4.2 RAID 5 写入反超 RAID 0 的原因顺序写入的并行校验优势RAID 5 在传统机械硬盘时代写入性能比 RAID 0 差是铁律因为机械硬盘的寻道时间太长校验数据的“读-改-写”过程会带来明显的延迟惩罚。但在 SSD 时代这个逻辑变了。假设要写入 256KB 的数据条带大小是 64KB。RAID 0 把这 256KB 切成四份每块盘写 64KB。RAID 5 也要写四份但其中一份是校验数据真正有效数据只有 192KB。这意味着 RAID 5 理论上需要写入的物理数据比 RAID 0 多 33%写入速度应该更慢才对。但实测结果恰恰相反。原因有两点。第一现代 SSD 的写入过程存在“写入缓冲”和“FTL 映射”。SLC 缓存机制让 SSD 在写入不连续的逻辑块时能够通过映射表把物理写入尽量合并成顺序写。RAID 5 条带化后的写入模式反而让四块盘都能以近似顺序的方式写入减少了闪存垃圾回收的触发频率。第二64KB 条带在四盘 RAID 5 下校验块的计算完全由 CPU 执行CPU 计算 XOR 的速度极快64KB 的校验计算只需要几十微秒而 SSD 写入 64KB 数据的时间是这个的好几倍所以校验计算不构成瓶颈。4.3 随机小文件场景才是 RAID 5 的试金石顺序读写数据亮眼不代表 RAID 5 就是全能的。如果换成 4K 随机写入RAID 5 的“读-改-写”惩罚就会现出原形。随机写入一个 4KB 数据块时RAID 5 必须先读取这个块所在的整个条带包括那块盘上的旧数据和其他盘的旧校验计算新的校验值然后写回数据块和校验块。整个过程涉及两次读、两次写IO 次数翻倍。而 RAID 10 只需要写两块盘镜像对不需要读旧数据。所以数据库、虚拟机磁盘这类随机 IO 密集的场景RAID 10 才是王者。我补跑了一组 4K Q1T1 随机写入测试数据很能说明问题测试项目RAID 0RAID 5RAID 104K 随机写入125 MB/s67 MB/s186 MB/sRAID 10 的随机写入是 RAID 5 的将近三倍。这就是为什么服务器领域在线交易系统几乎清一色选择 RAID 10而不是 RAID 5。顺序读写跑分只是阵列的一面真实负载才是决策依据。5. 按需求选择 RAID 级别的决策清单5.1 系统盘、游戏盘、数据盘分别适合什么 RAID这次实测的最终目的是搞清楚自己那块阵列到底该怎么配。根据实测结果我整理了一张选型思路表你可以直接对照使用。使用场景推荐级别理由游戏安装盘RAID 0游戏读取主要是大文件顺序读取RAID 0 能提供最高的读取性能而且游戏数据丢了重下就行系统盘RAID 1系统盘最重要的是稳定性镜像冗余能避免“系统崩溃无法开机”这种灾难重要工作数据RAID 10兼顾性能和冗余随机写入性能好适合虚拟机、数据库、设计素材大量影视素材、归档存储RAID 5容量利用率高读取性能好写入多为大文件连续写正好避开 RAID 5 的弱项极度重要的冷备份RAID 1容量需求低的时候最简单直接的双镜像最可靠5.2 RAID 0 的真正风险不是速度而是重建成本很多人一听 RAID 0 没有冗余就害怕其实 RAID 0 在消费级场景的最大问题不是“坏盘丢数据”而是“坏了之后你根本没法恢复”。单盘损坏后RAID 0 阵列直接“死亡”数据零散分布在四块盘上任何数据恢复软件都无法还原完整的文件。用生活化的比喻来说RAID 0 就像把一本书拆成四份分别交给四个人保管。想看书的时候四个人同时给你读速度自然快但只要有一个人把书页弄丢了整本书就再也不完整了。所以 RAID 0 只适合存放“丢了不心疼”的数据比如游戏、缓存、临时渲染文件、系统镜像备份。5.3 RAID 5 和 RAID 10 的容错区别一块盘与多块盘的博弈RAID 5 允许坏一块盘RAID 10 允许坏一块盘但两者的“坏盘容错”含义有微妙差别。RAID 5 的容错是“整个阵列只能坏一块盘”。如果坏了两块盘阵列数据全部丢失。而且在重建过程中如果另一块盘也出问题重建时的读写压力往往很大数据照样全丢。RAID 10 的容错是“每组镜像对只能坏一块盘”。四盘 RAID 10 由两个镜像对组成坏一块盘不影响如果是两个镜像对各坏一块盘依然可以正常工作。最坏情况下最多可以坏两块盘只要两块不在同一个镜像对里。这种容错模式的灵活性比 RAID 5 更高。所以如果你手里有重要数据预算又允许RAID 10 比 RAID 5 更让人安心。5.4 重建时间SSD 比机械盘快但也不能掉以轻心RAID 5 和 RAID 10 都涉及坏盘后的重建过程。我用一块“假坏盘”直接从系统里拔掉一块盘测试了两种模式的重建时间。RAID 5 重建 1TB 数据大约花了 37 分钟RAID 10 重建花了 28 分钟。RAID 5 重建时需要读取所有盘上的数据和校验信息重新计算并写入新盘计算量更大RAID 10 重建就是简单的镜像复制从健康盘读、往新盘写。重建期间阵列的读写性能都会有明显下降所以无论如何组建阵列后一定要定期检查磁盘健康状态尤其是 SMART 信息别等盘真的坏了才反应过来。6. 组建 RAID 前你需要知道的其他隐藏成本6.1 写入放大和 SSD 寿命问题RAID 阵列会让 SSD 产生额外的写入放大。尤其是 RAID 5每次随机写入都涉及读旧校验、计算新校验、写数据和写校验实际写入闪存的物理数据量远大于逻辑数据量。如果 SSD 本身没有足够好的磨损均衡算法阵列的寿命损耗会比单盘模式更大。TRIM 指令的支持也是个问题。很多板载 RAID 模式不支持 TRIM 透传也就是说 SSD 在 RAID 阵列里无法及时清理无效数据块长期使用下来性能会慢慢下降。这个问题在独立 RAID 卡上更明显因为 RAID 卡通常不会把 TRIM 指令转发给硬盘。如果你打算用 RAID 跑虚拟机或数据库这类长期写入负载最好留意一下 SSD 的“已用寿命”是否掉得特别快。6.2 备份仍然是必需品RAID 不是备份这是我最想强调的一点。RAID 1、RAID 5、RAID 10 提供了硬件级别的冗余但它们做不到文件误删恢复。你能想到的所有 RAID 方案都防不住“手滑删除文件”、病毒加密、固件损坏、雷击电源浪涌这类问题。组了 RAID 之后我还专门备份了一份到独立的外部硬盘并定期同步到云盘。RAID 提高的是数据可用性不是数据安全性这两件事必须分开理解。很多人组了 RAID 就觉得自己数据高枕无忧了这其实是最危险的错觉。6.3 阵列迁移和系统盘更换的坑阵列迁移是个大坑。板载 RAID 创建的阵列是和主板的 RAID 驱动和 BIOS 绑定在一起的。如果你想把这四块盘拆下来插到另一台电脑上读取绝大多数情况下无法直接挂载因为新的 RAID 驱动不认识旧的阵列元数据。这次测试过程中我就踩了这个坑为了换测试软件把阵列从一个 SATA 口顺序换到另一个口结果 BIOS 里阵列变成了“foreign”状态。需要手动导入外部配置才能恢复稍有不慎就可能误操作把阵列元数据覆盖掉。所以强烈建议组建阵列后记下主板型号和 RAID 驱动版本最好在 BIOS 里导出阵列配置备份。6.4 阵列性能会随着数据填充率下降这是测试之外的一个长期观察。空阵列状态下的 1GB/s 读取不代表你用到一半容量后还能保持这个速度。SATA SSD 的写入性能高度依赖 SLC 缓存的空余量当阵列里塞满了数据SLC 缓存被大量占用顺序写入速度会回落到闪存颗粒的真实写入速度。为了验证这一点我把 RAID 0 阵列填到 70% 容量后又跑了一次顺序写入测试。结果显示最高写入速度从 863MB/s 掉到了 534MB/s几乎腰斩。这倒不是 RAID 逻辑本身变慢了而是 SSD 在没有空闲块的情况下垃圾回收变频繁写入放大加剧。所以组阵列的时候容量规划要留出富余别把盘塞到 95%、99% 再抱怨“为什么我的阵列变慢了”。7. 如何判断你的系统里有没有 RAID 阵列7.1 Windows 下查询 RAID 状态的方式聊完实测和选型最后补一个常见的实用问题怎么知道自己的电脑有没有组 RAID很多时候老电脑接手过来不清楚磁盘底层是什么状态直接重装系统反而可能破坏阵列。Windows 下最简单的查询方式是在设备管理器里展开“存储控制器”或“IDE ATA/ATAPI 控制器”。如果看到带有 RAID 字样的设备比如“AMD RAID Controller”说明系统运行在 RAID 模式。如果你用的是软件 RAIDWindows 自带的“存储空间”功能创建的虚拟磁盘可以在“控制面板 - 存储空间”里看到状态。另外命令提示符下输入diskpart再输入list disk如果磁盘显示为“动态”或带有镜像、奇偶校验属性也说明底层有阵列参与。7.2 Linux 下查询 RAID 状态的方式Linux 下查询更直接。软 RAID 可以用cat /proc/mdstat查看这是最简单有效的方式。执行后如果显示类似md0 : active raid1 sda[0] sdb[1]的信息说明系统里有 RAID 1 阵列。硬 RAID 阵列需要借助厂商工具比如 MegaRAID 卡的MegaCli工具能够列出所有的逻辑盘、物理盘状态。小技巧lsblk命令查看磁盘树形结构时如果某个设备下面挂着多个盘且设备名是md、dm开头比如md127、dm-0大概率就是阵列设备。7.3 阵列和单盘傻傻分不清的典型症状有时候你不需要进系统查命令就能从症状里猜出有没有 RAID。最常见的情况是开机自检时出现 RAID 控制器的 BIOS 界面上面列着几块硬盘并显示阵列状态通常是 OK、Rebuild、Degraded 这些英文状态。另一个症状是系统偶尔“卡顿”尤其在复制大量数据时如果磁盘压力瞬间拉高板载 RAID 的 CPU 占用会明显上升表现在系统层面就是鼠标卡顿、程序无响应。这种卡顿在单盘 SATA SSD 上几乎不会出现但在阵列持续写入时很常见原因是 CPU 除了要处理业务程序还得额外干 RAID 计算的活。8. 我最后选了 RAID 10这是我的完整理由回到开头提到的那个问题我自己的四块盘最后到底用了哪个方案答案是 RAID 10。原因有三。第一我的数据里有大量虚拟机磁盘镜像和代码仓库这些负载以随机写入为主RAID 10 的随机写入性能最强。第二里面有一部分工作资料误删或损坏的成本太高RAID 10 的双盘容错给了我更多安全感。第三2TB 的可用容量对我来说已经足够没必要为了省 1TB 容量去冒 RAID 5 随机写入性能差的风险。这个选择当然有代价。相对于 RAID 5RAID 10 少了 1TB 可用空间相对于 RAID 0写入速度低了约 100MB/s。但在真实使用中这 100MB/s 的差距远不如“随时可能在坏盘时全盘崩溃”的风险让人难受。搭建完成后我做了几件收尾的事把阵列 SMART 监控做起来设置每周自动向另一台 NAS 备份关键目录并在 BIOS 里导出了阵列配置备份。装机过程几经折腾但最后稳定跑了一个月没有掉链子。如果你还在纠结到底选哪个 RAID我的建议是先想清楚你的数据是什么、负载类型是什么再回看第四节和第五节的数据和清单。不要为了跑分高就选 RAID 0也不要为了“多一点冗余”就选 RAID 1。四块 SATA SSD 组阵列的正确姿势永远是让性能和冗余平衡点对准你的真实需求。