RAID介绍

一、RAID 是什么?

RAID ( Redundant Array of Independent Disks )即独立磁盘冗余阵列,简称为「磁盘阵列」,其实就是用多个独立的磁盘组成在一起形成一个大的磁盘系统,从而实现比单块磁盘更好的存储性能和更高的可靠性。

二、RAID 有哪些?

RAID方案常见的可以分为:

  • RAID0
  • RAID1
  • RAID5
  • RAID6
  • RAID10
  • RAID0 是一种非常简单的的方式,它将多块磁盘组合在一起形成一个大容量的存储。当我们要写数据的时候,会将数据分为N份,以独立的方式实现N块磁盘的读写,那么这N份数据会同时并发的写到磁盘中,因此执行性能非常的高。

    4ff9d77b7501ec3589a4f5c2f2af0641.png

    RAID0 的读写性能理论上是单块磁盘的N倍(仅限理论,因为实际中磁盘的寻址时间也是性能占用的大头)

    但RAID0的问题是,它并不提供数据校验或冗余备份,因此一旦某块磁盘损坏了,数据就直接丢失,无法恢复了。因此RAID0就不可能用于高要求的业务中,但可以用在对可靠性要求不高,对读写性能要求高的场景中。

    那有没有可以让存储可靠性变高的方案呢?
    有的,下面的RAID1就是。

  • RAID1
  • 503079bb2e1eb03ec138167d68fb6cf0.png

     

    如图,

    RAID1 是磁盘阵列中单位成本最高的一种方式。因为它的原理是在往磁盘写数据的时候,将同一份数据无差别的写两份到磁盘,分别写到工作磁盘和镜像磁盘,那么它的实际空间使用率只有50%了,两块磁盘当做一块用,这是一种比较昂贵的方案。

    RAID1其实与RAID0效果刚好相反。RAID1 这种写双份的做法,就给数据做了一个冗余备份。这样的话,任何一块磁盘损坏了,都可以再基于另外一块磁盘去恢复数据,数据的可靠性非常强,但性能就没那么好了。

    了解了RAID0和RAID1之后,我们发现这两个方案都不完美啊。
    这时候就该 性能又好、可靠性也高 的方案 RAID5 登场了。

  • RAID5

  • 这是目前用的最多的一种方式。
    因为 RAID5 是一种将 存储性能、数据安全、存储成本 兼顾的一种方案。

    在了解RAID5之前,我们可以先简单看一下RAID3,虽然RAID3用的很少,但弄清楚了RAID3就很容易明白RAID5的思路。

    RAID3的方式是:将数据按照RAID0的形式,分成多份同时写入多块磁盘,但是还会另外再留出一块磁盘用于写「奇偶校验码」。例如总共有N块磁盘,那么就会让其中额度N-1块用来并发的写数据,第N块磁盘用记录校验码数据。一旦某一块磁盘坏掉了,就可以利用其它的N-1块磁盘去恢复数据。

    但是由于第N块磁盘是校验码磁盘,因此有任何数据的写入都会要去更新这块磁盘,导致这块磁盘的读写是最频繁的,也就非常的容易损坏。

    RAID5的方式可以说是对RAID3进行了改进。

    RAID5模式中,不再需要用单独的磁盘写校验码了。它把校验码信息分布到各个磁盘上。例如,总共有N块磁盘,那么会将要写入的数据分成N份,并发的写入到N块磁盘中,同时还将数据的校验码信息也写入到这N块磁盘中(数据与对应的校验码信息必须得分开存储在不同的磁盘上)。一旦某一块磁盘损坏了,就可以用剩下的数据和对应的奇偶校验码信息去恢复损坏的数据。

    58664c74910801c942e34102286955f0.png

    RAID5校验位算法原理:P = D1 xor D2 xor D3 … xor Dn (D1,D2,D3 … Dn为数据块,P为校验,xor为异或运算)

    RAID5的方式,最少需要三块磁盘来组建磁盘阵列,允许最多同时坏一块磁盘。如果有两块磁盘同时损坏了,那数据就无法恢复了。

  • RAID6
  • 为了进一步提高存储的高可用,聪明的人们又提出了RAID6方案,可以在有两块磁盘同时损坏的情况下,也能保障数据可恢复。

    为什么RAID6这么牛呢,因为RAID6在RAID5的基础上再次改进,引入了双重校验的概念。

    RAID6除了每块磁盘上都有同级数据XOR校验区以外,还有针对每个数据块的XOR校验区,这样的话,相当于每个数据块有两个校验保护措施,因此数据的冗余性更高了。

    但是RAID6的这种设计也带来了很高的复杂度,虽然数据冗余性好,读取的效率也比较高,但是写数据的性能就很差。因此RAID6在实际环境中应用的比较少。

  • RAID10
  • RAID10其实就是RAID1与RAID0的一个合体。

    我们看图就明白了:

    cb75fbf385f656086ceff9b640f460da.png

    RAID10兼备了RAID1和RAID0的有优点。首先基于RAID1模式将磁盘分为2份,当要写入数据的时候,将所有的数据在两份磁盘上同时写入,相当于写了双份数据,起到了数据保障的作用。且在每一份磁盘上又会基于RAID0技术讲数据分为N份并发的读写,这样也保障了数据的效率。

  • RAID 特点

  • RAID技术的两大特点:一是速度、二是安全,由于这两项优点,RAID技术早期被应用于高级服务器中的SCSI接口的硬盘系统中,随着近年计算机技术的发展,PC机的CPU的速度已进入GHz 时代。IDE接口的硬盘也不甘落后,相继推出了ATA66和ATA100硬盘。这就使得RAID技术被应用于中低档甚至个人PC机上成为可能。RAID通常是由在硬盘阵列塔中的RAID控制器或电脑中的RAID卡来实现的。

  • 磁盘阵列

    随着RAID磁盘阵列技术的发展,存储的性能和安全性都有了很好的保障。对于中小项目常用的RAID磁盘阵列5(包括RAID磁盘阵列5e,RAID磁盘阵列5ee和RAID磁盘阵列6)这种级别的RAID磁盘阵列,都能保证在1-2块磁盘/FLASH出现故障的情况下,RAID磁盘阵列保证数据的完整性,但RAID磁盘阵列5的保护机制是否能完整的保护数据,答案却是否定的。

    RAID磁盘阵列5和RAID磁盘阵列6对于普通的磁盘故障有很好的纠错能力,但RAID磁盘阵列对于储存的底层故障,RAID磁盘阵列5和RAID磁盘阵列6都无法进行纠错恢复。

    硬件RAID磁盘阵列的缺点:可以检测并尝试恢复Noisy Error,我们常见的磁盘损坏包括Bit Rot就是代表性的显性错误,但是RAID磁盘阵列无法检测到隐性错误。常见的RAID磁盘阵列储存底层隐性错误有以下几种:

    Phantom writes “幻影写入”。RAID磁盘阵列磁盘已经发出指令写入磁道,由于RAID磁盘阵列内部故障,并未写入成功,但在RAID磁盘阵列储存表象为写入完成的状态。

    Misdirected reads or writes 误读写。举例:RAID磁盘阵列数据要在01扇区进行读写,却在02扇区做了这个操作,导致数据混乱。

    DMA parity errors DMA传输过程中发生的error。

    Accidental overwrites 在频繁的Swapping(文件交换)中数据误读写。

    随着RAID磁盘阵列储存设备技术的进化,上面这四种只是常见的Silent Error,当然会有其他更多的RAID磁盘阵列种类,涉及到很多RAID磁盘阵列底层的技术。

    我们遇到的RAID磁盘阵列VDD Error就是属于可以检测并尝试恢复RAID磁盘阵列Noisy Error,但是无法检测到RAID磁盘阵列Silent Error,所以故障层面只显示统一的RAID磁盘阵列VDD错误,但RAID磁盘阵列底层的故障却不一定是相同的。

    对于硬件RAID磁盘阵列来说,RAID磁盘阵列在阵列卡和光纤卡的级别,RAID磁盘阵列并不会去确认故障是哪一种error,这是硬件RAID磁盘阵列先天的硬件特性限制。

    我们可以看看下面这个例子,做了RAID磁盘阵列6,并划分了LUN。RAID磁盘阵列在故障的表现层面,RAID磁盘阵列柜的硬件并未出现故障告警,RAID磁盘阵列出现VDD错误告警,RAID磁盘阵列在告警之后又进行了修复:

    RAID磁盘阵列VDD Repair start开始修复的动作。当VDD Repair到一定程度,完全无法repair的时候,才会表现为服务器告警(故障灯亮)。

    但由于RAID磁盘阵列底层故障是Silent Error,不可避免的会有几率出现hantom writes 或Misdirected reads or writes 读写误载 这些Silent Error,这些错误导致的结果就是错误的RAID磁盘阵列数据被相互校检到RAID磁盘阵列5的其他盘了,这在硬件RAID磁盘阵列属于不可勘测的部分(当然在超高端的储存设备还是有这些检测的机制)。

    在更换了故障的RAID磁盘阵列磁盘之后。我们回到Storage Manager的日常event,

    像上面这种例子的RAID磁盘阵列故障,在近几年的RAID磁盘阵列储存故障发生得越来越频繁,一方面由于RAID磁盘阵列储存容量的翻倍提升带来的磁盘/FLASH密度高速增减,另一方面不断下降的成本也导致RAID磁盘阵列感觉不如原来的稳定了。

    所以RAID磁盘阵列5(e、ee、raid6)级别的这种RAID磁盘阵列技术,并非在单盘双盘损坏的情况下都能保持良好的重构工作。在一些RAID磁盘阵列数据安全需求高、成本又受限的地方,我们不能只依靠RAID磁盘阵列5的技术来规避数据丢失。

    ZFS文件系统,在系统层面能补充硬件RAID磁盘阵列的这种不可规避的数据丢失情况,所以在每个RAID磁盘阵列项目的规划初期,应该要规划好相应的RAID磁盘阵列系统和文件格式。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值