知识库

关注存储安全从磁盘阵列开始

一、  RAID 简介
      RAID是英文Redundant Array of Independent Disks的缩写,翻译成中文意思是“独立磁盘冗余阵列”,有时也简称磁盘阵列(Disk Array)。RAID 就是以多个磁盘组成并行工作的磁盘阵列的方式来提高数据存取的速度和安全两方面的能力。
      首先,RAID 成本低,功耗小,传输速率高。可以让很多磁盘驱动器同时传输数据,而这些磁盘驱动器在逻辑上又是一个磁盘驱动器,所以使用 RAID 可以达到单个的磁盘驱动器几倍、几十倍甚至上百倍的速率。此外, RAID 可以提供容错功能。因为普通磁盘驱动器无法提供容错功能,如果不包括写在磁盘上的 CRC (循环冗余校验)码的话。 RAID 和容错是建立在每个磁盘驱动器的硬件容错功能之上的,所以它提供更高的安全性。最后RAID 比起传统的大直径磁盘驱动器来,在同样的容量下,价格要低许多。
      RAID 技术经过不断的发展,现在已拥有了JBOD,RAID-0,RAID-1,RAID-2,RAID-3,RAID-4,RAID-5,RAID-6,RAID-7,RAID-10,RAID-50等多个级别。
      RAID在日常应用中,为了达到最好的性能以及安全性,一般采用多块同品牌同容量同型号的磁盘。

 二 、RAID 模式
      JBOD:(Just a Bunch Of Disks)JBOD并不算是RAID的等级。只是将多个磁盘空间合并成一个大的逻辑磁盘,不具有容错机制。资料的存放是由第一颗磁盘开始依序往后存放,即操作系统看到的是一个大磁盘(由许多小磁盘组成)。但如果磁盘损毁,则该颗硬盘上的所有数据将无法救回。若第一颗硬盘损坏,通常无法作恢复(因大部分文件系统将文件表存在磁盘前端,即第一颗),失去文件表即失去一切数据。
      RAID 0:将多个磁盘合并成一个大的磁盘,不具有冗余,并行I/O,速度最快。RAID 0亦称为带区集。它是将多个磁盘并列起来,成为一个大磁盘。在存放数据时,其将数据按磁盘的个数来进行分段,然后同时将这些数据写进这些盘中。所以,在所有的级别中,RAID 0的速度是最快的。但是RAID 0没有冗余功能,如果一个磁盘(物理)损坏,则所有的数据都会丢失。
      理论上越多的磁盘效能就等于[单一磁盘效能]×[磁盘数],但实际上受限于总线I/O瓶颈及其它因素的影响,RAID 效能会随边际递减,也就是说,假设一个磁盘的效能是50MB/秒,两个磁盘的RAID 0效能约96MB/秒,三个磁盘的RAID 0也许是130MB/秒而不是150MB/秒。所以,两个磁盘的RAID 0最能明显感受到效能的提升。
      RAID 1:两组以上的N个磁盘相互作镜像,在一些多线程操作系统中能有很好的读取速度,另外写入速度有微小的降低。除非拥有相同资料的主磁盘与镜像同时损坏,否则只要一个磁盘正常即可维持运作,可靠性最高。RAID 1就是镜像。其原理为在主硬盘上存放数据的同时也在镜像硬盘上写一样的数据。当主硬盘(物理)损坏时,镜像硬盘则代替主硬盘的工作。因为有镜像硬盘做数据备份,所以RAID 1的数据安全性在所有的RAID级别上来说是最好的。但无论用多少磁盘做RAID 1,仅算一个磁盘的容量,是所有RAID上磁盘利用率最低的一个级别。
      RAID 2:这是RAID 0的改良版,以汉明码(Hamming Code)的方式将数据进行编码后分割为独立的位元,并将数据分别写入硬盘中。因为在数据中加入了错误修正码(ECC,Error Correction Code),所以数据整体的容量会比原始数据大一些,RAID2最少要三台磁盘机方能运作。
      RAID 3:采用Bit-interleaving(数据交错储存)技术,它需要通过编码再将数据位元分割后分别存在硬盘中,而将同位元检查后单独存在一个硬盘中,但由于数据内的位元分散在不同的硬盘上,因此就算要读取一小段数据资料都可能需要所有的硬盘进行工作,所以这种规格比较适于读取大量数据时使用。
      RAID 4:它与RAID 3不同的是它在分割时是以区块为单位分别存在硬盘中,但每次的数据存取都必须从同位元检查的那个硬盘中取出对应的同位元数据进行核对,由于过于频繁的使用,所以对硬盘的损耗可能会提高。
      RAID 5:是一种存储性能、数据安全和存储成本兼顾的存储解决方案。它使用的是硬盘分割技术。RAID 5 至少需要三颗硬盘,RAID 5不对存储的数据进行备份,而是把数据和相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上。当RAID5的一个磁盘数据发生损坏后,利用剩下的数据和相应的奇偶校验信息去恢复被损坏的数据。 RAID 5可以理解为是RAID 0和RAID 1的折衷方案。RAID 5可以为系统提供数据安全保障,但保障程度要比镜像低而磁盘空间利用率要比镜像高。RAID 5具有和RAID 0相近似的数据读取速度,只是多了一个奇偶校验信息,写入数据的速度相当的慢,若使用“回写快取”可以让效能改善不少。同时由于多个数据对应一个奇偶校验信息,RAID 5的磁盘空间利用率要比RAID 1高,存储成本相对较便宜。
      RAID 6:增加了第二个独立的奇偶校验信息块。两个独立的奇偶系统使用不同的算法,数据的可靠性非常高,即使两块磁盘同时失效也不会影响数据的使用。但RAID 6需要分配给奇偶校验信息更大的磁盘空间,相对于RAID 5有更大的“写损失”,因此“写性能”非常差。较差的性能和复杂的实作方式使得RAID 6很少得到实际应用。
      同一阵列中最多容许两个磁盘损坏。更换新磁盘后,资料将会重新算出并写入新的磁盘中。依照设计理论,RAID 6必须具备四个以上的磁盘才能生效。
      RAID 7:是Storage Computer Corporation的专利硬体产品名称,RAID 7是以RAID 3及RAID 4为基础所开发,但是经过强化以解决原来的一些限制。另外,在实作中使用大量的快取记忆体以及用以实现异步阵列管理的专用即时处理器,使得RAID 7可以同时处理大量的IO要求,所以效能甚至超越了许多其他RAID标准的实作产品。但也因为如此,在价格方面非常的高昂。
      RAID 10/01:其实可细分为RAID 1+0或RAID 0+1。RAID 1+0是先镜射再分割资料。是将所有硬盘分为两组,视为是RAID 0的最低组合,然后将这两组各自视为RAID 1运作。RAID 1+0有着不错的读取速度,而且拥有比RAID 0更高的资料保护性。RAID 0+1则是跟RAID 1+0的程序相反,是先分割再将资料镜射到两组硬盘。它将所有的硬盘分为两组,变成RAID 1的最低组合,而将两组硬盘各自视为RAID 0运作。RAID 0+1比起RAID 1+0有着更快的读写速度,不过也多了一些会让整个硬盘组停止运转的机率;因为只要同一组的硬盘全部损毁,RAID 0+1就会停止运作,而RAID 1+0则可以在牺牲RAID 0的优势下正常运作。
      RAID 10巧妙的利用了RAID 0的速度以及RAID 1的保护两种特性,不过它的缺点是需要的硬盘数较多,因为至少必须拥有四个以上的偶数硬盘才能使用。
      RAID 50:被称为镜象阵列条带,由至少六块硬盘组成,像RAID0一样,数据被分割成条带,在同一时间内向多块磁盘写入;像RAID5一样,也是以数据的校验位来保证数据的安全,且校验条带均匀分布在各个磁盘上。其目的在于提高RAID5的读写性能。
      RAID 53:它拥有一个镜射条带阵列,硬盘里其中一个条带就是一个是由3组以上的RAID 5组成RAID 3硬盘阵列。
      综上所述,RAID2、3、4较少实际应用,因为RAID5已经涵盖了所需的功能,因此RAID2、3、4大多只在研究领域有实作,而实际应用上则以RAID5或RAID6为主。RAID4有应用在某些商用机器上,像是NetApp公司设计的NAS系统就是使用RAID4的设计概念

关注我们

Powered by 武汉华魅科技有限公司 © 2018-2022 备案号:鄂ICP备14004131号-1