这篇文章整理自我在 B 站发的 8 块机械硬盘 RAID 0 实测视频。问题很简单:一块机械硬盘顺序读写大概 200MB/s 左右,那 8 块盘一起做 RAID 0,是不是就能直接变成 1600MB/s 的“大号机械固态”?
答案是:多线程顺序读写确实能明显起飞,但不是所有场景都会跟着翻 8 倍。随机读写、单线程顺序、文件系统缓存、SMB 网络共享、RAID 校验开销,都会让最后的结果变得很有意思。

先说结论
如果只看 Btrfs 下 8 盘 RAID 0 的多线程顺序读写,这套阵列确实很快:读约 1299MB/s,写约 1326MB/s,已经明显超过普通单块机械硬盘,也跑到了万兆网络需要认真对待的速度区间。
但它并不是“所有项目都 8 倍”。这次测试里有几个比较关键的结论:
- 单盘顺序读写约 193MB/s,是后面所有测试的基准。
- 4 盘 RAID 0 的多线程顺序读写约 752/741MB/s,接近单盘 4 倍。
- 8 盘 RAID 0 的多线程顺序读写约 1299/1326MB/s,读写都很强,但没有完全线性翻 8 倍。
- 8 盘 RAID 0 的单线程顺序读写和 4 盘差不多,说明瓶颈不只在硬盘数量。
- 4K 随机读写没有像顺序读写那样飞起来,小文件场景不能只看“盘多”。
- ZFS 测试里读数非常漂亮,但 1GB 测试文件小于内存时,很容易测到缓存效果,不等于硬盘本体速度。
- SMB 网络测速会受到 NAS、网卡、Windows 缓存和协议栈影响,不能直接等同于本地磁盘速度。
- RAID 0 完全没有冗余,坏一块盘基本就意味着整组数据出问题。
所以这篇文章的重点不是鼓励大家上 RAID 0,而是借 8 块盘把不同 RAID 模式的性格看清楚:什么场景追求速度,什么场景追求安全,什么场景要接受写入惩罚。

RAID 0 到底在做什么
RAID 是磁盘阵列技术,可以把多块硬盘组合成一个逻辑硬盘。不同 RAID 模式会在速度、容量、安全性之间做不同取舍。
RAID 0 是里面最激进的一种。它会把一份数据拆成多个条带,分散写到不同硬盘上。读取时,多块盘一起工作;写入时,也可以并行写入。盘越多,理论顺序吞吐就越高,可用容量也等于所有硬盘容量相加。

flowchart LR A["一个大文件"] --> B["切成多个条带"] B --> C1["硬盘 1:条带 A"] B --> C2["硬盘 2:条带 B"] B --> C3["硬盘 3:条带 C"] B --> C4["更多硬盘:继续分散"] C1 --> D["并行读写"] C2 --> D C3 --> D C4 --> D D --> E["顺序速度提高"]
但 RAID 0 的代价也最直接:没有校验,没有镜像,没有容错。只要其中一块盘坏掉,数据就不再完整。它适合临时缓存、测试盘、可重建素材,不适合放唯一重要数据。
测试环境和命令
这次用飞牛 NAS 识别 8 块机械硬盘,然后分别测试单盘、4 盘 RAID 0、8 盘 RAID 0,以及 Btrfs/ZFS/SMB 和其他 RAID 模式。

测试里既有图形化测速,也有 fio 命令。fio 这类命令行测试的好处是参数可复现,缺点是普通用户看起来没那么直观。
fio -filename=/vol2/1000/8盘R0/test -direct=1 -iodepth 64 -thread -rw=read -ioengine=libaio -bs=1M -size=2G -numjobs=1 -runtime=60 -group_reporting -name=seq_read
fio -filename=/vol2/1000/8盘R0 -direct=1 -iodepth 1 -thread -rw=randread -ioengine=libaio -bs=4k -size=512M -numjobs=1 -runtime=60 -group_reporting -name=rand_4k_read
创建阵列前一定要注意:新建或切换存储空间通常会格式化硬盘,原数据会被清空。RAID 测试最好用空盘,不要拿唯一数据冒险。

单盘速度:今天的 1 倍速基准
先测单块机械硬盘。这个成绩很标准,顺序读写大概都在 193MB/s 到 195MB/s 左右。后面说 4 倍、8 倍,都应该以这个数字作为参考。

| 项目 | 读 MB/s | 写 MB/s |
|---|---|---|
| 顺序 Q8 T1 | 193.32 | 193.45 |
| 顺序 Q1 T1 | 194.79 | 193.95 |
| 随机 4K Q32T16 | 2.07 | 95.64 |
| 随机 4K Q1T1 | 0.64 | 11.16 |
这组数据说明一件事:机械硬盘不是所有项目都慢。大块顺序读写仍然能到 200MB/s 左右,但 4K 随机读写就会被机械结构限制得很明显。
4 盘 RAID 0:多线程顺序读写接近 4 倍
接下来把 4 块盘组成 RAID 0。这个结果非常符合预期:多线程顺序读写从单盘约 193MB/s 提升到 752/741MB/s 左右,基本就是“盘多路宽”的效果。

| 项目 | 读 MB/s | 写 MB/s |
|---|---|---|
| 顺序 Q8 T1 | 751.96 | 740.50 |
| 顺序 Q1 T1 | 468.32 | 426.48 |
| 随机 4K Q32T16 | 7.57 | 76.39 |
| 随机 4K Q1T1 | 0.79 | 15.37 |
但它也暴露了 RAID 0 的另一个特点:顺序多线程吃得上多盘并行,随机小文件未必吃得满。4K 随机读有提升,随机写反而比单盘更复杂,不能简单理解成“RAID 0 什么都快”。
8 盘 RAID 0:顺序速度起飞,但不是处处 8 倍
终于轮到 8 块盘。多线程顺序读写的确很好看,读约 1299MB/s,写约 1326MB/s。只看这个项目,它已经不是普通机械硬盘的感觉了。

| 项目 | 读 MB/s | 写 MB/s |
|---|---|---|
| 顺序 Q8 T1 | 1298.99 | 1325.61 |
| 顺序 Q1 T1 | 465.89 | 424.17 |
| 随机 4K Q32T16 | 22.30 | 63.29 |
| 随机 4K Q1T1 | 0.91 | 15.04 |
有意思的是,8 盘的单线程顺序读写和 4 盘差不多,都在 400MB/s 到 470MB/s 附近。这说明实际瓶颈可能来自文件系统、队列深度、控制器、调度策略、CPU、链路或测试方式,而不是单纯“硬盘数量还不够”。
把 1 盘、4 盘、8 盘放在一起看更明显:
| 阵列 | 顺序 Q8T1 读 | 顺序 Q8T1 写 | 顺序 Q1T1 读 | 顺序 Q1T1 写 |
|---|---|---|---|---|
| 单盘 | 193.32 | 193.45 | 194.79 | 193.95 |
| 4 盘 RAID 0 | 751.96 | 740.50 | 468.32 | 426.48 |
| 8 盘 RAID 0 | 1298.99 | 1325.61 | 465.89 | 424.17 |
如果你的工作负载是大文件、多线程、连续读写,8 盘 RAID 0 很强。比如临时素材盘、转码缓存、批量拷贝测试,它确实能把机械硬盘拉到很高的吞吐。
但如果你面对的是大量碎文件、数据库、小文件索引、照片缩略图、系统盘任务,机械硬盘阵列仍然会被随机访问拖住。
ZFS 测试:漂亮数字背后可能是缓存
这次也测了 ZFS。结果非常夸张:顺序 Q1T1 读到了 3707MB/s,看起来甚至比 8 盘 RAID 0 本身还高。

| 项目 | 读 MB/s | 写 MB/s |
|---|---|---|
| 顺序 Q8 T1 | 2594.83 | 1120.58 |
| 顺序 Q1 T1 | 3707.67 | 1136.72 |
| 随机 4K Q32T16 | 19.99 | 7.21 |
| 随机 4K Q1T1 | 19.01 | 6.90 |
这里要小心解读。测试文件如果只有 1GB,而机器内存远大于这个文件,ZFS 很可能把读请求留在缓存里。这个时候你看到的就不完全是硬盘速度,而是“硬盘 + 文件系统 + 内存缓存”的综合结果。
ZFS 很强,但它不是魔法。它对内存、校验、缓存策略、写入路径都有自己的要求。如果内存配置不够,或者测试方法没有避开缓存,跑分很容易看起来“不真实”。
SMB 网络测速:你测到的不一定只是硬盘
NAS 日常最常见的用法不是在 NAS 本机跑分,而是在 Windows 上通过 SMB 共享读写文件。这时测试链路会变长:硬盘阵列、NAS 系统、网络、交换机、网卡、SMB 协议、Windows 缓存都会参与。

| 项目 | 读 MB/s | 写 MB/s |
|---|---|---|
| 顺序 Q8 T1 | 715.78 | 784.29 |
| 顺序 Q1 T1 | 402.92 | 450.03 |
| 随机 4K Q32T16 | 218.66 | 140.89 |
| 随机 4K Q1T1 | 23.59 | 33.01 |
这组数字和本地跑分不一样很正常。SMB 场景更接近日常使用,但它不适合直接拿来判断“硬盘本体到底多快”。如果你看到某个 NAS SMB 跑分随机性能特别漂亮,先别急着下结论,缓存很可能也在工作。
其他 RAID 模式:速度、安全和容量怎么换
玩完刺激的 RAID 0,真正要存数据时,很多人反而会更关心 RAID 1、RAID 5、RAID 6、RAID 10。这些模式的意义不是“越快越好”,而是在容量、性能、容错之间选一个你能接受的平衡点。

flowchart TD
A["你要怎么选 RAID?"] --> B{"数据是不是唯一重要数据?"}
B -->|"是"| C{"能接受少一半容量吗?"}
B -->|"不是,只是临时盘"| D["RAID 0:速度优先,坏盘就重建"]
C -->|"能"| E["RAID 10 或 RAID 1:安全优先"]
C -->|"不能"| F["RAID 5/6:容量和容错折中"]
F --> G{"更怕同时坏两块盘吗?"}
G -->|"怕"| H["RAID 6:多一份校验,写入更慢"]
G -->|"还好"| I["RAID 5:容量利用率更高"]
E --> J["仍然要额外备份"]
F --> J
D --> K["只放可重建数据"]
无论选哪种 RAID,都要记住一句话:RAID 不是备份。RAID 能提高可用性,不能替代离线备份、异地备份和版本恢复。
RAID 1:安全感很高,速度像单盘
RAID 1 主要是镜像。数据会写到多块盘上,目标是让数据有副本,而不是追求容量利用率和极限速度。

| 项目 | 读 MB/s | 写 MB/s |
|---|---|---|
| 顺序 Q8 T1 | 183.88 | 178.47 |
| 顺序 Q1 T1 | 181.29 | 161.19 |
| 随机 4K Q32T16 | 7.95 | 34.70 |
| 随机 4K Q1T1 | 0.65 | 10.23 |
这组数据基本就是单盘水平。RAID 1 的意义在于安全,不在于让 8 块盘都变成速度贡献者。如果你只想“重要数据尽量稳”,RAID 1 的思路最容易理解,但容量利用率也最肉疼。
RAID 5 和 RAID 6:读很强,写入要付校验成本
RAID 5 和 RAID 6 都会做校验。好处是能在少损失一些容量的情况下获得容错能力;代价是写入时要计算和写入校验信息,尤其小块随机写会很难看。

| RAID 5 项目 | 读 MB/s | 写 MB/s |
|---|---|---|
| 顺序 Q8 T1 | 1177.61 | 213.36 |
| 顺序 Q1 T1 | 383.91 | 39.54 |
| 随机 4K Q32T16 | 6.41 | 24.28 |
| 随机 4K Q1T1 | 0.14 | 0.03 |

| RAID 6 项目 | 读 MB/s | 写 MB/s |
|---|---|---|
| 顺序 Q8 T1 | 917.71 | 211.38 |
| 顺序 Q1 T1 | 215.86 | 67.64 |
| 随机 4K Q32T16 | 8.84 | 33.14 |
| 随机 4K Q1T1 | 0.12 | 0.07 |
这两组最有意思的地方在于:读取很漂亮,写入就明显受限。RAID 5 顺序读取约 1178MB/s,RAID 6 也有约 918MB/s;但顺序写入只有 213MB/s 左右,和单盘相比提升非常有限。
如果你的 NAS 主要是只读仓库,比如媒体库、素材归档、下载后长期读取,RAID 5/6 仍然很有价值。如果你的场景是频繁小文件写入、数据库、同步盘,那就要认真考虑写入惩罚。
RAID 10:速度和安全都要,但容量砍半
RAID 10 可以理解成“先镜像,再条带”。它不需要 RAID 5/6 那样复杂的校验计算,读写性能都比较好,同时也有一定容错能力。

| 项目 | 读 MB/s | 写 MB/s |
|---|---|---|
| 顺序 Q8 T1 | 808.88 | 704.90 |
| 顺序 Q1 T1 | 434.65 | 412.85 |
| 随机 4K Q32T16 | 9.59 | 72.75 |
| 随机 4K Q1T1 | 0.81 | 12.71 |
它的读写都比较均衡,尤其顺序写入明显比 RAID 5/6 好看。但成本也很直接:容量通常只能用一半。
如果你既想要性能,又不想像 RAID 0 那样完全裸奔,RAID 10 是很舒服的选择。缺点就是贵,盘位和硬盘都要舍得。
最后怎么选
如果你只是想看大数字,8 盘 RAID 0 的顺序读写确实很爽。但如果你真的要拿 NAS 存东西,选择 RAID 模式时应该先问自己:这个数据丢了能不能重来?

我的建议是:
- 追求极限速度,数据丢了可以重建:RAID 0。
- 只读多、写入少,希望兼顾容量和容错:RAID 5 或 RAID 6。
- 既要读写速度,又能接受容量砍半:RAID 10。
- 最看重安全,容量和速度都可以让步:RAID 1。
- 重要数据:不管用什么 RAID,都要再做一份真正的备份。
这次测试最大的感受是:盘多确实能快,但快在哪里、慢在哪里,要看工作负载。顺序大文件、多线程任务会吃到多盘并行的红利;随机小文件、校验写入、网络共享和缓存路径,都会把结果变得复杂。
所以不要只看“几块盘”和“理论几倍速”。NAS 的存储设计更像是在速度、容量、安全和预算之间做选择。选对模式,比单纯把盘插满更重要。