小李同学 keep digging deeper
硬件

什么是磁盘整列,Raid 0和Raid 1有什么区别

3 阅读 — 字

磁盘阵列(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 是条带加分布式校验:

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

本文作者 小李同学,转载请注明出处。

评论

还没有人留言。

写一条

提交后会先进站主的待审列表,通过之后才公开。

搜索文章

输入关键词搜索文章。