
磁盘阵列(Redundant Arrays of Independent Disks,RAID),意思是「数块独立磁盘构成具有冗余能力的阵列」。(引用自百度百科)
先说清楚它管什么、不管什么:
- 针对的是多块磁盘,单块盘谈不上阵列;
- 主要目的之一是解决数据安全问题;
- 合适的组建方式能提高读写性能;
- 但随机读取未必变快,有可能反而变慢。
JBOD:只是一堆磁盘
![]() |
![]() |
数据放进 A 就和 B 没关系,放进 B 也和 A 没关系。两块盘是两个完全独立的数据仓库,这种方式叫 Just a bunch of disk,简称 JBOD。
弊端很直接:用 A 的时候 B 闲着,用 B 的时候 A 闲着,一部分磁盘性能就这么浪费了。要让多块盘协同工作,才有磁盘阵列。
RAID 是什么
对使用者来说,RAID 就是一块普通硬盘;它用各种组建方式把多块盘组合起来,达到不同的性能要求。行业公认的等级是 0 到 7,等级之间没有优劣,只是功能不同。
RAID 0
至少 2 块盘。数据拆成两份同时写入两块盘,读的时候也从两块盘读。

带宽和速度都翻倍——有多少块盘就翻多少倍。但这里说的是连续读写,随机读写不会因此变快。代价有两个:一块慢盘会拖累整体(木桶效应);任何一块盘坏掉,全部数据一起完蛋,盘越多出事概率越高。
RAID 1
至少 2 块盘,镜像存储:一份完整数据复制到另一块盘,可以简单理解成自动备份。

好处是安全,坏一块可以用另一块恢复;代价是磁盘利用率低,速度也没有提升。
RAID 2
用海明码校验,在 RAID 0 的基础上增加数据纠错(注意是纠错,不是容灾)。

RAID 2 其数据的第 2 的 n 次方为校验文件,其他的位置才是原始数据
性能与 RAID 0 相当,但编码位数越少磁盘利用率越低,纠错本身也要吃掉一部分性能。
RAID 3
至少 3 块盘,在 RAID 0 基础上多一块恢复码磁盘。
![]() |
![]() |
图中第四块磁盘存放着前三块磁盘的恢复码,前三块里任意一块出故障,都可以用第四块把数据恢复出来
兼具 RAID 0 的性能,容灾能力也上来了。
RAID 4
同样是在 RAID 0 上加一块恢复码盘,区别在于校验的粒度:RAID 3 把一个数据块拆开分开存,校验码针对拆开的这部分算;RAID 4 按区块存,校验码针对几个块一起算。
![]() |
![]() |
| RAID 3 | RAID 4 |
|---|---|
![]() |
![]() |
问题出在只有一块恢复盘:数据盘越多,恢复盘越吃力;而且恢复盘上一块数据没写完,下一次写入就得等着。
RAID 5
在 RAID 4 基础上把恢复码打散存进各块数据盘。

性能还是 RAID 0 那一档,容灾能力保留,同时把 RAID 4 那块恢复盘的瓶颈去掉了。
RAID 6
恢复码盘加到 2 块。

容灾能力比 RAID 5 再高一档,代价是至少两块盘的容量用于校验。
RAID 7
RAID 7 不是一个标准的 RAID 级别,它可能是一种特定厂商或组织开发的专有解决方案,其配置和工作原理可能因厂商而异。
嵌套:RAID 10 与 RAID 50
RAID 10 是镜像加条带:

RAID 50 是条带加分布式校验:

文中插图和部分文字引用自 【【硬件科普】磁盘阵列是什么东西?为什么需要磁盘阵列?不同阵列之间的区别是什么?】,感谢原作者的分享






评论
还没有人留言。