恢复受奇偶校验保护数据的方法和装置的制作方法

文档序号:6746057阅读:266来源:国知局
专利名称:恢复受奇偶校验保护数据的方法和装置的制作方法
技术领域
本发明涉及计算机数据存储设备中奇偶校验信息的维护,特别涉及从故障存储设备中重建数据时计算机系统实用性的维护。
现代计算机系统的大量数据存储要求大容量的海量数据存储设备备。通用的数据存储设备为磁盘驱动器,它是包含许多易损部件的复杂机构。一种典型的计算机系统将包含几个这样的存储设备。当用户增加其数据存储量时,系统就要配置更多的存储设备。只要任一存储设备出现故障,就足以使整个系统瘫痪。许多系统在故障存储设备被修复或替代并且丢失的数据被重新存储之前不能工作。存储设备数目的增加,任一部分出现故障从而导致系统故障的概率也增加。此时计算机用户越来越多地依赖于其系统的坚固性。因此,关键是寻找重建故障存储设备中的数据并且使系统在一个存储设备出现故障的情况下坚持工作的方法。
一种已知的处理这些问题的方法是“镜像法”。这种方法包括保留一套复制的存储设备,其中所存数据与原数据相同。如果原存储设备中任一存储设备出现故障,该复制设备便担当起向系统提供数据的任务。尽管此种方法非常有效,然而却是一种很昂贵的处理方法,因为一个用户必须付出两倍存储设备的费用。
另一种比较便宜的方法是使用奇偶校验块。奇偶校验块是在不同存储设备中某一特定地址上存储的所有数据记录通过异或运算形成的记录。换言之,一个存储设备中某一特定地址上数据块中的每一位与存储设备中每个存储设备的相同地址上的每一其它位进行异或,产生一个奇偶校验位数据块;然后该奇偶校验数据块被存入另一存储设备的同一地址内。如果在此存储设备组中任一存储设备出现故障,出现故障的存储设备上任一地址包含的数据都能通过其余存储器上相同地址的数据块与其相应的奇偶校验块进行异或运算来恢复。
奥奇(ouchi)的美国专利4,092,732号,介绍了一种奇偶校验数据块的方法。在奥奇的装置中,使用一个独立的存储设备来存储一个存储设备组的奇偶校验信息。在包含奇偶校验块的存储设备上每进行一次读写,该奇偶校验记录所包含的存储设备组中任一存储设备上的一个记录就被改变一次。因此,具有奇偶校验记录的存储设备就成为存储设备运行的瓶口。克拉克等人(Clark et al)的美国专利第4,761,785号(该专利作为本发明的参考文件),通过在一组存储设备中大致相等地分配奇偶校验数据块来改善奇偶校验信息的存储。一组存储设备 中的N个存储设备被分成多个相等地址范围的数据块,每一个数据块,含有多个数据记录。来自每一存储设备的具有相同地址范围的数据块形成一个数据块串。每个串有一个位于一个存储设备上的与该串中剩余数据块有关的奇偶校验块。不同串的奇偶校验数据块以循环方式分布于不同的存储设备中。
与镜像法相比,奥奇和克拉克的专利所描述的使用奇偶校验记录的方法,大大降低了保护数据的成本。但是,在奥奇和克拉克提出数据恢复或数据保护方法时,他们没有向用户提供在数据重建期间保持系统运行的方法。通常在重建数据之前,正常运行被中断,切断存储控制设备的电源,以修复或更换有故障的存储设备。因为这种先有技术完全依赖软件来恢复数据,所以在这种情况下,系统在相当长一段时间内不能使用。
先有技术并没有传授在没有复制或备用存储设备的情况下,使动态系统恢复和继续工作的方法。镜像法则要求双倍存储设备。至少要用一个或更多备用存储设备,即额外的备用磁盘驱动器,在原存储设备组中任一存储设备出现故障时,投入使用。虽然这种方法不需要全部镜像系统的投资,它仍需要额外的存储设备,这些设备除了作备份而外,别无它用。
本发明的一个目的是,提供一种强有力的方法和装置,用于在具有多个数据存储设备的计算机系统中进行丢失数据的恢复。
本发明的进一步目的是,提供一种强有力的方法和装置,使具有数个数据存储设备的计算机系统能够在其中一个数据存储设备有故障的情况下,继续运行。
本发明的又一个目的是,减少具有数个保护存储设备的数据处理系统进行数据保护的成本。
本发明再一个目的是,为拥有多个数据存储设备的计算机系统增添一种当其中一个数据存储设备出现故障时,恢复故障存储设备数据的性能。
一个存储控制器管理多个数据存储设备。该控制器上的一种存储管理机构维护它所管辖的存储设备上的奇偶校验记录。数据和奇偶校验块的组成如克拉克等人的专利所述。在存储设备出现故障的情况下,系统继续工作。该存储管理机构,试图通过从有故障的存储设备中取出数据,并将它们存入其余存储设备中的奇偶校验数据区域来恢复数据。
数据管理机构包括一种状态图,它指明每一数据块的对应奇偶校验块的地址,和该数据块的状态。如果某一存储设备出现故障,该存储管理机构便进入故障操作模式。当处于故障操作模式时,存储管理机构在从有故障的存储设备中取出数据之前,先检查状态图。如果数据尚未恢复,存储管理必须首先通过连续地读和累加一个奇偶校验组中所存储设备的相同的数据块(包括奇偶数据块)的异或(XOR)运算,来重建该存储数据块中的数据。由异或运算得到的数据块即为重建的数据,然后这些数据被存入该奇偶校验数据块的地址。接着,状态图被更新,指向已经重建的数据块,一旦数据已被重新建立,只需从前述的奇偶校验数据块直接读出或写入。以同样的方式,在向同一串中(在一个无故障存储设备上)的任一其它数据块写入之前,存储管理将重建有故障存储设备上一个存储数据块的数据。这是必要的,因为在该串上对任一数据块的读操作都将改变奇偶校验,使之无法随后对故障存储设备上的数据块进行重建。因此,一旦一个存储设备出现故障,当读和写操作引起存储管理重建数据时,系统的性能最初被降低。当数据重建之后,性能迅速改善。
在较佳实施例中,存储设备的组成及奇偶校验信息的产生和存储,如克拉克等人的专利所述。重建的数据被存入通常存储丢失数据所在串的奇偶校验数据的地址。不需要将系统中的存储控制器或其它任何部件断电,即可修复有故障的存储设备,然后再恢复丢失的数据。在此较佳实施例中,当进行数据的恢复和存储之时,配置有这种存储管理机构的计算机系统对用户来说仍然完全可以使用。在出现故障的存储设备被修复或替换之前,存储设备在没有奇偶校验保护的状态下工作。此实施例实现了连续工作和没有增加多少成本的条件下的单级故障保护。
在笫一个替换实施例中,每个无故障存储设备的空余存储区域被装入重建的数据。这些空余存储区域的总和构成一个虚备用存储器。当数据重建后,数据被放入该虚备用存储器中,而奇偶校验仍以通常方式被保持。这个替换实施例实现了更高级的故障保护,因为在单个的存储设备出现故障后,奇偶校验数据继续得以保持。然而,此种方法可能需要额外的存储空间以形成空余区域,或者在如果这些空余区域在正常情况下用作为其它用途(如暂时的数据存储)时,会使设备的性能下降。
在第二种替换实施例中,存储管理机构位于主机系统的操作软件中,但完成与位于存储控制器上的存储管理机构同样的功能。此实施例将比较佳实施例慢,但能够降低存储控制器的成本。


图1是包括本发明较佳实施例各部分的系统原理图;图2是一个状态图的原理图;图3是在正常工作模式期间,一个读操作的步骤流程图;图4是从主机向存储控制器写入数据时数据传输步骤的流程图;图5是在正常工作模式下,向存储设备写入数据的步骤流程图;图6是继存储设备故障后的读操作的步骤流程图;图7是一个存储设备已经出现故障以后,向存储设备写入数据的步骤流程图;图8是根据本发明的一个替换实施例的系统中各部分的方框图。
本发明较佳实施例中,计算机系统100的主要部件的方框原理图如图1所示。一个主系统101,通过总线102与存储控制器103进行通信。控制器103包括一个编程处理器104,非易失性随机存储器RAM105(图中示为NVRAM),异或硬件108,和高速缓冲存储器RAM109.(图中示为CACHE)。非易失性RAM105包含状态图106和内容表107。控制器103控制存储设备121-124的工作。在较佳实施例中,存储设备121-124是旋转磁盘存储器。尽管图1示出4个存储设备,但是不难理解,实际上控制器103所带的存储设备数目是可变动的。还应当理解到,可以有一个以上的控制器103与主系统101相连。在较佳实施例中,计算机系统100是IBM AS/400型计算机系统,当然,也可以使用任意的计算机系统。
每个存储设备的存储区域被划分成块131-138。在较佳实施例中,所有存储设备拥有相同的存储容量,并且所有奇偶校验的受保护块大小相同。虽然本发明可以被用于各种大小的存储设备或各种大小块的配置之中,本较佳实施例却使控制机构得以简化。
位于几个存储设备的相同位置上的所有块组成一个串。在图1中,存储块131-134构成第一串,块135-138构成第二串。第一串中有一个块被指定为奇偶校验块。奇偶校验块131、136在图1中用阴影部分表示。剩余的未画阴影的块132-135、137-138是存储数据的数据存储块。由块131-134组成的第一串奇偶校验块是块131。这个奇偶校验块包含同一串上其余块中的数据的异或关系。
在较佳实施例中,奇偶校验块以循环方式分布在不同的存储器中,如图1所示。因为每个写操作中,系统不仅肯定会更新包含被写数据的块,而且也会更新同一串中的奇偶校验块,所以,奇偶校验块的修改通常比数据块更频繁。在不同的存储设备之中分配奇偶校验块,大多数情况下将能通过分配存取荷载来改善设备性能。但是,这种分配对实现这一发明是不必要的。在一种替换的实施例中,可以将所有奇偶校验块放置在单一存储备上。
在较佳实施例中,每串中有一个块被指定为奇偶校验信息。如在一个替换实施例中,各串其中的一串不含奇偶校验保护。该串供暂存数据使用,而暂存数据不需要保护。图8表示该替换实施例,所述的这一串由块811-814组成。由于它是一个额外的存储空间,不属于奇偶校验数据保护系统的一部分,所以这个块可以为任意大小。
存储区域划分成串的情形如上所述,每个串包括多个数据块和一个奇偶校验块,这些均与克拉克等人的美国专利4,761,785(在此作为参考文件)所描述的相同。
存储控制器103包括执行存储管理程序的编程处理器104。存储管理程序的操作如下所述。控制器103还包括硬件异或电路108,用于对非易失性RAM105或高速缓冲RAM109中的数据进行异或运算。在一个替换实施例中,异或操作可由处理器104执行,专用硬件将使处理器的工作效果更佳。
控制器103使用非易失性RAM105作为暂时排队区域,供等待直接写入某一存储设备的数据之用。除了这些临时数据之外,状态图106和内容表107被存入非易失性RAM105中。内容表107包含数据的一个映像,这些数据等待写入其在存储器中的地址。
状态图106用来在故障恢复模式期间为每个数据块识别相应奇偶校验块的地址,以及每一数据块的状态。状态图106的细节如图2所示。对每一存储设备,它都有一个独立的状态图项目表。每个状态图项目201包含存储设备上数据块的地址202,在故障模式操作时,指示数据是否需要恢复的状态位203,和相应奇偶校验块的地址204。
再参考图1,高速缓冲存储器109是一个易失性随机存储器,用于存储来自存储设备的数据。在一个读操作期间,当来自存储设备的数据传输给主系统101时,它的作用相当于一个缓冲器。此外,响应主系统101发出的关于数据具有很大的修改和重写可能性的指示,这些数据被保存在高速缓冲存储器109内,因为未修改的数据必须与已修改的数据进行异或运算,以更新相应的奇偶校验数据,所以保存在高速缓冲存储器109中的读数据就不用在写操作开始之前立即将数据再次读出。采用高速缓冲存储器109仅仅为了改善性能。在一替换实施例中,可能不用它就能实现本发明。高速缓冲存储器109被视为一个易失性RAM,因为对系统整体性来讲不必要将从存储设备读出的数据保存在非易失性存储器中。然而,高速缓冲存储器可能担当非易失性存储器105的部分任务。根据存储器模块的相对成本和大小,采取这种方法可能是合用的。
结合与本发明有关的硬件和软件特征,对本系统的功能详细介绍如下。该系统具有两种工作模式正常模式和故障模式。当所有磁盘存储设备工作正常时,系统以正常模式工作。当某一个存储设备出现故障时,工作模式变为故障模式,但该系统仍继续工作。
在正常模式下的读READ操作如图3所示。在步骤301,从主系统接收一个READ指令后,READ操作开始执行,并且在步骤302判断所请求的数据是否在非易失性RAM105或高速缓冲存储器109中。如果是,至步骤304,在非易失性RAM或在高速缓冲存储器中的数据被直接送给主系统。否则,转至步骤303,先将数据从相应的存储设备中读入高速缓冲存储器109,然后再从步骤303转至步骤304,送至主系统。在WRITE操作期间,高速缓冲存储器109也能改善系统性能。当WRITE操作开始后,如果有待更换的数据的原始版本已在高速缓冲存储器109中,就不必再次读出数据以改变奇偶校验,所以使系统性能得以改善。应用先有技术中任一种高速缓冲存储器管理技术都可以管理高速缓冲存储器109的内容。
两个异步的任务进入存储设备控制器的处理器104时,WRITE操作开始执行。一个任务经总线102与主系统通信,如图4所示。当它在步骤401从主机接收到WRITE指令后,WRITE操作开始。然后它检查内容表107,以便在步骤402判断在非易失性RAM105内是否有足够的空间用于存储被写入存储设备的数据(注意有用空间包括由要被写入的旧版数据占用的空间和未占用的空间)。如果空间不够,控制器103则不能从主系统接收数据,必须在步骤403等待有用空间的出现(即它必须等待已在非易失性RAM105中的数据被写入存储设备121-124)。当非易失性RAM105中的空间变为可用,在步骤404,数据就从主系统101中被拷贝进非易失性RAM105,内容表107被更新。然后,在步骤405,处理器104向主系统发出一个操作完成提示。一旦接到操作完成的提示,主系统不再继续处理,仿佛数据实际上已写入存储设备121-124一样,尽管事实上数据可能暂时在非易失性RAM105中等待。从主系统方面而言,操作看起来已经完成。
笫二个异步任务是从非易失性RAM105中将数据写入存储设备。在正常模式下的这一任务的流程图示于图5。在步骤501,该任务从非易失性RAM的队列中选择WRITE操作。选择规则不属于本发明的部分,选择规则可能是,例如“先进先出”,“后进先出”,或基于系统性能和其它考虑的其它规则。当执行WRITE操作时,奇偶校验必须被更新,通过使新的写数据与旧的数据异或,就能够得到一个被WRITE操作改变了的位的位图。将这个位图与现存的奇偶校验数据异或,产生新的奇偶校验数据。但是,在写入存储设备之前,在步骤502,该任务首先检查是否高速缓冲存储器109中的旧数据仍处于未修改状态。如果不是,在步骤503,它被从存储器读入高速缓冲存储器。然后在步骤504这种高速缓冲存储器中的旧数据与非易失性RAM中的新数据异或,生成改变后数据的位图。当新数据被写入存储设备121-124中的一个时,位图被暂存进非易失性RAM105中。在步骤506、507,旧奇偶校验数据被读进高速缓冲存储器(如果尚未在此的话),并在步骤508与位图异或产生新的奇偶校验数据。这种新的奇偶校验数据被写入存储设备121-124中的一个之中,并在步骤509,内容表被更新,写操作完成。
当探测到一个存储设备出现故障时,系统开始工作于故障模式。存储设备故障指其功能故障,即存取数据的故障。这种故障不一定是该设备自身损坏引起的。例如,该设备可能被断电。或数据电缆被断开。从系统角度看,任何故障,无论何种原因引起,都是存储设备的故障。探测这类故障的探测机构在先有技术中是已知的。普通的机构包括对接收数据中未接收到响应的超时和连续的高误码率的探测。
图6表示系统工作在故障模式下的READ操作。象在正常模式下的READ操作那样,在步骤601,当从主系统接收到一个READ后,在步骤602,控制器首先为所要的数据检查其非易失性RAM105和其易失性高速缓冲存储器109。如果该数据在非易失性RAM或高速缓冲存储器中,数据通过系统总线102被传送给主系统。如果数据未在非易失性RAM高速缓冲存储器中,而住留在一个尚未损坏的存储设备中(步骤603),那么在步骤604,数据以正常方式被从该存储设备中读入高速缓冲存储器。如果数据住留在一个出现故障的存储设备中,控制器检查状态图106中的状态图项目201,在步骤605寻找所要数据在存储设备中的地址。状态图项目将指示数据是否已经得到恢复,即是否已通过异或重建数据并存入某一替代的地址上。如果状态图指示数据尚未得到恢复(步骤605),控制器在步骤608接着在除了有故障的以外的所有存储设备上读相应的存储地址。异或硬件108将每个读的数据块与累加的先前读数据块的异或结果再进行异或运算。最后的异或结果构成故障设备的重建数据。在步骤609,这种重建的数据被写进与此数据块相对应的奇偶校验块中。这个块的位置被存入状态图108中204栏的奇偶校验块地址中。将恢复的数据写入奇偶校验块位置之后,在步骤610,通过将同一串中每个块的状态位203改变成“1”来表示数据已经恢复,使状态图108更新。在步骤611,重建的数据被送给主系统。如果状态位203原来为“1”,表示数据已被恢复,控制器将在步骤606从状态图中得到前面奇偶校验块区域的地址(在此,恢复的数据已被存储),并在步骤607从这一地址中直接将数据读进高速缓冲存储器。使用这种设备,只需对所有磁盘存储设备读一次就可恢复任一数据块中的数据。一旦恢复,数据的实际存储地址有效地再定位于原来用于奇偶校验存储的地址,而该块此后的任意读只需要读这一存储设备。
图7表示当系统工作在故障模式时,写入存储设备的操作。象正常模式WRITE那样,一个图4所示的主系统通信任务接收经过总线102来自主系统的被写数据。在步骤701,写入存储设备任务从非易失性RAM105的队列中选择一个写操作,控制器判断数据是否为要写入出现故障的存储设备的数据(步骤702),并检查状态图(步骤703、709)。如果数据是要写入有故障的存储设备的,那么在这个块中的数据仍未被恢复,在任一可能的写操作之前这个块必须恢复。恢复步骤与上述READ操作的步骤相同。在步骤704,同一块串的每一块(包括奇偶校验块)依次被读,并且将其内容与先前读操作块的累加异或再进行异或运算。在步骤705,结果(即重建数据)被写进曾用作奇偶校验块的位置。一旦完整的块恢复完毕,新的数据(典型地将只包含该块的一部分)在步骤706被定在以前奇偶校验地址中的被恢复数据之上,而指示该块的被更新状态图已在步骤707中得到恢复。如果数据为要被写入有故障的存储设备,但数据已经被恢复,那么它就直接写入先前的奇偶校验地址,现在用于恢复数据的存储,如步骤708。
当工作在故障模式时,如果数据正在被写入一个无故障存储设备,控制器检查状态图(步骤709)。如果状态值为“1”,表示该故障存储设备上的同一个串上的数据块已经被恢复,WRITE数据在步骤710直接被写入无故障存储设备中。如果状态值为“0”,数据不能被直接写入非故障存储设备,因为这种操作可能改变奇偶校验,使之不能后来在有故障存储设备中重建相应的数据。相应地,在较佳实施例中,控制器将先恢复该故障存储设备上的同一串中的数据块。如图7所示,在步骤711,故障存储设备中的数据块首先通过异或运算重建,然后在步骤712保存于奇偶校验块地址。在步骤713,WRITE数据被写入其存储设备,在步骤714,状态图被更新。应当注意,如果含有被写数据的串的奇偶校验块处于故障存储器上,那么就没有重建数据的必要,因为无论怎样奇偶校验数据都将被丢掉。所以,当探测出这个存储设备有故障的,该串上所有块的状态值被置成“1”。其效果导致该串上的数据直接被写入存储设备,仿佛故障存储器上相应的块已经得到恢复了一样。例如,参考图1,如果存储设备121出现故障,控制器立即将块132-134的状态值置成“1”,使写进这些块的WRITE操作可以直接进行。在一替换实施例中,如果这一WRITE操作向一个非故障存储器写入,并且该故障存储设备上相应的块还没有得到恢复,那么可能采取正常模式下WRITE操作的步骤来更新奇偶校验块,以便保持以后重建故障设备中数据的能力,当故障存储设备上数据的READ或WRITE被请求后,进行数据重建。
在较佳实施例中,奇偶校验块用于存储重建的数据,结果,在单个存储设备出现故障后,系统就在没有奇偶校验保护的条件下运行。而一个替换实施例则不然,如图8所示,在存储器设备上留出了一个或多个足够大的空余存储串。这些空余存储串可能存有临时数据,也可能是空的;临时数据不要求奇偶校验保护,并且在需要时可以重写。在此替换实施例中,重建的数据被重新置入空余存储串811-814的一个块中,而不是存入奇偶校验块中。这种替换实施例仅仅可能用于存在足够的空余存储区域,来容纳有故障存储设备中的非空的内容的场合。这一替换实施例也可能引起系统可用的暂存空间减小的后果,可能降低系统的性能,或者减少系统可提供服务的用户数目。在这一实施例中,正常模式READ和WRITE操作与较佳实施例中的步骤完全相同。当在故障模式下时,则以上述方式检查状态图,和必要时重建数据。但它不将重建的数据写入奇偶校验块,而是写入空余存储块内。在状态图106中,还要求另外的区域来记录曾包含在故障存储设备中数据的新位置。此外,以与正常状态下的写操作完全相同的方式,用任何WRITE操作都可以使奇偶校验更新。任一故障存储设备上的数据重建之后,奇偶校验都被更新。
在另一替换实施例中,奇偶校验保护和镜像保护被结合在同一系统中。包含在存储设备中的一些数据通过本文所述的奇偶校验机构来保护,而另一些数据则采用镜像保护。当一个存储设备出现故障时,奇偶校验保护的数据以上述方式被重建和存储,而镜像保护的数据则被从镜像复制的存储设备中取出。
虽然本发明的一个具体的实施例与若干替换实施例已经加以描述,但本领域的技术人员将能够理解到,在本发明权利要求书的范围内。可以做出各种形式上和细节上的变动。特别地,尽管本文公开的较佳实施例采用磁盘存储设备,但是本发明可用于具有可擦、读/写特性的其它存储设备技术。
权利要求
1.一种操作具有一组存储块的计算机系统的方法,所述存储块组包括多个用于储存数据的数据存储块并包括至少一个储存用于存储在所述数据存储块中的数据的纠错信息的纠错存储块,每个所述存储块包含在各自的数据存储器里,所述方法特征在于包括步骤当包含某个数据存储块的数据存储器出理故障时,从该组的其它存储块重建储存在所述数据存储块的数据;以及把所述重建步骤重建的数据存储到所述数据存储器中除所述出现故障的数据存储器之外的一个上。
2.如权利要求1的操作计算机系统的方法,其特征在于,当试图存取数据时所述重建数据步骤重建所述数据。
3.权利要求1的操作计算机系统的方法,其特征在于,所述存储数据步骤把重建的数据存储到所述至少一个纠错存储块中。
4.权利要求3的操作计算机系统的方法,其特征在于,当试图存取数据时所述重建数据步骤重建所述数据。
5.权利要求1的操作计算机系统的方法,其特征在于,所述数据存储器包含一个备用的存储块,并且所述存储数据步骤把重建的数据存储到所述备用的存储块里。
6.权利要求5的操作计算机系统的方法,其特征在于,当试图存取数据时所述重建数据步骤重建所述数据。
7.一种用于计算机系统的存储设备,包括至少三个数据存储器;至少一组存储块,每组包括多个用于储存数据的数据存储块并包括至少一个用于存储在所述数据存储块中的数据的纠错信息的纠错存储块,每个所述存储块包含在各自的数据存储器里;用于当包含某个数据存储块的数据存储器出现故障时从该组的其它存储块重建储存在所述数据存储块里的数据的装置;以及用于把所述重建数据存储到所述数据存储器中除所述出现故障的数据存储器之外的一个上,其中在其上存储所述重建数据的所述数据存储器是一个包含着所述组中一个所述其它存储块的数据存储器,从这个所述其它的存储块所述重建数据的装置重建数据。
8.权利要求7的用于计算机系统的存储设备,其特征在于,所述存储所述重建数据的装置把所述数据存储到所述至少一个纠错存储块里。
9.权利要求8的用于计算机系统的存储设备,其特征在于,所述重建数据的装置包括一个存储控制器,所述存储控制器包括一个执行存储管理程序的可编程处理机;以及一个非易失性随机存取存储器。
10.权利要求8的用于计算机系统的存储设备,其特征在于,所述数据处理系统包括至少两个存储块的所述组;各组中所述的至少一个纠错存储块的每个块包括一个存储在所述数据块里的数据的奇偶性的奇偶存储块;以及按循环方式在所述数据存储器中分布所述奇偶存储块。
11.权利要求8的用于计算机系统的存储设备,其特征在于,每个所述数据存储器是一个旋转式磁盘驱动存储机。
12.权利要求7的用于计算机系统的存储设备,其特征在于,每个所述数据存储器包含一个备用存储块并且所述存储所述重建数据的装置把所述数据存储到所述备用存储块的一个中。
13.权利要求12的用于计算机系统的存储设备,其特征在于,每个所述数据存储器是一个旋转式磁盘驱动存储机。
14.权利要求12的用于计算机系统的存储设备,其特征在于,所述数据存储器上含有的所述备用存储块的总存储量足够包含从所述故障存储器重建的全部数据。
15.一种用于计算机系统的存储控制器包括一个处理机;一个存储器;用于控制多个数据存储器的运行的装置,所述数据存储器包含至少一组存储块,每组存储块包括多个用于储存数据的数据存储块并包括至少一个用于存储在所述数据存储块中的数据的纠错信息的纠错存储块,每个所述存储块包含在各自的数据存储器里;用于维护所述至少一个纠错存储块的装置;用于当包含某个数据存储块的数据存储器出现故障时从该组的其它存储块重建储存在所述数据存储块里数据的装置;以及用于把所述重建数据存储到所述数据存储器中除所述出现故障的数据存储器之外的一个上,其中在其上存储所述重建数据的所述数据存储器是一个包含着所述组中一个所述其它存储块的数据存储器,从这个所述其它的存储块所述重建数据的装置重建数据。
16.权利要求15的用于计算机系统的存储控制器,其特征在于,所述存储所述重建数据的装置把所述数据存储到所述至少一个纠错存储块里。
17.权利要求15的用于计算机系统的存储控制器,其特征在于所述多个数据存储器包括至少两个存储块的所述组;各组中所述的至少一个纠错存储块的各个块包括一个存储在所述数据块里的数据的奇偶性的奇偶存储块;以及按循环方式在所述数据存储器中分布所述奇偶存储块。
18.权利要求15的用于计算机系统的存储控制器,其特征在于,每个所述数据存储器包含一个备用存储块并且存储所述重建数据的所述装置把所述数据存储到所述备用存储块的一个中。
19.权利要求18的用于计算机系统的存储控制器,其特征在于,所述数据存储器上含有的所述备用存储块的总存储量足够包含从所述故障存储器重建的全部数据。
20.一种计算机系统的存储设备,包括至少三个数据存储器,每个所述数据存储器包含至少一个存储数据的存储块并且包含一个备用存储区;用于检测所述数据存储器中的一个的故障的装置;用于重建存储在所述出现故障的数据存储器中的数据的装置;用于把所述重建的数据存储到除所述出现故障的数据存储器之外的所述数据存储器的多个所述备用存储区里。
21.权利要求20的用于计算机系统的存储设备,其特征在于进而包括用于确定存储在多个所述数据存储器内的数据的奇偶性的装置;以及用于把所述奇偶性存储到所述数据存储器中的一个上的装置,其中所述用于重建存储在发生故障的一个数据存储器的数据的装置包括用于对存储在发生故障的所述数据存储器之外的所述数据存储器上的数据和奇偶性进行“异或”运算的装置。
22.权利要求20的计算机系统的存储设备,其特征在于,除所述发生故障的数据存储器之外的所述数据存储器的所述多个备用存储区的总存储量足够包含从所述故障数据存储器重建的全部数据。
23.一种用于计算机系统的存储设备,包括至少三个数据存储器;奇偶生成装置,用于生成作为多个数据块组的函数的多个奇偶块,每个奇偶块生成为对应的数据块组的函数;存储管理装置,用于管理所述数据存储器上所述数据块和奇偶块的存储;数据重建装置,用于在一个所述数据存储器出现故障的情况下重建存储在所述一个数据存储器上的一个不可存取的存储块中的数据,其中所述存储管理装置管理所述数据块及所述奇偶块的存储,从而所述数据重建装置能够从数据存储块组中的其它存储块以及属于不可存取的存储块的对应奇偶存储块重建储存在所述不可存取的存储块里的数据;以及用于把所述重建的数据存储到所述发生故障的数据存储器之外的一个所述数据存储器上的装置,其中在其上存储所述重建数据的所述数据存储器是一个包括着数据存储块组中至少一个所述其它的存储块以及属于不可存取的存储块的对应奇偶存储块的数据存储器。
24.权利要求23的用于计算机系统的存储设备,其特征在于,所述存储管理装置包括用于把一个数据存储块组的每个存储块以及对应的奇偶存储块分配到各自的一个所述数据存储器上的装置.
25.权利要求24的用于计算机系统的存储设备,其特征在于,每个所述数据存储器包含一个备用存储区并且存储所述重建数据的所述装置把所述数据存储到所述备用存储区。
26.权利要求24的用于计算机系统的存储设备,其特征在于还包括一个含有所述奇偶生成装置,所述存储管理装置以及所述数据重建装置的存储控制器,所述存储控制器具有一个执行存储管理程序的可编程处理机和一个随机存取存储器。
27.一种在冗余存储器阵列中联机重建一个故障数据存储器的方法,所述冗余存储器阵列和一个控制器连接,该存储器具有多个存储条,每个存储条包含多个数据块和至少一个相关的纠错块,该方法的特征在于包括步骤a.为出故障的存储器提供替代存储处;b.为阵列内的每个存储条重建出故障的存储器的数据块;c.把重建的数据块存储到替代存储处的一个区里;d.如果在重建期间有存取所述阵列内一个数据块的请求,则(1)如果所请求的数据块位于该出故障的存储器,则(a)访问包含着该被请求数据块的存储条上的所有的其它数据块和至少一个相应的纠错块;(b)从所访问的块重建该被请求的数据块;(2)如果所请求的数据块不位于出故障的存储器上,则按常规方式似乎所述出故障的存储器未出故障地存取所请求的数据块,不访问包含着该被请求数据块的存储条上的所有其它数据块。
28.一种在一个具有对访问多个数据存储盘进行控制的一个处理机的系统中处理数据的方法,其中选定数量的所述盘的存储扇区包含着用户数据并且所述盘中选定一个盘的存储扇区包含着和其对应的扇区中的用户数据项相匹配的冗余奇偶项,所述盘中的对应用户数据扇区和奇偶检验扇区构成可识别的扇区组,当所述多个盘运行在退化方式下其中一个所述用户数据盘是无法工作的而其用户数据是从其它用户数据盘的用户数据和奇偶检验盘的奇偶项重建时使用所述方法,所述方法包括步骤在向可工作盘的一个选定扇区写入新数据之前,把为不可工作盘的相应扇区重建的用户数据写入到奇偶检验盘的对应奇偶扇区中以替换其中的奇偶项;在所述系统的规定标识区中输入标记其重建数据已写入到奇偶检验盘的该无法工作盘的信息;把该新数据写入到可工作盘的选定扇区上。
29.权利要求28的方法,其特征在于还包括步骤如果不能从无法工作盘的一个扇区读出数据,读系统的该规定标识区中的信息以确定奇偶盘的对应奇偶扇区中的数据项是否是该无法工作盘的重建数据;以及如果所述标识区中的信息标记对应奇偶扇区的数据项为该无法工作盘的相应数据扇区的重建数据,从奇偶盘的对应奇偶扇区读出该数据。
30.一种数据存储设备,包括一组至少三个的数据存储器;一个和所述数据存储器通信的数据存储控制器,所述数据存储控制器把在所述数据存储器组上的数据存储管理成多个存储块组,每个块组包括多个数据块和至少一个纠错块,所述块组的每个块存储在不同的有关的一个所述数据存储器上;其中所述控制器根据检测出所述数据存储器中的任一个出现故障重建储存在出故障的数据存储器上的数据,储存在出故障的数据存储器的不可访问块里的数据是从该不可访问块所属的存储块组中的其余的块上重建的;并且其中所述控制器把从出故障的数据存储器重建的所述数据存储到所述数据存储器组中的其它的多个数据存储器中。
31.权利要求30的数据存储设备,其特征在于,至少一个纠错块包含奇偶检验信息并且所述控制器通过对不可访问块所属组中的所有其它块进行“异或”运算重建储存在该不可访问块中的数据。
32.权利要求30的数据存储设备,其特征在于,所述控制器把从出故障的数据存储器重建的所述数据存储到所述纠错块中。
33.权利要求30的数据存储设备,其特征在于,所述数据存储控制器包括一个执行存储管理程序的可编程处理机;以及一个非易失性随机存取存储器。
34.权利要求30的数据存储设备,其特征在于,以循环方式在所述数据存储器中分布所述纠错块。
35.权利要求30的数据存储设备,其特征在于,每个所述数据存储器包含至少一个备用存储块,在所述数据存储器组中包含的备用存储块的总数足够存储所述出故障的数据存储器的内容。
36.权利要求30的数据存储设备,其特征在于所述数据存储控制器记录有关出故障的数据存储器所包含的数据块的状态信息,所述状态信息包括,对于每个数据块,是否所述数据块已重建并且是否已存储到所述数据存储器组中的其它数据存储器里;响应请求访问包含在出故障的数据存储器上的一个不可访问的数据块,所述控制器利用所述状态信息确定该不可访问的数据块是否已经重建;根据确定该不可访问的数据块是否已经重建,如果它尚未重建所述控制器重建该不可访问的数据块;以及根据确定该不可访问的数据块是否已经重建,如果它已被重建所述控制器不再重建该不可访问的数据块。
37.一种用于在其中之一的存储器发生故障的情况下操作冗余存储器阵列的方法,所述存储器阵列包含多个存储在所述存储器组的存储块组,每个所述存储块组包括多个数据块和至少一个相关的纠错块,一个组中的各个块存储在不同的一个所述存储器上,所述方法特征在于包括步骤a.为出故障的存储器提供替代存储处;b.为出故障的存储器的数据块记录状态信息,所述状态信息包括,用于每个有关数据块的,所述数据块是否已重建并且已存储到替代存储处中;c.接收读所述存储器阵列的一个数据块的请求;d.根据所述读一个数据块的请求;(1)如果被请求的数据块位于出故障的存储器里,则(a)利用所述状态信息判定被请求的数据块是否已被重建并已存储到替代存储处;(b)如果被请求的数据块尚未重建并尚未存储到所述替代存储处,则(i)访问包含该被请求数据块的数据块组中的所有的其它数据块和至少一个对应的纠错块;(ii)从所访问的数据块重建所请求的数据块;(iii)把重建的数据块存储到替代存储处;(iv)更新所述状态信息以反映该所述请求的数据块已被重建并已存储到替代存储处;(c)如果被请求的数据块已被重建及已存储到替代存储处,则直接从替代存储处访问所请求的数据块;(2)如果所请求的数据块不位于出故障的存储器里,则直接访问所请求的数据块。
38.权利要求37的方法,其特征在于,至少一个纠错块包含奇偶检验信息,其特征还再于,从所访问的数据块重建所请求的数据块的步骤包括对所有被访问的数据块进行“异或”运算以产生一个新的数据块。
39.权利要求37的方法,其特征在于,所述替代存储处包括多个在所述冗余存储器阵列的各个不同的存储器中分布的数据块.
40.权利要求37的方法,其特征在于还包括步骤e.接收对所述存储器阵列的一个更新数据块的写请求;f.根据对一个要更新一个数据块的所述写请求;(1)如果要更新的数据块位于出故障的存储器上,则(a)利用所述状态信息判定要更新的数据块已被重建并已被存储到替代存储处;(b)如果要更新的数据块未被重建并未存储到所述替代存储处,则(i)访问包含该要更新的数据块的数据块组中的所有其它的数据块和至少一个的相应纠错块;(ii)从所访问的数据块重建要更新的数据块;(iii)把重建后的要更新的数据块存储到替代存储处;(iv)更新所述状态信息以反映所述要更新的数据块已被重建和存储到替代存储处中。
41.权利要求40的方法,其特征在于还包括步骤f.根据对一个要更新的数据块的所述写请求(2)如果要更新的数据块不位于出故障的存储器上,则(a)利用所述状态信息判定一个属于要更新的数据块所属的数据块组中的出故障存储器的不可访问的数据块是否已被重建并已存储到替代存储处中;(b)如果出故障的存储器的该不可访问的数据块尚未重建也未存储到所述替代存储处中,则(i)访问包含该不可访问数据块的数据块组中的所有其它数据块和至少一个相应的纠错块;(ii)从所访问的数据块重建该不可访问的数据块;(iii)把重建的不可访问的数据块存储到替代存储处中;(iv)更新所述状态信息以反映所述不可访问的数据块已被重建并已存储到替代存储处中。
42.一种用于存储计算机系统的数据的存储子系统,包括至少三个数据存储器,每个数据存储器用于容纳多个存储块,每个存储块包含在多个存储块组中的一个组内,每个所述组包括多个数据块和至少一个相关的纠错块,一个组的各个块容纳在不同的各自的一个所述的数据存储器上;一个和所述诸数据存储器连接的控制器,所述控制器包括一个可编程处理机,用于执行存储管理程序以控制所述存储子系统的运行;一个存储器,所述存储器包括一个状态图,所述状态图具有多个记录所述数据块的状态的状态项;一个纠错块生成器,用于生成一个作为相应的数据块组中的其它数据块的函数的纠错块;其中在一个所述数据存储器出现故障的情况下,所述存储管理程序使所述控制器(a)分配用于存储在出故障的数据存储器上的数据的替代存储处;(b)一旦接收到对容纳在所述存储子系统中的一个数据块的读请求,(1)如果所请求的数据块位于出故障的存储器上,则(a)访问存储在所述状态图中的信息以判定被请求的数据块是否已被重建和已存储到替代存储处中;(b)如果被请求的数据块尚未重建也未存储到所述替代存储处中,则(i)读包含着被请求数据块的数据块组中的所有其它的数据块和至少一个的相应纠错块,(ii)从读的这些数据块重建被请求的该数据块,(iii)把重建的数据块存储到替代存储处,以及(iv)更新所述状态图以反映该请求的数据块已被重建;(c)如果该请求的数据块已被重建并已存储到替代的存储处,则直接从替代的存储处读该请求的数据块;(2)如果该请求的数据块不位于出故障的存储器上,则直接读该请求的数据块。
43.权利要求42的存储子系统,其特征在于,所述替代存储处由多个分布在所述子系统的各个不同的数据存储器中的数据块构成。
44.权利要求43的存储子系统,其特征在于,所述纠错块生成器生成一个作为对应存储块组中其它数据块的“异或”运算函数的奇偶检验块。
45.一种用于把数据存储到一组至少三个数据存储器上的数据存储设备,所述数据存储设备包括纠错生成装置,用于生成作为多个数据块组的函数的多个纠错块,每个纠错块生成为一个对应的数据块组的函数;存储管理装置,用于管理所述数据存储器上对所述数据块和对所述纠错块的存储;数据重建装置,用于重建存储在一个出故障的数据存储器上的不可访问的存储块里的数据并用于把重建的数据存储到替代的存储处,其中所述存储管理装置管理对所述数据块和所述纠错块的存储,从而所述数据重建装置能从一个不可访问的数据块所属的存储块组中的其它数据存储块以及相应的纠错存储块重建所述不可访问的数据块中包含的数据;状态映象装置,用于记录所述出故障的数据存储器上的不可访问的存储块的重建状态,所述状态映象装置为各个不同的不可访问的存储块记录所述不可访问的存储块是否已重建;故障状态数据存取装置,用于在所述出故障的数据存储器出现故障之后响应对存储在所述至少三个的存储器组上的失态数据的请求,所述故障状态数据存取装置和所述状态映象装置以及所述数据重建装置合作,以便(a)如果所述数据未存储在所述出故障的数据存储器上直接存取所述数据,(b)如果所述数据存储在所述出故障的数据存储器上的一个不可访问的数据块上并且所述状态映象装置指示所述数据已经重建则在替代存储处存取所述数据,以及(c)如果所述数据存储在所述出故障的数据存储器上的一个不可访问的数据块上并且所述状态映象装置指示所述数据尚未重建,则用所述数据重建装置重建数据和存储到替代存储处中,并且用所述状态映象装置更新状态信息。
46.权利要求45的数据存储设备,其特征在于,所述纠错块包含奇偶检验信息并且纠错生成装置把各个纠错块生成为所述相应的数据块组的“异或”运算函数。
47.权利要求45的数据存储设备,其特征在于所述替代存储处包括多个分布在所述至少三个数据存储器的所述组的各个不同的存储器上的存储块。
全文摘要
存储控制器上的存储管理机构,维护其管理的存储设备的奇偶校验记录,包括为每一数据块指示相应奇偶校验块地址和数据块状态的状态图;若单个存储设备出现故障,系统继续工作,机构在有故障存储设备上存取数据前检查状态图,若数据尚未重建,通过在奇偶校验组中所有存储设备上读和累加这些块(包括奇偶校验块)的异或值,首先重建该存储块中的数据,存于奇偶校验块的位置,更新状态图,指示该块已重建;重建后,只需直接从原奇偶校验块中读出或写入。
文档编号G11B20/18GK1182913SQ97116199
公开日1998年5月27日 申请日期1997年8月21日 优先权日1990年6月21日
发明者米尔顿·F·邦德, 布莱恩·E·克拉克, 雷蒙德·S·麦克罗伯特斯 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1