R A I D分为几级,不同的级实现不同的可靠性,本章后面将对这些级进行更为详细的讨论。但它们的一般想法是:各不同的级都使用了冗余概念,这就保证了在个别驱动器失败的情况下,数据仍然维持可访问性。为了达到这个目标,可以使用两类冗余技术:
•镜像冗余。
• 校验冗余。
镜像冗余已经在第4章讨论过,它是一个很简单的概念:将完整的数据拷贝到另一个设备或地方。这是一个能够很好工作的原始的技术。但是为了实现这种技术,需要重复的磁盘、控制器及缆线,所以它拥有5 0 %的额外开销。
1. 校验冗余
通过计算阵列中的成员磁盘上数据的校验值,可以实现校验冗余。校验需要一个另外的磁盘资源,以保存校验信息。事实上,没有必要使用一个专用的校验磁盘,数据和校验可以散布在整个阵列中。

校验冗余的优势之一就是它占用的磁盘驱动器比镜像冗余少。一般而言,使用一个磁盘驱动器大小的容量,就能够保护带有任何数量磁盘驱动器的阵列的数据。例如,一个带有5个磁盘的校验冗余阵列,可以使用一个磁盘大小的容量专门保存冗余数据,这并不是指将一个专门的磁盘用作校验磁盘,而是指为校验配置一个磁盘大小的容量,校验数据可以散布在整个阵列中。按照这个比例计算,一个5磁盘的阵列将花费2 0 %的额外开销保存校验数据。当阵列中的成员磁盘数增加时,额外开销的比例将降低。
从这里可以看出,校验冗余似乎有些资源紧张。每一个磁盘写操作都需要计算校验,随着成员磁盘数量的增长,将要求更多的内存和处理器周期,这可能对存储系统的性能有所影响。
2. 校验恢复
当R A I D阵列中的一个成员磁盘失败时,需要对剩余磁盘上的数据使用X O R操作,恢复失败磁盘上的数据。当主机请求数据时,阵列控制器将从所有成员磁盘读出存在的数据和校验数据,使用X O R操作计算出丢失的数据,恢复后的数据必须与丢失的数据保持一致,然后,将恢复的数据发送到主机,完成I / O请求操作。
在某个时间,新的磁盘将要替代阵列中的失败磁盘。这时将要运行一个称作校验恢复进程,校验恢复进程读出所有其他磁盘上的数据,包括校验数据,然后,在新的置换磁盘上使用X O R 功能执行数据恢复过程。图6 - 8显示了为阵列中失败磁盘实行校验恢复的过程。
