超能课堂(122):磁盘阵列RAID是什么?

2018-1-11 16:53  |  作者:Strike   |  关键字:超能课堂,RAID,磁盘阵列

随着SSD的普及现在已经很少人在电脑里组RAID了,然而对于注重数据安全企业、工作站和数据中心来说RAID是相当重要的,个人用户为了保护重要数据也会选择组建RAID 1阵列,今天的超能课堂就来说说这个RAID是什么东西。

本文约3259字,需5分钟阅读

对于RAID这个词玩电脑的人其实应该都听过,然而好像对自己来说又不太会接触到的东西,其实随着SSD的普及,RAID这个东西离普通个人消费者好像越来越远了, 因为现在SSD的性能对绝大多数人来说已经足够快了,而且嫌弃SATA SSD不够快的话还有更快的PCI-E NVMe可选,现在部分高端OEM主机或游戏笔记本会使用两个SSD组RAID 0应该是最常见RAID组合了。

然而这对于注重数据安全的企业、工作站和数据中心来说RAID是相当重要的,也会有个人用户为了保护重要数据也会选择组建RAID 1阵列,多盘位NAS也会自动或者推荐用户组RAID来保护数据,今天的超能课堂就来说说这个RAID是什么东西。

RAID的全称是Redundant Array of Independent Disks独立硬盘冗余阵列,简称磁盘阵列,基本上就是把多个 相对便宜的硬盘组合起来,让他们变成一个 硬盘阵列组,使性能和容量达到甚至超过那些更为昂贵、巨大的硬盘,组建磁盘阵列的多个物理硬盘会被组合成一个逻辑扇区,在操作系统里面看只会被识别成一个硬盘。

另外RAID有多个不同的等级,不同等级的RAID的组建方式与功能都不同,较单一硬盘相比会有以下一个或多个方面的好处:更大的容量,更强的容错能力,更快的速度与更大的吞吐量。

标准RAID有:RAID 0、RAID 1、RAID 2、RAID 3、RAID 4、RAID 5、RAID 6,此外还有混合RAID包括:RAID 10/01、RAID 30、RAID 50、RAID 53、RAID 60,其中较为常见的有RAID 0、RAID 1、RAID 5、RAID 6和RAID 10,其他的都比较少用,本文只会介绍这几个常用的,其他的简单带过。


常用的RAID等级对比

首先要说明一下的是JBOD其实并不算RAID, 它只是简单的把几个硬盘的空间合并变成一个大的逻辑硬盘,容量等于所有硬盘之和,数据的存放与写入是从第一个硬盘开始按硬盘的顺序来进行的,每次读写操作只是作用与数据所在的硬盘,所以并没有增强读写性能的作用,读写性能和单一硬盘无异,而且也没有错误备份的机制,一旦出现错误那么这块硬盘上的数据就将丢失,如果是第一颗硬盘损坏的话那么整个阵列的数据可能都会丢失,因为通常来说磁盘分区表就在第一个硬盘上,不过对未损坏硬盘进行数据恢复的话那些数据是有可能恢复的。

RAID 0


图片取自维基百科RAID条目

RAID 0是最早出现的RAID模式,也称为Striping(条带)存储,实现起来的方式也非常简单,只需要两块或以上的硬盘就可组建,它将磁盘并列起来组成一个大容量磁盘,数据是分段后分散存储在各个磁盘之中,读写操作都会涉及到各个硬盘,读写性能等于所有硬盘性能之和,所以RAID 0的速度是最快的,而且没有任何容错备份,所以磁盘可用空间也是最大的,空间利用率达到100%,然而就是因为没有容错能力这使得整个阵列变得非常不靠谱,如果有一个硬盘损坏的话所有数据都会丢失,而且因为RAID 0的数据是分散布置的,所有数据恢复几乎是不可能的。RAID 0主要应用在对性能有要求然而对数据安全性没要求的场合,比如个人电脑的系统盘,新濠天地制作的系统盘和缓存盘等,重要数据不要保存在RAID 0的阵列组里面。

RAID 1

RAID 1又称为mirroring(镜像)存储,与RAID 0这种要性能不要安全的方式不同,RAID 1的原理是把一个硬盘里的数据完全镜像到另一个硬盘上,两个硬盘保持完全一样的数据,RAID 1的数据安全性是最好的,只要有一个硬盘还健在数据就安全,然而空间利用率也是最低的,无论你拿多少个硬盘来组RAID 1,磁盘阵列组的容量也只等于容量最小的那个硬盘,其他硬盘空余的空间可以分区独立使用不会浪费,写入速度也等于写入速度最慢那个硬盘,数据读取速度倒是等于硬盘数量的倍数。RAID 1主要应用在保存关键性重要数据的场合,或者NAS盘位不足够组RAID 5的场合,对,就是指那些双盘位NAS。

RAID 5

RAID 1虽然对数据有良好的保护性,但是磁盘空间利用率太低了,不适合组建大容量的磁盘阵列,这时候就需要RAID 5出场了,RAID 5是一种储存性能、数据安全和存储成本兼顾的存储解决方案。组建RAID 5至少需要三块硬盘,它使用的是Disk Striping(硬盘分区)技术 ,并不是对存储数据进行备份,而是把数据和对应的奇偶校验信息分散存放到各个硬盘上,当阵列组里面的一个硬盘发生故障后,可以利用剩下的数据和奇偶校验信息去恢复损坏的数据。

RAID 5可以说是RAID 0与RAID 1的折中方案,假设用n个硬盘组建RAID 5阵列,读写性能和磁盘可用空间都等于n-1个硬盘之和,性能和空间利用率相对RAID 0来说是要低一点,数据安全性也没RAID 1那么高,然而综合来说RAID 5应该来说是最好的,而且存储成本相对便宜。

RAID 6

RAID 6与RAID 5其实是比较相似的,它增加了第二个独立的奇偶校验信息块,两个独立的奇偶校验系统使用不同的算法,数据的可靠性比RAID 5更高,可容许两块硬盘故障而保持数据的完整性,不过由于RAID 6需要比RAID 5更多的磁盘空间去存储另一个奇偶校验系统的数据,所以需要N+2个硬盘,组建RAID 6至少得4个硬盘才行,另外RAID 6阵列的数据传输需要大量的I/O和计算量,所以基本上不会去用软件实现的,现在的主板也很少支持RAID 6,通常都需要专用RAID卡来实现,另外由于写入操作时需要进行大量的奇偶校验计算,所以写入性能也不算好。

基本上就只有那些对数据安全要求的应用才会用到RAID 6,比如数据中心、信息中心等,其他大多数情况下用RAID 5就已经足够了。

RAID 10

RAID 1+0是一种混合RAID,现在都简称成RAID 10,它是RAID 0与RAID 1的混合体,继承了RAID 0的性能与RAID 1的安全,然而也继承了RAID 1的低磁盘可用空间,组建RAID 1+0至少需要4个硬盘,磁盘空间可用率最高只有50%,RAID 1+0是先把硬盘分成两组分别组建RAID 1阵列,然后在把这两组RAID 1阵列组建RAID 0,也就是组建了两层RAID,它的读取性能基本就是阵列组内硬盘总数n,写入速度则是n/2,数据的安全性也很好,即使阵列组内的一个硬盘故障整个阵列组也可以正常工作,只要不是整组RAID 1挂掉数据就是安全的。

当需要更换RAID 10中硬盘的时候,只需要直接更换损坏的那个硬盘就可以了,然后把那组RAID 1阵列中的另一个硬盘上的数据恢复过去就行了,在数据恢复的过程中整个RAID 10阵列依然是可以运作的。

另外还有一个RAID 0+1的组合,就是先组建RAID 0再组建RAID 1,然而这种组合的可靠性比RAID 1+0要低,因为只要有一个硬盘出现故障同组的RAID 0就会整体停止工作,只剩下另一组单独工作,当然了数据还是安全的,实际应用中RAID 1+0也比RAID 0+1更为常用,现在的主板基本都是支持RAID 1+0而不是支持RAID 0+1。

介绍完RAID 10/01之后大家应该都能推理出其他的复合RAID如:RAID 50、RAID 53这些结构是怎么样的了,数字在前的那个就是低层磁盘阵列,在后面的就是高层磁盘阵列,所以其他的复合RAID就不展开说了。

那些不太常用的RAID:

RAID 2:是RAID 0的改良版,其实就是带汉明码校验的RAID 0,将数据条块分布在不同的硬盘上,条块以位或者字节为单位,并使用汉明码技术来提供错误检查及恢复,由于这一技术的加入使得磁盘阵列能允许一个硬盘的故障并保持数据完整,由于需汉明码的加入使得数据的整体数据会比原来的大一些,组建RAID 2至少需要3个硬盘,而且由于汉明码的特性导致系统花销过大。

RAID 3:它采用Bit-interleaving(数据交错存储)技术,RAID 3可以理解为带奇偶校验的RAID 0,组建RAID 3至少需要三个硬盘,其中两个的运行方式其实就是RAID 0,另外一个是用来存放奇偶校验数据的,就是RAID 0外加一个奇偶校验盘,RAID 3容许单盘出错,损坏硬盘里的数据可以根据奇偶校验盘和其他硬盘里的信息进行恢复,如果坏掉的是存放奇偶校验数据的盘的话,其实不会对数据有任何影响,其实它和RAID 5很像,只不过RAID 3是把奇偶校验数据单独存放在一个硬盘里,而RAID 5是把奇偶校验数据分散在各个硬盘里。

RAID 4:结构与RAID 3类似,也带有独立的奇偶校验盘,不过所用技术是Block interleaving(块交织技术),在数据分割上RAID 3对数据的访问是按位进行的,RAID 4是以数据块为单位(可以把一个文件理解成一个数据块),RAID 4的好处就是读取数据时不同硬盘可以执行不同的读取命令,不像其他RAID 0/3/5那样读取一个文件都要动用到全部硬盘,然而写入文件时会受制于奇偶校验盘的性能,同一时间只能做一次写入操作,另外数据恢复也比RAID 3大得多。

上面这三种RAID现在基本上都被RAID 5所取代了,不过RAID 4在某些商用设备上还能见得到,比如NetApp公司的NAS。

RAID 7:它并非公开的RAID标准,现已经成为Storage Computer Corporation专利硬件产品的名称,它其实是一套独立的存储计算机系统,自带操作系统和管理工具,能够独立运行,性能上超越了其他RAID标准的产品,然而价格也相当的贵。

  • badlyzzw高中生 01-16 15:16

    支持(0)  |   反对(0)  |   举报  |   回复

    30#

  • 游客  01-15 08:05

    家里用的来说,基本上最简单就是RAID1,损失点容量但安全有保证,至于RAID5,不建议,损坏一盘然后重建的过程很是凶险,大数据量的情况你得求求另外几个盘别在重建过程中出错。。。RAID6 更安全,但要求的盘位够多才能显出优势,否则四盘位下,还不如直接两个RAID1呢。

    支持(0)  |   反对(0)  |   举报  |   回复

    29#

  • tianyu512大学生 01-14 07:31

    游客:

    学习了,刚买了2个4T准备做RAID1
    01-11 17:16
  • 支持(1)  |   反对(0)  |   举报  |   回复
  • 游客:

    但是我考虑了下还是决定采用两个盘独立,NAS内部备份的方案,这样我的电脑数据每天增量备份到盘1,再每周内部备份到盘2,盘2的使用频率更低寿命更长,也不会受到盘1影响,盘1意外删除也不会影响盘2。这样我的关键数据同时存在2个设备的2个盘上,历史数据同时存在3个盘上,同时失效的概率更低
    01-11 21:52
  • 支持(0)  |   反对(0)  |   举报  |   回复
  • 游客:

    我也是这个思路,我目前是小数据模式,所以需要备份的数据都是按使用频率放在不同的盘上。
    01-12 15:57
  • 支持(0)  |   反对(0)  |   举报  |   回复
  • 游客:

    +1,重要的家庭照撑死也就100G~
    01-13 21:15
  • 支持(0)  |   反对(0)  |   举报  |   回复
  • 建议各位再做一个异地备份,数据无价

    支持(0)  |   反对(0)  |   举报  |   回复

    28#

  • 游客  01-13 21:15

    游客:

    学习了,刚买了2个4T准备做RAID1
    01-11 17:16
  • 支持(1)  |   反对(0)  |   举报  |   回复
  • 游客:

    但是我考虑了下还是决定采用两个盘独立,NAS内部备份的方案,这样我的电脑数据每天增量备份到盘1,再每周内部备份到盘2,盘2的使用频率更低寿命更长,也不会受到盘1影响,盘1意外删除也不会影响盘2。这样我的关键数据同时存在2个设备的2个盘上,历史数据同时存在3个盘上,同时失效的概率更低
    01-11 21:52
  • 支持(0)  |   反对(0)  |   举报  |   回复
  • 游客:

    我也是这个思路,我目前是小数据模式,所以需要备份的数据都是按使用频率放在不同的盘上。
    01-12 15:57
  • 支持(0)  |   反对(0)  |   举报  |   回复
  • +1,重要的家庭照撑死也就100G~

    支持(0)  |   反对(0)  |   举报  |   回复

    26#

  • reizhi大学生 01-13 20:56

    介绍下unRAID吧

    支持(0)  |   反对(0)  |   举报  |   回复

    25#

  • 游客  01-13 16:12

    游客:

    RAID5其实非常不可靠,和是否有热备没关系。
    主要因为重建的时候,相当于是N-1块盘在与RAID0相当的可靠性(坏一块全坏)下工作,而且现在的大硬盘重建要连续读出全盘数据高达数TB,一旦遇到任何一点错误就会导致重建失败。再加上阵列中有硬盘挂掉需要重建的时候,硬盘都已经比较旧了,所以RAID5非常不靠谱。
    实际应用中通常使用RAID6,而不是RAID5。
    01-11 19:36
  • 支持(5)  |   反对(0)  |   举报  |   回复
  • 游客:

    主要看单盘容量,10TB机械组RAID5恢复时间过长,但600GB、900GB机械单盘就可以接受,3到4小时即可完成重构,这还是业务不中断的情况下。重要大数据一般就是多阵列镜像,相当于RAID5+1;或者,现在比较火的分布式存储。
    01-12 13:35
  • 支持(2)  |   反对(0)  |   举报  |   回复
  • 确实如此,容量小的话,重建时间短,但说不影响使用是不可能的。300G 15Krpm SAS硬盘重建不需要一个小时。至于那些动辄多少个T还用软Raid卡组Raid的的确危险。

    支持(0)  |   反对(0)  |   举报  |   回复

    23#

  • 游客  01-12 15:57

    游客:

    学习了,刚买了2个4T准备做RAID1
    01-11 17:16
  • 支持(1)  |   反对(0)  |   举报  |   回复
  • 游客:

    但是我考虑了下还是决定采用两个盘独立,NAS内部备份的方案,这样我的电脑数据每天增量备份到盘1,再每周内部备份到盘2,盘2的使用频率更低寿命更长,也不会受到盘1影响,盘1意外删除也不会影响盘2。这样我的关键数据同时存在2个设备的2个盘上,历史数据同时存在3个盘上,同时失效的概率更低
    01-11 21:52
  • 支持(0)  |   反对(0)  |   举报  |   回复
  • 我也是这个思路,我目前是小数据模式,所以需要备份的数据都是按使用频率放在不同的盘上。

    支持(0)  |   反对(0)  |   举报  |   回复

    22#

  • 游客  01-12 13:45

    游客:

    学习了,刚买了2个4T准备做RAID1
    01-11 17:16
  • 支持(1)  |   反对(0)  |   举报  |   回复
  • 家用就冷备吧,RAID1在4K写入下会大幅降低性能,因为要等待两块盘的写入完成信号;4K读会有少量提升。

    支持(0)  |   反对(0)  |   举报  |   回复

    21#

  • 游客  01-12 13:35

    游客:

    RAID5其实非常不可靠,和是否有热备没关系。
    主要因为重建的时候,相当于是N-1块盘在与RAID0相当的可靠性(坏一块全坏)下工作,而且现在的大硬盘重建要连续读出全盘数据高达数TB,一旦遇到任何一点错误就会导致重建失败。再加上阵列中有硬盘挂掉需要重建的时候,硬盘都已经比较旧了,所以RAID5非常不靠谱。
    实际应用中通常使用RAID6,而不是RAID5。
    01-11 19:36
  • 支持(5)  |   反对(0)  |   举报  |   回复
  • 主要看单盘容量,10TB机械组RAID5恢复时间过长,但600GB、900GB机械单盘就可以接受,3到4小时即可完成重构,这还是业务不中断的情况下。重要大数据一般就是多阵列镜像,相当于RAID5+1;或者,现在比较火的分布式存储。

    支持(2)  |   反对(0)  |   举报  |   回复

    20#

  • 游客  01-12 12:33

    据说nvme ssd的故障率比raid卡还低,所以全面淘汰raid了,from年采购硬件几十亿的公司

    支持(0)  |   反对(0)  |   举报  |   回复

    19#

  • 游客  01-12 11:03

    游客:

    不组RAID,SSD能保证数据安全?
    01-12 10:39
  • 支持(0)  |   反对(0)  |   举报  |   回复
  • 这个秃头就是个(哔~),理他作甚

    支持(0)  |   反对(0)  |   举报  |   回复

    18#

  • 游客  01-12 10:39

    不组RAID,SSD能保证数据安全?

    支持(0)  |   反对(0)  |   举报  |   回复

    17#

  • Strike编辑 01-12 09:59

    游客:

    楼主,图一的这种表格是用什么软件做的
    01-11 17:20
  • 支持(0)  |   反对(0)  |   举报  |   回复
  • 游客:

    我倒,Excel吧
    01-11 21:59
  • 支持(0)  |   反对(0)  |   举报  |   回复
  • 就是Excel……

    支持(0)  |   反对(0)  |   举报  |   回复

    16#

  • 游客  01-12 09:24

    430戴尔730xd,每天zabbix都会有几个raid5报错的....每周都要联系dell800来替换,他们嫌我们烦,那他们选料的时候为啥要选三星的呢。。。。

    支持(0)  |   反对(0)  |   举报  |   回复

    15#

  • 游客  01-12 08:55

    游客:

    亲身经历,曾经用LSI 9260组RAID 5,结果有日报错,话RAID需要重组,那么就重组啦,结果组完找不到RAID那个盘,用恢复软件看数据还在,分区表没了,倒。。。那个DiskGenius貌似很简单就能修好,但报价太贵,用一用要300几,太贵不舍得,死死地气用另外一个软件直接搬数据算了。。。之后到现在再也不用RAID了,还不如盘对盘备份!
    01-11 18:57
  • 支持(6)  |   反对(0)  |   举报  |   回复
  • 我在扩容的时候碰到过raid5失败,不过是在qnap上面,后来让qnap的人远程过来弄好了,先拷数据出来然后再重新建立raid了。不过我还是比较信任raid5的,刚从raid5上面换了一个有坏道的硬盘下来。

    支持(0)  |   反对(0)  |   举报  |   回复

    14#

  • 游客  01-12 08:51

    游客:

    组建的时候是不是必须要空的磁盘才可以?,如果磁盘本身有数据可不可以直接组建阵列?
    01-11 22:28
  • 支持(1)  |   反对(0)  |   举报  |   回复
  • 新建raid硬盘里面的数据全部会没有的。

    支持(0)  |   反对(0)  |   举报  |   回复

    13#

  • 游客  01-12 08:35

    游客:

    组建的时候是不是必须要空的磁盘才可以?,如果磁盘本身有数据可不可以直接组建阵列?
    01-11 22:28
  • 支持(1)  |   反对(0)  |   举报  |   回复
  • 印象中要全盘格式化

    支持(0)  |   反对(0)  |   举报  |   回复

    12#

  • 游客  01-11 22:28

    组建的时候是不是必须要空的磁盘才可以?,如果磁盘本身有数据可不可以直接组建阵列?

    支持(1)  |   反对(0)  |   举报  |   回复

    9#

  • 游客  01-11 21:59

    游客:

    楼主,图一的这种表格是用什么软件做的
    01-11 17:20
  • 支持(0)  |   反对(0)  |   举报  |   回复
  • 我倒,Excel吧

    支持(0)  |   反对(0)  |   举报  |   回复

    8#

  • 游客  01-11 21:52

    游客:

    学习了,刚买了2个4T准备做RAID1
    01-11 17:16
  • 支持(1)  |   反对(0)  |   举报  |   回复
  • 但是我考虑了下还是决定采用两个盘独立,NAS内部备份的方案,这样我的电脑数据每天增量备份到盘1,再每周内部备份到盘2,盘2的使用频率更低寿命更长,也不会受到盘1影响,盘1意外删除也不会影响盘2。这样我的关键数据同时存在2个设备的2个盘上,历史数据同时存在3个盘上,同时失效的概率更低

    支持(0)  |   反对(0)  |   举报  |   回复

    7#

查看全部评论(25)

回复