用于提高存储管理系统的可伸缩性和可移植性的技术的制作方法

文档序号:6569650阅读:182来源:国知局

专利名称::用于提高存储管理系统的可伸缩性和可移植性的技术的制作方法
技术领域
:0004本公开一般涉及数据存储,并且,更具体地,涉及用于提高存储管理系统的可伸縮性和可移植性的技术。
背景技术
:0005在相关的10/924,652号美国专利申请和10/668,833号美国专利申请中,公开了一种依赖时间的数据存储和恢复技术。这种技术的实施例提供持续数据保护(CDP)的解决方案,其中指向存储系统(或数据存储器)的写入命令被含有当前存储器和时间存储器的存储管理系统拦截。0006图1示出CDP系统100的一个示例性实施例。存储管理系统106可拦截由主机102发出的指向存储系统104的写入命令。在存储管理系统106中,当前存储器108可保持或者可存取存储系统1045的数字内容的当前(或镜像)拷贝。时间存储器110可记录与每个被拦截的写入命令关联的信息,例如在该写入命令的有效负荷中的新数据和/或响应写入命令在当前存储器中要被覆盖的旧数据。对响应写入命令的新数据或者旧数据的记录可被称为写时拷贝(COW)操作,而所记录的新的或旧数据可被称为COW数据。时间存储器110也可记录与所拦截的写入命令以及/或者对应的cow操作关联的其他信息(即元数据),例如时间戳,所述旧数据被改写的当前存储器中的原始位置,以及所述cow数据被拷贝到的时间存储器中的目的地位置。每个cow操作一般备份一个或更多cow数据块,从而产生一组cow数据和相应的元数据。经过一段时间,多组cow数据和相应的元数据(包括时间戳)可累积为关于在所述当前存储器108或者所述存储系统104中已经被写入或改写的内容的历史记录的集合。所述时间存储器110的内容可被编索引,例如基于时间和/或存储地址,以便于所述备份数据的高效存取。0007由于当前存储器108中包含存储系统104的数字内容的当前拷贝以及在时间存储器110中包含历史记录,所以存储管理系统106为存储系统104增加了一个新的维度,即时间。假定所述存储管理系统106已经和所述存储系统104自一个过去时刻操作性耦连,所述存储管理系统106可快速而准确地把存储系统104中的任何可寻址的内容恢复到所述过去时刻到当前时刻之间的任何时间点。0008对于上述CDP方法有着很广泛的实施选择。图2示出一个示例性实施,其中存储管理系统206与主机202以及存储系统204都操作性耦连。所述存储管理系统206可位于也可不位于所述主机202和所述存储系统204之间的关键数据路径20中。如果没有位于所述关键数据路径20中,所述存储管理系统206可在任何希望它来拦截主机202和所述存储系统204之间的通信的时候,切换为"捕获模式"。所述存储管理系统206—般用一个或者更多处理器模块208实现,其中每个处理器模块208完成一系列的操作,例如数据拦截、数据复制、记录生成以及元数据索引等。0009图3示出可伸縮的存储管理系统300的示例性实施。所述存储管理系统300可包括多个通过内部网络(或者背板)30互联的处理器模块302。每个处理器模块302可包含一个与目标接口306、只读存储器(ROM)308、存储器310、启动器接口312以及内部网络接口314通信的中央处理单元(CPU)304。所述CPU304可在一个或更多个集成电路中实现,并可包括其他"胶合"逻辑(未示出),用于和其他集成电路相接,例如总线接口、时钟以及通信接口。CPU304可执行在ROM308中提供的软件和在存储器310中的软件,这些软件可以被读取,例如通过内部网络接口314。所述内部网络接口314可连接所述处理器模块302到所述内部网络30,这样所述处理器模块302可与其他处理器模块通信。在一个实现中,一组或者更多组处理器模块302成支架安装在存储管理系统中,并且内部网络30也连接每个支架到存储管理系统内包含的其他支架。这种分布式处理产生了大小(例如存储器容量、处理速度等)可按比例放大或者縮小以适应所需容量的系统。0010但是上述对存储管理系统的模块化只是朝向可伸縮性的第一步骤。许多限制仍然约束着其中可部属存储管理系统的环境。同样存在平台特殊的限制约束着处理器模块的可移植性。此外,存储管理系统的当前架构不能充分利用新兴的智能转换技术。0011纵观前述,希望提供一种克服上述不足和缺点的存储管理架
发明内容0012本发明公开一种用于提高存储管理系统的可伸縮性和可移植性的技术。在一个特别的示范性实施例中,所述技术可实现为与存储系统操作性耦连的存储管理系统。存储管理系统可包括多个处理器模块(processormodule),其中每个处理器模块都能够拦截指向所述存储系统的写入命令,备份与该写入命令关联的数据,并且产生包含所备份数据的时间戳的元数据。所述存储管理系统也可包括一个或更多个索引模块,索引模块基于所述元数据生成所述备份数据的一个或者更多个索引表,其中所述一个或更多个索引模块与所述处理器模块和所述存储系统通信。0013根据这个特别的示例性实施例的其他方面,多个处理器模块的数目是根据所述存储管理系统的所需容量可增减的(可伸縮的)。0014根据这个特别的示例性实施例的其他方面,多个处理器模块可配置成具有容错冗余。0015根据这个特别的示例性实施例的附加方面,多个处理器模块可通过光纤连接与所述存储系统耦连。0016根据这个特别的示例性实施例的另一个方面,多个处理器模块中的每个可包括至少一个目标接口以及至少一个启动器接口。0017根据这个特别的示例性实施例的又另一个方面,多个处理器模块可相互通信。0018根据这个特别的示例性实施例的另一个方面,在刀片场(bladefarm)中的一个或更多个索引模块的数量可基于由刀片场支持的处理器模块的数量而增减。0019根据这个特别的示例性实施例的进一步方面,所述一个或更多个索引模块可通过光纤连接存取在所述存储系统中的一个或更多个元数据存储装置。0020根据这个特别的示例性实施例的又一另外方面,所述一个或更多个索引模块可通过一个或更多个内部网络与所述多个处理器模块通信。0021根据这个特别的示例性实施例的又一另外方面,所述一个或更多个索引模块可通过多个中介和代理与所述多个处理器模块通信。0022根据这个特别的示例性实施例的另一个方面,所述一个或更多个索引模块可执行一个或更多个功能,这些功能从由刀片结构、重映射引擎、全局数据库、产品复原、时间线压縮、索引数据库接口、元数据空间管理以及卖主多路径组成的组中选择。0023在另一个特别的示例性实施例中,所述技术可实现为用于提高与存储系统操作性耦连的存储管理系统的可移植性和可伸縮性的方法。所述方法可包括将多个处理器模块耦连到存储系统,其中每个处理器模块都能够拦截指向所述存储系统的写入命令,备份与该写入命令关联的数据,并且产生包含所备份数据的时间戳的元数据。所述方法还可包括耦连包含一个或者更多索引模块的刀片场到所述存储系统。所述方法可进一步包括使所述刀片场与多个处理器模块通过一个或更多个内部网络通信,其中所述一个或更多个索引模块基于所述元数据产生一个或更多个用于备份数据的索引表。0024在又一个特别的示例性实施例中,所述技术可实现为至少一个信号,其被包含在至少一个载波中,用于传输计算机程序的指令,这些指令被配置为是至少一个处理器可读的以指示所述至少一个处理器执行计算机处理以完成前述的方法。0025在又一个特别的示例性实施例中,所述技术可实现为至少一个处理器可读的载体,其用于存储计算机程序指令,所述指令被设置为可被至少一个处理器读取以指示所述至少一个处理器执行计算机处理以完成前述的方法。0026在另一个特别的示例性实施例中,所述技术可实现为用于提高操作性耦连到存储系统的存储管理系统的可移植性和可伸縮性的方法。该方法可包括在多个处理器模块拦截指向存储系统的写入命令。该方法还可包括备份与所述写入命令关联的数据。所述方法可进一步包括产生包含备份数据的时间戳的元数据。所述方法可附加包括在一个或更多个索引模块中基于所述元数据生成备份数据的一个或更多个索引表,其中所述一个或更多个索引模块与所述处理器模块和所述存储系统通信。0027将参照在附图中示出的示范性实施例更加详细地阐述本公开内容。虽然在下面参照示例性实施例对本公开内容进行阐述,但是应了解本公开不受限于此。本领域的普通技术人员在获取本技术后会认识到在如此处阐述的本公开的范围内的附加的实施、修改和实施例,以及在其他领域的使用,并且认识到关于本公开的重要实用性。0028为了促进对本公开更完全的理解,现在引用附图,在图中相似的组件使用相似的数字引用。这些图不应解释为对本公开的限制,而只是示例。0029图1示出持续数据保护系统的示例性实施例。0030图2示出持续数据保护的示例性实现。0031图3示出可伸縮存储管理系统的示例性实现。0032图4示出根据本公开的实施例的存储管理系统的示例性实现。0033图5示出图解说明根据本公开的实施例的示例性TSD刀片的框图。0034图6示出根据本公开的实施例的TSD刀片的示例性软件组件。0035图7示出的是图解说明根据本公开的实施例的示例性索引刀片的框图。0036图8示出根据本公开的实施例的索引刀片中的示例性软件组件。0037图9示出的是图解说明根据本公开的实施例的示例性连接处理器(connectionhandler)的框图。具体实施例方式0038在本文中,"备份数据"一般指的是已经被记录和/或组织的数据,目的是复原或者恢复存储系统的数字内容。0039"写时拷贝数据"(或者"COW数据")指的是在写时拷贝操作中已经被记录的真实数据(例如在响应写入命令时要被写入的新数据或者要被改写的旧数据)。响应写入命令而被写入的新数据有时被称为"后像数据"或者"后像";而响应写入命令而要被改写的旧数据有时被称为"前像数据"或者"前像"。0040"元数据"指的是在关于写时拷贝操作中的相应COW数据的信息数据(例如时间戳)。典型地,一个写时拷贝操作导致一组COW数据和相应的元数据的产生。尽管它们相关,但是COW数据和相应的元数据可保存在独立的存储装置或段内。在时间存储器内,COW数据可被组织为一个或更多个加时间戳的"数据块"。0041典型的"存储系统"可包括一个或更多个存储装置,存储装置可以是物理的、虚拟的或者逻辑的装置或者它们的组合。根据一个实施例,存储系统可包括存储区域网(SAN),SAN具有一个或更多个数据集,其中每个数据集可包含一个或更多个节点,并且其中一个或更多个逻辑单元(LU)可耦连到每个节点。在下文中,为了便于说明,术语"存储系统"可指整个存储系统或者它的一部分(例如数据集、节点或LU)。0042本公开的实施例提供伸缩性和/或移植性更好的存储管理系统的改进架构。在关于时间存储器的功能中,输入/输出(I/O)处理与索引功能物理地隔开。1/0处理可用一个或更多个被称为"时间存储器伺服器(TSD)刀片"的I/0处理模块实现,同时索引功能可以由一个或更多个被称为"索引刀片"的索引模块完成。所述索引刀片可被聚集为支持一个或更多个TSD刀片集的索引刀片场。0043参考图4,示出根据本公开的实施例的存储管理系统400的示例性实现。该存储管理系统400可包括一个或更多个通过光纤连接(例如41和42)与存储区域网(SAN)402耦连的存储管理器件(例如404和406)。所述存储管理器件404可包括一个或更多个TSD刀片405,而所述存储管理器件406可包含一个或更多个TSD刀片407。所述光纤连接41可具有至少两个通道,一个用于启动器模式而另一个用于目标模式。对于所述光纤连接42也一样。每个TSD刀片可执行时间存储器功能(一些是本地的而其它是远程的)以备份SAN402中的数字内容。TSD刀片可配置为在类似Revivio公司的CPS1200持续保护系统的硬件平台上的模块组件,或者嵌入到智能开关或者一些其它类型的硬件中。优选地,每个存储管理器件(例如404或406)包括至少两个TSD刀片以实现容错。每个存储管理器件可耦连(例如通过以太网连接45、46或者47、48)到两个内部子网——内部子网1和内部子网2。所述存储管理器件也可耦连到局域网(LAN)。0044所述存储管理系统400也可包括通过光纤连接43和44耦连到所述SAN402的索引刀片场408。所述索引刀片场408可包括多个索引刀片409,索引刀片409可通过光纤连接43和44与SAN402中的元数据存储装置通信。所述索引刀片409也可通过内部子网1和内部子网2经由冗余连接49和50与所述存储管理器件404和406中的每一个通信。因为索引功能和所述TSD刀片物理地分隔开,所以索引刀片场408可支持多个存储管理器件并且适应所述存储管理器件和/或所述SAN402的伸縮。所述存储管理器件的容量可通过添加或移除TSD刀片和/或通过增加或减少所述存储管理器件的数量来按比例增加或降低。所述索引刀片场408的容量也可通过添加或移除所述索引刀片409来按比例增加或降低。0045根据本公开的实施例,所述索引刀片场408可以是一个可伸縮的、松散地耦连的一组索引刀片409,其运行索引软件组件的基本集,所述索引软件组件支持基本的索引存储和检索以及诸如产品复原、时间线压缩(或者时间线回滚)以及分层存储服务等的增值特性。所述索引刀片409典型地不参与工作负荷/工作单元配置。替代地,逻辑单元数(LUN)分配可被动态处理。中介和代理负责心搏连接(heart-beatingconnection),而且,如果刀片(无论是TSD还是索引)停止,在来自刀片配置管理器的帮助下,适当的重新配置可如下面描述的那样进行。0046利用分开的TSD和索引刀片的优势,对前像表格插入的提交可被批处理化以优化性能。在索引操作可在与I/O处理在同一个刀片上运行的配置中,可在刀片间复制索引批处理以保证提交批处理仍发生。0047根据一个实施例,在索引刀片场408中的每个索引刀片409可需要通向同一组元数据逻辑单元(LU)的光纤连接。元数据LU可用来作为利用元数据I/0管理器的裸设备(rawdevice),以保证没有两个索引刀片往同一个区域写入。在另一个实施例中,为了利用现存的I/O接口,索引数据可存储在伯克利(Berkeley)数据库中。最初地,结构化查询语言(SQL)数据库可用于"全局"数据库。0048将元数据LU作为刀片间共享的裸设备集来管理的通用性意味着文件系统不再必须自觉管理,并且对当前存储器LU的数据的索引不需要限制为宿留文件系统的刀片。这使得当前存储器LUN分配可以是完全动态的而不需要永久性的配置,尽管工作负荷仍与所述TSD刀片相关。0049重映射引擎技术在2005年10月14日申请的60/726,192号美国临时申请中被公开,其全部内容合并与此作为参考。重映射引擎技术可进一步加强刀片场的通用性。重映射引擎的目标之一可以是提供一个"通配的"接口,其用于执行不需要重映射引擎知道或者维护关于用户生成的对象(例如时间图像)的状态的重映射读和写。0050具有分开的TSD和索引刀片可具备将更多硬件资源分配给索引的附加优势。这样,常常有可用的CPU周期用于执行特性相关的索引刀片任务,例如,如2005年10月14日申请的60/726,187号的美国临时申请中公开的时间线压縮,该临时申请的全部内容合并在此作为参考。此外,对于索引组件运行的平台不再有任何苛刻的限制,使得系统设计者能够自由地探索,例如,64位架构、刀片中心、LINUX操作系统的最新版本等。0051图5示出一个图解说明根据本公开的实施例的示例性TSD刀片500的框图。这个框图只示出了TSD刀片500的主要组件。所述TSD刀片500可包括耦连到存储器504、目标接口506、启动器接口508以及网络接口510的CPU502。所述存储器504可优选地具有不小于1千兆字节(GB)的容量。所述目标接口506和所述启动器接口508可各支持光纤通道,用于与关联的存储系统或者SAN通信。所述网络接口50可支持很多通信端口,例如,至少两个用于与内部子网通信的千兆位以太网络(GigE)端口(例如GigE端口l和GigE端口2)、管理端口12以及一个或更多个用于与其它TSD刀片进行内部通信的端口(未示出)。0052图6示出根据本公开的实施例的TSD刀片中的示例性软件组件。用于所述TSD刀片的主要软件组件可包括功能模块,诸如可移植的TSD应用程序接口(API)602、TSD索引API604、中介和代理606以及刀片配置管理器608。0053所述可移植的TSD应用程序接口602支持如60/726,193号美国临时申请中公开的所有的外部接口,所述美国临时申请于2005年10月14日申请,其全部内容合并在此作为参考。否则,当前TSD实现中的大部分仍未受影响,除了优选通过所述TSD索引API604与所述索引层进行所有交互。在可能时利用分开的索引刀片的优势,可进行其它改进。例如,由于索引数据在两处,由TSD启动的作为1/0事件链的一部分的索引操作只需要等待成功地拷贝到所述索引刀片上,代替了数据库提交(磁盘I/0)。0054可设计和实现所述TSD索引应用程序接口604以提供在存储管理系统中组件的清楚分隔。使用TSD索引应用程序接口604,使得TSD可能和索引服务在平台上本地地(共驻内存的)交互,或者通过传送远程进行交互。0055所述中介和代理606可包括作为与运行在索引刀片上的中介的接口的代理。这些代理的一般责任可包括,例如,建立和维护与所需索引刀片的连接、从所述TSD索引应用程序接口604接收输入(将呼叫转换为消息)、并且提供异步(回调)消息传递。根据一个实施例,可实现下述代理中的一个或更多个分配器代理、索引器代理以及重映射代理。所述分配器代理可负责与索引分配器代理的通信以根据要求分配时间存储器空间。所述分配器代理可包括数据块的本地缓存。所述索引器代理可负责转发批量的索引请求到在索引刀片上运行的索引器代理。在典型的操作中,索引批处理在已经被成功地复制到所述索引刀片场的时候认为完成该处理工作。所述重映射代理可负责转发请求到在索引刀片上运行的(多个)重映射引擎中介。0056所述中介和代理606可包括为来自在索引刀片上运行的代理的请求进行服务的中介。一个这样的中介可以是I/0中介。所述I/0中介可侦听来自于正在处理产品复原或时间线压缩的索引刀片的批量1/0请求,并且可转发所述I/0请求到适当的TSD刀片接口。所述1/0中介可负责跟踪每个请求的状态并且当请求结束的时候适当地对所述索引刀片进行响应。0057所述刀片配置管理器608可负责刀片间通信、发现、服务以及配置。TSD刀片、索引刀片以及索引LUN分配的非永久性(即运行时)配置可由所述刀片配置管理器608维护。通过刀片间通信和协作,自配置构造可建立起来并且刀片间的动态负荷平衡可实现。0058图7示出的是图解说明根据本公开的实施例的示例性索引刀片700的框图。这个图只示出了所述索引刀片700的主要组件。所述索引刀片700可包括2个32位CPU(即CPU1和CPU2)、4GB的随机存取存储器(RAM)702、2个光纤连接端口(即光纤通道l和光纤通道2),以及两个以太网端口(即GigE接口l和GigE接口2)。所述索引刀片700可进一步包括用于与索引刀片场中的其它索引刀片通信的内部网络接口(未示出)。0059图8示出根据本公开的实施例的索引刀片中的示例性软件组件。用于索引刀片的主要软件组件包括功能模块,例如刀片配置管理器802、中介和代理804、重映射引擎806、全局数据库808、新产品复原810、时间线压縮812、索引数据库接口814、元数据空间管理器816以及卖主多路径软件818。0060所述全局数据库808可在由刀片配置管理器决定的索引刀片上运行。除了时间线压縮812和新产品复原810所要求的改变,对于所述全局数据库808而言没有多少改变。0061新产品复原810可基于重新设计的产品复原,从而消除它对于区域映射的依赖性并提高它的效率。0062所有的索引表都可以使用伯克利数据库。对于索引数据库接口814,为了隐藏要求的各种查询,可能需要伯克利数据库接口库。此外,可执行一套调试例程来査询所述索引数据。0063元数据空间管理器816可负责为元数据分配和管理存储空间。0064可依赖卖主多路径软件818来提供元数据存储所需的高可用性(HA)级别。0065中介和代理804可包括相互截然不同的子组件,每个子组件提供截然不同的API方法集并负责特定的任务集。这些子组件的主要的和常见的职责可包括,例如从同位体(peer)刀片接收消息和将消息发送给同位体刀片,处理与中断和同位体刀片的通信相关的故障,向主动提供的消息的接口处理器注册回调,以及统计性采集和报告。0066可用共同的方法和数据建立基类。中介和代理都继承这个基类。下面是对一些主要的代理和中介的讨论。0067在代理和中介804中提供插入代理和中介子组件。插入代理可从TSD处接收对于各种片(slice)的批量索引请求,在各个片的缓冲区中缓存这些请求,并将批量的请求发送给同位体插入中介(即在同位体索引刀片中的插入中介)。在接收到来自同位体插入中介的响应时,就可认为该批量是安全的,并调用完成此事件的TSD回调。根据本公开的实施例,为了便于管理和负载平衡的目的,每个LU都可划分为多个固定大小的逻辑分区(例如每个分区16GB),其中每个固定大小的逻辑分区可被称为一个"片"。0068每个片中可有J和S缓冲区。当活动的缓冲区充满时,替代缓冲区可激活而且先前的活动缓冲区可擦除到磁盘的暂存区域(scratcharea)。当达到最大BII行计数时,可指示所述插入中介密封活动的BII表,并且一旦接收到"密封"响应,所述暂存区域可被释放。所述暂存区域能够容纳活动的BII表的全部内容,而且如果发生索引刀片故障就需要它。这就减轻所述索引数据库接口814在活动表格满的时候提交数据行的负担。0069在TSD刀片上的存储器利用可以是所关心的并且肯定对诸如缓冲区大小和片大小这样的因素进行限制。0070插入中介可从同位体插入代理(即在同位体索引刀片中的插入代理)处接收批量的索引请求,并可发出插入到索引数据库接口814中。0071重映射代理和中介子组件可在中介和代理804中提供。重映射中介可接收来自同位体重映射代理(即在同位体索引刀片上的重映射代理)的重映射请求并且将这些请求转发到重映射引擎806。它还可把所述重映射引擎806的结果转发到所述同位体重映射代理。0072I/O代理子组件可在中介和代理804中提供。I/O代理可转发批量的I/O序列到在TSD刀片上运行的I/O中介。时间线回滚和产品复原可都需要I/0操作。0073时间存储器(TS)分配中介子组件可在中介和代理804中提供。所述TS分配中介可在每个索引刀片上运行。它可接收来自在TSD刀片上运行的TS分配代理的分配请求。0074此外,时间线回滚(TLR)中介和产品复原(PR)中介也可在中介和代理804中提供。0075根据本公开的实施例,为促进索引刀片和TSD刀片间的通信和协作,可提供多个对象。示例性对象可包括,例如接口处理器(IfaceHdlr)、刀片消息头(BladeMsgHdr)以及连接处理器(ConnHdlr)。0076所述接口处理器可以是一个定义刀片间通信所需的方法的抽象基类。所述接口处理器可与一个或两个物理网络连接一起工作。在存在两个物理网络连接的情况下,对于每次发送,接口层可随机地选择连接中的一个来传输以在两个物理网络上分配网络通信量。一个物理路径的丢失是可以容许的。两个网络上的连接的丢失可被认为是故障事件,并可通过调用注册的故障处理回调来处理。0077所述接口处理器可支持各种大小的消息,优选地它们具有相同的消息头。接收器线程可首先在处理消息的其余部分之前把到达消息的消息头部分取出。批量的多个消息也可被支持。0078所有的消息发送可以是异步的并可以为响应处理使用回调。所述接口处理器可支持"发送然后遗忘(fireandforget)"的消息发送,也支持需要响应的消息。对于后者,可支持在适当的响应状态下可进行回调的超时。接收到的主动提供的消息(对消息发送不进行响应的那些消息)可通过调用注册的回调来处理。0079所述类可支持面向连接和无连接的接口类型。面向连接的接口处理器可构造为"服务器"或"客户端",这个区别可影响"""ec^方法和其它的行为。0080下面列出的是可被所述接口处理器定义或使用的一组示例性公共(public)方法仅对无连接接口对象有效。可对全部连接的刀片进行消息广仅对无连接接口对象有效,可将私人消息发送到指定地址。攀se"《腊gj仅对面向连接的接口有效。发送指定消息到同位体刀片。仅对面向连接的接口有效。异步调用直到到同位体刀片的连接建立之后才返回。为特定的msgID(消息标识)注册回调。可为同一个msgID注册多个回调,这种情况下每个注册的回调都可被调用。返回IfaceStats。重置IfaceStats。0081起初,可实现使用用户数据报协议(UDP)数据报的无连接接口和使用传输控制协议(TCP)的面向连接的接口。0082刀片消息头可以是包含在所有消息里的公共头。每个中介或代理可为其API集定义特定的消息,但是所有的消息共享这个公共消息头。所述公共消息头可包含下面字段中的一个或更多个參Mog/c7V調6er參Msg2)^e消息的唯一标识每个消息的增量数(对于代理/中介是唯一的)攀i&s/Ge"7V訓Zer这个响应对应的MsgGenNumber。如果消息不是响应,则它可设置为0。消息体的长度(除了头以外)。*SpareFields(备用字段)用于将来使用的一些备用字段。0083明显地没有出现在这个列表中的是版本字段。是否使用版本字段取决于在改变消息版本的方法和不改变MsgType的内容但只是生成新MsgType的方法之间进行的选择。0084连接处理器可以是一个充当一个代理、中介和接口处理器的容器对象的基类。存在继承自所述基类的TSD连接处理器(tsdConnHdr)和索引连接处理器(idxConnHdlr)。0085每个连接处理器可代表在TSD刀片和索引刀片间的连接点。这个连接点需要的所有代理、中介和接口处理器都可包含在连接处理器中。这样,所有的基于LU或片的TSD刀片和索引刀片间的交互可通过适当的连接处理器进行。0086一些LunConfig可维护连接处理器和LUN/片之间的关系。这可能是延展包括片和连接处理头信息的LunConfig的当前实现。0087连接处理器可通过刀片配置管理器来实例化(例示)。0088图9示出图解说明根据本公开的实施例的示例性连接处理器的框图。TSD刀片(未示出)的TSD连接处理器910可与索引刀片(未示出)的索引连接处理器920通信。如图所示,所述TSD连接处理器910充当接口处理器912、插入代理914、重映射代理916以及I/O中介918的容器对象。类似地,所述索引连接处理器920充当接口处理器922、插入中介924、重映射中介926以及I/O代理928的容器对象。所述两个接口处理器(912和922)经内部子网l和内部子网2进行相互通信,在相应的中介和代理之间的消息通过内部子网1和内部子网2得以路由。0089将索引功能从I/0处理分离也需要针对TSD刀片和索引刀片200680042687.9的管理解决方法。根据本公开的实施例,刀片的配置可由刀片配置管理器来管理。0090在静态刀片配置中,在刀片完全运转之前,一组刀片配置数据在软件安装中或通过供应的工具被设定。这些配置数据可包括,例如子网和刀片节点ID的网际协议(IP)配置。静态刀片配置信息可在本地磁盘的文件里持久保存。0091当刀片启动时,它们可广播它们的刀片信息到所有已经在运行的刀片,并且依次可私下地被发送每个运行刀片的刀片信息。这样,所述刀片配置管理器可了解每个其它刀片的重要信息。一个bladelnfo结构中的示例性字段可包括bladeNodeId刀片的唯一标识(ID),也用于子网地址以形成该节点的完全IP地址。索引刀片类型或者TSD刀片类型參applianceID如果刀片是TSD刀片,则这可以是此器件的唯一标识。索引刀片可不使用此字段。參戸W"o"/D索引刀片场可以是可分区的,这样特定的刀片集可以用以服务来自特定的RevivioCDP器件的LUN。刀片当前可服务的LUN片的数目。在刀片上运行的服务的标记,例如全局数据库服务器。存储器中磁盘全局数据库分区信息的拷贝。0092此外,刀片的信息在任何时候变化,所述刀片就可广播已变化的bladelnfo到其它刀片和/或所述索引刀片场。0093刀片可相互协商以决定由哪个刀片来运行特定的服务,诸如全局数据库服务器。0094如果刀片独自启动并且没有其它刀片在运行,那么在决定它应该继续处理和开始服务之前,它等待某个预设定的时间。0095每个索引刀片可包括两个用于元数据LUN存取的光纤连接端口。在索引刀片场中的所有索引刀片可被分区以看到同样的元数据LUN集。元数据LUN发现可在索引刀片初始启动的时候进行,并且一个后台进程可周期性地运行发现以查找被已经加入到己经在运行的索引刀片的LUN。随后判断所发现的LUN集中的哪些LUN用于元数据。一种方法是允许所述索引刀片使用任何以及所有所发现的LUN。这种方法不需要具有用于元数据LUN分配的外部管理接口。一个替代性的方法可以是具有用于索引刀片场的管理接口,它可允许用户为元数据分配LUN。0096当索引刀片场首次启动时,赢得协商运行全局数据库服务的索引刀片可负责选择在其上运行全局数据库并且查询所有其它索引刀片以确保此LUN对索引刀片场的所有成员可见的LUN。接着在元数据LUN上为全局数据库建立分区并且开始服务。所述全局数据库分区信息可存储在本地磁盘文件中并广播到场中其它索引刀片。每个索引刀片可保存所述分区信息,所述信息对于任何索引刀片安装分区和开始全局数据库服务都是充分的。0097在新索引刀片场上开始服务的索引刀片也可在全局数据库中用它己经发现的元数据LUN填充一个表。当其它索引刀片有权使用全局数据库服务时(例如,通过服务所有者的广播),它们也可用被发现的元数据LUN集填充该表。因为可能要求所有的索引刀片可见同一个LUN集,所以目标可以是产生一个对所有的索引刀片都可见的联合LUN集。对场中一些但不是全部的索引刀片可见的任何LUN可被标志为不可用。所述索引刀片一直到已经确定了一个公共的LUN集才进入运行状态。0098当后来的索引刀片引导进入具有一个或更多个处在运行状态的索引刀片的一个场中并且所述后来的索引刀片不可见所述运行的刀片可见的相同元数据LUN集时,它可能不接着引导进入运行状态。0099在TSDLUN配置背景下,索引刀片可不负责LUN而是被唯一地识别为给予索引刀片的LBA排列,作为全局性的唯一LUN标识符。这样识别的存储器单元可以是片。所述唯一标识符可允许不同的存储管理器件向同一个索引刀片场提供LUN。对这个新LUN标识符的使用可在TSD和所述索引刀片应用中传播。因为索引刀片得到这些伪LUN,所以可能不知晓片大小。可移植的TSDAPI可能仍需要片管理功能以分隔跨越片边界的索引操作。0100在TSDLUN配置背景下,可不直接分配LUN到索引刀片。替代地,当LUN被TSD置于捕获模式时,LUN所有者可被动态选择。用于判断LUN所有权的TSD刀片和索引刀片的示例性序列图解说明在下面的表格中表l.LUN所有权判断序列<table>tableseeoriginaldocumentpage22</column></row><table>5开始WO朋Mr;更新丄w"6Hv"e/^—map6一旦已经建立刀片连接,就广播更新后的刀片配置0101所述刀片配置管理器可启动无连接接口处理器(数据报)以及,除了刀片发现和LUN所有权谈判之外,它可负责服务谈判、连接处理器生成以及故障处理协作。0102在TSD刀片和索引刀片之间的API也可用于在两个刀片之间的所有通信中。所述API也可嵌入到各自的代理中。配置API可由刀片配置管理器来处理。下面提供了根据其相关代理排序的示例性API调用的列表。0103所述配置API可包括配置特定的信息并可通过所述刀片配置管理器处理。所述配置API可包括同步调用,负责把LUN通知到所述索引刀片场。它直到谈判好LUN的所有者才返回。索引刀片LUN所有权可以是动态的,取消了对永久性配置的需要。參7gmoveL,同步调用,负责从索引刀片处移除LUN。攀GW77舰同步调用,获取当前系统时间。0104插入代理API可包括參/"(ier8/同步调用,负责处理批量的索引操作。收到返回,调用者就可以可靠地假定索引记录是安全的。參Comm//同步调用,负责强制索引刀片提交所有的未完成的索引BI。0105重映射代理API可包括參7ema//ea(i异步调用,负责基于给定时间重映射LBA排列。攀W價(3p,Ye异步调用,负责重映射时间图像写入。參L^她Ma尸异步调用,负责更新后像映射(AI、BI、DW)。0106TS分配代理API可包括拳J〃ocC7z,A同步调用,负责分配为给定的LUN分配新的时间存储器(TimeStore)块。异步调用,负责密封时间存储器块。爿必/7e歸ve丄Cy7V同步调用,负责添加或删除时间存储器LUN。同步调用,负责添加、删除或修改配额组。參GeZ27me//we/w/b同步调用,负责获取给定的LUN或配额组的时间线信息。0107TLR代理API可包括同步调用,负责添加、删除或修改时间线回滚档案。同步调用,负责为给定的LUN或配额组获取时间线回滚信息。0108批量的I/0请求可以通过I/0代理从索引刀片转发到TSD刀片。0109在这里要注意的是根据如上所述的本公开,用于实现可伸縮和/或可移植的存储管理系统的技术典型地要在一定程度上包括对输入数据的处理以及产生输出数据。这个输入数据处理和输出数据生成可通过硬件或者软件实现。例如,可在存储区域网(SAN)或类似的或相关的电路中使用特定的电子元件以实现根据上述的本公开的与存储管理系统的可伸縮性和/或可移植性相关联的功能。替代地,根据所存储指令运行的一个或更多个处理器可实现与根据上述的本公开的存储管理系统可伸縮性和/或可移植性相关的功能。如果是这样的一个情况,那么它在本公开的范围内,这样的指令可被存储在一个或更多个处理器可读的载体(例如磁盘)中,或者通过一个或更多个信号传输到一个或更多个处理器中。0110本公开并不限于这里阐述的特定实施例的范围。事实上,根据前面的描述和附图,除了本文上面描述的这些,本公开的其它各种实施例和对本公开的改变对本领域的一般技术人员是显而易见的。这样,这种其它实施例和改变都在本公开的范围之内。进一步,尽管本公开在这里是在特定的环境中为特定目的的特定实施的背景中介绍的,但本领域的普通技术人员应明白其有用性不限于此并且本公开可在任意多个环境中为任何数量的目的进行有益地实施。此外,下面阐述的权利要求应考虑到此处阐述的本公开的全文和精神来解释。权利要求1.一种与存储系统操作性地耦连的存储管理系统,所述存储管理系统包括多个处理器模块,其中每一个处理器模块能够拦截指向所述存储系统的写入命令,备份与所述写入命令相关联的数据,并产生含有所备份数据的时间戳的元数据;以及一个或更多个索引模块,其基于所述元数据产生一个或更多个用于所述备份数据的索引表,其中所述一个或更多个索引模块与所述处理器模块和存储系统通信。2.根据权利要求1所述的存储管理系统,其中所述多个处理器模块的数量是基于所述存储管理系统的所需容量可增减的。3.根据权利要求1所述的存储管理系统,其中所述多个处理器模块被配置为容错冗余的。4.根据权利要求1所述的存储管理系统,其中所述多个处理器模块通过光纤连接与所述存储系统耦连。5.根据权利要求1所述的存储管理系统,其中所述多个处理器模块的每一个包括至少一个目标接口和至少一个启动器接口。6.根据权利要求1所述的存储管理系统,其中所述多个处理器模块相互通信。7.根据权利要求1所述的存储管理系统,其中刀片场中的所述一个或更多个索引模块的数量是基于所述刀片场支持的处理器模块的数量可增减的。8.根据权利要求1所述的存储管理系统,其中所述一个或更多个索引模块通过光纤连接存取所述存储系统中的一个或更多个元数据存储装置。9.根据权利要求1所述的存储管理系统,其中所述一个或更多个索引模块通过一个或更多个内部网络与所述多个处理器模块通信。10.根据权利要求1所述的存储管理系统,其中所述一个或更多个索引模块通过多个中介和代理与所述多个处理器模块通信。11.根据权利要求1所述的存储管理系统,其中所述一个或更多个索引模块进一步执行一个或更多个功能,所述功能从刀片结构、重映射引擎、全局数据库、产品复原、时间线压缩、索引数据库接口、元数据空间管理以及卖主多路径中选择。12.—种用于提高与存储系统操作性耦连的存储管理系统的可移植性和可伸縮性的方法,所述方法包括耦连多个处理器模块到所述存储系统,其中每个处理器模块能够拦截指向所述存储系统的写入命令,备份与所述写入命令相关联的数据,并为所备份数据产生含有时间戳的元数据;耦连含有一个或更多个索引模块的刀片场到所述存储系统;以及使所述刀片场通过一个或更多个内部网络与所述多个处理器模块通信,其中所述一个或更多个索引模块基于所述元数据为所述备份数据产生一个或更多个索引表。13.在至少一个载波中包含的至少一个信号,用于传输计算机程序指令,所述指令被设置为被至少一个处理器可读,用于指示所述至少一个处理器来执行计算机处理,以执行根据权利要求12所述的方法。14.至少一个处理器可读的载体,用于存储计算机程序指令,所述指令被设置为被至少一个处理器可读取,用于指示所述至少一个处理器来执行计算机处理,以执行根据权利要求12所述的方法。15.—种用于提高与存储系统操作性耦连的存储管理系统的可移植性和可伸縮性的方法,所述方法包括在多个处理器模块拦截指向所述存储系统的写入命令;备份与所述写入命令相关联的数据;为所备份数据产生含有时间戳的元数据;以及在一个或更多个索引模块,基于所述元数据为所述备份数据产生一个或更多个索引表,其中所述一个或更多个索引模块和所述处理器模块以及所述存储系统通信。全文摘要本发明公开了一种用于提高存储管理系统的可伸缩性和可移植性的技术。在一个特定示例实施例中,所述技术可实现为与存储系统操作性耦连的存储管理系统。所述存储管理系统可包括多个处理器模块,其中每个处理器模块能够拦截指向所述存储系统的写入命令,备份与所述写入命令相关的数据,并且产生含有所备份数据的时间戳的元数据。所述存储管理系统也可包括一个或更多个索引模块,索引模块基于所述元数据产生备份数据的一个或更多个索引表,其中所述一个或更多个索引模块与所述处理器模块和所述存储系统通信。文档编号G06F12/00GK101535965SQ200680042687公开日2009年9月16日申请日期2006年10月13日优先权日2005年10月14日发明者C·A·罗克,M·D·安东尼,R·P·帕塞里尼,R·W·佩里申请人:塞门铁克操作公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1