常用的RAID级别
RAID 0"条带化"
RAID 0不是真正的RAID,因为它没有冗余。在RAID 0中,磁盘被简单地放在一起,形成一个大磁盘。这就是所谓的"条带化"。当一个磁盘发生故障时,整个阵列就会发生故障。因此,RAID 0很少用于重要的数据,但使用条带化从磁盘上读写数据可以更快,因为每个磁盘同时读取部分文件。
在RAID 0中,接踵而来的磁盘块通常被放置在不同的磁盘上。因此,RAID 0使用的所有磁盘都应该是相同大小的。
在Linux或类似Unix的操作系统上,RAID 0通常用于Swap空间。
RAID 1"镜像"
在RAID 1中,两块磁盘被放在一起。两块硬盘都持有相同的数据,一块是"镜像"另一块。不管是用硬件控制器还是用软件来实现,这都是简单、快速的配置。
RAID 5"分布式奇偶校验的条带化"
RAID 5级可能是最常用的。建立一个RAID 5存储阵列至少需要三块硬盘。每个数据块将被存储在三个不同的地方。其中两个地方将按原样存储数据块,第三个地方将存储一个校验和。这个校验和是Reed-Solomon代码的一种特殊情况,它只使用位加法。通常,它是用XOR方法计算的。由于这种方法是对称的,一个丢失的数据块可以从另一个数据块和校验和重建。对于每个数据块,不同的磁盘将持有持有校验和的奇偶块。这样做是为了增加冗余度。任何一个磁盘都可能出现故障。总的来说,将有一个磁盘持有校验和,所以总的可用容量将是除了一个磁盘之外的所有磁盘的容量。由此产生的逻辑磁盘的大小将是所有磁盘加在一起的大小,除了一个存放奇偶校验信息的磁盘。
当然这比RAID 1级要慢,因为在每次写入时,都需要读取所有的磁盘来计算和更新奇偶校验信息。在相同数量的磁盘上,RAID 5的读取性能几乎和RAID 0一样好。除了奇偶校验块之外,数据在驱动器上的分布遵循与RAID 0相同的模式。RAID 5稍慢的原因是磁盘必须跳过奇偶校验块。
有故障磁盘的RAID 5将继续工作。它处于降级模式。降级的RAID 5可能会非常慢。因此,通常会添加一个额外的磁盘。这就是所谓的热备用盘。如果一个磁盘发生故障,数据可以直接重建到额外的磁盘上。RAID 5也可以很容易地在软件中完成。
主要是因为RAID 5阵列失败的性能问题,一些数据库专家组成了一个名为BAARF的团体--反对任何Raid Five的战争。
如果系统在有活动写入时发生故障,条带的奇偶性可能会与数据不一致。如果在磁盘或块发生故障之前没有修复,可能会发生数据丢失。不正确的奇偶校验将被用于重建该条带中丢失的块。这个问题有时被称为"写孔"。通常使用电池支持的缓存和类似的技术来减少发生这种情况的机会。
画面
· 
RAID 0只是将不同的块放在不同的磁盘上。没有冗余。
· 
· 
RAID 5为数据计算特殊的校验和。带有校验和的块和带有数据的块都分布在所有的磁盘上。
RAID级别使用较少
RAID 2
这是用在非常大的计算机上。使用RAID Level 2需要特殊昂贵的磁盘和特殊的控制器。数据是在位级分布的(其他级别都使用字节级动作)。要进行特殊的计算。数据被分割成静态的比特序列。8个数据位和2个奇偶校验位被放在一起。然后计算出一个汉明码。然后将汉明码的碎片分布在不同的磁盘上。
RAID 2是唯一能修复错误的RAID级别,其他RAID级别只能检测错误。当他们发现所需的信息没有意义时,他们会简单地重建它。这是通过计算,利用其他磁盘上的信息来完成的。如果这些信息缺失或错误,他们就不能做什么。因为它使用的是汉明码,RAID 2可以发现哪一块信息是错误的,并且只纠正那一块。
RAID 2至少需要10块磁盘才能工作。由于其复杂性和需要非常昂贵和特殊的硬件,RAID 2已经不怎么使用了。
RAID 3"带专用奇偶校验的条带"。
Raid Level 3与RAID Level 0非常相似。增加一个额外的磁盘来存储奇偶校验信息。这是通过对其他磁盘上的块的值进行位加法来实现的,奇偶校验信息存储在单独的(专用)磁盘上。奇偶校验信息存储在一个单独的(专用)磁盘上。这并不好,因为如果奇偶校验盘崩溃,奇偶信息就会丢失。
RAID Level 3通常是用至少3块磁盘来完成。两块硬盘的设置与RAID 0级相同。
RAID 4"带专用奇偶校验的条带"。
这与RAID 3非常相似,只是奇偶校验信息是在较大的块上计算的,而不是单个字节。这就像RAID 5一样。一个RAID 4阵列至少需要三块磁盘。
RAID 6
RAID 6级不是最初的RAID级别。它在RAID 5阵列上增加了一个额外的奇偶块。它至少需要四块磁盘(两块磁盘用于容量,两块磁盘用于冗余)。RAID 5可以看作是Reed-Solomon代码的一个特例。不过RAID 5是个特例,它只需要在伽罗瓦场GF(2)中进行加法。这很容易用XORs来实现。RAID 6扩展了这些计算。它不再是一个特殊情况,所有的计算都需要完成。在RAID 6中,使用一个额外的校验和(称为多项式),通常是GF(28)。用这种方法可以防止任何数量的故障磁盘。RAID 6是针对使用两个校验和来防止两个磁盘丢失的情况。
和RAID 5一样,每个块的奇偶校验和数据都在不同的磁盘上。两个奇偶校验块也位于不同的磁盘上。
有不同的方法来进行RAID 6。它们的写入性能和所需的计算量是不同的。能够进行更快的写入通常意味着需要更多的计算。
RAID 6的速度比RAID 5慢,但它允许RAID在任何两块磁盘出现故障时继续运行。RAID 6正变得越来越流行,因为它允许在单盘故障后重建阵列,即使剩余的一个磁盘有一个或多个坏扇区。
画面
· 
RAID 3与RAID 0级非常相似。增加了一个额外的磁盘,它将为每个数据块保存一个校验和。
· 
RAID 4类似于RAID 3级,但在较大的数据块上计算奇偶校验。
· 
RAID 6与RAID 5类似,但它计算两种不同的校验和。这允许两块磁盘发生故障,而不会造成数据丢失。
非标准RAID级别
双奇偶性/对角线奇偶性
RAID 6使用两个奇偶校验块。这些块是以一种特殊的方式在多项式上计算的。双奇偶校验RAID(也称为对角奇偶校验RAID)对每个奇偶块使用不同的多项式。最近,定义RAID的行业协会表示,双奇偶校验RAID是RAID 6的不同形式。
RAID-DP
RAID-DP是另一种拥有双奇偶性的方式。
RAID 1.5
RAID 1.5(不要与RAID 15混淆,后者不同)是一种专有的RAID实现。和RAID 1一样,它只使用两块磁盘,但它同时进行条带化和镜像(类似于RAID 10)。大多数事情都是在硬件中完成的。
RAID 5E、RAID 5EE和RAID 6E。
RAID 5E、RAID 5EE 和 RAID 6E(添加 E 代表增强型)通常指的是带有热备用驱动器的不同类型的 RAID 5 或 RAID 6。在这些实现中,热备用驱动器不是物理驱动器。相反,它是以磁盘上空闲空间的形式存在。这提高了性能,但这意味着不同阵列之间不能共享热备用驱动器。这个方案是由IBM ServeRAID在2001年左右推出的。
RAID 7
这是一个专有的实现。它为RAID 3或RAID 4阵列增加了缓存。
英特尔矩阵RAID
一些英特尔主板的RAID芯片就有这个功能。它使用两块或三块磁盘,然后平均分区,形成RAID 0、RAID 1、RAID 5或RAID 1+0级别的组合。
Linux MD RAID驱动
这是允许在Linux下进行软件RAID的驱动程序的名称。除了普通的RAID 0-6级之外,它还有一个RAID 10的实现。从Kernel 2.6.9开始,RAID 10是一个单一级别。这个实现有一些非标准的功能。
RAID Z
Sun公司已经实现了一个名为ZFS的文件系统。这个文件系统是为处理大量数据而优化的。它包括一个逻辑卷管理器。它还包括一个叫做RAID-Z的功能。它避免了被称为RAID 5写孔的问题,因为它有一个复制-写策略。它不会直接覆盖数据,而是在磁盘上的新位置写入新数据。当写入成功后,旧数据被删除。它避免了小写时需要进行读-修改-写操作,因为它只写全条。小块是镜像的,而不是奇偶保护的,这是因为文件系统知道存储的组织方式。因此,它可以在必要时分配额外的空间。还有RAID-Z2,它使用两种形式的奇偶校验来实现与RAID 6类似的结果:能够在最多两个驱动器故障时存活而不丢失数据。
画面
· 
· 