RAID(Redundant Arrays of independent Disks) 磁盘阵列


Hard-RAID


RAID-0:(等量模式, stripe):效能最佳

当一个文件要写入 RAID 时,该文件会依据区块的大小切割好,之后再依序向每个硬盘会交错的存放数据, 因此当你的数据要写入 RAID 时,数据会被等量的放置在各个硬盘上面。举例来说,你有两块硬盘组成 RAID-0 , 当你有 100MB 的数据要写入时,每个硬盘会各被分配到 50MB 的储存量。

raid0.gif

硬盘越多组成的RAID-0效能会越高,但是因为是交叉存储,如果一旦有一块硬盘有问题,那么数据将会丢失。

最好是两块相同容量的组RAID-0,否则会出现小的那块用完后,只有大的那块,造成效能下降。


RAID-1:(映射模式, mirror):完整备份

让同一份数据,完整的保存在两块硬盘上头。因此,整体 RAID 的容量几乎少了 50%。

raid1.gif

因此在大量写入 RAID-1 的情况下,写入的效能可能会变的非常差 (因为只有一个南桥)。

但是如果用的磁盘阵列卡的话可以不占系统IO,效能不会影响太大。

虽然 RAID-1 的写入效能不佳,不过读取的效能还可以,因为数据有两份在不同的硬盘上面,如果多个 processes 在读取同一笔数据时, RAID 会自行取得最佳的读取平衡。


RAID-2:

这是RAID 0的改良版,以汉明码(Hamming Code)的方式将数据进行编码后分区为独立的比特,并将数据分别写入硬盘中。因为在数据中加入了错误修正码(ECC,Error Correction Code),所以数据整体的容量会比原始数据大一些,RAID2最少要三台磁盘驱动器方能运作


RAID-3:

采用Bit-interleaving(数据交错存储)技术,它需要通过编码再将数据比特分割后分别存在硬盘中,而将同比特检查后单独存在一个硬盘中,但由于数据内的比特分散在不同的硬盘上,因此就算要读取一小段数据资料都可能需要所有的硬盘进行工作,所以这种规格比较适于读取大量数据时使用。


RAID-4:

它与RAID 3不同的是它在分区时是以区块为单位分别存在硬盘中,但每次的数据访问都必须从同比特检查的那个硬盘中取出对应的同比特数据进行核对,由于过于频繁的使用,所以对硬盘的损耗可能会提高。(块交织技术,Block interleaving)


RAID 5:效能与数据备份的均衡考量

RAID-5 至少需要三块以上的硬盘才能够组成这种类型的磁盘阵列。

这种磁盘阵列的数据写入有点类似 RAID-0,不过每个循环的写入过程中,在每块硬盘还加入一个同位检查数据(Parity),这个数据会记录其他硬盘的备份数据,用于当有硬盘损毁时的救援。

raid5.gif

记录的同位检查码每次都记录在不同的硬盘, 因此,任何一个硬盘损毁时都能够借由其他硬盘的检查码来重建原本硬盘内的数据。

RAID-5的总容量会是整体硬盘数量减一块。

RAID-5默认仅能支持一块硬盘的损毁情况(三块硬盘组)。

RAID-5读取的效能和RAID-0类似,但是因为有了检查数据,所以在存储的效能上比较差。


RAID-6:

与RAID 5相比,RAID 6增加了第二个独立的奇偶校验信息块。两个独立的奇偶系统使用不同的算法,数据的可靠性非常高,即使两块磁盘同时失效也不会影响数据的使用。但RAID 6需要分配给奇偶校验信息更大的磁盘空间,相对于RAID 5有更大的“写损失”,因此“写性能”非常差。较差的性能和复杂的实作方式使得RAID 6很少得到实际应用。

同一数组中最多容许两个磁盘损坏。更换新磁盘后,数据将会重新算出并写入新的磁盘中。依照设计理论,RAID 6必须具备四个以上的磁盘才能生效。


RAID-7:

RAID 7并非公开的RAID标准,而是Storage Computer Corporation的专利硬件产品名称,RAID 7是以RAID 3及RAID 4为基础所发展,但是经过强化以解决原来的一些限制。另外,在实作中使用大量的高速缓存以及用以实现异步数组管理的专用即时处理器,使得RAID 7可以同时处理大量的IO要求,所以性能甚至超越了许多其他RAID标准的实做产品。但也因为如此,在价格方面非常的高昂。


RAID 0+1,RAID 1+0:

RAID-0 的效能佳但是数据不安全,RAID-1 的数据安全但是效能不佳.

RAID 0+1:

(1)先让两块硬盘组成 RAID 0,并且这样的配置共有两组; 

(2)将这两组 RAID 0 再组成一组 RAID 1。

RAID 1+0 就是先组成 RAID-1 再组成 RAID-0 的意思。

raid01.gif

具有 RAID 0 的优点,所以效能得以提升,由于具有 RAID 1 的优点,所以数据得以备份。


RAID 5+0:

RAID 5与RAID 0的组合,先作RAID 5,再作RAID 0,也就是对多组RAID 5彼此构成Stripe访问。由于RAID 50是以RAID 5为基础,而RAID 5至少需要3台硬盘,因此要以多组RAID 5构成RAID 50,至少需要6台硬盘。以RAID 50最小的6台硬盘组态为例,先把6台硬盘分为2组,每组3台构成RAID 5,如此就得到两组RAID 5,然后再把两组RAID 5构成RAID 0。

RAID 50在底层的任一组或多组RAID 5中出现1台硬盘损坏时,仍能维持运作,不过如果任一组RAID 5中出现2台或两台以上硬盘损毁,整组RAID 50就会失效

RAID 50由于在上层把多组RAID 5构成Stripe,性能比起单纯的RAID 5高,容量利用率比RAID5要低。比如同样9块硬盘,RAID 50则3个RAID 5组成RAID 0,每个RAID 5会浪费一块硬盘,利用率为(1-3/9),RAID 5则为(1-1/9)。


RAID 5+3:

就是一个是由3组以上的RAID 5组成RAID 3硬盘阵列。


RAID 6+0:

RAID 6与RAID 0的组合:先作RAID 6,再作RAID 0。换句话说,就是对两组以上的RAID 6作Stripe访问。RAID 6至少需具备4台硬盘,所以RAID 60的最小需求是8台硬盘

由于底层是以RAID 6组成,所以RAID 60可以容许任一组RAID 6中损毁最多2台硬盘,而系统仍能维持运作;不过只要底层任一组RAID 6中损毁3台硬盘,整组RAID 60就会失效,当然这种情况的机率相当低。

比起单纯的RAID 6,RAID 60的上层通过结合多组RAID 6构成Stripe访问,因此性能较高。

不过使用门槛高,而且容量利用率低是较大的问题。


wKiom1P-DbqhpwDMAAIukUxQdVw098.jpg