虚拟磁盘驱动系统和方法

文档序号:6480472阅读:211来源:国知局

专利名称::虚拟磁盘驱动系统和方法
技术领域
:本发明一般涉及磁盘驱动器系统和方法,尤其设计具有诸如动态数据分配和磁盘驱动器虚拟化等能力的磁盘驱动器系统。
背景技术
:现有的磁盘驱动器系统是以这样的一种方式来设计的使得虚拟巻数据存储空间与具有特定大小和位置的物理磁盘静态地相关联以供存储数据。这些磁盘驱动器系统需要了解和监视/控制数据存储空间的虚拟巻的精确位置和大小以便存储数据。另外,系统经常需要更大的数据存储空间,以便添加更多的RAID设备。然而,通常这些附加的RAID设备是昂贵的,且在实际需要额外的数据存储空间之前并不是所需的。图14A示出了包含与具有特定大小和位置的物理磁盘相关联的虚拟巻数据存储空间以供存储、读/写和/或恢复数据的现有磁盘驱动器系统。磁盘驱动器系统基于数据存储空间的虚拟巻的特定位置和大小来静态地分配数据。结果是,将不使用清空的数据存储空间,而预先获取额外的、有时是昂贵的数据存储设备,例如RAID设备以供存储、读/写和/或恢复系统中的数据。稍后,才需要和/或使用这些额外的数据存储空间。从而,存在对改进的磁盘驱动系统和方法的需求。还存在对有效的、动态数据分配和磁盘驱动器空间和时间管理系统和方法的需求。
发明内容本发明提供能够动态分配数据的改进的磁盘驱动器系统和方法。该磁盘驱动器系统可包括含有磁盘存储块的矩阵的RAID子系统以及含有至少一个磁盘存储系统控制器的磁盘管理器。RAID子系统和磁盘管理器基于RAID—磁盘映射跨磁盘存储块的矩阵和多个磁盘驱动器来动态地分配数据。RAID子系统和磁盘管理器确定是否需要另外的磁盘驱动器,且如果需要另外的磁盘驱动器则发送通知。动态数据分配允许用户在稍后当需要时获取磁盘驱动器。动态数据分配也允许对磁盘存储块的虚拟巻矩阵或池的快照/时间点副本的有效数据存储,用于数据备份、恢复等的即时数据重放和数据即时融合,远程数据存储以及数据分级管理(dataprogression)等。由于将在稍后购买更便宜的磁盘驱动器,因此数据分级管理也允许推迟购买更便宜的磁盘驱动器。在-个实施例中,提供虚拟巻或磁盘存储块的矩阵或池与物理磁盘相关联。虚拟巻或磁盘存储块的矩阵或池是由多个磁盘存储系统控制器动态地监视/控制的。在一个实施例中,每一虚拟巻的大小可以是默认的或可由用户预定义,而每一虚拟巻的位置默认为空。在分配数据之前,虚拟巻为空。可在矩阵或池的任何网格中分配数据(例如,一旦在网格中分配数据,即为该网格中的一个"点")。一旦删除该数据,该虚拟巻再次可用,指示为"空"。因此,可在需求的基础上在稍后获取额外的数据存储空间以及有时是昂贵的磁盘存储设备,例如RAID设备。在一个实施例中,磁盘管理器可管理多个磁盘存储系统控制器,多个冗余磁盘存储系统控制器可被实现来覆盖被操作的磁盘存储系统控制器上的故障。在一个实施例中,RAID子系统包括各RAID类型中至少一个的组合,RAID类型诸如RAID-0、RAID-1、RAID-5和RAID-IO。可以理解,可在替换的RAID子系统中使用其它RAID类型,诸如RAID-3、RAID-4、RAID-6和RAID-7等。本发明也提供动态数据分配方法,它包括以下步骤提供逻辑块或磁盘存储块的默认大小,使得RAID子系统的磁盘空间形成磁盘存储块的矩阵;在该磁盘存储块的矩阵中写数据和分配数据;基于RAID子系统的磁盘空间的历史占用率确定RAID子系统的磁盘空间的占用率;确定是否需要额外的磁盘驱动器;且如果需要额外的磁盘驱动器则向RAID子系统发送通知。在一个实施例中,通知是通过电子邮件发送的。本发明的磁盘驱动器系统的优点之一是,RAID子系统能够跨虚拟数量的磁盘使用RAID技术。其余的存储空间可供自由使用。通过监视存储空间和确定RAID子系统的存储空间的占用率,用户不必获取昂贵但购买时无用的大量驱动器。因此,当实际需要驱动器时添加驱动器以满足存储空间的渐增需求将显著地减少磁盘驱动器的总成本。同时,基本上改进了对磁盘使用的效率。本发明的另一优点是,该磁盘存储系统控制器对任何计算机文件系统是通用的,而不仅用于特定计算机文件系统。本发明也提供数据即时重放的方法。在一个实施例中,数据即时重放方法包括以下步骤提供逻辑块或磁盘存储块的默认大小,使得RAID子系统的磁盘空间形成存储页池或磁盘存储块的矩阵;以预定的时间间隔自动生成存储页池的巻的快照或磁盘存储块的矩阵的快照;以及存储存储页池或磁盘存储块的矩阵的快照或增量的地址索引,使得磁盘存储块矩阵的快照或增量可通过所存储的地址索引来即时定位。数据即时重放方法以用户定义的时间间隔、用户配置的动态时戳(例如,每隔几分钟或几小时等)或由服务器指示的时间自动生成RAID子系统的快照。万一出现系统故障或病毒攻击,这些加时戳的虚拟快照允许大约数分钟或小时内等的数据即时重放和数据即时恢复。该技术也被称为即时重放融合,即,及时地融合崩溃或攻击前不久的数据,且可即时使用崩溃或攻击之前所存储的快照用于将来的操作。在一个实施例中,可在本地RAID子系统或在远程RAID子系统中存储快照,使得如果由于例如恐怖袭击等而发生主要系统崩溃时,数据的完整性不受影响,且可即时恢复数据。数据即时重放方法的另一优点是,快照可用于测试,而同时系统保持其操作。实时数据可用于实时测试。本发明也提供数据即时重放的系统,它包括RAID子系统和具有至少一个磁盘存储系统控制器的磁盘管理器。在一个实施例中,RAID子系统和磁盘管理器基于RAID—磁盘映射跨多个驱动器的磁盘空间自动分配数据,其中RAID子系统的磁盘空间形成磁盘存储块的矩阵。磁盘存储系统控制器以预定的时间间隔自动生成磁盘存储块的矩阵的快照,并存储磁盘存储块的矩阵的快照或增量的地址索引,使得可通过所存储的地址索引即时定位磁盘存储块的矩阵的该快照或增量。在一个实施例中,磁盘存储系统控制器从磁盘存储块的矩阵的快照中监视数据使用的频率,并应用老化规则,使得较少使用或访问的数据被移至较不昂贵的RAID子系统中。类似地,当位于较不昂贵的RAID子系统中的数据要被更频繁地使用时,控制器将该数据移动至较昂贵的RAID子系统中。从而,用户能够选择所期望的RAID子系统公文包来满足其自身的存储需求。从而,磁盘驱动器系统的成本可显著地减少,并由用户动态控制。通过以下详细描述,对本领域的技术人员而言,本发明的这些和其它特征和优点将是显而易见的,在详细描述中示出和描述了本发明的说明性实施例,包括用于实施本发明的所构想的最佳模式。可以认识到,本发明可在各种明显的方面中修改,但均不背离本发明的精神和范围。从而,附图和详细描述将被示为本质上是说明性而非限制性的。图1示出了根据本发明的原理的计算机环境中的磁盘驱动器系统的一个实施例。图2示出了根据本发明的原理,具有用于磁盘驱动器的RAID子系统的存储页池的动态数据分配的一个实施例。图2A示出了磁盘驱动器系统的RAID子系统中的常规数据分配。图2B示出了根据本发明的原理的磁盘驱动器系统的RAID子系统中的数据分配。图2C示出了根据本发明的原理的动态数据分配方法。图3A和3B是根据本发明的原理,RAID子系统的磁盘存储块在多个时间间隔处的快照的示意图。图4是根据本发明的原理,通过使用RAID子系统的磁盘存储块的快照的数据即时融合功能的示意图。图5是根据本发明的原理,通过使用RAID子系统的磁盘存储块的快照的本地一远程数据复制和即时重放功能的示意图。图6示出了根据本发明的原理,使用同一RAID接口来执行I/O和将多个RAID设备串接成巻的快照的示意图。图7示出了根据本发明的原理的快照结构的一个实施例。图8示出了根据本发明的原理的PITC生存周期的一个实施例。图9示出了根据本发明的原理,具有多级索引的PITC表结构的一个实施例。图10示出了根据本发明的原理的PITC表的恢复的一个实施例。图11示出了根据本发明的原理,具有自有页序列以及非自有页序列的写进程的一个实施例。7图12示出了根据本发明的原理的示例性快照操作。图13A示出了含有与具有特定大小和位置的物理磁盘相关联的虚拟数据存储空间以供静态分配数据的现有磁盘驱动器系统。图13B示出了图13A的现有磁盘驱动器系统中的巻逻辑块映射。图14A示出了根据本发明的原理,含有磁盘块虚拟巻矩阵以供动态分配系统中的数据的磁盘驱动器系统的一个实施例。图14B示出了在如图14A中所示的磁盘存储块虚拟巻矩阵中的动态数据分配的一个实施例。图14C示出了根据本发明的原理,存储虚拟巻页池的一个实施例的巻一RAID页重映射的示意图。图15示出了根据本发明的原理,映射到RAID子系统的多个磁盘存储块的三个磁盘驱动器的示例。图16示出了在向如图15中所示的三个磁盘驱动器添加磁盘驱动器之后,磁盘驱动器存储块的重映射的示例。图17示出了根据本发明的原理的数据分级管理操作中的可访问数据页的一个实施例。图18示出了根据本发明的原理的数据分级管理操作的一个实施例的流程图。图19示出了根据本发明的原理的压縮页布局的一个实施例。图20示出了根据本发明的原理的高级磁盘驱动器系统中的数据分级管理的一个实施例。图21示出了根据本发明的原理的子系统中的外部数据流的一个实施例。图22示出了子系统中的内部数据流的一个实施例。图23示出了独立维护相干性的每一子系统的一个实施例。图24示出了根据本发明的原理的混合RAID瀑布式数据分级管理的一个实施例。图25示出了根据本发明的原理,存储页池的多个自由列表的一个实施例。图26示出了根据本发明的原理的数据库示例的一个实施例。图27示出了根据本发明的原理的MRI映像示例的一个实施例。具体实施方式本发明提供能够动态分配数据的改进的磁盘驱动器系统和方法。磁盘驱动器系统可包括含有维护RAID自由列表的存储页池或者磁盘存储块矩阵的RAID子系统,以及含有至少一个磁盘存储系统控制器的磁盘管理器。RAID子系统和磁盘管理器基于RAID—磁盘映射跨存储页池或磁盘存储块矩阵和多个磁盘驱动器动态地分配数据。RAID子系统和磁盘管理器确定是否需要另外的磁盘驱动器,且如果需要另外的磁盘驱动器则发送通知。动态数据分配允许用户当稍后需要磁盘驱动器时获取磁盘驱动器。动态数据分配也允许对磁盘存储块的虚拟巻矩阵或池的快照/时间点副本的有效数据存储,用于数据备份、恢复等的即时数据重放和数据即时融合,远程数据存储以及数据分级管理等。由于可稍后购买较廉价磁盘驱动器,数据分级管理也允许推迟购买较廉价的磁盘驱动器。图1示出了根据本发明的原理的计算机环境102中的磁盘驱动器系统100的个实施例。如图1中所示,磁盘驱动器系统100包括RAID子系统104和具有至少一个磁盘存储系统控制器(图16)的磁盘管理器106。RAID子系统104和磁盘管理器106基于RAID—磁盘映射跨多个磁盘驱动器108的磁盘空间动态分配数据。另外,RAID子系统104和磁盘管理器106能够基于跨磁盘空间的数据分配来确定是否需要另外的磁盘驱动器。如果需要另外的磁盘驱动器,则向用户发送通知,使得如果期望则可添加另外的磁盘空间。根据本发明的原理,在一个实施例中,在图2中示出了具有动态数据分配(或称为"磁盘驱动器虚拟化")的磁盘驱动器系统IOO,在另一实施例中,在图14A和14B中示出了该系统。如图2中所示,磁盘存储系统IIO包括存储页池112,即包含可自由存储数据的数据存储空间列表的数据存储池。页池112维护RAID设备114的自由列表,并基于用户请求管理读/写分配。将用户所请求的磁盘存储巻116发送给页池112以获取存储空间。每一巻可请求具有相同或不同RAID等级(例如,RAID10、RAID5、RAIDO等)的相同不同的存储设备类。本发明的动态数据分配的另一实施例在图14A和14B中示出,其中根据本发明的原理,含有多个磁盘存储系统控制器1402和由该多个磁盘存储系统控制器1402控制的磁盘存储块1404的矩阵的磁盘存储系统1400动态分配系统中的数据。提供虚拟巻或块1404的矩阵用于与物理磁盘相关联。虚拟巻或块1404的矩阵是由多个磁盘存储系统控制器1402动态监视/控制的。在一个实施例中,可预定义每一虚拟巻1404的大小,例如2M字节,每一虚拟巻1404的位置默认为空。在分配数据之前,虚拟巻1404中的每一个皆为空。可在矩阵或池的任何网格中分配数据(例如,一旦在网格中分配了数据,即为该网格中的一个"点")。一旦删除数据,该虚拟巻1404再次可用,指示为"空"。因此,可在需求的基础上在稍后获取额外的且有时是昂贵的磁盘存储设备,例如RAID设备。从而,RAID子系统能够跨虚拟数量的磁盘使用RAID技术。其余的存储空间可供自由使用。通过监视存储空间和确定RAID子系统的存储空间的占用率,用户不必获取昂贵但购买时无用的大量驱动器。因此,当实际需要驱动器时添加驱动器以满足存储空间的渐增的需求将显著地减少磁盘驱动器的总成本。同时,基本上改进了对磁盘的使用效率。同样,本发明的磁盘驱动器系统的动态数据分配允许对存储虚拟巻页池或磁盘存储块虚拟巻矩阵的快照/时间点副本的有效数据存储、用于数据恢复和远程数据存储的即时数据重放和数据即时融合、以及数据分级管理。将在以下详细讨论由动态数据分配系统和方法及其在磁盘驱动器系统100中的实现所得的以上特征和优点。动态数据分配图2A示出了磁盘驱动器系统的RAID子系统中的常规数据分配,其中清空的数据存储空间是被俘获的且不能被分配以供数据存储。图2B示出了根据本发明的原理的磁盘驱动器系统的RAID子系统中的数据分配,其中将可供数据存储使用的清空的数据存储混合在一起以形成页池,例如本发明的--个实施例中的单个页池。图2C示出了根据本发明的原理的动态数据分配方法200。动态数据分配方法200包括定义逻辑块或磁盘存储块的默认大小使得RAID子系统的磁盘空间形成磁盘存储块的矩阵的步骤202;以及在其中磁盘存储块指示为"空"的该矩阵的磁盘存储块中写数据和分配数据的步骤204。该方法还包括基于RAID子系统的磁盘空间的历史占用率确定RAID子系统的磁盘空间的占用率的步骤206;以及确定是否需要另外的磁盘驱动器,且如果需要则向RAID子系统发送通知的步骤208。在一个实施例中,通知是通过电子邮件发送的。此外,磁盘存储块的大小可设定为默认或可由用户改变。在一个实施例中,动态数据分配有时也称为"虚拟化"或"磁盘空间虚拟化",它每秒有效地处理大量的读和写请求。该体系结构可以要求中断处理程序直接调用高速缓存子系统。由于动态数据分配不对请求排队,它可能不能优化请求,但它可以一次拥有大量待处理请求。动态数据分配也可以维护数据完整性且保护数据的内容以防任何控制器故障。为此,动态数据分配将状态信息写入RAID设备以供可靠存储。动态数据分配还可以维护读写请求的顺序,并按照接收请求的精确顺序完成读或写请求。动态数据分配允许最大系统可用性,且支持数据至不同地理位置的远程复制。另外,动态数据分配提供从数据讹误中恢复的能力。通过快照,用户可查看过去的磁盘状态。动态数据分配管理RAID设备并提供存储抽象以创建和扩充大型设备。动态数据分配向服务器呈现虚拟磁盘设备;该设备被称为巻。对服务器而言,巻一样工作。它可返回对序号的不同信息,但巻基本上如同磁盘驱动器一样工作。巻提供对多个RAID设备的存储抽象以创建更大的动态巻设备。巻包括多个RAID设备,以供对磁盘空间的有效使用。图21示出了现有的巻逻辑块映射。图14C示出了根据本发明的原理,存储虚拟巻页池的一个实施例的巻一RAID页的重映射。每一巻被分成一组页,例如1、2、3等,且每一RAID被分成一组页。在一个实施例中,巻页大小和RAID页大小可以相同。从而,本发明的巻一RAID页映射的一个示例是使用RAID-2的页弁1被映射到RAID页#1。动态数据分配维护巻的数据完整性。数据被写入巻中,并向服务器确认。数据完整性覆盖各种控制器配置,包括独立和通过控制器故障的冗余。控制器故障包括电源故障、电源循环、软件异常和硬复位。动态数据分配一般不处理由RAID覆盖的磁盘驱动器故障。动态数据分配为控制器提供最高级的数据抽象。它从前端接受请求,并最终使用RAID设备将数据写入磁盘。动态数据分配包括各种内部子系统高速缓存——通过向服务器提供快速响应时间以及将写捆绑至数据插件来平滑对巻的读和写操作。配置——包含创建、删除、检索和修改数据分配对象的方法。提供组件用于为较高级系统应用程序创建工具箱。数据插件——取决于巻配置,将巻读和写请求分发给各个子系统。RAID接口——向用户和其它动态数据分配子系统提供RAID设备抽象以创建更大巻。复制/镜像/交换——将巻数据复制到本地和远程巻。在一个实施例中,可仅复制由服务器写的块。快照^提供数据的增量式巻恢复。它即时地创建过去巻状态的视图巻(ViewVolume)o代理巻——实现至远程目的巻的请求通信,用于支持远程复制。记帐一一向用户就分配的存储、活动、性能以及数据恢复索要费用。动态数据分配也将配置中的任何错误和显著改变记录日志中。图21示出了该子系统中的外部数据流的一个实施例。外部请求来自前端。请求包括,获取巻信息、读和写。所有的请求都含有巻ID。巻信息是由巻配置子系统来处理的。读和写请求包含LBA。写请求也包含数据。取决于巻配置,动态数据分配将请求传递给多个外部层。远程复制将请求传递给前端,目的地为远程目的地巻。RAID接口将请求传递给RAID。复制/镜像/交换将请求传回给动态数据分配至目的地巻。图22示出了该子系统中的内部数据流的一个实施例。内部数据流以高速缓存开始。高速缓存可将写请求置于高速缓存中或将请求直接传递给数据插件。高速缓存支持从前端HBA设备的直接DMA。可快速完成请求,并将响应返回给服务器。数据插件管理器是高速缓存下方请求流的中心。对每一巻,它为每一请求调用所注册的子系统对象。影响数据完整性的动态数据分配子系统可要求对控制器相干性的支持。如图23中所示,每一子系统独立维护相干性。相干性更新避免跨相干性链路复制数据块。高速缓存相干性可要求将数据复制到对等控制器。磁盘存储系统控制器图14A示出了根据本发明的原理,含有多个磁盘存储系统控制器1402和由多个磁盘存储系统控制器1402控制的磁盘存储块或虚拟巻1404的矩阵以供动态分配系统中的数据的磁盘存储系统1400。图14B示出了在磁盘存储块或虚拟巻1404的虚拟巻矩阵中动态数据分配的一个实施例。在一个操作中,磁盘存储系统1400以预定的时间间隔自动生成磁盘存储块或虚拟巻1404的矩阵的快照,并存储磁盘存储块或虚拟巻1404的矩阵的该快照或其中的增量的地址索引,使得磁盘存储块或虚拟巻1404的矩阵的快照或增量可通过所存储的地址索弓I来即时定位。在另一个操作中,磁盘存储系统控制器1402从磁盘存储块1404的矩阵的快照中监视数据使用的频率,并应用老化规则,使得较少使用或访问的数据被移至较不昂贵的RAID子系统中。类似地,当位于较不昂贵的RAID子系统中的数据开始更频繁使用时,控制器将该数据移动至较昂贵的RAID子系统中。从而,用户能够选择所期望的RAID子系统公文包来满足其自身的存储需求。从而,磁盘驱动系统的成本可显著地减少,并由用户动态控制。RAID—磁盘映射RAID子系统和磁盘管理器基于RAID—磁盘映射跨多个磁盘驱动器的磁盘空间来动态分配数据。在一个实施例中,RAID子系统和磁盘管理器确定是否需要另外的磁盘驱动器,且如果需要另外的磁盘驱动器则发送通知。图15示出了根据本发明的原理,映射到RAID-5子系统1500中的多个磁盘存储块1502-1512的三个磁盘驱动108(图1)的示例。图16示出了当将磁盘驱动器1602添加到如图15中所示的三个磁盘驱动器108之后,磁盘驱动存储块的重映射1600的示例。磁盘管理器如图1中所示,磁盘管理器106—般管理磁盘和磁盘阵列,包括分组/资源合并(pooling)、磁盘属性抽象、格式化、添加/减去磁盘、以及跟踪磁盘服务次数和出错率。磁盘管理器106不区分各种磁盘模型之间的差异,且为RAID组件提供通用的存储设备。磁盘管理器106也提供分组能力,该能力便于构造具有诸如10,000RPM磁盘等特定特征的RAID分组。在本发明的一个实施例中,磁盘管理器106至少是三层的抽象、配置和I/0优化。磁盘管理器106向较高层呈现"磁盘",较高层可以是例如,本地或远程附加的物理磁盘驱动器或远程附加的磁盘系统。常见的基础特征是,这些设备中的任何一个可以是I/0操作的目标。抽象服务为较高层(尤其是RAID子系统)提供统一数据路径接口,且为管理员管理目标设备提供通用的机制。本发明的磁盘管理器106也提供分组能力以简化管理和配置。磁盘可被命名且被置于组中,组也可被命名。分组是简化诸如将巻从磁盘的一个分组迁移至另一个、将磁盘的一分组专用于特定功能、指定磁盘的分组为备用等任务的强大特征。磁盘管理器也与诸如负责检测外部设备存在与否的SCSI设备子系统等设备接口。SCSI设备子系统至少对于光纤通道/SCSI类型设备而言能够确定作为块类型目标设备的设备的子集。正是这些设备是由磁盘管理器管理和抽象的。此外,磁盘管理器负责响应于来自SCSI设备层的流程控制。磁盘管理器拥有排队的能力,这提供了将I/O请求作为方法聚集以优化磁盘驱动器系统吞吐量的机石。而且,本发明的磁盘管理器管理多个磁盘存储系统控制器。同样,可实现多个冗余磁盘存储系统控制器来覆盖所操作的磁盘存储系统控制器的故障。冗余磁盘存储系统控制器也是由磁盘管理器管理的。磁盘管理器与其它子系统的关系磁盘管理器与若干其它子系统交互。RAID子系统是由磁盘管理器为数据路径活动提供的服务的主要客户机。RAID子系统将磁盘管理器用作到用于I/O的磁盘的排他路径。RAID系统也监听来自磁盘管理器的事件,以确定磁盘的存在和操作状态。RAID子系统也与磁盘管理器一起工作来为RAID设备的构造分配范围。管理控制监听磁盘事件,以了解磁盘的存在以及了解操作状态改变。在本发明的一个实施例中,RAID子系统104可包括至少一个RAID类型的组合,RAID类型诸如RAID-O、RAID-1、RAID-5和RAID-IO。可以理解,可在替换的RAID子系统中使用其它RAID类型,诸如RAID-3、RAID-4、RAID-6和RAID-7等。在本发明的一个实施例中,磁盘管理器利用配置访问服务来存储持久配置和诸如对表示层的统计等当前过渡性的只读信息。磁盘管理器向配置访问注册处理程序以访问这些参数。磁盘管理器也利用SCSI设备层的服务来了解块设备的存在和操作状态,且含有对这些块设备的I/0路径。磁盘管理器向SCSI设备子系统查询设备,作为唯一地标识磁盘的支持方法。数据即时重放和数据即时融合本发明也提供数据即时重放和数据即时融合的方法。图3A和3B示出了根据本发明的原理在多个时间间隔处对RAID子系统的磁盘存储块的快照的示意图。图3C示出了数据即时重放方法300,它包括定义逻辑块或磁盘存储块的默认大小使得RAID子系统的磁盘空间形成存储页池或磁盘存储块矩阵的步骤302;以预定的时间间隔自动生成页池的巻的快照或磁盘存储块的矩阵的快照的步骤304;以及存储存储页池或磁盘存储块矩阵的快照或其中的增量的地址索引,使得磁盘存储块矩阵的快照或增量可通过所存储的地址索引来即时定位。如图3B中所示,在每一预定时间间隔处,例如,5分钟,诸如Tl(12:00PM)、T2(12:05PM)、T3(12:10PM)和T4(12:15PM),自动生成存储页池或磁盘存储块矩阵的快照。存储页池或磁盘存储块矩阵的快照或其中的增量被存储在该存储页池或磁盘存储块矩阵中,使得可通过所存储的地址索引来即时定位存储页池或磁盘存储块矩阵的该快照或增量。从而,数据即时重放方法以用户定义的时间间隔、用户配置的动态时戳(例如,每隔几分钟或几小时等)或由服务器指示的时间自动生成RAID子系统的快照。万一出现系统故障或病毒攻击,这些加时戳的虚拟快照允许大约数分钟或小时内等的数据的即时重放和数据的即时恢复。该技术也被称为即时重放融合,即及时地融合崩溃或攻击前不久的数据,且可即时使用崩溃或攻击之前所存储的快照用于将来的操作。图4还示出了根据本发明的原理,通过使用RAID子系统的磁盘存储块的多个快照的数据即时融合功能400的示意图。在T3处,生成快照的平行链(parallelchain)T3,-T5',借此由融合的数据T3'融合和/或恢复的数据可用于替换在T4处将被融合的数据。类似地,可生成快照的多个平行链T3"、T4"',用于替换在T4'-T5'处和T4"-T5"处将被融合的数据。在替换实施例中,仍可将T4、T4,-T5'、T5"处的快照存储在页池或矩阵中。快照可存储在本地RAID子系统或远程RAID子系统,使得如果由于例如恐怖袭击而发生主要系统崩溃,数据的完整性将不受影响,且数据可被即时恢复。图5示出了根据本发明的原理通过使用RAID子系统的磁盘存储块的快照的本地一远程数据复制和即时恢复功能500的示意图。远程复制执行将巻数据复制到远程系统的服务。它试图尽可能地保持本地和远程巻的紧密同步。在一个实施例中,远程巻的数据可能不能反映本地巻的数据的完美副本。网络连接和性能可能使得远程巻与本地巻不同步。数据即时重放和数据即时融合方法的另一特征是,快照可用于测试,同时系统仍保持其操作。可使用实时数据用于实时测试。快照和时间点副本(PITC)根据本发明的原理,数据即时重放的一个示例是利用RAID子系统的磁盘存储块的快照。快照记录对巻的写操作,使得可创建视图来査看过去巻的内容。快照因此也支持通过创建对巻的先前时间点副本(PITC)的视图的数据恢复。快照的核心实现快照的创建、聚合、管理和I/0操作。快照监视对巻的写,并为创建时间点副本(PITC)以通过视图巻访问。它向虚拟化层内的数据路径添加逻辑块地址(LBA)重映射层。这是I/0路径内的另一虚拟LBA映射层。PITC可以不复制所有的巻信息,它可仅修改重映射使用的表。快照跟踪对巻数据的改变,并提供查看来自先前时间点的巻数据的能力。快照通过为每一PITC维护增量写的列表来执行该功能。快照为PITC简介表提供多种方法,包括应用程序启动的和时间启动的。快照为应用程序提供创建PITC的能力。应用程序通过服务器上的API控制创建,并将创建传递给快照API。同样,快照提供创建时间简介表的能力。快照可以不实现日志处理系统或恢复对巻的所有写。快照可仅保存对PITC窗口内的单个地址的最后一次写。快照允许用户创建覆盖诸如几分钟或几小时等的所定义的短期时间的PITC。为处理故障,快照将所有的信息写至磁盘。快照维护包含增量写的巻数据页指针。因为表提供对巻数据的映射,且如果没有它则不可访问巻数据,因此表数据必须处理控制器故障情况。视图巻功能提供对PITC的访问。视图巻功能可附加于巻内除现有PITC以外的任何PITC。对PITC的附加是相对较快的操作。视图巻功能的用途包括测试、训练、备份和恢复。视图巻功能允许写操作且不修改它所基于的基础PITC。在一个实施例中,设计快照以优化性能且以磁盘空间为代价而易于使用快照为用户请求提供快速响应。用户请求包括I/O操作、创建PITC和创建/删除视图巻。为此,快照使用比最小需要的更多的磁盘空间来存储表信息。对1/0,快照将巻的当前状态概述至单张表中,使得可由单张表满足所有读和写请求。快照尽可能多地降低对正常I/0操作的影响。其次,对视图巻操作,快照使用与主巻数据路径相同的表机制。快照最小化复制的数据量。为此,快照为每一PITC维护指针表。快照复制和移动指针,但它不移动巻上的数据。快照使用固定大小的数据页来管理巻。跟踪个别扇区可能需要大量存储器用于单个合理大小的巻。通过使用大于扇区的数据页,某些页可包含直接从另一页复制而来的一定百分比的信息。快照使用巻上的数据空间来存储数据页表。在控制器故障之后重新生成查找表。查找表分配页并进一步细分它们。在一个实施例中,快照通过要求使用快照的巻在单个控制器上操作来处理控制器故障。该实施例不要求任何相干性。对巻的所有改变都记录在磁盘上或记录至可靠的高速缓存以供替换控制器恢复使用。在一个实施例中,从控制器故障中恢复要求从磁盘上读快照信息。快照使用虚拟化RAID接口来访问存储。快照可将多个RAID设备作为单个数据空间使用。快照支持每巻'n'个PITC以及每巻'm,个视图。对'n'和'm,的限制是磁盘空间和控制器存储器的函数。巻和巻分配/布局快照向巻添加LBA重映射层。重映射使用I/O请求LBA和查找表将地址转换成数据页。如图6中所示,使用快照的所呈现的巻与不具有快照的巻相同地运作。它具有线性的LBA空间并处理I/0请求。快照使用RAID接口来执行I/O,且将多个RAID设备包含在巻中。在一个实施例中,快照巻的RAID设备的大小不是所呈现巻的大小。RAID设备允许快照为巻内的数据页扩充空间。一开始就启用快照的新巻仅需包括新数据页的空间。快照不创建页列表来置于底层PITC中。在这种情况中,底层PITC为空。在分配时,所有PITC页均位于自由列表上。通过创建一开始便启用快照的巻,它可分配比巻所呈现的更少的物理空间。快照跟踪对巻的写。在本发明的一个实施例中,将不在页池或矩阵中复制和/或存储NULL巻,从而提高了对存储空间的使用效率。在一个实施例中,对这两种分配方案,PITC均在列表的底部放置虚拟NULL巻。对NULL巻的读返回零块。NULL巻处理之前未由服务器写的扇区。不可能发生对NULL巻的写。巻使用NULL巻用于对未写的扇区的读。自由页的数量取决于巻的大小、PITC的数量以及数据改变的预期速率。系统为给定的巻确定分配的页的数量。数据页的数量可随时间扩充。扩充可支持比预期更快速的数据改变、更多PITC或更大的巻。将新页添加至自由列表。可自动发生对自由列表添加页。快照使用数据页来管理巻空间。每一数据页可包括几兆字节的数据。使用操作系统往往在巻的同一区域中写入多个扇区。存储器需求也指示快照使用页来管理巻。为1万亿字节的巻的每一扇区维护单个32位指针可需要8吉字节的RAM。不同的巻可具有不同的页大小。图7示出了快照结构的一个实施例。快照将多个对象添加至巻结构。其它对象包括PITC、指向活动PITC的指针、数据页自由列表、子视图巻以及PITC聚合对象。活动PITC(AP)指针由巻维护。AP处理对巻的读和写请求的映射。AP包含巻内所有数据的当前位置的概述。数据页自由列表跟踪巻上的可用页。可任选子视图巻提供对巻PITC的访问。视图巻包含它们自己的AP以记录对PITC的写,同时不修改基础数据。巻可支持多个子视图巻。快照聚合对象为移除先前的PITC起见,临时链接两个PITC。对PITC的聚合涉及移动数据页的所有权以及释放数据页。PITC包含用于当PITC活动时所写的页的表和数据页。PITC包含冻结时戳,在那刻PITC停止接受写请求。PITC也包含生存时间值,该值确定何时PITC将聚合。同样,在取PITC以提供可预测的读和写性能的时刻,快照概述整个巻的数据页指针。其它的解决方案可要求读来检查多个PITC以找出最新的指针。这些解决方案需要表高速缓存算法,但具有最坏情况性能。本发明中的快照概述也减少表的最坏情况的存储器使用。它可要求将整个表加载至存储器中,但它可能仅要求加载单个表。概述包括当前PITC所拥有的页,且可包括来自所有先前PITC的页。为确定PITC可写哪些页,它对每一数据页跟踪页所有权。它也对聚合进程跟踪所有权。为此,数据页指针包括页索引。图8示出了PITC生存周期的一个实施例。每一PITC在作为只读提交前经过多个以下状态1.创建表——在创建时,表被创建。2.提交给磁盘——这为PITC生成磁盘上的存储。通过在此刻写表,它保证了在取PITC之前分配存储表信息所需的空间。同时,也将PITC对象提交给磁盘。3.接受1/0——它成为活动PITC(AP)——现在它为巻处理读和写请求。这是接受对表的写请求的唯一状态。PITC生成表示它目前是活动的事件。4.将表提交给磁盘——PITC不再是AP,且不再接受另外的页。新AP已经接管。在此刻之后,除非在聚合操作中移除表,否则表将不再改变。它是只读的。在此刻,PITC生成表示它被冻结且已被提交的事件。任何服务可监听该事件。5.释放表存储器——释放表需要的存储器。该步骤也清除日志以声明所有的改变已被写入磁盘。巻或视图巻的顶层PITC被称为活动PITC(AP)。AP满足对巻的所有读和写请求。对巻而言,AP是可接受写请求的唯一的PITC。AP包含对整个巻的数据页指针的概述。对聚合进程而言,AP可以是目的地,而不是源。作为目的地,AP增加所拥有的页的数量,但它不改变数据的视图。对巻扩充,AP立即随巻增长。新页指向NULL巻。非APPITC对巻扩充不需要修改。每一PITC维护将输入的LBA映射到对基础巻的数据页指针的表。该表包括指向数据页的指针。该表需要对比先前呈现的逻辑空间更多的物理磁盘空间进行寻址。图9示出了含有多级索引的表结构的一个实施例。该结构将巻LBA解码成数据页指针。如图9中所示,每一级对地址的越来越低的位解码。表的该结构允许快速査找并提供扩充巻的能力。对快速查找,多级索引结构使表很浅,在每一级上有多个条目。索引在每一级上执行数组査找。为支持巻扩充,多级索引结构允许添加另外的层以支持扩充。在整个情况中,巻扩充是呈现给较高层的LBA计数的扩充,而不是为巻分配的存储空间的实际数量的扩充。多级索引包含整个巻数据页重映射的概述。每一PITC包含在提交PITC的时间点的巻的完整重映射列表。多级索引结构对表的各层使用不同的条目类型。不同的条目类型支持从磁盘读信息以及在存储器中存储信息的需求。底层条目可仅包含数据页指针。顶层和中间层条目包含两个数组,一个用于下一级表条目的LBA,另一个用于指向表的存储器指针。当所呈现的巻大小的扩充时,先前PITC表的大小不需要增加,且这些表不需要修改。因为表为只读的,表中的信息可以不改变,且扩充进程通过添加指向末尾的NULL页指针来修改表。快照不向用户直接呈现来自先前PITC的表。I/O操作要求表将LBA映射到数据页指针。I/O然后将数据页指针乘以数据页大小以获取基础RAID的LBA。在一个实施例中,数据页大小是2的幂。该表提供API来重映射LBA、添加页以及聚合表。快照使用数据页来存储PITC对象和LBA映射表。该表为对其表条目的I/O而直接访问RAID接口。当将该表读和写至RAID设备时,该表最小化修改。在没有修改的情况下,可能将表信息直接读和写入表条目结构。这减少了I/0所需的副本。快照可使用变更日志以阻止在磁盘上创建热点。热点是重复使用以跟踪对巻的更新的位置。变更日志记录对PITC表的更新以及巻的自由列表。在恢复过程中,快照使用变更日志来重新创建存储器中的AP和自由列表。图IO示出了对表的恢复的一个实施例,它阐明了存储器中的AP、磁盘上的AP和变更日志之间的关系。它也显示对自由列表的同样的关系。存储器中的AP表可从磁盘上的AP以及曰志中重建。对任何控制器故障,通过读磁盘上的AP并向其应用变更日志来重建存储器中的AP。取决于系统配置,变更日志使用不同的物理资源。对多控制器系统而言,变更日志依赖于备用电池高速缓存存储器以供存储。使用高速缓存存储器允许快照减少对磁盘写表的次数同时仍维护数据完整性。变更日志复制到备份控制器以供恢复。对单控制器系统而言,变更日志将所有信息写至磁盘。这具有在日志位置处创建磁盘上的热点的副作用。这允许将多个改变写至单个设备块。周期性地,快照将PITC表和自由列表写至磁盘,从而在日志中创建检査点以及清除检查点。该周期取决于对PITC的更新的数量而变化。聚合进程不使用变更H志。快照数据页I/O可要求请求在数据页边界之内适合。如果快照遇到跨越页边界的I/0请求,则它拆分该请求。它然后将请求向下传递给请求处理程序。写和读部分假定I/O在页边界之内适合。AP提供LBA重映射以满足I/O请求。AP满足所有的写请求。快照对自有和非自有页支持两种不同的写序列。不同的写序列允许向表添加页。图11示出了含有自有页序列以及非自有页序列的写进程的一个实施例。对自有页序列,该进程包括以下1)找出表映射;以及2)自有页写——重映射LBA,并将数据写至RAID接口。之前写的页是简单的写请求。快照将数据写至该页,从而盖写当前内容。仅写AP所拥有的数据页。其它PITC所拥有的页是只读的。对非自有页序列,该进程包括以下1)找出表映射;2)读之前的页——执行对数据页的读,使得写请求和所读的数据构成完整的页。这是写进程上的复制的开始。3)组合数据——将数据页读和写请求有效负载置于单个邻接块中。4)自由列表分配——从自由列表中获取新的数据页指针。5)将组合的数据写至新的数据页。6)将新页的信息提交给日志。7)更新表——改变表中的LBA重映射以反映新数据页指针。该数据页现在由该PITC所拥有。添加页可要求阻塞读和写请求,直到将页添加至表中。通过将表更新写至磁盘,并为日志保存多个高速缓存的副本,快照实现控制器相干性。就读请求而言,AP履行所有的读请求。使用AP表,读请求将LBA重映射到数据页的LBA。它将经重映射的LBA传递给RAID接口以满足请求。巻可履行对之前未写至巻的数据页的读请求。这些页在PITC表中被标记为NULL地址(全1)。对该地址的请求可由NULL巻满足,并返回常量数据模式。由不同PITC所拥有的页可满足跨越页边界的读请求。快照使用NULL巻来满足对之前未写的数据页的读请求。它对读取的每一扇区返回全0。它不具有RAID设备或分配的空间。预期在存储器中保存全O的块以满足对NULL巻的读的数据要求。所有巻共享NULL巻来满足读请求。在一个实施例中,聚合进程从巻中移除PITC和其自有页中的某一些。移除PITC创建更多的可用空间来跟踪新的差异。聚合对两个相邻的表比较差异,且仅保存较新的差异。根据用户配置,聚合周期性或手动地发生。该进程可包括两个PITC,源和目的地。在一个实施例中,对合格对象的规则如下1)源必须是目的地之前的PITC——源必须在目的地之前创建。2)目的地不可同时为源。3)源不可由多个PITC引用。当从PITC创建视图巻时,发生多重引用。4)目的地可支持多重引用。5)AP可以是目的地,但不可以是源。聚合进程将所有的改变写至磁盘,且不要求任何相干性。如果控制器发生故障,巻从磁盘中恢复PITC信息,并重新开始聚合进程。该进程标记两个PITC以供聚合,且包含以下步骤1)将源状态置为聚合源一一该状态被提交给磁盘以供存储器故障恢复。此时,由于源的数据页可能无效而不再访问源。数据页可被返回至自由列表,或所有权可转移给目的地。2)将目的地状态置为聚合目的地一一该状态被提交给磁盘以供控制器故障恢复。3)加载和比较表——该进程移动数据页指针。释放的数据页立即被添加至自由列表。4)将目的地状态置为正常——该进程完成。5)调整列表——将源下一指针的前一指针改为指向目的。这有效地将源从列表中移除。6)释放源——向自由列表返回用于控制信息的任何数据页。以上进程支持两个PITC的组合。本领域的技术人员可以理解,聚合可被设计成移除多个PITC以及在一遍中创建多个源。如图2中所示,页池维护数据页自由列表以供与该页池相关联的所有巻使用。该自由列表管理器使用来自页池的数据页将自由列表提交给永久性存储器。自由列表的更新来自多于个源写进程分配页、控制页管理器分配页以及聚合进程返回页。自由列表维护在某一阈值自动扩充自身的触发器。该触发器使用页池扩充方法将页添加到页池。自动扩充可以是由巻策略决定的。较重要的数据巻将被允许扩充,而较不重要的巻被强制聚合。视图巻提供对先前时间点的访问并支持正常巻I/O操作。PITC跟踪PITC之前的差异,视图巻允许用户访问PITC内包含的信息。视图巻从PITC中分支。视图巻支持恢复、测试、备份操作等。由于视图巻不需要数据副本,几乎即时发生视图巻的创建。视图巻可要求其自己的AP支持对视图巻的写。可从当前巻AP中复制从巻AP的当前状态中取得的视图。使用AP,视图巻允许对视图巻的写操作而无需修改基础数据。OS可要求文件系统或文件重建来使用数据。视图巻从父巻中为AP和所写数据页分配空间。视图巻没有相关联的RAID设备信息。删除视图巻将空间释放回父巻。图12示出了使用快照显示巻转移的示例性快照操作。图12示出了具有10页的巻。每一状态包含对巻的读请求履行列表。阴影块指示自有数据页指针。从该图左侧(即,初始状态)到图中间的转移示出对页3和8的写。对页3的写要求改变PITCI(AP)。PITCI遵循新页写处理以将页3添加至表中。PITC从页J中读取未改变的信息,并使用驱动器页B来存储该页。可在无需移动页的情况下处理该PITC中对页3的所有将来的写。对页8的写示出了用于写至页的第二种情况。因为PITCI已经包含页8,PITCI盖写页8中的那部分数据。对这一情况而言,它存在于驱动器页C上。从图中间到图右侧(即,最终状态)的转移示出PITCII与III的聚合。快照聚合涉及分别移除较老的页,同时仍维护两个PITC中的所有改变。这两个PITC均包含页3和页8。该进程保留来自PITCII的较新的页并释放来自PITCIII的页,它将页A和D返回给自由列表。快照分配来自页池的数据页用于存储自由列表和PITC表信息。控制页分配对数据页进行二次分配以匹配对象所需的大小。巻包含对控制页信息顶端的页指针。从该页中,可读取所有其它信息。快照跟踪在某一时间间隔的使用中的页的数量。这允许快照预测用户何时需要向系统添加更多的物理磁盘空间以防止快照耗尽。数据分级管理在本发明的一个实施例中,数据分级管理(DP)用于将数据逐渐地移至具有适当成本的存储空间中。本发明允许用户在实际需要驱动器时添加驱动器。这将显著地减少磁盘驱动器的总成本。数据分级管理将非最近访问的数据以及历史快照数据移至较不昂贵的存储中。对非最近访问的数据而言,这为非最近访问的任何页逐步减少了存储的成本。它可以不将数据立即移动至最低成本的存储。对历史快照数据,它将只读页移动至更有效的存储空间,诸如RAID5,如果该页不再由巻访问,那么将该页移动至最不昂贵的存储中。本发明的数据分级管理的其它优点包括,维护对当前访问数据的快速1/0访问以及减少购买快速但昂贵的磁盘驱动器的需求。在操作中,数据分级管理使用物理介质的成本以及用于数据保护的RAID设备的效率来确定存储的成本。数据分级管理也确定存储效率并相应地移动数据。例如,数据分级管理可将RAID10转换成RAID5设备以便更有效地使用物理磁盘空间。数据分级管理将可访问数据定义为当前可由服务器读或写的数据。它使用可访问性来确定页应使用的存储类。如果页属于历史PITC,则它是只读的。如果服务器在最近的PITC中没有更新该页,则该页仍然可访问。图17示出了数据分级管理操作中的可访问数据页的一个实施例。该可访问数据页被分成以下类别最近访问的可访问——这些是巻最多使用的活动页。非最近访问的可访问——最近未使用的读写页。历史可访问——可由巻读的只读页——应用于快照巻历史非可访问——巻当前未访问的只读数据页——应用于快照巻。快照为恢复的目的而维护这些页,且这些页一般尽可能置于最低成本的存储上。在图17中,示出了快照巻的具有不同自有页的三个PITC。由PITCC单独表示动态容量巻。所有这些页是可访问且读写的。这些页可具有不同的访问时间。下表按照递增的效率或递减的金钱费用示出了各种存储设备。该存储设备的列表也按照渐慢的写I/O访问的大致顺序。数据分级管理计算由RAID设备的总物理空间划分的逻辑受保护空间的效率。表l:RAID类型<table>tableseeoriginaldocumentpage24</column></row><table>随着条带中驱动器数的增加,RAID5效率随之增加。随着条带中磁盘数的增力口,失效域(faultdomain)也随之增加。条带中驱动器数的增加也增加了创建RAID设备所必需的最小磁盘数量。在一个实施例中,由于失效域大小的增加以及有限的效率增加,数据分级管理不使用大于9个驱动器的RAID5条带大小。数据分级管理使用为快照页大小整数倍的RAID5条带大小。这允许数据分级管理在将页移动至RAID5时执行全条带写,从而使得移动更有效。对数据分级管理的目的,所有的RAID5配置具有相同的写I/0特征。例如,2.5英寸FC磁盘上的RAID5可能不能有效地使用这些磁盘的性能。为防止这种组合,数据分级管理需要支持防止RAID类型在某些磁盘类型上运行的能力。数据分级管理的配置也可防止系统使用RAID10或RAID5的空间。下表中示出磁盘类型<table>tableseeoriginaldocumentpage25</column></row><table>数据分级管理包含对相对于系统内的驱动器的磁盘驱动器进行自动分类的能力。系统检查磁盘来确定它相对于系统中的其它磁盘的性能。较快速的磁盘被分类在较高值分类中,较慢磁盘被分类在较低值分类中。当磁盘被添加至系统时,系统自动重新平衡磁盘的值分类。该方法同时处理了从不改变的系统以及当添加新磁盘时经常改变的系统两者。自动分类可将多个磁盘类型置于同一值分类中。如果确定驱动器在值上足够接近,那么它们可具有相同的值。在一个实施例中,系统包含以下驱动器高一10KFC驱动器低一SATA驱动器随着15KFC驱动器的添加,数据分级管理自动对磁盘重新分类,并降级该IOKFC驱动器。这产生以下分类高一15KFC驱动器中一10KFC驱动器低一SATA驱动器在另一实施例中,系统可具有以下驱动器类型高一25KFC驱动器低一15KFC驱动器从而,该15KFC驱动器被分类为较低值分类,而15KFC驱动器被分类为较高值分类。如果将SATA驱动器添加至该系统,数据分级管理自动对磁盘重新分类。这产生以下分类高一25KFC驱动器中一15KFC驱动器低一SATA驱动器数据分级管理可包括瀑布式分级管理。通常,瀑布式分级管理仅当完全使用了资源时才将数据移动至较不昂贵的资源中。瀑布式分级管理有效地最大化最昂贵系统资源的使用。它也最小化系统的成本。向最低的池添加便宜的磁盘将在底部创建较大的池。典型的瀑布式分级管理使用RAID10空间,然后使用RAID空间中的下一个,诸如RAID5空间。这迫使瀑布直接前进至下一类磁盘的RAIDIO。或者,数据分级管理可包括如图24中所示的混合RAID瀑布式分级管理。该替换数据分级管理方法解决了最大化磁盘空间和性能的问题,且允许存储转换成同一磁盘类中的更有效形式。该替换方法也支持RAID10和RAID5共享磁盘类的总资源的要求。这可要求配置RAID等级可对磁盘类使用的磁盘空间的固定百分比。从而,该替换的数据分级管理方法最大化昂贵存储的使用,同时允许对另一RAID类的空间共存。该混合RAID瀑布式方法在存储受限时,也仅将页移动移动至较不昂贵的存储。诸如总磁盘空间的百分比等阈值限制某一RAID类型的存储量。这最大化系统中最昂贵存储的使用。当存储逼近其极限时,数据分级管理自动将页移动至较低成本的存储。数据分级管理为写峰值提供缓冲器。可以理解,以上的瀑布式方法也将页立即移动至最低成本存储,因为在某些情况中,可能存在以及时的方式将历史和非可访问页移动至较不昂贵存储的需求。历史页也可被即时移动至较不昂贵存储。图18示出了数据分级管理进程1800的流程图。数据分级管理对系统中的每一页连续检查其访问模式和存储成本以确定是否存在要移动的数据。数据分级管理也可确定存储是否达到其最大分配。数据分级管理进程确定该页是否可由任何巻访问。该进程对PITC检査附加于历史的每一巻以确定是否引用该页。如果该页正被活动地使用,那么该页对升级或缓慢降级而言是合格的。如果该页不可由任何巻访问,那么将其移动至可用的最低成本存储。数据分级管理也将PITC期满之前的时间计算在内。如果快照调度PITC26即将期满,那么没有页将分级管理。如果页池正以积极的模式操作,那么页可分级管理。数据分级管理最近访问检测需要从对页的升级中消除活动的爆发。数据分级管理将读和写访问跟踪分离。这允许数据分级管理在可访问的RAID5设备上保持数据。如病毒扫描或报告等操作仅读数据。如果存储短缺,则数据分级管理改变最近访问的资格鉴定。这允许数据分级管理更积极地将页降级。这也有助于当存储短缺时从下往上填充系统。当系统资源变得短缺时,数据分级管理可积极地移动数据页。对于所有这些情况,仍然必须有更多的磁盘或配置改变。数据分级管理拉长了系统可在紧缺状况中操作的时间量。数据分级管理试图尽可能长时间地保持系统可操作。这一直持续到当它所有的存储类都耗尽空间时。在当RAIDIO空间短缺,且总的可用磁盘空间短缺的情况中,数据分级管理可调拨RAID10磁盘空间来移动至更有效的RAID5中。以写性能为代价,这增加了系统的总体容量。但仍必需有更多的磁盘。如果完全使用了特定的存储类,那么数据分级管理允许借用非可接受页以保持系统运行。例如,如果巻被配置成对其可访问信息使用RAIDIO-FC,那么它可以从RAID5-FC或RAID10-SATA中分配页,直到有更多的RAID10-FC空间可用。数据分级管理也支持压縮来增加系统的察觉的容量。压縮可仅用于不访问的历史页,或用作恢复信息的存储。压縮表现为接近存储成本底部的另一类存储。如图25中所示,页池基本上包含自由列表和设备信息。页池需要支持多个自由列表、增强的页分配方案以及自由列表的分类。页池为每一类存储维护单独的自由列表。分配方案允许从多个池中的一个分配页,同时设定最小或最大允许的类。自由列表的分类来自设备配置。每一自由列表提供其自己的计数器用于统计汇集和显示。每一自由列表也提供RAID设备效率信息用于存储效率状态的汇集。在一个实施例中,设备列表可要求跟踪存储类成本的额外能力。该组合确定存储的类。如果用户希望对所配置的类具有更多或更少粒度时,发生这一情况。图26示出了高性能数据库的一个实施例,其中所有可用数据,即便最近未访问,也仅驻留在2.5FC驱动器上。非可访问历史数据被移动至RAID5光纤通道。图27示出了MRI映像巻的一个实施例,其中对该动态巻而言可访问存储是SATARAID10和RAID5。如果映像最近未被访问,那么该映像被移动至RAID5。新的写最初进入RAID10。图19示出了经压縮的页布局的一个实施例。数据分级管理通过对固定大小的数据页进行二次分配来实现压缩。二次分配信息跟踪该页的自由部分以及该页的已分配部分的位置。数据分级管理可以不预测压縮的效率,且可处理其二次分配内的可变大小页。经压縮的页可显著地影响CPU性能。对写访问,经压縮的页将要求整个页被解压和重新压縮。从而,正被活动地访问的页不被压縮,并且返回至其未压縮状态。在存储极端受限的情况下,写可能是必需的。PITC重映射表指向二次分配信息,且被标记为指示被压缩的页。访问经压缩的页可比非压縮的页需要更高的I/O计数。访问可需要对二次分配信息的读取来检索实际数据的位置。该经压縮的数据可从磁盘中读取并可在处理器上解压。数据分级管理可要求压縮能够对整个页的部分解压。这允许数据分级管理读访问仅解压页的小部分。读高速缓存的预读特征可有助于延迟压縮。单个解压可处理多个服务器I/0。数据分级管理标记对压縮而言非良好候选的页,使得它将不必频繁尝试来压縮页。图20示出了根据本发明的原理的高级磁盘驱动器系统中的数据分级管理的一个实施例。数据分级管理不改变巻的外部行为或数据路径的操作。数据分级管理可要求对页池的修改。页池基本上包含自由列表和设备信息。页池需要支持多个自由列表、增强的页分配方案以及自由列表的分类。页池为每一类存储维护单独的自由列表。该分配方案允许从多个池中的一个分配页,同时设定最小或最大允许的类。自由列表的分类可来自设备配置。每一自由列表提供其自己的计数器用于统计汇集和显示。每一自由列表也提供RAID设备效率信息用于存储效率统计的汇集。PITC标识用于移动的候选,并当移动可访问页时阻断对该页的I/O。数据分级管理不断地对PITC检查候选。由于服务器I/0、新快照页更新以及视图巻的创建/删除,页的可访问性不断改变。数据分级管理也不断检查巻配置改变,并概括页类和计数的当前列表。这允许数据分级管理评估该概述,并确定是否存在可能要移动的页。每一PITC呈现用于每一类存储的页的数量的计数器。数据分级管理使用该信息来标识当达到阈值时成为移动页的良好候选的PITC。RAID基于磁盘成本从一组磁盘中分配设备。RAID也提供API来检索设备或潜在设备的效率。它也需要返回关于写操作所需的I/O数量的信息。数据分级管理也可要求RAIDNULL使用第三方RAID控制器作为数据分级管理的一部分。RAIDNULL可消费整个磁盘,且可仅作为穿过的层。磁盘管理器也可自动确定和存储磁盘分类。自动确定磁盘分类可要求对SCSI启动程序的改变。通过以上描述和附图,本领域的普通技术人员可理解,所示和描述的具体实施例仅用于说明的目的,而不旨在限制本发明的范围。本领域的普通技术人员可以认识到,本发明也可用其它具体形式实现,而不背离本发明的精神或基本特征。对具体实施例的细节的参考不旨在限制本发明的范围。权利要求1.一种数据即时重放方法,包括以下步骤从多个RAID设备创建磁盘空间块的抽象卷;分配所述抽象卷的磁盘空间块;向所分配的磁盘空间块写数据;对所述抽象卷生成快照;存储所述快照的地址索引;以及通过所存储的地址索引访问所述快照。2.如权利要求l所述的方法,其特征在于,所述快照是以预定的时间间隔生成的。3.如权利要求1所述的方法,其特征在于,还包括基于所述快照创建临时巻,所述临时巻提供了在一过去的时间点所述抽象巻的内容视图。4.如权利要求3所述的方法,其特征在于,还包括修改所述临时巻。5.如权利要求4所述的方法,其特征在于,还包括对所述临时巻生成第二快照,以及存储所述第二快照的地址索引。6.如权利要求3所述的方法,其特征在于,所述临时巻用于测试,使得所述测试能对所述过去的时间点上的数据进行,而不改变所述抽象巻中的基础数据。7.如权利要求6所述的方法,其特征在于,所述临时巻用于远程测试。8.如权利要求3所述的方法,其特征在于,所述临时巻用于训练,使得所述训练能对所述过去的时间点上的数据进行,而不改变所述抽象巻中的基础数据。9.如权利要求3所述的方法,其特征在于,所述临时巻用于通过复制所述数据来对所述数据备份。10.如权利要求9所述的方法,其特征在于,远程地复制所述数据。11.如权利要求3所述的方法,其特征在于,所述临时巻用于数据恢复。12.如权利要求3所述的方法,其特征在于,写操作能够在所述临时巻上进行,而不修改所述快照和所述抽象巻中的基础数据。13.—种数据即时重放方法,包括以下步骤定义RAID子系统的磁盘空间的默认大小,所述默认大小的磁盘空间形成存储池;分配所述存储池向所分配的存储池写数据;对所述存储池生成快照;存储所述快照的地址索引;以及通过所存储的地址索引访问所述快照。14.如权利要求13所述的方法,其特征在于,还包括基于所述快照创建临时存储池,所述临时存储池提供了在一指定的过去的时间点所述存储池的内容视图。15.如权利要求14所述的方法,其特征在于,写操作能够在所述临时存储池上进行,而不修改所述快照和所述原始存储池中的基础数据。16.如权利要求13所述的方法,其特征在于,所述临时存储池用于测试和训练中的至少一个,使得所述测试和训练能对所述过去的时间点上的数据进行,而不改变所述存储池中的基础数据。17.如权利要求13所述的方法,其特征在于,所述临时存储池用于通过复制所述数据来对所述数据备份。18.如权利要求13所述的方法,其特征在于,所述临时存储池用于数据恢复。19.一种能够重放数据的磁盘驱动器系统,包括含有存储池的RAID子系统;以及含有至少一个磁盘存储系统控制器的磁盘管理器,所述系统控制器自动生成所述存储池的快照,存储所述存储池的所述快照的地址索引,以及通过所存储的地址索引访问所述快照。20.—种能够重放数据的磁盘驱动器系统,包括用于从多个RAID设备生成磁盘空间块的至少一个抽象的抽象装置;用于分配所述抽象的磁盘空间块的分配装置;用于向所分配的磁盘空间块写数据的写装置;用于对所述抽象生成快照的融合装置;用于存储所述快照的地址索引的存储装置;以及用于通过所存储的地址索引访问所述快照的访问装置。全文摘要提供了能够动态分配数据的磁盘驱动器系统和方法。该磁盘驱动器系统可包括含有存储池的RAID子系统以及含有至少一个磁盘存储系统控制器的磁盘管理器,该存储池例如维护RAID自由列表的存储页池或维护RAID空列表的磁盘存储块矩阵。RAID子系统和磁盘管理器基于RAID-磁盘映射跨存储池和多个磁盘驱动器动态地分配数据。RAID子系统和磁盘管理器确定是否需要另外的磁盘驱动器,且如果需要另外的磁盘驱动器则发送通知。动态数据分配和数据分级管理允许用户在稍后需要时获取磁盘驱动器。动态数据分配也允许对用于存储的虚拟卷池的快照/时间点副本的有效数据存储,用于数据备份、恢复等的即时数据重放和数据即时融合,远程数据存储以及数据分级管理等。文档编号G06F3/06GK101566929SQ200910004729公开日2009年10月28日申请日期2004年8月13日优先权日2003年8月14日发明者J·P·圭德,L·E·阿兹曼,M·J·克莱姆,P·E·索兰申请人:克姆佩棱特科技公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1