处理对象的方法和系统的制作方法

文档序号:6560672阅读:93来源:国知局
专利名称:处理对象的方法和系统的制作方法
技术领域
本发明涉及用于删除存储系统中的冗余对象的方法、系统和制品。
背景技术
可以在存储管理服务器上实现诸如IBM*Tivoli*Storage Manager*(TSM)之类的存储管理应用。存储管理应用可以管理通过网络连接到存储管理服务器的多个客户机节点的存储要求。
存储管理应用可以创建和管理从客户机节点备份、存档、迁移或以其他方式复制到存储管理服务器的数据和程序的库。存储管理服务器可以将数据对象(如文件)存储在一个或多个存储池中,并且可以使用存储在存储管理服务器中的数据库来记录有关已存储的数据对象的信息。
存储管理应用可以执行从客户机节点到存储管理服务器的数据的增量备份、增量存档、迁移或增量复制。例如,如果存储管理应用包括备份应用,则所述备份应用可以执行增量备份操作,在所述增量备份操作中,只有在自先前的周期性完整备份以来已更改了文件时才备份该文件,其中周期性完整备份可以在每周、每月或某些其他周期性的基础上执行。TSM通过使用“渐进增量备份”来扩展增量备份,其中对象被备份一次并且然后永远不会再次被备份,除非在客户机节点上修改了该对象。用于数据的备份、存档或复制等的渐进增量方法可以减少必须从客户机节点复制或移动到存储管理服务器的数据量,并且与数据备份、存档或复制的增量方法相比,可以减小网络流量和存储空间要求。渐进增量备份方法可以使用数据库,该数据库记录了与每个已存储对象和每个对象存储在该处的位置有关的信息。
在某些计算环境中,不同的客户机节点可以将相同的文件存储在存储管理服务器中。例如,客户机节点可以具有相同的操作系统文件或同一项目的不同用户可以将相同的文档本地地存储在不同的客户机节点上。将相同的数据对象存储在不同的客户机节点中可以引起备份、存档或复制等操作的冗余(通过从不同的客户机节点将相同的文件备份并存储在存储管理服务器上),并且即使在使用渐进增量方法或某些其他方法的系统中也可以导致低效率。

发明内容
本发明提供了一种方法、系统和制品,其中生成与从多个客户机节点选择的一组客户机节点对应的数据结构。将来自所述选定的客户机节点组的对象存储在所述数据结构中。判定必须存储与所述选定的客户机节点组中的客户机节点对应的对象。还判定是否已由所述选定的客户机节点组中的任何客户机节点将所述对象存储在所述数据结构中。将所述对象存储在所述数据结构中,以响应判定尚未由所述选定的客户机节点组中的任何客户机节点将所述对象存储在所述数据结构中。
在某些实施例中,所述多个客户机节点和所述服务器节点是计算设备,其中所述选定的客户机节点组共享存储在所述数据结构中的公共对象。
在其他实施例中,为存储在所述数据结构中的与所述选定的客户机节点组对应的对象存储数据库表项,其中所述数据库表项包括对应于所述对象的元数据。将所述对象的插入时间和引用所述对象的客户机节点数包括在所述元数据中。
在其他实施例中,接收来自一个客户机的删除一个对象的请求。取消引用指向存储在所述数据结构中的所述一个对象的指针,其中所述指针与特定于所述一个客户机的清单表项相关联。递减引用所述一个对象的客户机节点的数量。从所述数据结构删除所述一个对象,以响应判定没有客户机节点引用所述一个对象。
在其他实施例中,根据所述对象的插入时间和引用所述对象的客户机节点数来限制存储在所述数据结构中的对象的数量。
在其他实施例中,所述服务器节点和所述客户机节点组可以在客户机服务器环境及对等环境中通信,其中通过在所述服务器节点上生成的所述数据结构中存储所述客户机节点组的公共对象来删除冗余文件。


现在参考附图,其中相同的标号表示附图中相应的部分图1示出了根据某些实施例的计算环境的方块图;图2示出了根据某些实施例的选定客户机节点组的公共对象的方块图;图3示出了根据某些实施例的与示例性客户机节点对应的示例性公共对象的方块图;图4示出了根据某些实施例的用于维护对象的清单表项的示例性数据库;图5是示出根据某些实施例的处理备份、删除以及信息请求的流程图;图6是示出根据某些实施例的处理备份请求的流程图;图7是示出根据某些实施例的处理删除请求的流程图;图8是示出根据某些实施例的如何维护对公共对象数量的限制的流程图;图9是示出根据某些实施例的删除选定客户机节点组的冗余对象的流程图;以及图10示出了计算机系统的体系结构,其中在某些实施例中,可以根据所述计算机系统的体系结构来实现图1的计算环境的服务器和客户机。
具体实施例方式
在以下说明中,参考了形成本说明书的一部分并示出了若干实施例的附图。应当理解,可以采用其他实施例并且可以做出结构和操作更改。例如,虽然以下说明参考数据备份描述了实施例,但是可以理解,备选实施例可以用于数据存档、数据迁移等。
存储管理系统中的冗余对象某些存储管理应用通过识别先前已由其他客户机节点备份的对象并通过不从多个客户机节点备份同一对象的多个实例来减少冗余。虽然此类方法可以减少冗余,但是需要大量处理以判定特定对象是否已由任何其他客户机节点备份。
某些存储管理应用从多个客户机节点选择模型节点,其中所述模型节点管理哪些对象是公共对象或将成为多个其他客户机节点的冗余对象。在客户机节点将对象备份到服务器之前,所述客户机节点进行检查以判定所述模型节点是否已将所述对象备份到服务器。结果,可以减少服务器中的冗余对象。
如果维护模型节点,则如果未在所述模型节点中找到对象,则不会将所述对象视为冗余。例如,设想一个拥有10,000名雇员的企业,该企业具有标为FRED并与由名为FRED的雇员处理的数据对应的第一节点和标为JOE并与由名为JOE的雇员处理的数据对应的第二节点,其中所述企业还具有名为MODEL_A的模型节点。在这种情况下,由节点MODEL_A备份的对象可能成为可由节点FRED和JOE从备份删除的候选对象。但是,节点FRED和JOE可能工作于同一项目并可能在它们之间具有相同的公共对象集合。如果存在单个模型节点MODEL_A,则在备份数据时,如果没有由节点MODEL_A备份公共对象集合,则FRED和JOE不会从备份删除公共对象集合。对于一个拥有10,000名雇员的企业,不会总是希望MODEL_A来备份对FRED和JOE将是公共的对象,因为对节点FRED和JOE公共的对象可能不会在企业的10,000名雇员间被视为相关。
某些实施例不使用专用模型节点(其用来声明那些被视为冗余对象删除的候选者的节点),而是使用可称为“自适应模型节点”的选定的客户机节点组。所述自适应模型节点查看最终用户节点与由这些最终用户节点填充到备份服务器的对象之间的关系并动态地确定所述对象间的冗余。
删除冗余对象图1示出了根据某些实施例的计算环境100的方块图。至少一个计算平台102(其中在某些实施例中计算平台102可以包括服务器)通过网络104连接到多个计算平台106a、106b...106i...106n,其中在某些实施例中,所述多个计算平台106a...106n可以包括客户机节点。虽然图1指出计算平台102为服务器,并且计算平台106a...106n为客户机节点,但是在备选实施例中,计算平台102、106a...106n可以包括任何适合的计算平台,包括那些本领域中公知的计算平台,如个人计算机、工作站、大型机、中型计算机、网络家电、便携式计算机、电话设备、刀片计算机、手提电脑等。服务器102还可称为服务器节点并且客户机节点106a...106n还可称为客户机。可以在并非基于客户机-服务器范例的计算环境中实现备选实施例。例如,可以在对等联网环境中实现备选实施例。
在某些实施例中,一组选定的客户机节点(如客户机节点106a...106i)被指定为选定的客户机节点组108。虽然图1示出了将客户机节点106a...106i指定为选定的客户机节点组108,但是在备选实施例中,选定的客户机节点组108可以包括不同于图1中所指出的那些客户机节点的客户机节点。在某些实施例中,可以存在多个不同的选定的客户机节点组108。
可以通过计算机程序或由用户来指定选定的客户机节点组108。可以根据某一准则来选择选定的客户机节点组108,以使对象更可能在选定的客户机节点组108之间共享,而不是在选定的客户机节点组108与其他客户机节点(如客户机节点106n)之间共享。选定的客户机节点组108是客户机节点106a...106i的派生表示并可以是代表唯一对象(例如由选定的客户机节点组108的所有成员存储的文件名)的命名空间。
服务器102到客户机节点106a...106n的连接可以是直接的,或者可以通过诸如存储区域网络(SAN)、局域网(LAN)、广域网(WAN)、因特网、内联网之类的本领域中公知的任何网络104。
存储管理应用110、数据库112和存储114可以连接到服务器102。虽然图1示出了存储114在服务器内,但是在某些实施例中,存储114可以在服务器102的外部并且可以包括通过网络连接到服务器的存储单元。出于应用的目的,可以将服务器102(也称为服务器节点102)看作包括存储114而无论存储114是在服务器102的内部还是外部。在某些实施例中,服务器102可用于备份处理。在其他实施例中,服务器102可用于数据的存档、迁移或复制。数据库112可以在服务器102的内部和外部。数据库112可以包括一个或多个容器116或任何其他表示所述一个或多个选定的客户机节点组108的数据结构。例如,不同项目可以有不同的客户机节点容器。所述容器116可以实现为列表或任何其他适合的数据结构。
存储114包括表示选定的客户机节点组108的公共对象的已命名公共对象118的数据结构。此外,存储114还包括表示分别与客户机节点106a、106b...106i相对应的客户机节点120a、120b...120i的特定对象的数据结构。
存储管理应用110可以允许将来自选定的客户机节点组108的某些或所有对象备份到存储114并存储为选定的客户机节点组108的公共对象118。同样,存储管理应用110还可以允许将来自客户机节点106a...106i的对象备份到存储114并存储为客户机节点120a...120i的特定对象。例如,可以将来自客户机节点106b并且不在选定的客户机节点组108的公共对象118中的对象的实际数据在存储114中备份为客户机节点120b的特定对象。公共对象118可以包括在选定的客户机节点组108间共享的对象。可以使用各种机制来判定要由客户机节点备份的对象是否已存储为公共对象。例如,在某些实施例中,可以为要备份的对象计算校验和并将其与公共对象的校验和相比较以判定要备份的对象是否已存储在服务器102中。除了比较校验和之外,可以执行其他或备选检查来判定要由客户机备份的对象是否已在服务器102中存储为公共对象。
数据库112包括具有与选定客户机节点组108的公共对象118对应和与对应于选定客户机节点组108的特定对象120a...120i对应的表项的清单。存储管理应用110可以查询数据库112以找到与任何客户机节点106a...106i的一个或多个对象对应的清单信息。
因此,图1示出了某些实施例,其中存储管理应用110允许由服务器102中的容器116来表示选定的客户机节点组108。响应于来自客户机节点(如属于选定的客户机节点组108的客户机节点106b)的将对象备份到存储114的请求,存储管理应用110判定该对象是否已经存储在选定的客户机节点组108的公共对象118中。如果尚未将所述对象存储到选定的客户机节点组108的公共对象118中,则客户机节点将所述对象发送到存储114。如果已将所述对象存储到选定的客户机节点组108的公共对象118中,则为客户机节点(如客户机节点106)执行备份,但是客户机节点不必重新发送先前存储的对象。
图2示出了根据某些实施例的在服务器102中实现的选定客户机节点组的公共对象118的方块图。
选定的客户机节点组的公共对象可以包括多个对象200a、200b...200p,其中在某些实施例中,对象200a...200p是文件。对象200a...200p可以是在选定的客户机节点组108中找到的所有对象的并集。
与对象200a、200b...200p关联的是与引用计数202a、202b...202p,插入时间204a、204b...204p以及其他元数据206a、206b...206p对应的指示符。例如,引用计数202a、插入时间204a以及其他元数据206a与对象200a相关联。
引用计数指示选定客户机节点组108中具有公共相应对象的客户机节点的数量。例如,如果客户机节点106a和客户机节点106b都共享存储在选定客户机节点组108的公共对象118中的对象200a,则对象200a的引用计数202a可以是2。对象的插入时间是对象插入到选定客户机节点组108的公共对象118中的时间。例如,对象200a的插入时间204a可以为“2005年3月11日”。
其他元数据206a...206p可以包括对象的其他描述性信息。此类信息可以指示文件的名称和大小等。
某些实施例可以允许引用存储在选定客户机节点组的公共对象118中的对象200a...200p的指针。通过使用指针,只需将对象200a...200p的实际数据在选定客户机节点组108的公共对象118中存储一次。
与选定客户机节点组108的公共对象118一起示出的元数据可以与对象200a...200p或对象200a...200p的表示一起存储到数据库112中。图2提供了对象与对应元数据的关联的示意图。对象与对应元数据的实际关联可以通过使用其他数据结构来不同地实现。
图3示出了根据某些实施例的在计算环境100中实现的与示例性客户机节点对应的示例性公共对象的方块图。
在图3中,示例性客户机节点X 300包括对象A 300a、对象B 300b和对象C 300c,示例性客户机节点Y 302包括对象A 302a、对象B 302b和对象D 302c,以及示例性客户机节点Z 304包括对象A 304a、对象E 304b和对象F 304c。
基于形成选定的客户机节点组的客户机节点X 300,客户机节点Y 302,以及客户机节点Z 304,可以由存储管理应用110来生成选定客户机节点组306的示例性公共对象。
选定客户机节点组306的示例性公共对象包括对象A、B、C、D、E、F,306a、306b、306c、306d、306e、306f和对应的元数据308a、308b、308c、308d、308e、308f。因此,选定客户机节点组306的示例性公共对象可能是所有存在于客户机节点X 302,客户机节点Y 304,以及客户机节点Z 306中的对象的并集。
图4示出了根据某些实施例的用于维护对象的清单表项的示例性数据库400。所述示例性数据库400可以与图1的计算环境100中实现的数据库112相对应。
示例性数据库400可以包括客户机节点106a...106i的对象的清单表项402a...402i。在图4中,为了说明示出了客户机节点106a的对象的清单表项402a的数据结构。此外,示例性数据库400可以包括公共对象清单表项404的数据结构,其中公共对象清单表项404用于选定客户机节点组108的公共对象118。公共对象清单表项404可以包括与选定客户机节点组108的公共对象118相对应的对象清单表项406a...406q,其中对象清单表项可以包括对应的元数据,例如元数据408a...408q。
客户机节点106a的清单表项402a可以包括多个与客户机节点106a的对象对应的对象清单表项410a...410m。示例性对象清单表项410a可以包括对应对象的元数据412,其中元数据412可以包括为客户机节点106a指示对象是活动还是非活动的活动/非活动指示符。示例性对象清单表项410a还可以包括指示何时为客户机节点106a备份对象的对象备份时间,其中对象备份时间也可称为插入时间204a...204p。特定节点的对象备份时间可以与其他客户机节点的对象备份时间不同,并且可以与对象存储为公共对象的时间不同。此外,示例性对象清单表项410a还可以包括对象管理策略,所述对象管理策略指示借助其为客户机节点106a管理对象的策略,尽管可以为其他客户机节点上的相同对象使用不同的策略。示例性对象清单表项410a还可以包括客户机节点106a的对象的安全属性,其中不同客户机节点中的相同对象的安全属性可以不同。还可以包括先前讨论的某些其他元数据,如引用计数202a...202p,插入时间204a...204p。
除了元数据412之外,对象清单表项410a还可以包括对公共对象清单表项404中的相应对象清单表项的引用414,如果在选定客户机节点组108的公共对象118中备份了对象的话。示例性数据库400通过存储对模型节点的相应对象清单表项的引用414来减少节点的冗余,但是同时通过在元数据412中存储属性来允许不同节点上的同一对象具有不同属性。
为了说明在示例性数据库400中示出了数据结构。在备选实施例中,可以不同地构造示例性数据库400。元数据412、408a..408q(即,特定对象和公共对象的元数据)还可以包括每个对象的其他信息,例如除了存储对象的时间之外的对象的名称和大小。此外,在某些实施例中,可以使用表来记录引用公共对象的实际客户机节点。
图5是示出根据某些实施例的处理备份、删除以及信息请求的流程图。可以在计算环境100的服务器102中实现图5的流程图中描述的操作。
控制开始于方块500,在此一个或多个选定客户机节点组108被指定给一个或多个代表服务器102中的选定客户机节点组的容器116。在某些实施例中,可以由服务器102的命令接口来执行选定客户机节点组108的定义。在其他实施例中,可以使用业务策略或为企业定义的其他属性来动态地创建由一个或多个容器116表示的选定客户机节点组108。例如,服务器102可以为相同类型的计算机(例如那些具有相同体系结构和操作系统的计算机)、属于同一部门的最终用户客户机所有者或指派给同一项目的最终用户客户机所有者导出一个或多个容器116。服务器102可以允许在定义要指定给一个或多个容器116的客户机节点的同时考虑特定于用户环境的特性。
在执行方块500之后,控制进行到方块502,在此服务器102接收来自客户机节点的请求,其中所述请求与对象(例如文件)有关。方块500执行之后无需立即执行方块502。图5中的虚线指示了执行方块500和502之间经过的时间。
服务器102中的存储管理应用110可以判定(在方块504)所述请求为备份请求并处理(在方块506)该备份请求。服务器102中的存储管理应用110还可以判定(在方块508)所述请求为删除对象请求并处理(在方块510)该删除请求。此外,存储管理应用110可以判定(在方块512)所述请求为搜索与存储在服务器102中的对象有关的信息,并处理(在方块514)所述关于对象信息的请求。图6和7中分别描述了方块506和510的更多详细信息。
图6是示出根据某些实施例的处理备份请求的流程图。可以在计算环境100的服务器102中实现图6的流程图中描述的操作。在某些实施例中,图6所示的操作可以实现图5的方块506中所描述的操作。
控制开始于方块600,在方块600,存储应用管理110启动来自选定客户机节点组108的客户机节点的备份请求504的处理。在执行方块600时,在系统中已做出了需要备份哪些对象的决策。这可以通过将客户机节点中的对象与服务器中的元数据相比较以判定需要备份哪些对象来完成或通过某些其他机制来完成。
存储管理应用110从数据库112判定(在方块604)是否已在选定客户机节点组108的公共对象118中备份了所述对象。如果否,则所述对象是将要备份的新对象,并且存储管理应用110备份(在方块606)对象以添加到选定客户机节点组108的公共对象118。
存储管理应用110(在方块608)将选定客户机节点组108的公共对象118中的对象的引用计数(例如引用计数202a...202p中的一个引用计数)初始化为1,并且将备份对象的时间存储在标记为插入时间204a...204p的表项中的一个表项中。在数据库112的公共对象清单表项中创建(在方块610)元数据。存储管理应用110创建(在方块612)对象的特定清单表项120a...120p中的对象的清单表项,并且创建对已在选定客户机节点组的公共对象118中备份的对象清单表项的引用。可以在数据库112中维护所述清单表项。控制进行到方块614来处理要备份的下一个对象并且控制返回到方块604。如果在方块614中没有要备份的对象,则退出所述过程。
如果在方块604,存储管理应用110从数据库112判定已在选定客户机节点组108的公共对象118中备份了对象,则存储管理应用110(在方块616)将对象的引用计数(例如引用计数202a...202p中的一个引用计数)递增1,其中所述对象在选定客户机节点组108的公共对象118中。存储管理应用110创建(在方块618)对象的特定清单表项402a...402i中的对象的清单表项,并且创建对已在选定客户机节点组108的公共对象118中备份的对象402a...402q的清单表项的引用414。控制继续以(在方块614)处理下一个对象,如果必须备份任何此类对象的话。
因此,图6示出了在服务器102中备份对象的某些实施例。如果对象是新的对象,则可以在选定客户机节点组108的公共对象118中备份所述对象。如果所述对象已存储在选定客户机节点组108的公共对象118中,则不会再次将所述对象发送到服务器102,但是将更新清单表项、引用计数以及其他元数据以引用已存储在服务器中的对象。将维护指示使用已备份的公共对象的客户机节点数的引用计数202a...202p。
图7是示出根据某些实施例的处理删除请求的流程图。可以在计算环境100的服务器102中实现图7的流程图中描述的操作。在某些实施例中,图7所示的操作可以实现图5的方块510中所描述的操作。
控制开始于方块700,在方块700,存储管理应用110启动处理来自客户机节点的删除请求508。存储管理应用110判定(在方块702)要删除的对象是否具有对公共对象清单表项404的引用。如果否,则所述对象没有存储为公共对象,并且存储管理应用110从客户机节点120a...120i的特定对象删除(在方块704)所述对象,并且处理(在方块706)下一个请求。
如果存储管理应用110判定(在方块702)要删除的对象具有对公共对象清单表项404的引用,则存储管理应用110例如通过更新对相应公共对象清单表项414的示例性引用来取消引用(在方块708)对公共对象清单表项404的引用。
存储管理应用110(在方块710)将公共对象中的对象的引用计数202a...202p递减1。存储管理应用110判定(在方块712)对象的引用计数是否为0。如果是,则任何选定客户机节点组108都不再使用该对象并且存储管理应用110(在方块714)从公共对象组中删除所述对象。在备选实施例中,可以使用其他策略来删除公共对象。控制进行到方块706,在此存储管理应用110处理下一个请求。
如果存储管理应用110判定(在方块712)所述对象的引用计数不为0,则所述对象由至少一个选定客户机节点组108使用并且不删除所述对象。控制进行到方块706,在方块706,存储管理应用110处理下一个请求。
因此,图7示出了某些实施例,其中当任何客户机节点都不再使用公共对象时,将删除存储在选定客户机节点组的公共对象118中的公共对象。在某些实施例中,在引用计数为0之后,未引用的文件可以在选定客户机节点组108的公共对象118中保留一段时间。
图8是示出根据某些实施例的如何维护对公共对象118的数量的限制的流程图。图8的流程图中描述的操作可以在计算环境100的服务器102中实现。
控制开始于方块800,在方块800,通过逐个地处理选定客户机节点组的公共对象118,存储管理应用110启动用于维护对公共对象118的数量的限制的过程。如果没有限制公共对象的数量,则随着新的对象的添加,存储选定客户机节点组的公共对象118的空间要求可能继续增加。
存储管理应用110判定(在方块802)正在处理的对象是否具有为1的引用计数202a...202p。如果是,则只有一个客户机节点正在使用所述公共对象,并且存储管理应用110判定(在方块804)所述对象是否是在某些指定时间段之前插入的。如果是,则存储管理应用110从选定客户机节点组108的公共对象118删除(在方块806)所述对象。但是,并不从存储删除所述对象,因为还有一个引用所述删除的公共对象的特定对象。将所述对象显示为公共对象的数据库表项被删除,并且所述对象的特定对象清单现在将直接引用所述对象而不是将所述对象显示为公共对象。存储管理应用110判定(在方块808)是否已处理选定客户机节点组108的公共对象118中的所有对象,如果是,则停止(在方块810)此处理,如果否,则存储管理应用110通过将控制返回到方块802来处理(在方块812)下一个对象。
如果在方块802,存储管理应用110判定正在处理的对象并不具有为1的引用计数,则控制进行到方块808。此外,在方块804,如果存储管理应用110判定所述对象没有在某些指定时间段前插入,则控制进行到方块808。
因此,图8示出了某些实施例,其中当公共对象由单个客户机节点使用并且公共对象在某些指定时间段前插入时,将删除所述公共对象。在备选实施例中,可以使用其他准则来限制选定客户机节点组108的公共对象118的大小。
图9是示出根据某些实施例的删除选定客户机节点组的冗余对象的流程图。图9的流程图中描述的操作可以在计算环境100的服务器102中实现。
控制开始于方块900,其中在某些实施例中,服务器节点102生成与从多个客户机节点106a...106n中选择的一组客户机节点106a...106i对应的数据结构。所述数据结构可以包括文件、列表、数组、记录、树、表,或任何其他适合的本领域中公知的数据结构。所述数据结构能够存储数据并允许对所述数据执行操作。例如,在某些示例性实施例中,所生成的数据结构可以包括选定客户机节点组108的公共对象118、容器116、数据库112等。
服务器节点102将来自选定客户机节点组108的对象存储(在方块902)在所述数据结构中。服务器节点102判定(在方块904)必须存储与选定客户机节点组108的一个客户机节点对应的对象。在备选实施例中,方块904的操作可以由一个客户机节点执行。
服务器节点102判定(在方块906)所述对象是否已由选定客户机节点组108的任何客户机节点存储在数据结构中。服务器节点102(在方块908)将所述对象存储在数据结构中,以响应判定尚未由选定客户机节点组108的任何客户机节点将所述对象存储在数据结构中。在某些实施例中,示为由服务器节点102执行的操作可以由客户机节点来执行。
在某些实施例中,选定客户机节点组108的对象可以在服务器102中存储为公共对象118。选定客户机节点组108可以将对象发送到服务器节点102,如果所述对象尚未存储为公共对象118的话。如果所述对象已经存储为公共对象118,则由客户机节点执行的备份操作可以引用所述已经存储的公共对象118。
某些实施例可以将容器116用作自适应模型节点。所述自适应模型节点不代表单个特定的客户机节点或基础客户机计算机。所述自适应模型节点可以是代表由选定客户机节点组108的所有成员存储的所有唯一对象的命名空间,其中选定客户机节点组可以是模型节点组。数据库112维护信息以记录哪些对象由所述模型节点组的给定成员所引用或拥有。
在某些备选实施例中,客户机节点可以是驱动器、安装点或目录级别并且无需是计算平台。另外,某些实施例可以实现选定客户机节点组的分层结构,因为考虑用于删除冗余文件的命名空间然后可能变为由所述分层结构中的每个选定客户机节点组所代表的命名空间的并集。在某些实施例中,所述选定客户机节点组是虚拟客户机节点并可用于动态地管理和更新对象。
其他实施例的详细信息所述技术可以实现为包括软件、固件、微码、硬件和/或它们的任意组合的方法、装置或制品。在此使用的术语“制品”指在介质中实现的代码或逻辑,其中此类介质可以包括硬件逻辑[例如,集成电路芯片、可编程门阵列(PGA)、专用集成电路(ASIC)等]或计算机可读介质,如磁存储介质(例如,硬盘驱动器、软盘、磁带等)、光存储(CD-ROM、光盘等)、易失性和非易失性存储器设备[例如,电可擦除可编程只读存储器(EEPROM)、只读存储器(ROM)、可编程只读存储器(PROM)、随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、闪存、固件、可编程逻辑等]。由处理器来存取和执行所述计算机可读介质中的代码。其中编码所述代码或逻辑的介质还可以包括通过空间传播的传输信号或诸如光纤、铜线之类的传输介质。其中编码所述代码或逻辑的传输信号还可以包括无线信号、卫星传输、无线电波、红外线信号、蓝牙等。其中编码所述代码或逻辑的传输信号能够通过发射站发射并且通过接收站接收,其中在传输信号中编码的代码或逻辑可以被解码并存储在硬件或接收和发射站或设备处的计算机可读介质中。此外,“制品”可以包括其中包含、处理和执行代码的硬件和软件组件的组合。当然,本领域的技术人员将认识到,可以做出许多修改而不偏离实施例的范围,并且所述制品可以包括任何信息承载介质。例如,所述制品包括其中存储有指令(当由机器执行时,所述指令将导致操作被执行)的存储介质。
某些实施例可以采取完全硬件实施例、完全软件实施例或包含硬件和软件元素两者的实施例的形式。在一个优选实施例中,本发明以软件实现,所述软件包括但不限于固件、驻留软件、微代码等。
此外,某些实施例可以采取可从计算机可用或计算机可读介质访问的计算机程序产品的形式,所述计算机可用或计算机可读介质提供了可以被计算机或任何指令执行系统使用或与计算机或任何指令执行系统结合的程序代码。出于此描述的目的,计算机可用或计算机可读介质可以是任何能够包含、存储、传送、传播或传输由指令执行系统、装置或设备使用或与所述指令执行系统、装置或设备结合的程序的装置。所述介质可以是电、磁、光、电磁、红外线或半导体系统(或装置或设备)或传播介质。计算机可读介质的实例包括半导体或固态存储器、磁带、可移动计算机盘、随机存取存储器(RAM)、只读存储器(ROM)、硬磁盘和光盘。光盘的当前实例包括压缩盘-只读存储器(CD-ROM)、压缩盘-读/写(CR-R/W)和DVD。
术语“特定实施例”、“一个实施例”、“实施例”、“多个实施例”、“所述实施例”、“所述多个实施例”、“一个或多个实施例”、“某些实施例”和“某一实施例”指一个或多个(但不是所有)实施例,除非另外明确指出。术语“包含”、“包括”、“具有”及其变型指“包括但不限于”,除非另外明确指出。列举的项目的列表并非暗示任何或所有的项目互相排斥,除非另外明确指出。术语“a”、“an”和“the”指“一个或多个”,除非另外明确指出。
相互通信的设备不必持续地相互通信,除非另外明确指出。此外,相互通信的设备可以通过一个或多个媒介直接或间接地通信。此外,具有若干相互通信的组件的实施例的描述并非暗示所有此类组件都是必需的。相反,描述了多种可选的组件以说明更多可能的实施例。
此外,尽管可以按照连续的顺序来描述处理步骤、方法步骤、算法或类似步骤,但是此类处理、方法和算法可以被配置为以替代顺序工作。换句话说,所描述的步骤的任何序列或顺序并不一定指示要求按此顺序执行步骤。实际可以按任何顺序执行在此描述的处理的步骤。此外,可以同时、并行或并发地执行某些步骤。
当在此描述单个设备或物品时,将显而易见的是,可以使用多个设备/物品(无论它们是否协作)来代替单个设备/物品。同样,当在此描述了多个设备或物品(无论它们是否协作)的情况下,将显而易见的是,可以使用单个设备或物品来代替多个设备或物品。设备的功能和/或特性可以替代地由一个或多个其他未明确描述为具有此类功能/特性的设备来体现。因此,其他实施例不必包括设备本身。
图10示出了计算机系统1000的体系结构,其中在某些实施例中,可以根据所述计算机系统的体系结构来实现图1的计算环境的服务器102和客户机106a...106n。在某些实施例中,图1中示出的计算平台(如服务器102和客户机106a...106n)可以根据系统1000来实现。系统1000可以包括电路1002,在某些实施例中还可以包括处理器1004。系统1000还可以包括存储器1006(例如,易失性存储器设备),以及存储1008。系统1000的某些元素可以或者不能在服务器102和客户机节点106a...106n中找到。存储1008可以包括非易失性存储设备(例如,EEPROM、ROM、PROM、RAM、DRAM、SRAM、闪存、固件、可编程逻辑等)、磁盘驱动器、光盘驱动器、磁带驱动器等。存储1008可以包括内部存储设备、附加存储设备和/或可通过网络访问的存储设备。系统1000可以包括程序逻辑1010,程序逻辑1010包括可以加载到存储器1006中并由处理器1004或电路1002执行的代码1012。在某些实施例中,包括代码1012的程序逻辑1010可以存储在存储1008中。在某些其他实施例中,可以在电路1002中实现程序逻辑1010。因此,虽然图10示出了程序逻辑1010与其他元素分离,但是程序逻辑1010可以在存储器1006和/或电路1002中实现。
某些实施例可以涉及用于由个人或集成计算机可读代码的自动处理将计算指令部署到计算系统中的方法,其中所述代码结合所述计算系统被使能执行所描述的实施例的操作。
至少可以并行以及顺序执行图5-9中示出的某些操作。在备选实施例中,可以以不同的顺序执行、修改或删除某些操作。
此外,出于说明的目的在单独的模块中描述了许多软件和硬件组件。此类组件可以集成到更少数量的组件中或者分成更多数量的组件。另外,所描述的由特定组件执行的某些操作可以由其他组件来执行。
图1-10中示出或指出的数据结构和组件被描述为具有特定类型的信息。在备选实施例中,可以不同地构造所述数据结构和组件,并且与图中示出或指出的数据结构和组件相比,可以具有更少的、更多的或不同的字段或不同的功能。因此,出于说明和描述目的提供了以上实施例的描述。其并非旨在是穷举的或将所述实施例限于已披露的精确形式。根据上述教导,可以做出许多修改和变型。
*IBM、Tivoli以及Tivoli Storage Manager是IBM公司的商标或注册商标。
权利要求
1.一种方法,所述方法包括生成与从多个客户机节点选择的一组客户机节点对应的数据结构;将来自所述选定的客户机节点组的对象存储在所述数据结构中;判定必须存储与所述选定的客户机节点组中的客户机节点对应的对象;判定是否已由所述选定的客户机节点组中的任何客户机节点将所述对象存储在所述数据结构中;以及将所述对象存储在所述数据结构中,以响应判定尚未由所述选定的客户机节点组中的任何客户机节点将所述对象存储在所述数据结构中。
2.根据权利要求1的方法,其中所述选定的客户机节点组共享存储在服务器节点上的所述数据结构中的公共对象。
3.根据权利要求1的方法,还包括为存储在所述数据结构中的与所述选定的客户机节点组对应的对象存储数据库表项,其中所述数据库表项包括对应于所述对象的元数据;以及将所述对象的插入时间和引用所述对象的客户机节点数包括在所述元数据中。
4.根据权利要求3的方法,还包括接收来自一个客户机的删除一个对象的请求;取消引用指向存储在所述数据结构中的所述一个对象的指针,其中所述指针与特定于所述一个客户机的清单表项相关联;递减引用所述一个对象的客户机节点的数量;以及从所述数据结构删除所述一个对象,以响应判定没有客户机节点引用所述一个对象。
5.根据权利要求1的方法,还包括根据所述对象的插入时间和引用所述对象的客户机节点数来限制存储在所述数据结构中的对象的数量。
6.根据权利要求1的方法,其中服务器节点和所述客户机节点组可以在客户机服务器环境及对等环境中通信,并且其中通过在所述服务器节点上生成的所述数据结构中存储所述客户机节点组的公共对象来删除冗余文件。
7.一种系统,其中服务器节点连接到多个客户机节点,所述系统包括存储器;以及连接到所述存储器的处理器,其中所述处理器可执行以下操作(i)生成与从所述多个客户机节点选择的一组客户机节点对应的数据结构;(ii)将来自所述选定的客户机节点组的对象存储在所述数据结构中;(iii)判定必须存储与所述选定的客户机节点组中的客户机节点对应的对象;(iv)判定是否已由所述选定的客户机节点组中的任何客户机节点将所述对象存储在所述数据结构中;以及(v)将所述对象存储在所述数据结构中,以响应判定尚未由所述选定的客户机节点组中的任何客户机节点将所述对象存储在所述数据结构中。
8.根据权利要求7的系统,其中所述选定的客户机节点组共享存储在所述数据结构中的公共对象。
9.根据权利要求7的系统,其中所述处理器还可执行以下操作为存储在所述数据结构中的与所述选定的客户机节点组对应的对象存储数据库表项,其中所述数据库表项包括对应于所述对象的元数据;以及将所述对象的插入时间和引用所述对象的客户机节点数包括在所述元数据中。
10.根据权利要求9的系统,其中所述处理器还可执行以下操作接收来自一个客户机的删除一个对象的请求;取消引用指向存储在所述数据结构中的所述一个对象的指针,其中所述指针与特定于所述一个客户机的清单表项相关联;递减引用所述一个对象的客户机节点的数量;以及从所述数据结构删除所述一个对象,以响应判定没有客户机节点引用所述一个对象。
11.根据权利要求7的系统,其中所述处理器还可执行以下操作根据所述对象的插入时间和引用所述对象的客户机节点数来限制存储在所述数据结构中的对象的数量。
12.根据权利要求7的系统,其中所述服务器节点和所述客户机节点组可以在客户机服务器环境及对等环境中通信,并且其中通过在所述服务器节点上生成的所述数据结构中存储所述客户机节点组的公共对象来删除冗余文件。
13.一件用于控制连接到多个客户机节点的服务器节点的制品,其中所述制品能够导致执行操作,所述操作包括根据上述方法权利要求中的任一方法的步骤。
14.一种用于部署计算基础设施的方法,所述方法包括将计算机可读代码集成到计算系统中,其中所述代码与所述计算系统结合能够执行下列操作生成与从多个客户机节点选择的一组客户机节点对应的数据结构;将来自所述选定的客户机节点组的对象存储在所述数据结构中;判定必须存储与所述选定的客户机节点组中的客户机节点对应的对象;判定是否已由所述选定的客户机节点组中的任何客户机节点将所述对象存储在所述数据结构中;以及将所述对象存储在所述数据结构中,以响应判定尚未由所述选定的客户机节点组中的任何客户机节点将所述对象存储在所述数据结构中。
15.根据权利要求14的方法,其中所述代码与所述计算系统结合还能够执行以下操作为存储在所述数据结构中的与所述选定的客户机节点组对应的对象存储数据库表项,其中所述数据库表项包括对应于所述对象的元数据;以及将所述对象的插入时间和引用所述对象的客户机节点数包括在所述元数据中。
16.根据权利要求15的方法,其中所述代码与所述计算系统结合还能够执行以下操作接收来自一个客户机的删除一个对象的请求;取消引用指向存储在所述数据结构中的所述一个对象的指针,其中所述指针与特定于所述一个客户机的清单表项相关联;递减引用所述一个对象的客户机节点的数量;以及从所述数据结构删除所述一个对象,以响应判定没有客户机节点引用所述一个对象。
17.一种系统,所述系统包括服务器节点;多个连接到所述服务器节点的客户机节点;用于生成与从所述多个客户机节点选择的一组客户机节点对应的数据结构的装置;用于将来自所述选定的客户机节点组的对象存储在所述数据结构中的装置;用于判定必须存储与所述选定的客户机节点组中的客户机节点对应的对象的装置;用于判定是否已由所述选定的客户机节点组中的任何客户机节点将所述对象存储在所述数据结构中的装置;以及用于将所述对象存储在所述数据结构中,以响应判定尚未由所述选定的客户机节点组中的任何客户机节点将所述对象存储在所述数据结构中的装置。
18.根据权利要求17的系统,还包括用于为存储在所述数据结构中的与所述选定的客户机节点组对应的对象存储数据库表项的装置,其中所述数据库表项包括对应于所述对象的元数据;以及用于将所述对象的插入时间和引用所述对象的客户机节点数包括在所述元数据中的装置。
19.根据权利要求18的系统,还包括用于接收来自一个客户机的删除一个对象的请求的装置;用于取消引用指向存储在所述数据结构中的所述一个对象的指针的装置,其中所述指针与特定于所述一个客户机的清单表项相关联;用于递减引用所述一个对象的客户机节点的数量的装置;以及用于从所述数据结构删除所述一个对象,以响应判定没有客户机节点引用所述一个对象的装置。
全文摘要
本发明提供了一种方法、系统和制品,其中生成与从多个客户机节点选择的一组客户机节点对应的数据结构。将来自所述选定的客户机节点组的对象存储在所述数据结构中。判定必须存储与所述选定的客户机节点组中的客户机节点对应的对象。还判定是否已由所述选定的客户机节点组中的任何客户机节点将所述对象存储在所述数据结构中。将所述对象存储在所述数据结构中,以响应判定尚未由所述选定的客户机节点组中的任何客户机节点将所述对象存储在所述数据结构中。
文档编号G06F17/30GK1917522SQ200610110629
公开日2007年2月21日 申请日期2006年8月4日 优先权日2005年8月17日
发明者C·S·道森, R·C·小爱德华兹, D·M·坎农 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1