RAID 4是一种独立访问的R A I D实现,它使用一个专用的校验磁盘。与RAID 3不同的是,RAID 4有更大量的分块,使多个I / O请求能同时处理。虽然它为读请求提供了性能的优势,但RAID 4的写开销特别大,因为在每次读、修改和写周期中,校验磁盘都被访问两次。
基本上,本章前面所讨论的并行访问R A I D都属于RAID 3 。RAID 3子系统将数据分块存放到阵列中的所有驱动器,将校验数据写到阵列中的一个另外的校验磁盘,RAID 3被认为是校验R A I D。
过去,磁盘驱动器花费更贵,而且没有今天这样复杂的电路,因而,就构想出了RAID 2 ,RAID 2 的定义涉及R A I D控制器中的错误校验电路。今天,这个功能已经被集成到磁盘驱动器中,虽然便宜,但效率却不高。因此,RAID 2 没有形成产品,在文献中也几乎被忽略。
大部分有关RAID 1的讨论见第4章。按照R A I D的术语,RAID 1是非校验的R A I D级,其数据保护和性能都极为优秀,因为在数据的读/写过程中,不需要执行X O R操作。
RAID 0是简单的、不带有校验的磁盘分块,本质上它并不是一个真正的R A I D,因为它并不提供任何形式的冗余。假如RAID 0的磁盘失败,那么,数据将彻底丢失。为了在RAID 0情况下恢复数据,唯一的办法是使用磁带备份或者镜像拷贝。
为了满足一些R A I D子系统厂商的要求,希捷率先将X O R功能集成到磁盘驱动控制器中,X O R集成的基本思想是:将多个I / O操作和X O R功能组合一起,形成一个磁盘驱动器的请求。
在一个读、修改和写周期中,一次单个驱动器的写操作需要独立访问阵列做4次数据传输,即原有数据读出、校验数据读出、新校验数据写入以及新数据写入,这导致单个I / O请求的大量的开销。
独立访问R A I D的情形稍为复杂一些,数据并不分块写入几个转动速度相同的同步磁盘,而是写到单个分区中的分块,然后再写入下一个磁盘的相应分区。换而言之,写不必跨越阵列中的所有磁盘。
在并行访问R A I D中,校验数据的计算比较容易理解,并行访问阵列在整个阵列磁盘中分条数据。当这些分条数据被写到成员磁盘时,同时也计算校验数据,并将它写入一个附加的同步校验磁盘。校验磁盘与阵列中的数据磁盘分区和分条大小相同。
术语“简约”用在R A I D环境下意味着:当一个磁盘失败后,磁盘子系统将继续工作,而不需要这个失败的磁盘。当这种情况发生的时候,R A I D阵列将调整其功能,以保证数据的一致性。
校验数据是另外一种冗余数据,它是在计算校验值时,由R A I D子系统产生的。正如前面所说的那样,异或(X O R)函数在逐位基础上对实际数据进行操作,建立校验数据。在并行访问R A I D和独立访问R A I D上,建立校验数据的方法是不同的。在介绍如何使用X O R函数建立校验数据,以及在磁盘失败时恢复数据后,我们将研究这两种R A I D之间的差别。
作为设备虚拟化的应用之一,阵列中的分条被映射为虚拟驱动器中连续的块。当主机向虚拟驱动器写入数据时,阵列管理软件将输入的I / O请求地址转换为阵列中的分条。首先将对第一个分区的第一个分块进行写,然后对第二个分区的第一个分块执行写,接着对第三个分区的第一个分块执行写,以此类推。从某种意义上说,数据写入分条类似于填充顺序放置的
分区和分块是在单个驱动器上进行的,而不是在阵列上,正像分区可以组成阵列一样,分块也可以组合成分条。R A B将分块定义为:
成员磁盘上的分区可以进一步细分为更小的段,这些更小的段即单个I / O操作的对象,它们被称为分块。假如分块属于一个分区,而分区又属于一个阵列,那么,分块的长度称为分条深度。为了简化虚拟磁盘块地址到成员磁盘块地址的映射,一个阵列中所有的分块的长度都相同。图6 - 1 9显示了分条、分块和分区三者之间的关系。
磁盘驱动器可以划分成由若干块形成的组,例如,大多数读者都熟悉在P C机或工作站上对磁盘驱动器的分区,R A I D磁盘也不例外,可以使用多种方法对之进行分组,以支持各种各样的数据处理的实际需求,组合磁盘分区最常见的方法是阵列。事实上,就精确的技术意义来说,磁盘并不形成阵列,而是形成分区。
现在,研究一下让我们更感兴趣的路径,如图6 - 1 5所示。从图中可以看出,R A I D控制器和每一个成员驱动器都有两个端口,因而,它们都可以通过一条另外的内部存储总线建立一个另外的连接,除此而外,图6 - 1 5的配置与图6 - 1 3配置是一样的。每个成员磁盘都是双端口的,就意味着它们可以通过两个I / O端口(或连接器)之一进行通信。
现在就来讨论几个R A I D子系统中的通路方法,术语通路是指一个几何运动,由此跟踪从主机系统到最终存储位置的潜在I / O路径。在部分情况下,这些讨论适用于R A I D子系统,而不适用于J B O D系统。对于J B O D系统,通路大多由主机或主机I / O控制器中的卷管理软件决定。
当系统需要支持2 4×7操作时,冗余本身并不能充分地维护可用性,因而,需要有一个办法,在没有断电和撤除连接的情况下,使冗余成分立即投入使用。此外,也需要有一个方法,在不干扰正常操作的情况下,能够撤离失败的部分,并加入替代的部分。