专利名称:协调数据存储子系统中数据存储设备管理操作的系统和方法
技术领域:
本发明涉及数据存储系统。更具体地说,本发明涉及以提供并发执行数据管理操作的方式来协调数据存储子系统中一个或多个数据管理操作的执行。
背景技术:
现有的数据存储管理操作包括对用户数据和/或元数据进行操作的若干独立操作。这种数据存储设备阵列控制操作包括,例如(a)数据一致性检查,以检测和在某些情况下纠正奇偶性数据的不一致性;(b)被管理阵列的备份策略;(c)在带有失效成员盘的卷集中冗余逻辑驱动器重建;(d)卷集初始化操作;(e)分级存储管理操作;(f)虚拟存储自动资源分配操作;(g)当已经满足或超过系统资源利用阈值时的报告方法,等等。一个卷集是一个盘阵列对象,从主计算机中的操作环境看来,卷集最近似于单个逻辑盘。通常这些操作或者作为前台进程或者作为后台进程由系统管理员以串行方式独立地执行。进行这类数据管理操作的过程在数据存储系统管理领域是已知的。
这些独立执行的盘阵列控制操作争夺处理器和数据存储设备资源。例如,已知的数据存储设备数据一致性检查操作独立地扫描包括全部数据的卷集介质表面和与卷集内给定数据条关联的奇偶性扇区,并且通常对那些扇区中的全部数据字节进行操作,以确定为那个数据条存储的奇偶性是否与该数据条中存储的主数据一致。类似地,已知的被管理阵列备份操作也是独立地扫描包括全部数据的卷集介质表面和该卷集中包含的奇偶性扇区并对数据进行某些操作。这些现有技术通常的局限性在于如果并发地执行数据一致性检查操作和阵列备份操作,则一般会对给定卷集中的相同数据和奇偶性扇区进行介质表面多重冗余扫描和相关的数据操作。
由于当今配置的存储池大小在多少千兆字节甚至多少兆兆字节范围已属平常,以及对数据进行扫描和进行共同的和/或独特的操作所占用的时间,这些已知的独立的方法的效率从时间和系统资源的角度来看是太低了。往往是已知的独立调度的操作需要的完成时间大于每日的小时数。于是需要一种协调执行盘阵列控制操作的系统和方法,从而能显著减少执行这些操作所需要的时间量。
发明内容
本发明提供对数据管理操作的协调管理,以显著地减少数据管理操作所需要的时间和系统资源,而在现有技术中这是不可能的。这是通过实现一种综合任务导控器(CTD)方法来完成的,该方法根据并发执行的数据管理操作的要求,有条件地进行这些控制操作。
本发明的一个方面是在由一组数据管理操作管理的数据存储子系统中实现的一种方法。该方法首先由任务导控器并发执行第一数据管理操作和第二数据管理操作,由此协调数据管理操作的执行。第一操作包括第一组任务,而第二操作包括第二组任务。接下来,该方法根据一组预先确定的规则控制第一组和第二组任务中每个任务的执行或不执行。
在另一方面中,本发明是提供数据管理操作的协调管理的数据存储系统。该系统包括与一管理设备相连的一个或多个数据存储设备。该管理设备包括一个存储器,用于存储数据和计算机程序指令供任务导控器进行数据管理操作,这些操作包括第一操作第二操作。第一操作包括第一组任务,第二操作包括第二组任务。
该管理设备还包括一个处理器,用于从存储器中取出数据和执行任务导控器。首先,任务导控器并发地执行第一操作和第二操作。第一操作包括第一组任务,第二操作包括第二组任务。接下来,任务导控器根据一组预先确定的规则控制第一组和第二组任务中每个任务的执行或不执行。
在另一方面中,本发明是协调数据存储子系统中数据管理操作的管理设备。该管理设备包括与一个或多个数据存储设备相耦合的一个或多个通信端口,以及一个存储器,用于存储数据和用于执行一个或多个数据管理操作的任务导控器。这些数据管理操作包括第一操作和第二操作。第一操作包括第一组任务,第二操作包括第二组任务。
该管理设备还包括一个处理器,用于从存储器中取出数据和执行任务导控器,任务导控器又并发地执行第一操作和第二操作。接下来,该管理设备根据一组预先确定的规则控制第一和第二操作的执行。
图1是根据本发明一个实施例的协调数据管理操作的系统的方框图;图2是根据本发明一个实施例的协调数据管理操作的一个盘阵列控制器存储器示例的方框图;图3是根据本发明一个实施例的协调数据管理操作的一个过程示例的流程图;以及图4是根据本发明一个实施例的协调数据管理操作的一个过程示例的流程图。
具体实施例方式
本发明通过实施综合任务导控器(CTD)导控管理操作的执行,在数据存储子系统中提供对并发执行的数据管理操作的协调管理,从而与现有技术的数据管理方法相比显著地减少了所用的时间和系统资源。在讨论本发明的方法之前,首先描述本发明的示例系统和装置的各方面。
参考图1,图1中的方框图显示根据本发明一个实施例的独立盘冗余阵列(RAID)数据存储系统100的各方面。RAID使用若干磁盘或光盘一起工作,称作盘阵列,以增大它的容量、改善数据传输速率和提供更高的系统可靠性。实现一个没有下述本发明约定的RAID所采用的技术是本领域中已知的。
系统100包括计算机102,它通过I/O接口104与控制器106相连。计算机102是具有处理器的任何类型计算机,该处理器与存储器(未画出)耦合以取出数据和执行存储器中存储的计算机程序指令(未画出)。这类计算机程序指令用于针对一个或多个盘驱动器112-1至112-N执行数据I/O操作。I/O接口104可以是任何类型的I/O接口,例如小型计算机系统接口(SCSI)I/O接口。SCSI I/O协议在本领域是已知的。
控制器106是盘阵列控制器,用于根据系统100中使用的特定RAID级向盘驱动器112-1至112-N送入数据或从中取出数据。在配置RAID数据存储系统的技术领域中已知有各种RAID级。控制器106通过I/O接口110与盘驱动器112-1至112-N相连。I/O接口可以是任何类型的I/O接口,例如,光纤通道接口或SCSI接口。盘驱动器112-1至112-N代表任何非易失性的、可随机存取的、可重写的而且有能力检验它自己的存储故障的海量存储设备。这类海量存储设备可以包括转动的磁盘和光盘以及固态盘,或非易失电子存储元件,如PROM、EPROM和EEPROM。
控制器106包括一个处理器(未画出),用于提取存储器107中存储的数据和计算机程序指令,以执行上文讨论的I/O操作,并协调对盘驱动器112-1到112-N的数据管理操作。例如,任务导控器108是作为计算机程序指令实现的,并由控制器106用于协调对盘驱动器112-1至112-N的数据管理操作。与现有技术相比,这些操作通常是作为独立的串行任务来执行,任务导控器108以串行方式或者以并发(并行)方式执行这些操作,从而使执行这些操作所需要的时间和系统资源量与现先有技术相比显著地减少。存储器107的计算机程序指令模块示例的各方面将在下文中参考图2更详细地描述。
尽管所显示的任务导控器108是在控制器106的存储器107中实现的,但任务导控器108能在一个与数据存储系统100的一个或多个其他部件耦合的存储器中实现。例如,任务导控器108能在光纤通道系统100中用于切换I/O的光纤开关(未画出)的存储器中实现。任务导控器108的过程示例的各方面将在下文中参考图3更详细地描述。
参考图2,图2是框图,显示根据本发明一个实施例的存储器示例107的各方面。存储器107存储数据和计算机程序指令,包括用于任务导控器108和若干数据管理操作202的计算机程序指令。这些数据管理操作202导包括,例如,数据一致性检查操作202-1、盘驱动器备份操作202-2、盘初始化操作202-3、存储器管理操作202-4、资源分配器操作202-5以及阈值报告器操作202-M。
每个数据管理操作202包括一个或多个各自的任务。例如,数据一致性检查201-1包括数据产生任务和数据比较任务。此外,如果系统管理员确定应校正数据不一致性,则数据一致性检查202-1还包括数据校正任务。在另一个例子中,盘驱动器备份202-2包括将阵列的一个卷集中的数据复制到该阵列的另一个卷集中或复制到该阵列外部的一个设备中。
任务导控器108根据执行计划导控或者串行地或者并发地执行一个或者多个数据管理操作。执行计划指出要由任务导控器108执行的数据管理操作202以及要执行的顺序和次数。例如,在一个实施例中,执行计划指出一个数据管理操作202要与一个或多个其他数据管理操作并发执行。为说明这种情况,考虑该执行计划可以指出数据一致性操作202-1要与任务驱动器备份操作202-2并发执行。
在一个实施例中,执行计划是作为一个文件存储在存储器107中,例如执行计划206,在另一实施例中,执行计划是在特定时刻从计算机102向任务导控器108发送的一组命令。这些命令可以是若干不同的命令,例如带有供货方特定数据字段组的SCSI命令,以指出要执行一个或多个数据管理操作202。
我们现在参考图3描述任务导控器108的一个过程示例的各方面。参考图3,其中的流程图显示根据本发明一个实施例的任务导控器108的一个任务过程示例300的各方面。对于过程300的这一详细描述假定已在盘驱动器112-1至112-N(见图1)上定义了一个卷集,并假定计算机102被配置成利用所定义的卷集。定义卷集和配置计算机以使用这些卷集的过程在本技术领域是已知的。
在步骤302中,过程300执行至少两个数据管理操作202(见图2)。在步骤304中,过程300确定是否有至少两个数据管理操作202正在并发执行,或者说并行执行。例如,如果任务管理器108执行盘驱动器备份操作202-2和数据一致性检查操作202-1,它们在同一时间执行或基本上在同一时间执行,则称它们是在并发执行,或者说并行执行。可以理解,多于两个数据管理操作202能由任务导控器108并发地执行。还应指出,不同的操作202可能消耗不同的时间周期,所以并发时间是指不同操作202之间重叠的执行时间。
如果没有数据管理操作202在并发执行(步骤304),则在步骤306中过程300继续处理一个或多个数据管理操作202(步骤302),直至完成它们各自的每个任务。
然而,如果一个或多个数据管理操作202正在并发执行(步骤304),则在步骤308中过程300确定是否至少两个并发执行操作202包括这样的一个或多个各自任务,如果它们被并发执行的话将会竞争共同的资源。例如,如果数据一致性检查操作202-1和盘驱动器备份操作202-2在并发执行而且每个预计在指定的相同时间周期内对一给定卷集(分布在任何两个或更多个驱动器112-1至112-N上,见图1)进行一个或多个操作,则称这两个并发执行的操作202在竞争共同的资源。在这一例子中,它们竞争对给定卷集的访问。
如果至少两个任务将竞争共同的资源(步骤308),则在步骤310中过程300确定这些竞争的任务是否产生共同的结果。例如,数据一致性检查操作202-1包括一个任务,读一个预先确定的卷集内的一个预先确定的数据条中的全部扇区(数据和元数据)。类似地,盘驱动器备份操作202-2包括一个任务,读一个预先确定的卷集内的一个预先确定的数据条中的全部扇区(数据和元数据)。如果预先确定的数据条和预先确定的卷集对两个操作202是等效的,则各自任务的结果将是相同的。
如果确定竞争任务将产生共同的结果(步骤310),则在步骤312中过程300执行单一任务,以产生在步骤310中识别出的共同结果而不去执行识别出产生共同结果的每个任务。在步骤314,过程300把共同的结果(步骤312)传送给每个与被识别出产生共同结果(步骤310)的各自任务相对应的数据管理操作202。过程300在步骤316继续,如图4中所示。
参考图4,图中的流程图显示根据本发明一个实施例的任务导控器108的过程300的各方面。在步骤316中,过程300确定如果在执行第二数据管理操作202的第二任务之前去执行与第一数据管理操作202对应的第一任务的话是否该第一任务将完成得更快。
例如,考虑第一操作202可能是数据一致性检验操作202-1,其第一任务是在预先确定的卷集的预先确定的数据条中校正所发现的任何数据不一致性。再有,考虑第二操作可能是盘驱动器备份操作202-2,其第二任务是识别自进行了上一次备份操作202-2以来该预先确定的数据条是否已被修改过。再有,考虑第二任务是在第一任务之前进行,还考虑第一任务发现和校正该预先确定的数据条上的数据不一致性。在这个例子中,必须第二次执行第二任务以提供修改后的预先确定数据条的最新备份。这样的执行顺序所造成的执行时间要长于在第二任务之前执行第一任务所需要的执行时间。
如果确定假如在第二任务之后执行第一任务则为执行这至少两个操作202所需要的时间量将会增大的话(步骤316),则在步骤318中过程300在执行第二任务之前执行第一任务,以减少执行这至少两个操作202所需要的时间量。
在步骤320中,过程300同步这一个或或多个并发执行的操作202所对应的其余各任务每一个的执行(步骤304),从而使执行这些任务将不造成资源冲突。资源冲突通常是指当一个任务与另一任务在基本相同的时刻访问同一存储单元时发生的竞争状态。这类访问可以是读访问和/或写访问。竞争状态是已知的并且能产生错误的数据结果。防止在并发执行的计算机程序应用之间发生对特定存储单元的基本同时访问的各种过程是已知的。
在一个实施例中,过程300在一个任务访问该存储单元之前锁定该存储单元并在该任务已完成对该存储单元的访问之后对该存储单元解锁,以此来防止竞争状态。一旦锁定该存储单元,则只有进行了该锁定步骤的那个任务能访问该存储单元。这种锁定操作可以由若干不同的机制来完成。例如,可以使用SCSI协议来锁定盘驱动器112-1至112-N(见图1)上的存储单元。
如从上文中对本发明的系统100(见图1)、装置(见图2)和过程(见图3和图4)的描述中能理解的那样,数据管理操作202的执行是由任务导控器108进行导控,这样任务导控器108(a)提供导控并发执行的数据管理操作202的执行的手段;(b)防止竞争同一资源的并发执行的操作202产生资源冲突;以及(c)减少为执行两个或更多个数据管理操作通常需要的时间量。
为了解释的目的,前文的描述使用特定的术语提供对本发明的透彻理解。然而,对于本领域技术人员而言,显然为实践本发明那些特定的细节并不是必须的。在其他一些情况中,众所周知的电路、设备、软件模块等以方框图的形式显示,以避免对基础的发明造成不必要的分散精力。这样,前文对本发明特定实施例的描述是为了说明和描述的目的。它们不想把本发明穷尽于或局限于所公开的确切形式,考虑上述说明的情况,显然许多修改和变化是可能的。
选择和描述了实施例,以最好地解释本发明的原理和它的实际应用,从而使本领域其他技术人员能最好地利用本发明和各种实施例并以各种修改适应于所考虑的具体应用。本发明的范围要由所附权利要求及它们的等效物来定义。
权利要求
1.一种在由一组数据管理操作管理的数据存储系统中协调数据管理操作的方法,该方法包括以下步骤由任务导控器并发执行第一数据管理操作和第二数据管理操作,该第一操作具有第一组任务,该第二操作具有第二组任务;以及由任务导控器根据一组预先确定的规则控制第一和第二组任务中每个任务的执行或不执行。
2.权利要求1的方法,其中在执行步骤中,第一操作与第二操作相比是一个不同的操作。
3.权利要求1的方法,其中在控制步骤中,预先确定的规则包括由任务导控器确定,是否(i)如果在第二组任务中的第二任务之前执行第一组任务中第一任务,则执行第一和第二操作所需要的时间总量会减少;或(ii)如果在第二组任务中的第二任务之前执行第一组任务中的第一任务,则由任务导控器利用的一组资源会减少;以及如果所需要的时间总量会减少或者如果该组资源会减少,则由任务导控器在第二任务之前执行第一任务,从而在并发执行第一和第二操作时会减少时间总量或任务导控器对该组系统资源的利用。
4.权利要求1的方法,其中数据管理操作是对分布于多个盘驱动器上的一组数据存储卷进行的,而且其中在控制步骤中,预先确定的规则包含由任务导控器确定第一组任务中的第一任务和第二组中的第二任务是否竞争多个盘驱动器上的共同资源;如果第一任务和第二任务竞争该共同资源,则识别第一任务和第二任务在它们各自执行之后是否将产生一组共同的结果;以及如果第一和第二任务将产生一组共同的结果,则执行单一任务以产生该组共同结果,于是不再双双执行第一任务和第二任务。
5.权利要求4的方法,进一步包含通信步骤,由任务导控器把该组共同结果通报给第一操作和第二操作。
6.权利要求4的方法,其中在执行单一任务步骤中,该单一任务是第一和第二任务之一。
7.权利要求5的方法,其中在执行单一任务步骤中,该单一任务是与第一和第二任务二者都不同的任务。
8.权利要求1的方法,其中在并发执行步骤中,第一和第二数据管理操作是从一组操作中选出的,该组操作包含数据一致性检查操作、数据备份操作、存储驱动器重建操作、卷集初始化操作、分级存储管理操作、虚拟存储自动资源分配操作以及系统资源分配阈值报告操作。
9.权利要求8的方法,其中数据管理操作是对分布于多个盘驱动器的数据存储卷上的数据条进行的,而且其中在并发执行步骤中,第一操作是检测一卷集上奇偶性数据不一致性的数据一致性检查操作,而第二操作是数据备份操作,第一和第二任务用于读出数据存储系统中一个卷集上一组数据条中的若干扇区。
10.权利要求9的方法,其中在并发执行步骤中,其结果包含检测到奇偶性数据不一致性的指示。
11.权利要求1的方法,其中数据管理操作是对分布于多个盘驱动器的数据存储卷上的一组数据条进行的,而且其中如果第一和第二组任务是对该组数据条中的同一数据条进行的,则时间总量增大。
12.一种对数据管理操作提供协调管理的数据存储系统,该系统包括一个或多个数据存储设备;与数据存储设备耦合的管理设备,该管理设备包括存储数据和任务导控器的存储器,该任务导控器包含一组计算机程序指令以执行一组数据管理操作,其中包含第一操作和第二操作,第一操作与第二操作相比是一个不同的操作,该第一操作包含第一组任务,该第二操作包含第二组任务;以及处理器,用于取出数据和执行任务导控器,从而(a)并发地执行第一操作和第二操作,该第一操作具有第一组任务,该第二操作具有第二组任务,以及(b)根据一组预先确定的规则控制第一和第二组任务中每个任务的执行或不执行。
13.权利要求12的系统,其中预先确定的一组规则包含逻辑以(a)确定如果在执行第二组任务中的第二任务之前执行第一组任务中的第一任务,那么执行第一和第二操作所需要的时间总量是否会增加;以及(b)如果时间总量会增加,则在第一任务之前执行第二任务,从而使时间总量显著减少。
14.权利要求12的系统,其中预先确定的规则包含逻辑以确定第一组任务中的第一任务和第二组任务中的第二任务是否竞争多个盘驱动器上的共同资源;如果第一任务和第二任务竞争共同资源,则识别第一任务和第二任务在它们各自执行后是否将产生一组共同的结果;以及如果第一和第二任务将产生一组共同的结果,则执行单一任务以产生该组共同结果,于是不再双双执行第一任务和第二任务。
15.权利要求14的系统,其中预先确定的一组规则进一步包含逻辑以把该组共同结果通报给第一操作和第二操作。
16.一种协调数据存储子系统中数据管理操作的管理设备,该管理设备包括与一个或多个数据存储设备耦合的一个或多个通信端口;存储数据和任务导控器的存储器,该任务导控器包含一组计算机程序指令以执行一个或多个数据管理操作,其中包含第一操作和第二操作,该第一操作具有第一组任务,该第二操作具有第二组任务,该第一操作与第二操作相比是一个不同的操作;以及处理器,用于取出数据和执行任务导控器,从而(a)并发地执行第一操作和第二操作,该第一操作具有第一组任务,该第二操作具有第二组任务,以及(b)根据一组预先确定的规则控制第一和第二组任务中每个任务的执行或不执行。
17.权利要求16的管理设备,其中预先确定的一组规则包含逻辑以确定第一组任务中的第一任务和第二组任务中的第二任务是否竞争多个驱动器上的共同资源;如果第一任务和第二任务竞争共同资源,则识别第一任务和第二任务在它们各自执行后是否将产生一组共同的结果;以及如果第一和第二任务将产生一组共同的结果,则执行单一任务以产生该组共同结果,于是不再双双执行第一任务和第二任务。
18.权利要求16的管理设备,其中预先确定的一组规则包含逻辑以确定第一组任务中的第一任务和第二组任务中的第二任务是否竞争多个驱动器上的共同资源;如果第一任务和第二任务竞争共同资源,则识别第一任务和第二任务在它们各自执行后是否将产生一组共同的结果;以及如果第一和第二任务将产生一组共同的结果,则执行单一任务以产生该组共同结果,于是不再双双执行第一任务和第二任务。
19.权利要求18的管理设备,其中预先确定的一组规则进一步包含把该组共同结果通报给第一操作和第二操作的逻辑。
20.一种与处理器结合使用的计算机程序产品,该计算机程序产品包括第一计算机可读存储介质和嵌入其中的计算机程序机制,该计算机程序机制响应来自管理设备的通信信息,该计算机程序机制包括一个任务导控器以协调多个数据管理操作,该任务导控器包括指令,用于由任务导控器并发执行第一数据管理操作和第二数据管理操作,该第一操作具有第一组任务,该第二操作具有第二组任务;以及由任务导控器根据一组预先确定的规则控制第一和第二组任务中每个任务的执行或不执行。
21.权利要求20的计算机程序产品,其中在用于控制的指令中,第一操作与第二操作相比是一个不同的操作。
22.权利要求20的计算机程序产品,其中在用于控制的指令中,预先确定的规则包括由任务导控器确定是否(i)如果在第二组任务中的第二任务之前执行第一组任务中的第一任务,则执行第一和第二操作所需要的时间总量会减小;或(ii)如果在第二组任务中的第二任务之前执行第一组任务中的第一任务,则由任务导控器利用的一组资源会减少;以及如果所需要的时间总量会减少或者如果该组资源会减少,则由任务导控器在第二任务之前执行第一任务,从而在并发执行第一和第二操作时减少时间总量或任务导控器对该组系统资源的利用。
23.权利要求20的计算机程序产品,其中数据管理操作是对分布于多个盘驱动器上的一组数据存储卷进行的,而且其中在用于控制的指令中,预先确定的规则包括由任务导控器确定第一组任务中的第一任务和第二组任务中的第二任务是否竞争多个盘驱动器上的共同资源;如果第一任务和第二任务竞争该共同资源,则识别第一任务和第二任务在它们各自执行之后是否将产生一组共同的结果;以及如果第一和第二任务将产生一组共同的结果,则执行单一任务以产生该组共同结果,于是不再双双执行第一任务和第二任务。
全文摘要
本发明提供协调数据存储系统中的数据管理操作的系统、装置和过程。这些数据管理操作是对分布于多个盘驱动器上的数据条进行的。在根据本发明的过程中,一个任务导控器在并发时间执行这些数据管理操作中的第一操作和第二操作。该第一操作是一个不同于第二操作的操作。该第一操作包括第一组任务,该第二操作包括第二组任务。第一和第二组任务中每个任务的执行由任务导控器导控。
文档编号G06F12/00GK1555521SQ01818206
公开日2004年12月15日 申请日期2001年9月25日 优先权日2000年10月30日
发明者J·E·J·阿奇巴尔德, B·D·麦基恩, J E J 阿奇巴尔德, 麦基恩 申请人:国际商业机器公司