标题：RAID 5
运作
以四个硬盘组成的RAID 5为例，其数据存储方式如概述中的图片所示：图中，P0为D0、D1和D2的奇偶校验信息，其它以此类推。由图中可以看出，RAID 5不对存储的数据进行备份，而是把数据和与其相对应的奇偶校验信息存储到组成RAID5的各个磁盘上，并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上。当RAID5的一个磁盘数据损坏后，利用剩下的数据和相应的奇偶校验信息去恢复被损坏的数据。
校验
RAID5校验位算法原理
P=D1 xor D2 xor D3 … xor Dn （D1,D2,D3 … Dn为数据块，P为校验，xor为异或运算） 
XOR(Exclusive OR)的校验原理如下表：
A值
B值
Xor结果
0
0
0
1
0
1
0
1
1
1
1
0
这里的A与B值就代表了两个位，从中可以发现，A与B一样时，XOR结果为0，A与B不一样时，XOR结果就是1，而且知道XOR结果和A与B中的任何一个数值，就可以反推出另一个数值。比如A为1，XOR结果为1，那么B肯定为0，如果XOR结果为0，那么B肯定为1。这就是XOR编码与校验的基本原理。
读写
用简单的语言来表示，至少使用3块硬盘（也可以更多）组建RAID5磁盘阵列，当有数据写入硬盘的时候，按照1块硬盘的方式就是直接写入这块硬盘的磁道，如果是RAID5的话这次数据写入会根据算法分成3部分，然后写入这3块硬盘，写入的同时还会在这3块硬盘上写入校验信息，当读取写入的数据的时候会分别从3块硬盘上读取数据内容，再通过检验信息进行校验。当其中有1块硬盘出现损坏的时候,就从另外2块硬盘上存储的数据可以计算出第3块硬盘的数据内容。也就是说raid5这种存储方式只允许有一块硬盘出现故障，出现故障时需要尽快更换。当更换故障硬盘后，在故障期间写入的数据会进行重新校验。 如果在未解决故障又坏1块，那就是灾难性的了。
存储
RAID5把数据和相对应的奇偶校验信息存储到组成RAID5的各个磁盘上，并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上，其中任意N-1块磁盘上都存储完整的数据，也就是说有相当于一块磁盘容量的空间用于存储奇偶校验信息。因此当RAID5的一个磁盘发生损坏后，不会影响数据的完整性，从而保证了数据安全。当损坏的磁盘被替换后，RAID还会自动利用剩下奇偶校验信息去重建此磁盘上的数据，来保持RAID5的高可靠性。
(做raid 5阵列所有磁盘容量必须一样大，当容量不同时，会以最小的容量为准。 最好硬盘转速一样，否则会影响性能，而且可用空间=磁盘数n-1,其中有一块是专门用来校验的，在存储数据的时候，校验盘里面是不会被存入数据的)
（Raid 5 没有独立的奇偶校验盘，所有校验信息分散放在所有磁盘上，只是在存储空间上为N-1）
其他
磁盘阵列（Redundant Arrays of Inexpensive Disks，RAID），有“价格便宜且多余的磁盘阵列”之意。原理是利用数组方式来作磁盘组，配合数据分散排列的设计，提升数据的安全性。磁盘阵列是由很多便宜、容量较小、稳定性较高、速度较慢磁盘，组合成一个大型的磁盘组，利用个别磁盘提供数据所产生加成效果提升整个磁盘系统效能。同时利用这项技术，将数据切割成许多区段，分别存放在各个硬盘上。磁盘阵列还能利用同位检查（Parity Check）的观念，在数组中任一颗硬盘故障时，仍可读出数据，在数据重构时，将数据经计算后重新置入新硬盘中。
RAID技术主要包含RAID 0～RAID 7等数个规范，它们的侧重点各不相同，常见的规范有如下几种：
RAID 0：RAID 0连续以位或字节为单位分割数据，并行读/写于多个磁盘上，因此具有很高的数据传输率，但它没有数据冗余，因此并不能算是真正的RAID结构。RAID 0只是单纯地提高性能，并没有为数据的可靠性提供保证，而且其中的一个磁盘失效将影响到所有数据。因此，RAID 0不能应用于数据安全性要求高的场合。 
RAID 1：它是通过磁盘数据镜像实现数据冗余，在成对的独立磁盘上产生互 为备份的数据。当原始数据繁忙时，可直接从镜像拷贝中读取数据，因此RAID 1可以提高读取性能。RAID 1是磁盘阵列中单位成本最高的，但提供了很高的数据安全性和可用性。当一个磁盘失效时，系统可以自动切换到镜像磁盘上读写，而不需要重组失效的数据。 
RAID 0+1: 也被称为RAID 10标准，实际是将RAID 0和RAID 1标准结合的产物，在连续地以位或字节为单位分割数据并且并行读/写多个磁盘的同时，为每一块磁盘作磁盘镜像进行冗余。它的优点是同时拥有RAID 0的超凡速度和RAID 1的数据高可靠性，但是CPU占用率同样也更高，而且磁盘的利用率比较低。 
RAID 2：将数据条块化地分布于不同的硬盘上，条块单位为位或字节，并使用称为“加重平均纠错码（海明码）”的编码技术来提供错误检查及恢复。这种编码技术需要多个磁盘存放检查及恢复信息，使得RAID 2技术实施更复杂，因此在商业环境中很少使用。 
RAID 3：它同RAID 2非常类似，都是将数据条块化分布于不同的硬盘上，区别在于RAID 3使用简单的奇偶校验，并用单块磁盘存放奇偶校验信息。如果一块磁盘失效，奇偶盘及其他数据盘可以重新产生数据；如果奇偶盘失效则不影响数据使用。RAID 3对于大量的连续数据可提供很好的传输率，但对于随机数据来说，奇偶盘会成为写操作的瓶颈。 
RAID 4：RAID 4同样也将数据条块化并分布于不同的磁盘上，但条块单位为块或记录。RAID 4使用一块磁盘作为奇偶校验盘，每次写操作都需要访问奇偶盘，这时奇偶校验盘会成为写操作的瓶颈，因此RAID 4在商业环境中也很少使用。 
RAID 5：RAID 5不单独指定的奇偶盘，而是在所有磁盘上交叉地存取数据及奇偶校验信息。在RAID 5上，读/写指针可同时对阵列设备进行操作，提供了更高的数据流量。RAID 5更适合于小数据块和随机读写的数据。RAID 3与RAID 5相比，最主要的区别在于RAID 3每进行一次数据传输就需涉及到所有的阵列盘；而对于RAID 5来说，大部分数据传输只对一块磁盘操作，并可进行并行操作。在RAID 5中有“写损失”，即每一次写操作将产生四个实际的读/写操作，其中两次读旧的数据及奇偶信息，两次写新的数据及奇偶信息。 
RAID 6：与RAID 5相比，RAID 6增加了第二个独立的奇偶校验信息块。两个独立的奇偶系统使用不同的算法，数据的可靠性非常高，即使两块磁盘同时失效也不会影响数据的使用。但RAID 6需要分配给奇偶校验信息更大的磁盘空间，相对于RAID 5有更大的“写损失”，因此“写性能”非常差。较差的性能和复杂的实施方式使得RAID 6很少得到实际应用。 
RAID 7：这是一种新的RAID标准，其自身带有智能化实时操作系统和用于存储管理的软件工具，可完全独立于主机运行，不占用主机CPU资源。RAID 7可以看作是一种存储计算机（Storage Computer），它与其他RAID标准有明显区别。除了以上的各种标准（如表1），我们可以如RAID 0+1那样结合多种RAID规范来构筑所需的RAID阵列，例如RAID 5+3（RAID 53）就是一种应用较为广泛的阵列形式。用户一般可以通过灵活配置磁盘阵列来获得更加符合其要求的磁盘存储系统。 
RAID 5E(RAID 5 Enhencement): RAID 5E是在 RAID 5级别基础上的改进，与RAID 5类似，数据的校验信息均匀分布在各硬盘上，但是，在每个硬盘上都保留了一部分未使用的空间，这部分空间没有进行条带化，最多允许两块物理硬盘出现故障。看起来，RAID 5E和RAID 5加一块热备盘好象差不多，其实由于RAID 5E是把数据分布在所有的硬盘上，性能会与RAID5 加一块热备盘要好。当一块硬盘出现故障时，有故障硬盘上的数据会被压缩到其它硬盘上未使用的空间，逻辑盘保持RAID 5级别。
RAID 5EE: 与RAID 5E相比，RAID 5EE的数据分布更有效率，每个硬盘的一部分空间被用作分布的热备盘，它们是阵列的一部分，当阵列中一个物理硬盘出现故障时，数据重建的速度会更快。
开始时RAID方案主要针对SCSI硬盘系统，系统成本比较昂贵。1993年，HighPoint公司推出了第一款IDE-RAID控制芯片，能够利用相对廉价的IDE硬盘来组建RAID系统，从而大大降低了RAID的“门槛”。从此，个人用户也开始关注这项技术，因为硬盘是现代个人计算机中发展最为“缓慢”和最缺少安全性的设备，而用户存储在其中的数据却常常远超计算机的本身价格。在花费相对较少的情况下，RAID技术可以使个人用户也享受到成倍的磁盘速度提升和更高的数据安全性，现在个人电脑市场上的IDE-RAID控制芯片主要出自HighPoint和Promise公司，此外还有一部分来自AMI公司。
面向个人用户的IDE-RAID芯片一般只提供了RAID 0、RAID 1和RAID 0+1（RAID 10）等RAID规范的支持，虽然它们在技术上无法与商用系统相提并论，但是对普通用户来说其提供的速度提升和安全保证已经足够了。随着硬盘接口传输率的不断提高，IDE-RAID芯片也不断地更新换代，芯片市场上的主流芯片已经全部支持ATA 100标准，而HighPoint公司新推出的HPT 372芯片和Promise最新的PDC20276芯片，甚至已经可以支持ATA 133标准的IDE硬盘。在主板厂商竞争加剧、个人电脑用户要求逐渐提高的今天，在主板上板载RAID芯片的厂商已经不在少数，用户完全可以不用购置RAID卡，直接组建自己的磁盘阵列，感受磁盘狂飙的速度。 
RAID 50：RAID50是RAID5与RAID0的结合。此配置在RAID5的子磁盘组的每个磁盘上进行包括奇偶信息在内的数据的剥离。每个RAID5子磁盘组要求三个硬盘。RAID50具备更高的容错能力，因为它允许某个组内有一个磁盘出现故障，而不会造成数据丢失。而且因为奇偶位分部于RAID5子磁盘组上，故重建速度有很大提高。优势：更高的容错能力，具备更快数据读取速率的潜力。需要注意的是：磁盘故障会影响吞吐量。故障后重建信息的时间比镜像配置情况下要长。
Windows Server 2003中创建RAID 5
在Windows Server 2003系统中创建RAID-5卷的方法：
第1步，打开“计算机管理”窗口，选中“磁盘管理”目录。在右窗格中用鼠标右键单击准备创建RAID-5卷的动态磁盘，在弹出的快捷菜单中选择“新建卷”命令。
第2步，在向导欢迎页中单击“下一步”按钮，打开“选择卷类型”对话框。在“选择要创建的卷”区域中选中RAID-5单选框，并单击“下一步”按钮。
第3步，在“选择磁盘”对话框中，将“可用”磁盘列表中的所有磁盘通过“添加”按钮添加到“已选的”磁盘列表中（在“已选的”磁盘列表中至少要有三块磁盘），其他参数保持默认值。单击“下一步”按钮。
第4步，打开“指派驱动器号和路径”对话框，选中“指派以下驱动器号”单选框。单击右侧的下拉三角按钮，为该RAID-5卷指派驱动器号，以便于访问和管理。单击“下一步”按钮。
第5步，在“卷区格式化”对话框中保持“按下列设置格式化这个卷”单选框为选中状态，“文件系统”和“分配单位大小”选项均采用默认值。在“卷标”编辑框中输入一个卷标用于和其他卷进行区别，并选中“快速格式化”复选框。单击“下一步”按钮。
第6步，“正在完成新建卷向导”对话框的“用户已选择下列设置”列表中显示了以上所有的设置。如果没有问题，则单击“完成”按钮，系统开始创建RAID-5卷并对其进行格式化操作以及进行数据同步操作。同步操作所需的时间视卷的容量和系统性能而定，所实现的RAID-5卷会以特殊颜色标识出来。
完成格式化操作并进行数据同步后，RAID-5卷所包含的各个磁盘卷将显示“状态良好”的状态信息。[1]RAID5故障分析及数据恢复RAID-5故障原因分析这里说的RAID-5故障，是指RAID-5逻辑盘丢失或不可访问。导致RAID-5故障的原因主要有以下几种：
（1）RAID控制器出现物理故障
RAID控制器如果出现物理故障，将不能被计算机识别，也就无法完成对RAID-5中各个物理成员盘的控制，在这种情况下，通过RAID控制器虚拟出来的逻辑盘自然就不存在了。
（2）RAID信息出错
RAID控制器将物理盘配置为RAID-5后，会生成一些参数，包括该RAID-5的盘序、条带大小、左右结构情况、同步异步情况、RAID-5在每块物理盘中的起始地址等，还会记录有关该RAID-5的相关信息，包括组成该RAID-5的物理盘数目、物理盘的容量大小等，所有这些信息和参数就被称为RAID信息，也称为RAID元数据，它们会被保存到RAID控制器中，有时候也会保存到RAID-5的成员盘中。
RAID信息出错就是指该RAID-5的配置信息和参数出现错误，导致RAID程序不能正确地组织管理RAID-5中的成员盘，从而导致RAID-5逻辑盘丢失或不能访问。
（3）RAID-5成员盘出现物理故障
RAID-5可以允许其中一块成员盘离线而不影响数据的完整性，如果RAID-5中的某一块成员盘出现物理故障，比如电路损坏、磁头损坏、固件损坏、出现坏扇区等，该成员盘就不能正常使用，但剩下的成员盘可以利用异或运算计算出离线成员盘中的数据，所以RAID-5还不会崩溃。
如果系统管理员没有及时替换出现故障的成员盘，当再有一块成员盘再出现故障离线后，RAID-5将彻底崩溃。
（4）人为误操作
如果误将RAID-5中两块以上成员盘同时拔出、或者给RAID-5除尘时将成员盘拔出后忘了原来的顺序、以及不小心删除了RAID-5的配置信息等，都会造成RAID-5崩溃。
（5）RAID控制器的稳定性
RAID-5的数据分布结构中有校验块的存在，当RAID-5中有成员盘离线时，算法将变得更加复杂，RAID控制器将会工作在一个比较吃力的状态。而RAID控制器的负载太重便会极大地增加数据读写时出现I/O滞留的可能性，从而导致更多成员盘离线，或者导致RAID信息出错。
1.7.11
RAID-5数据恢复思路RAID-5阵列中数据的分布与RAID-0类似，数据也是分布到每块硬盘上，与RAID-0不同的是，RAID-5中每个条带组中总有一个条带是校验块，如图1-36中的“P0、P1、P2、P3”就是校验块。
  RAID5结构图
RAID-5能够支持在一块盘离线的情况下保证数据的正常访问，如果有两块或两块以上硬盘同时离线，或者RAID信息出错等原因，阵列便会失效，这时就需要对数据进行重组。 
图1-36RAID-5的结构图
对RAID-5的数据进行重组，也需要先把物理盘区RAID化，作为单盘进行分析，如图1-36中的四块物理盘，把四块物理盘中的数据按照“A、B、C、D、E、F、G、H……”的顺序拼接好，就是RAID-5逻辑盘中完整的数据。
因为RAID-5的每块物理盘中都有校验信息，所以分析RAID-5就需要比RAID-0多一个因素，即校验块的位置和方向，另外，RAID-5中数据块的走向也会不一样，分为异步和同步，也就是说，RAID-5 有四个因素很重要，第一个是RAID中每个条带的大小，也就是
“A”或“B”
这些数据块所占用的扇区数；第二个因素是RAID中硬盘的排列顺序，也就是盘序；第三个因素是校验块的循环方向；第四个因素是数据块的走向。
以图1-36中四块物理盘组成的RAID-5为例，假设条带的大小为32个扇区，物理盘的顺序就按照图中的排列顺序，那么只要到硬盘0中取0-31扇区的信息，再到硬盘1中取0-31扇区的信息，再到硬盘2中取0-31扇区的信息，硬盘3中0-31扇区的信息是校验块，跳过不取。接下来再回到硬盘0中取32-63扇区的信息，就这样依次按顺序取下去，把所有取出来的数据按照顺序衔接成一个镜像文件或者是镜像盘，这就成为完整的原RAID-5逻辑盘的结构了，直接访问这个重组出来的镜像文件或镜像盘，就得到了原RAID-5逻辑盘中的数据。