菜鸟进阶之三:RAID知识/组建全面解析
RAID如何实现数据存储的高稳定性呢?我们不妨来看一下它的工作原理。RAID按照实现原理的不同分为不同的级别,不同的级别之间工作模式是有区别的。整个的RAID结构是一些磁盘结构,通过对磁盘进行组合达到提高效率,减少错误的目的,不要因为这么多名词而被吓坏了,它们的原理实际上十分简单。问了便于说明,下面示意图中的每个圆饼代表一个磁盘,竖的叫块或磁盘阵列,横称之为带区。
简单点说,RAID的功能就是把多个硬盘组合成为一个逻辑磁区,因此,操作系统只会把它当作一个硬盘。RAID系统的类型有多种方式,如RAID-0,RAID-1,RAID-2,RAID-3,RAID-4,RAID-5,RAID-6,RAID-10,RAID-53等。下面我们分别来看看这些RAID类型的区别以及用途:
RAID 0
将多个磁盘合并成一个大的磁盘,不具有冗余,并行I/O,速度最快。RAID 0亦称为带区集。它是将多个磁盘并列起来,成为一个大磁盘。在存放数据时,其将数据按磁盘的个数来进行分段,然后同时将这些数据写进这些盘中。 所以,在所有的级别中,RAID 0的速度是最快的。但是RAID 0没有冗余功能,如果一个磁盘(物理)损坏,则所有的数据都会丢失。
RAID 1
两组以上的N个磁盘相互作镜像,速度没有提高,但是允许N-1个磁盘损坏,可靠性最高。RAID 1就是镜像。其原理为在主硬盘上存放数据的同时也在镜像硬盘上写一样的数据。当主硬盘(物理)损坏时,镜像硬盘则代替主硬盘的工作。因为有镜像硬盘做数据备份,所以RAID 1的数据安全性在所有的RAID级别上来说是最好的。但无论用多少磁盘做RAID 1,仅算其中一半磁盘的容量, 是所有RAID上磁盘利用率最低的一个级别。
RAID 2
这是RAID 0的改良版,以汉明码(en:Hamming Code)的方式将数据进行编码后分割为独立的位元,并将数据分别写入硬盘中。因为在数据中加入了错误修正码(ECC,Error Correction Code),所以数据整体的容量会比原始数据大一些,RAID2最少要三台硬盘方能运作。
RAID 3
采用Bit-interleaving(数据交错存储)技术,它需要通过编码再将数据位元分割后分别存在硬盘中,而将同位元检查后单独存在一个硬盘中,但由于数据内的位元分散在不同的硬盘上,因此就算要读取一小段数据资料都可能需要所有的硬盘进行工作,所以这种规格比较适于读取大量数据时使用。
RAID 4
它与RAID 3不同的是它在分割时是以区块为单位分别存在硬盘中,但每次的数据存取都必须从同位元检查的那个硬盘中取出对应的同位元数据进行核对,由于过于频繁的使用,所以对硬盘的损耗可能会提高 (Block interleaving)。
RAID 5
RAID Level 5 是一种存储性能、数据安全和存储成本兼顾的存储解决方案。它使用的是Disk Striping(硬盘分割)技术。RAID 5 至少需要三颗硬盘, RAID 5不对存储的数据进行备份,而是把数据和相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上。当RAID5的一个磁盘数据发生损坏后,利用剩下的数据和相应的奇偶校验信息去恢复被损坏的数据。 RAID 5可以理解为是RAID 0和RAID 1的折衷方案。RAID 5可以为系统提供数据安全保障,但保障程度要比Mirror低而磁盘空间利用率要比Mirror高。RAID 5具有和RAID 0相近似的数据读取速度,只是多了一个奇偶校验信息,写入数据的速度比对单个磁盘进行写入操作稍慢。同时由于多个数据对应一个奇偶校验信息,RAID 5的磁盘空间利用率要比RAID 1高,存储成本相对较低廉。
RAID 6
同一阵列中容许两个硬盘同时失效(或是当一个失效后还来不及更换便有第二个失效)后.更换新硬盘时再由另两个正常硬盘将备份的资料建立在新的硬盘中.所以至少必须具备四或四个以上硬盘才能生效。
RAID 10、RAID 53和RAID 0+1
这种RAIDxy的类型实际上就是RAID x与RAID y的组合方式。比如说RAID 10就是RAID 1+0,即先组建两组RAID 1镜像,然后再将两组RAID 1镜像组建成为RAID 0;而RAID 53实际上就是RAID 5+3模式,很好理解。需要注意到是,RAID 10并不等于RAID 0+1,实现的顺序不一样,功能也是不一样的。
JBOD
严格的说,JBOD并不属于RAID的范畴,只是将多个磁盘空间合并成一个大的逻辑磁盘,不具有错误冗余机制。资料的存放机制是由第一颗磁盘开始依序往后存放,即操作系统看到的是一个大磁盘(由许多小磁盘组成)。但如果磁盘损毁,则该颗硬盘上的所有资料将无法救回。若第一颗硬盘损坏,通常无法作救援(因大部分档案系统将档案表存在磁盘前端,即第一颗),失去档案表即失去一切资料。
JBOD在组建过程中,一般用英文Spanned。
在实际的应用中,RAID2~4并不存在,因为RAID5已经涵盖了所需的功能。因此RAID2~4目前只有在研究领域有实作,而在实际应用上则以RAID 0、1、0+1、5或RAID6为主。但是对于我们普通用户来说,用的最多的也就是RAID 0、1、0+1和RAID 5,所以本文我们将重点对这几个RAID类型进行讲解。