Raid系统存储容量适应运行系统和方法

文档序号:6554418阅读:283来源:国知局
专利名称:Raid系统存储容量适应运行系统和方法
技术领域
本发明涉及一种用于执行在RAID(经济磁盘冗余阵列)存储系统上的操作的设备和方法。
背景技术
RAID(经济磁盘冗余阵列)技术被广泛应用于存储系统。利用该RAID技术,数据可以排列在多个不同的磁盘上(或RAID-on-RAID配置下的多个RAID阵列上),从而根据特定的RAID配置来支持冗余访问和/或改进的访问操作。当一个RAID控制器控制一组RAID盘阵时,有时被称为“RAID-on-RAID”设置。RAID配置要求处理资源以管理数据在磁盘驱动器存储设备或RAID盘阵中的分布情况,在大多数的配置中,要求管理临时存储或对换空间的数据分布情况,以支持RAID的日常运行及RAID维护工作。
例如,在大部分的RAID配置中,数据完整性依靠在多个磁盘上添加冗余磁盘来得到保护,这样一旦发生单个磁盘故障(或在“RAID-on-RAID”配置下发生单个RAID盘阵故障)将不会导致数据的丢失。例如,在RAID 5环境下,数据被存储在相同大小的数据块中,这些数据块分布在多个磁盘上。校验(parity)数据块经过运算得出后被分布在多个磁盘上,这样一旦发生单个磁盘驱动器丢失,该丢失磁盘驱动器的数据内容可以通过其他活动磁盘驱动器上可获得的数据信息进行数据重建。在留驻于其余磁盘上可获得的数据块或校验数据块的基础之上获取或计算丢失磁盘驱动器(或“RAID-on-RAID”配置中的RAID盘阵)中的数据内容来进行RAID 5磁盘的重建。
有时,RAID运行会非常占用I/O资源。RAID运行时,RAID系统有时会掉线,中断数据访问。有时在RAID运行期间访问RAID系统时,数据的存取速率非常低,部分原因在于I/O频繁活动带来的严重影响。例如,用于扩展一个RAID 5系统的一种I/O占用(intensive)技术包括以下几个步骤从现有的RAID系统复制完整数据集至备用存储位置,清除RAID格式,添加一个或多个磁盘至RAID系统,重新格式化扩展的磁盘组至一个更大的RAID系统,复制回保存的数据块。
有时坏区的使用可以稍稍降低RAID-5系统扩展对资源的要求。例如,有时在重新分配RAID系统中现有磁盘驱动器上的磁盘存储区域时,坏区可能被允许使用,这些存储区域将作为“坏区”在执行RAID扩展时用作临时存储。这些坏区可被用来暂时存放或重新整理校验数据块、与RAID运行相关的数据块和中间计算数据,从而减少无磁盘的I/O操作。而如果使用磁盘上的坏区,RAID运行仍将受制于硬盘的输入输出限制和/或访问延迟问题,因为数据将在物理上重新被设置到一个硬盘上,和/或从一个硬盘被复制到另一个硬盘上。此外,有时候在进行重建或维护工作时,对存储于RAID系统上的数据访问有时会变得很慢甚至无法访问。
有时,执行其他的RAID重建或维护相关的工作是耗时、毁坏性的和/或资源紧张的,这些工作包括但不不限于重建磁盘、重新格式化RAID系统、扩展一RAID系统、缩减一RAID系统、迁移RAID系统的硬件或软件、更改RAID系统数据块大小的标准格式。
需要一种程序或设备能够高效地完成RAID系统的维护和/或恢复工作。

发明内容
本发明为高效运行RAID系统提供了相应的装置及方法。例如,本发明可用于多种用途,比如但不限于重新配置RAID系统以调整其存储容量。根据本发明,由非磁盘快速存取内存模块组成的快速存取缓冲器被用于存储、控制和/或操作数据块;针对快速存取内存模块内的数据块RAID操作在数据块上执行。有时可能从源RAID设备中读取多个数据块,和/或写入到目标RAID设备,以使快速存取内存模块作为读/写高速缓存,从而相比那些基于少量数据块的磁盘访问频率更高的RAID系统而言,输入输出性能得到了改善。
有时快速存取内存减少或消除了对磁盘上存储的需求,比如但不限于位于以RAID配置的磁盘驱动器上的坏区或对换空间。快速存取内存模块至少包括一些非磁盘存储器,比如但不限于随机存取存储器(RAM),可能包括或不包括额外的磁盘上存储。通常来说,移动或操作位于RAM上的数据块所花的时间要少于在基于RAID配置磁盘的磁盘坏区或对换空间上执行类似操作所花的时间。
根据本发明的部分实例,快速存取内存模块可被一个或多个控制器管理操作,例如但不限于一个或多个集成了快速存取内存模块的控制器、外部控制器、基于服务器的控制器、RAID盘阵控制器和缓冲运行管理器。根据本发明,部分实施案例可与硬件、固件、软件控制器、或它们的任意组合共同运行。
根据本发明,在某些实例中,当涉及到快速存取内存模块的RAID操作时,对存储于RAID设备的数据访问可能被允许,可能被部分允许,或者可能被禁止。有时RAID设备的数据访问操作可能与涉及快速存取内存的RAID操作同步,例如,有时它可能包括最小化磁盘存取操作、最小化RAID操作完成所需时间、和/或最小化存取操作延迟。有时,当被请求的数据留驻在快速存取内存模块中,那么通过快速存取内存模块该服务请求能够很快的得到满足,为系统在RAID运行期间提供了快速访问存储于RAID设备数据的能力。
根据本发明的一个实例,可以在RAID系统上执行RAID扩展,而在数据被复制到扩展后的RAID系统中的一个或多个磁盘之前,无需被复制到一中间硬盘上。有时,RAID系统可在不打断RAID系统数据访问的前提下进行系统扩展。并且,通过对存储于快速存取内存模块的若干有效数据副本进行操作,在扩展期间的当前的读写请求I/O吞吐率可维持在一个相对较高的速率上,从而减少了磁盘存取操作。


图1、2、3是根据本发明的快速存取内存模块实例图,用于提高RAID运行效率。
图4是示出了根据本发明使用快速存取缓冲器从RAID-5组重建单个故障RAID-5磁盘的实例流程图。
图5a、5b是根据本发明的不同实施实例的数据块在缓冲内扩展的位置实例图。
图6是示出了与用于根据本发明的快速存取缓冲器的RAID运行期间执行读取操作的实例有关的多个步骤的方框图。。
优选实施方式根据本发明,快速存取缓冲器由一个快速存取内存模块以及一个或多个接口组成,这些接口将快速存取内存模块与一个或多个源RAID设备、一个或多个目标RAID设备、一个或多个RAID控制器连接在一起,所述控制器用于管理与快速存取内存模块相关的RAID操作。图1、2、3根据本发明描述了快速存取内存模块100、200和257的实例,用于实现高效的RAID运行。图1所示的实例中,快速存取内存模块100所包含的存储器独立于磁盘140、142、144、146、148,包括但不限于随机存取存储器(RAM)。根据本发明,快速存取内存模块有时可能包括也可能不包括额外的存储器,这些存储器包括但不限于设置在以RAID配置的磁盘驱动器和/或RAID设备上。
根据本发明,快速存取缓冲器包含了一个或多个接口,用于连接一个或多个源RAID设备以及一个或多个目标RAID设备。一个源RAID设备由以RAID配置的磁盘驱动器、RAID设备或RAID系统构成,它们作为快速存取缓冲器接收的数据块及冗余数据块的数据源。目标RAID设备由磁盘、RAID设备或RAID系统构成,它们作为快速存取缓冲器输出的数据块和/或冗余数据块的目的地。有时,一个或多个源RAID设备可以成为目标RAID设备。例如,当一个四块磁盘的RAID盘阵扩展至一个五块磁盘的RAID盘阵,此时的四个源设备就是原来的四块磁盘,五个目标设备则包括原来的四块磁盘和第五块新的磁盘。
图1显示的实例中,快速存取内存模块100连接并被设置在RAID控制器110上,RAID控制器110连接着若干个RAID设备(磁盘140、142、144、146和148),其中可能包含了与各种RAID操作相关的源RAID设备和目标RAID设备;在本实例中,快速存取内存模块100通过RAID控制器110间接地与源RAID设备和目标RAID设备(磁盘140、142、144、146和148)相连。此外,在本实例中,RAID控制器110控制源RAID设备和目标RAID设备,并充当管理与快速存取内存模块相关的RAID操作的控制器。在本实例中,RAID控制器110是作为服务器111的一个部件工作,RAID设备直接与RAID控制器相连。而其他的配置也已被标示出。
根据本发明,源RAID设备和/或目标RAID设备可由RAID配置或RAID盘阵的磁盘驱动器所组成。例如,根据本发明,图2中源RAID设备和目标RAID设备为RAID盘阵240、244、246和248,通过存储主服务器210与快速存取内存模块200相连接。有时源RAID设备和目标RAID设备可能不是同一类型的设备。例如,本发明有时可用来支持从一个RAID配置的磁盘驱动器阵列到另一个RAID磁盘阵列的硬件迁移,此时源RAID设备就是RAID配置的磁盘驱动器而目标RAID设备则是RAID盘阵。
根据本发明的不同实施实例,快速存取缓冲器可用于提高涉及RAID设备的RAID操作的效率,这些操作包括但不限于重建RAID-on-RAID配置模式的RAID盘阵、重建RAID驱动器、扩展RAID盘阵、缩减RAID盘阵、迁移RAID数据以适应RAID硬件迁移、迁移RAID数据以便适应RAID软件迁移、迁移RAID数据以便迁移至不同的RAID级、重新格式化RAID盘阵、恢复RAID-on-RAID配置的RAID盘阵、恢复RAID配置的磁盘驱动器。根据本发明的部分实例,快速存取缓冲器可以减少或消除对位于RAID配置的磁盘上坏区的需求。
在图1所示的实例中,整个快速存取内存模块100被设置在RAID控制器110上;RAID控制器110被设置在服务器111上,快速存取缓冲器的运行由RAID控制器110进行管理。而根据本发明的其他实例中,部分或全部的快速存取缓冲器可能设置也可能不设置在RAID控制器上。例如,根据本发明,图2所示的实例中,快速存取内存模块200被设置在存储主服务器210上;本实例中,快速存取缓冲器200由缓冲操作管理器205进行管理和操作。
在图3所示的实例中,RAID控制器251被设置在主服务器250上,快速存取内存模块257在RAID控制器251和主服务器250外部。本实例中,快速存取内存模块由RAID控制器251进行管理。缓冲操作管理器258可以由硬件、软件或固件来实现。在图3所示的实例中,缓冲操作管理器是作为RAID控制器251的一部分。
根据本发明的其他实例,缓冲操作管理器模块可以分布在RAID控制器、主服务器和快速存取内存模块内部和/或外部的多个位置上。有时缓冲操作管理器也许分布在多个软件应用、硬件部件、固件和/或硬件平台上。例如,有时缓冲操作管理器使用本地和/或分布式服务器源来执行部分或全部的程序。
图1所示的示例中,快速存取内存模块100支持RAID控制器110的运行,管理着磁盘驱动器阵列140、142、144、146和148。根据本发明,可支持的RAID级包括但不限于RAID级0、RAID级1、RAID级2、RAID级3、RAID级4、RAID级5、RAID级6、RAID级10、RAID级50、RAID级53、RAID级0+1。根据本发明,在图2所示的实例中,快速存取缓冲器用于支持RAID配置的运行,以确保数据的完整性,防止RAID-on-RAID配置模式下某个被管理的RAID盘阵出现故障。在本实例中,RAID盘阵240、242、246和248都各自含有自己的RAID控制器和两个或两个以上的硬盘。
根据本发明的部分实例,快速存取缓冲器可以减少或消除对位于RAID配置的磁盘上坏区的需求。例如,根据本发明,图4以结构图的方式描述了通过快速存取缓冲器从RAID-5磁盘组进行单故障磁盘驱动器的重建流程。流程随快速存取缓冲器收到一个或多个源RAID设备发来的一个或一个以上的数据块时而开始(步骤300)。在本实例中,快速存取缓冲器可以由一个外部资源进行管理,诸如但不限于缓冲操作管理器或RAID控制器;有时,快速存取缓冲器可能被集成到硬件、软件和/或固件管理资源。如此一来,管理资源发起检索请求,在源RAID设备上检索一个或多个数据块。本实例中的RAID操作是重建一个故障的RAID-5磁盘,这需要访问RAID磁盘组内其他的RAID设备。管理资源在RAID组中其余的RAID设备中检索到所需的数据块,包含了数据信息和校验信息,然后把这些检索到的数据块存入到内存模块。
有时,管理资源会基于数据块级的方式管理数据及校验信息的检索。而有时快速存取缓冲器中的内存模块大小和管理资源的复杂度能够支持在每个读操作中完成从源RAID设备的多个数据块的复制,通过减少对RAID磁盘驱动器组小量读操作的数量提升系统性能。有时,内存模块并不足以容纳用于一次完成全部的RAID操作的所有的数据块,这时RAID操作会被分成更小的RAID操作,包括但不限于重建故障RAID磁盘上的某个数据段。
程序继续执行到对存储于快速存取缓冲器的数据执行RAID操作(步骤310)。此时的RAID操作包括,基于存储在RAID磁盘驱动器组内其余磁盘上所剩余的数据信息和校验信息重新生成丢失的数据信息和校验信息。有时快速存取缓冲器会为中间计算、和/或数据重建和/或校验信息提供存储空间。有时,设置在RAID配置的磁盘驱动器上的补充存储其可能会也可能不会被用到。本发明可以减少或消除位于RAID配置的磁盘上坏区的需求;而有时本发明也可以结合磁盘上存储器使用,包括但不限于坏区。
有时RAID操作可能会要求数据块在目标RAID设备上重新排列。有时,在对快速存取缓存器中的数据执行RAID操作时,数据块会在内存模块中被重新排列,为之后数据复制到一个或多个目标RAID设备做准备。而有时,目标位置可以通过计算得出,但内存模块中的数据块的真实位置可能改变或不改变,为之后数据复制到目标位置做准备;还有一种情况是,部分数据块可能驻留在原地,之后的复制操作将会根据它们的目标位置来访问数据块进行复制,从而将内存模块中不邻近的数据块复制到目标RAID设备中的邻近位置。当部分或全部的内存模块由随即存取存储器(RAM)来实现时,内存模块中的数据块和/或冗余数据块的序号无需映射到目标RAID设备上的数据块及冗余数据块的目标序号。而且,基于随机存取存储器(RAM)的存储模块可能支持灵活而快速的操作。
程序继续执行,数据块被传输复制到一个或多个目标RAID设备中(步骤320)。有时,带有数据信息和校验信息的数据块被复制传输到一个目标RAID设备上。此时,这个目标RAID设备就是一个替代磁盘驱动器,用来取代发生故障的RAID-5磁盘。有时,数据块可能从快速存取缓冲器的内存模块中某个存储位置被复制出来。而有时,当数据信息被计算出来,数据块就被转移并复制到目标RAID设备上,它们可能与快速存取缓冲器的临时存储空间没有任何联系。有时复制会以逐块模式进行。而有时,每一个写操作都会有多个数据块被传输复制到目标RAID设备上,通过减少对RAID磁盘组的小量写操作的数量来增加性能。
程序继续执行到步骤300、310、320,这三个步骤可循环执行以支持RAID操作的完成(步骤330)。本实例中的RAID操作是重建整张故障磁盘。步骤300、310和320可根据快速存取缓冲器中内存模块的大小及故障磁盘容量的大小多次重复执行。
在本发明的部分实施实例中,从快速存取缓冲器中复制数据或复制数据至快速存取缓冲器都是以块级或批量的方式处理完成的。如上所述,数据块级的复制方式将导致在RAID设备上产生大量的小数据量的读和/或写操作,性能可能因此降低;如果每个读写操作所涉及的数据块都在一个以上的话,那么RAID设备上的读写操作总数将降低,性能因此得到提高。有时,当数据块以RAID系统和快速存取缓冲器所允许的最大数据块尺寸进行传输时,系统将获得最大效率的吞吐量。
有时,快速存取缓冲器可以作为一个读写高速缓存。根据本发明,快速存取缓冲器有时会收到一个带有多个数据块的读操作的结果,这时一个或多个检索数据块会因为RAID操作而被忽略;例如,内存模块中的数据将会被有选择地使用,在对源RAID设备完成检索之后,其中一些数据将被忽略或者删除。例如,一个RAID级5磁盘阵列进行扩展时,原来的冗余数据块无需用来完成RAID的扩展执行。有时原来的冗余数据块会被检索,复制到快速存取缓冲器中,然后在快速存取缓冲器中被覆盖、丢弃或者忽略;另一种情况是,原始的冗余数据块也许无法被检索到,或者它们能够在磁盘上被检索到,但是从来不被存入到快速存取缓冲器。
如上所述,根据本发明的不同实例,当部分或全部的内存模块采用随机存取存储器(RAM)来实现,那么内存模块中的数据块和/或冗余数据块的排列序号就可以映射或不映射到目标RAID设备上的数据块及冗余数据块的目标序号。有时这种灵活机制能够使得RAID操作迅速地被执行。例如,根据本发明的不同实施实例,图5a、5b表示了内部缓冲扩展时数据块所在的位置。
图5a表示根据本发明,当RAID磁盘组460通过内存模块470,从四块硬盘(460、461、462、463)扩展至五块硬盘(460、461、462、463、464)时,数据块位置与RAID 5级的RAID磁盘组的关联,其中数据块在快速存取缓冲器中的位置被重新设置以映射目标RAID设备上的数据块和/或冗余数据块的目标顺序。图5a用图表表示了数据块及RAID磁盘组460和内存模块470;而有时数据块会排成一行,并不一定和图5a所显示的一模一样。本实例中,开头的五个数据块从最初四个硬盘中的每一个硬盘(460、461、462、463)中被读出,并被写入到内存模块470。本实例中,开头的五个数据块包含了一般数据块和冗余数据块,表示了存储于RAID磁盘组460上所有数据集中的一部分。
每个磁盘可读取的数据块的数量是基于一个或一个以上的标准来选择的,选择的标准包括但不限于单个磁盘存取命令所允许的数据块数量的最大值,内存模块的容量大小和/或硬盘输入输出因素。本实例中,在内存模块470上执行内部缓存扩展,创造了一个新的冗余数据块,丢弃了旧的冗余数据块;数据块在内存模块470内中被重新排序,以符合目标RAID设备460、461、462、463、464数据块的目标空间位置和目标序号。本实例中,至少有部分经整理后的数据块根据它们在内存模块470中的所在位置被复制到目标硬盘460、461、462、463和464上;来自每个磁盘的五个原始数据块代表了存储于RAID磁盘组460上所有数据的一小部分,因而磁盘460、461、462、463上剩余的未处理的数据块将在随后的流程中加以处理以完成RAID系统的扩展。
图5b表示根据本发明,当RAID磁盘组560通过内存模块570,从四块硬盘(560、561、562、563)扩展至五块硬盘(560、561、562、563、564)时,数据块位置在RAID 5级的RAID磁盘组中的变化,其中数据块在快速存取缓冲器中的位置不会被重新设置以映射目标RAID设备上的数据块及冗余数据块的目标顺序。图5b用图表表示了数据块及RAID磁盘组560和内存模块570;而有时数据块会排成一行,并不需要和图5b显示的一样。本实例中,开头的五个数据块依次从四个原始的硬盘(560、561、562、563)的每一个磁盘中被读出,并被写入到内存模块570中。本实例中,开头的五个数据块包含了一般数据块和冗余数据块,表示了存储在RAID磁盘组560上的所有数据,内存模块570足以容纳四个原始硬盘(560、561、562、563)上的所有内容,并有足够的存储空间支持中间计算或对换空间。
每个磁盘可读取的数据块的数量是基于一个或一个以上的标准来选择的,选择的标准包括但不限于单个磁盘存取命令所允许的数据块数量的最大值,内存模块的容量大小以及硬盘输入输出因素。本实例中,在内存模块570上执行内部缓冲扩展,创造了一个新的冗余数据块,丢弃了旧的冗余数据块;数据块没有在内存模块570中被重新设置,以符合RAID目标设备560、561、562、563、5464数据块的目标空间位置和目标顺序。本实例中随机存取存储器缓存带来的一个可能的好处得到凸现。控制器管理着数据块从内存模块570到目标硬盘560、561、562、563和564的复制;本实例中,内存模块足够大,足以管理RAID磁盘组560内所有的内容并且能够一次性完成RAID操作。
根据本发明,在存取缓冲器的部分实例中,数据能够在RAID维护或运行期间被访问。这些访问操作可能包括但不限于数据的读取、数据的写入和数据的删除。例如,在RAID维护或运行期间,本发明有时可以根据不同的情况选择相应的模式来拒绝所有的数据访问、或限制部分的数据访问、或允许所有的数据访问。有时,访问模式由一个RAID控制器或缓冲操作管理器进行管理。例如,本发明有时在进行部分或全部的维护活动和/或RAID操作时被设置为禁止访问模式。有时,通过在RAID操作期间禁止数据的访问,完成RAID操作所需的时间被降到最低,而与RAID控制器、缓冲操作管理器有关的硬件、软件和/或固件的复杂程度也被降低。
本发明可用于支持对RAID设备的操作,尤其是恢复、维护、重新配置操作。在执行诸如但不限于RAID恢复、维护、重新配置等RAID操作时,本发明的不同实施实例将提供不同级的并发访问服务,访问位于RAID系统上的数据。三种访问级的可能性包括全访问、拒绝访问和限制访问。访问的级对所有的操作都不尽相同。例如,当RAID系统正在执行部分或全部的恢复、维护及重新配置操作时,此时系统可设置为拒绝所有的访问;根据本发明的其他实例中,当RAID系统进行全部或部分的恢复、维护及重新配置活动期间,可对存储于RAID系统中的数据采取如只读访问的限制访问权限;在其余的实例中,完全访问权限可在RAID系统进行部分或全部的恢复、维护、重新配置活动期间时被采用。
有时,当并发访问被允许时,决定数据块的权威性副本或主副本的位置是非常重要的。在大多数的情况下,数据块的权威性副本或主副本多为最新的副本。然而有时权威性副本或主副本也并不是最新的副本。例如,当数据涉及到原子事务类型,那么其最新的数据块副本就可能不是其权威性副本,除非该事务得到承诺。随着RAID操作被执行,驻留在RAID配置或RAID盘阵的磁盘上的数据块可能与驻留在快速存取内存模块中的数据块副本不相符。这时识别权威性副本或主副本变得尤为重要,避免访问陈旧数据或损坏数据存储的发生。此外,有时保持驻留在快速存取内存模块中的数据块与驻留在RAID系统硬盘之中的数据块的同步也会很重要。例如,有时快速存取内存模块可能会不稳定。在易失性存储器上仅仅存储一份数据块权威性副本将冒着一旦断电数据全部丢失或损坏的风险。出于这一原因,本发明部分实例就要求数据在被写入存于快速存取内存模块的数据块时,同时也要被相应地写入存储于由RAID系统管理的硬盘驱动器上的数据块。
有时,在RAID系统运行期间可限制或完全访问存储于RAID系统上的数据时,访问操作可以是同步、优先的、或是根据与快速存取缓冲器及其他活动相关的RAID操作进行优化。例如,有时只读操作可在部分或所有的RAID操作下得到允许。比如一个缓冲操作管理器或RAID控制器可被设置为支持对存储于RAID设备上的数据和/或临时存储于本发明中的快速存取缓冲器上的数据的读操作。
有时,允许访问驻留在内存模块的数据会导致非常快速的数据访问能力,部分原因是快速存取内存模块的高速访问时间。例如,假设有这样一个子系统,它在进行RAID-5扩展时可同时进行读操作。在扩展期间,数据块通过快速存取缓冲器而获得。如果RAID控制器收到一个来自文件系统对数据块的请求,那个数据块碰巧在请求到达的时候存在了快速存取缓冲器上,如果快速存取缓冲器上的数据块被认为是数据块的权威性副本时,那么该数据块将通过快速存取缓冲器提供给文件系统。有时,这能提供非常快速的数据访问服务,一部分原因就在于快速存取内存模块的高速访问时间,以及与请求来自RAID硬盘的数据块有关的相对较低的访问时间。
根据本发明假设一个类似的同步操作实例,只读访问或读写访问在RAID扩展期间均被得到允许。当RAID正在进行扩展时,如果文件系统向RAID控制器递交了一个数据块请求,当请求到达时数据块已不驻留在快速存取缓冲器中,那么将从RAID配置的磁盘中检索获数据块并提供给文件系统。而检索得到的数据会提供给(和/或通过)快速存取缓冲器而无需额外的磁盘访问;没有、部分或所有的检索数据块将用于支持扩展操作所要求的程序上。这样一来,RAID扩展操作所要求的任务安排将重新调整以便及时利用检索到的数据块以便从检索到的数据受益;有时可以选择是否使用检索到的数据块。通过由快速存取缓冲器提供的检索数据块来同步文件系统的数据块检索,允许并发访问数据所带来的影响在执行RAID扩展时被降低。
根据本发明的快速存取缓冲器的一个实例,图6表示了RAID运行期间允许读操作的实例的几个步骤。当控制器如缓冲操作管理器或RAID控制器与快速存取缓冲器一起管理一个RAID操作时程序开始了(步骤600)。在RAID操作运行期间,控制器收到或截取到一个对存储于RAID组上数据的读请求(步骤610)。控制器对数据的权威性副本进行识别(步骤620)。例如,控制器会检查各项设置参数以确保当环境中出现两个或更多的数据副本时,快速存取缓冲内存模块中的副本为权威性副本,然后再检查快速存取缓冲器的快速存取内存模块来测定被要求对的数据是否是暂时存储于快速存取内存模块。如果被请求数据的权威性副本存储在快速存取内存模块内,控制器将从快速存取内存模块发起一个复制操作来执行读请求(步骤630)。如果被请求数据的权威性副本没有存储在快速存取内存模块中,控制器将检测其是否在RAID组上(步骤640)。例如,当磁盘在进行重建工作时,所有的数据都将不在RAID组上,直到重建工作完成。有时,如果RAID组上存在数据,控制器将从RAID磁盘组发起数据检索并执行请求或等待直到数据出现在在RAID磁盘组上(步骤650)。有时,RAID磁盘组访问的协调性、同步性和优化性可以通过RAID操作的高效完成来协调、同步以及优化RAID磁盘组的访问。例如,从RAID磁盘组检索数据可与RAID操作同步,以最小化与RAID配置的磁盘驱动器相关的访问和/或复制操作时间。
有时,本发明可用于支持RAID磁盘组容量的添加和缩减。例如,当要添加一个磁盘至RAID阵列或将一个新的RAID阵列组成RAID-on-RAID配置模式,数据可能会在磁盘问或RAID阵列间进行移动。此外,扩展或缩减RAID组容量也需要移动或重新计算冗余数据。例如,采用本发明来支持如增添或缩减RAID组容量的操作能够支持对内部缓冲数据的快速访问,基于大规模数据传输提高输入输出性能,取代基于数据块级的操作从而降低磁盘访问数量。同样,本发明也可与RAID操作一起完成如下任务,如改变存储条带(stripe)大小,迁移数据至不同的RAID级,迁移硬件或软件。
前文对本发明某些具体的实施实例的说明用于说明图示和描述。前文对本发明的一些具体的实施案例的描述是处于图示说明及描述而做的。它们并非是详尽无遗漏的,本发明也没有被限制在精确严格的条框之中。任何的修正或改变可根据上述方法而做调整。例如,申请者期望该发明能够应用于不同的用途。
选择实施实例加以描述,以说明本发明的原理和应用,从而促使本领域的普通技术人员将本发明熟练应用于各种不同的实施实例中或根据特殊的目的所做的修改。本发明的申请范围将在附后的权利要求及同等物文件中提出。
权利要求
1.一种在廉价磁盘冗余阵列(RAID)系统上进行操作的方法包括以下步骤从一个或多个源RAID设备中接收数据块并存储于快速存取缓冲器;对快速存取缓冲器中的数据块执行RAID操作;将数据块从快速存取缓冲器中传输到一个或多个目标RAID设备。
2.如权利要求1所述的方法,其中RAID设备从磁盘驱动器、磁盘阵列和RAID阵列的列表中选出。
3.如权利要求1所述的方法,其中源RAID设备根据从下列列表所选择的RAID级而开展工作,级RAID级0、RAID级1、RAID级2、RAID级3、RAID级4、RAID级5、RAID级6、RAID级10、RAID级50、RAID级53、RAID级0+1;以及目标RAID设备根据从下列列表所选择的RAID级工作级RAID级0、RAID级1、RAID级2、RAID级3、RAID级4、RAID级5、RAID级6、RAID级10、RAID级50、RAID级53、RAID级0+1。
4.如权利要求1所述的方法,其中至少有一个源RAID设备与至少一个目标RAID设备为同一设备。
5.如权利要求1所述的方法,其中快速存取缓冲器由随机存取存储器组成(RAM)。
6.如权利要求1所述的方法,其中执行RAID操作的步骤包括从以下一系列的RAID操作中所选的操作重建RAID阵列、重建RAID驱动器、扩展RAID阵列、缩减RAID阵列、配合RAID硬件迁移的RAID数据迁移、配合RAID软件迁移的RAID数据迁移、迁移至不同的RAID级的RAID数据迁移、重新格式化RAID阵列、恢复RAID阵列、恢复RAID配置的磁盘。
7.如权利要求1所述的方法,其中控制器与快速存取缓冲器相连,其中,RAID操作的执行包括以下步骤由控制器管理至少一部分的快速存取缓冲器的RAID操作,控制器可从RAID控制器、控制一个或多个源RAID设备的RAID控制器、控制一个或多个目标RAID控制器的RAID控制器、缓冲操作管理器或它们的任意结合中选择。
8.如权利要求1所述的方法,其中RAID操作的执行包括以下步骤识别快速存取缓冲器中的数据块;计算已识别的数据块在目标RAID设备上的目标位置。
9.如权利要求8所述的方法,其中计算出已识别的数据块在目标RAID设备上的目标位置之后,将数据从快速存取缓冲器复制到一个或多个目标RAID设备包括以下的步骤将数据块从快速内存缓冲器中非邻近的位置复制到一个或多个目标RAID设备。
10.如权利要求1所述的方法,其中RAID操作的执行步骤包括计算新的数据冗余信息并创建一个或多个新数据的冗余数据块,这些冗余块反映了新数据的冗余信息;识别目标RAID设备上新数据冗余数据块的目标位置,将数据块从快速存取缓冲器复制到一个或多个目标RAID设备的步骤还包括了将新数据的冗余数据块写入一个或多个目标RAID设备的目标位置上。
11.如权利要求1所述的方法,其中该方法可能以离线的模式进行,因而在至少执行该方法的部分时,禁止数据无存取操作,其中所述数据存取操作包括了由存储于RAID设备的外部资源目标数据所发起的命令,所述RAID设备由一个或多个源RAID设备和一个或多个目标RAID设备中选出。
12.如权利要求1所述的方法,其中该方法可能以在线的模式被执行,方法执行期间一个或多个数据存取操作能被顺利的完成,其中数据存取操作包括了由外部资源目标RAID设备所发起的命令,目标RAID设备从一个或多个源RAID设备以及一个或多个目标RAID设备中选出。
13.如权利要求12所述的方法,其中数据存取操作是指读取数据、写入数据以及删除数据,并且,数据存取操作由来自外部资源所发起的命令组成。
14.如权利要求12所述的方法,其中允许在线模式下的并发访问步骤包含了以下的步骤识别与数据存取操作关联的数据权威副本的位置。
15.如权利要求12所述的方法,其中数据操作是将新的数据写入到目标RAID设备,或将旧的数据从目标RAID设备中删除;并且,允许在线模式下的并发访问步骤包含了以下步骤根据数据操作更新快速存取缓冲器;以及确保目标RAID设备已根据数据操作更新。
16.如权利要求12所述的方法,其中允许在线模式下的并发访问步骤包括步骤在快速存取缓冲器上可对快速存取缓冲器中可用的数据执行至少一个存取操作。
17.如权利要求16所述的方法,其中允许在线模式下的并发访问步骤包括了同步RAID操作和一个或多个RAID设备上的数据存取操作,所述RAID设备是从一个或多个源RAID设备以及一个或多个目标RAID设备中选择出。
18.采用快速存取缓冲器的高效运行的廉价磁盘冗余阵列(RAID)系统包括用于存储数据块的快速存取内存模块;接口,用于连接一个或多个源RAID设备,以及一个或多个目标RAID设备;和管理存储于快速存取内存中数据块的RAID操作控制器。
19.如权利要求18所述的装置,其中控制器为RAID控制器;控制源RAID设备的RAID控制器;控制目标RAID设备的RAID控制器;控制源RAID设备和目标RAID设备的RAID控制器;或者缓冲操作管理器。
20.如权利要求18所述的装置,其中快速存取内存模块包括随机存取模块(RAM)。
全文摘要
高效运行RAID系统的设备及方法。快速存取缓冲器包括了一个离线的快速存取内存模块,支持诸如恢复或重新配置等RAID操作,从而降低甚至最小化对磁盘坏区需求和减少磁盘I/O活动。有时,快速存取内存模块被当作一个读写高速缓冲存储器,降低了对少量数据块频繁的磁盘访问活动。快速无磁盘内存如RAM能够迅速执行对内部缓冲数据块的操作。在对快速存取内存模块执行有关的RAID操作时,存储于RAID设备的内容可以被访问、或部分访问,或禁止访问,某些数据存取操作还与RAID操作保持同步。有时,数据可以从快速存取内存模块中获得,这样在执行RAID操作时为存储于RAID设备上的内容提供了快速的访问服务。
文档编号G06F3/06GK1892619SQ20061000515
公开日2007年1月10日 申请日期2006年1月13日 优先权日2005年7月6日
发明者张骥, 刘汉群, 丁建刚 申请人:美国亿科三友公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1