一种在数据存储器中用于时间线压缩的技术的制作方法

文档序号:6541210阅读:109来源:国知局
一种在数据存储器中用于时间线压缩的技术的制作方法【专利摘要】公开了一种在数据存储器中用于时间线压缩的技术。在一个特定实施例中,所述技术可实现为在存储系统中用于时间线压缩的方法,其中所述存储系统的数字内容被备份以使得所述数字内容能够恢复到时间线的一个或更多个点上。所述方法可包括在所述时间线上选择时间间隔。所述方法也可包括识别为所选择的时间间隔记录的一组或更多组备份数据,其中所识别的一组或更多组备份数据代表在所选择的时间间隔内被改写的旧数据的至少一部分。所述方法可进一步包括丢弃为所选择的时间间隔记录的其它备份数据,从而降低所选择的时间间隔内的时间线的粒度水平。【专利说明】—种在数据存储器中用于时间线压缩的技术[0001]本申请是2006年10月13日提交的名称为“一种在数据存储器中用于时间线压缩的技术”的中国专利申请200680043342.5的分案申请。[0002]相关申请的交叉引用[0003]本专利申请要求2005年10月14日提交的编号为60/726,187的美国临时专利申请的优先权,所述临时申请的全部作为参考合并于此。[0004]本专利申请与2004年8月24日提交的编号为10/924,652的美国专利申请相关,后者是2003年9月23日提交的编号为10/668,883的美国专利申请的部分延续,它们的全部都作为参考合并于此。【
技术领域
】[0005]本公开一般地涉及数据存储,特别地涉及在数据存储器中用于时间线压缩的技术。【
背景技术
】[0006]在相关的编号为10/924,652的美国专利申请和编号为10/668,833的美国专利申请中,公开了一种依赖时间的数据存储和恢复技术。这一技术的实施例提供了连续数据保护(CDP)的方案,其中指向存储系统的写命令被具有当前存储器和时间存储器的存储管理系统拦截。当前存储器可保持或者存取存储系统的数字内容的当前(或镜像)复制。时间存储器可记录与每次被拦截的写命令相关联的信息,例如在该写命令的有效负荷中的新数据或在当前存储器中响应于写命令而要被覆盖的旧数据。响应于写命令对新数据或者旧数据进行的记录可称为写时复制(COW)操作,而所记录的新数据或旧数据可被称为COW数据。时间存储器也可记录与被拦截的写命令和/或相应COW操作相关的其它信息(例如元数据),相应COW操作包括例如时间戳,旧数据被改写的当前存储器中的原始位置,以及COW数据被复制到的时间存储器中的目的位置。每个COW操作一般备份一个或更多个COW数据块,从而产生一组COW数据和相应元数据。经过一段时间,多组COW数据和相应元数据(包括时间戳)可被累积作为在当前存储器或存储系统中写入和改写的内容的历史记录的集合。时间存储器的内容可基于元数据被索引以便于对COW数据的有效存取。[0007]在当前存储器中包含存储系统的数字内容的当前复制以及在时间存储器中包含历史记录的情况下,存储管理系统为存储系统增加了一个新的维度,即时间。假定所述存储管理系统自一个过去时刻开始已经和所述存储系统操作性耦合,则所述存储管理系统可快速而准确地把存储系统中的任何可寻址的内容恢复到从所述过去时刻到当前时刻中的任何时间点。[0008]理想地,希望保持这样的数据恢复能力尽量长的时间线。但是要想提供延长的时间线,需要巨大的存储空间来存储该时间线中对应每个写命令的COW数据和相应元数据。如果所述存储系统寻求较高的写入率(即每个单元时间内写操作的次数),则需要更多的存储空间。一种临时方案可以是简单地增加时间存储器的存储空间。但是,除了更高的开销,简单的存储量增加可能不会与系统的其余部分协调良好并易于导致过多的其它问题,诸如对额外数据量的解析困难导致的性能降低。由于没有无限的存储能力,大多数存储系统不得不满足于只能保持有限长度的时间线(例如十天或两周)的现实。在传统数据保护系统,典型地保持一些天的有价值的备份数据而完全丢弃超过一些天数的备份数据。在这些系统中,数据恢复能力限于备份数据可用的过去的一些天。作为替代,超过一些天的备份数据可周期性地移出站点。这样强力的方案开销大而且有破坏性,更不用说当需要离站(off-site)数据时对数据恢复请求的迟缓响应了。[0009]纵观前述,可能需要提供一种能够克服上述不足和缺点的数据存储管理方案。【
发明内容】[0010]公开了一种在数据存储器中用于时间线压缩的技术。在一个特定的示例性实施例中,所述技术可实现为一种在存储系统中用于时间线压缩的方法,其中所述存储系统的数字内容被备份以使得所述数字内容能够恢复到时间线的一个或更多个点上。本方法可包括在所述时间线上选择时间间隔。所述方法也可包括识别为所选时间间隔记录的一组或更多组备份数据,其中所识别的一组或更多组备份数据代表在所选时间间隔中被改写的旧数据的至少一部分。所述方法可进一步包括丢弃为所选时间间隔记录的其它备份数据,从而降低所选时间间隔中的时间线的粒度水平。[0011]根据该特定示例性实施例的其它方面,所述存储系统的数字内容可通过写时复制操作备份为多组写时复制数据和相应元数据,而且所述识别步骤可进一步包括识别为所选时间间隔记录的一组或更多组写时复制数据和相应元数据。[0012]根据该特定示例性实施例的更多方面,时间间隔的长度可至少部分地基于时间线的所需粒度水平进行选择。[0013]根据该特定示例性实施例的附加方面,所述识别步骤可进一步包括:确定存储系统中的存储单元是否在所选时间间隔内被改写超过一次;如果所述存储单元在所选时间间隔内已被改写一次而导致唯一一组写时复制数据和相应元数据被记录,则选择所述唯一一组;而如果所述存储单元在所选时间间隔内已被改写超过一次而导致多组写时复制数据和相应元数据被记录,则选定多个组中的一个。[0014]根据该特定示例性实施例的另一方面,如果存储单元在所选时间间隔内被改写超过一次,所选的写时复制数据和相应元数据的组可能是为所选时间间隔记录的最早的组。[0015]根据该特定示例性实施例的又一方面,本方法可进一步包括合并在所识别的一组或更多组写时复制数据和相应元数据中的元数据。[0016]根据该特定示例性实施例的再一方面,本方法可进一步包括:识别对应于被合并元数据的写时复制数据;以及将之前为所选时间间隔记录的写时复制数据和相应元数据的所有组替换为包含所识别的写时复制数据和被合并的元数据的新组。[0017]根据该特定示例性实施例的另一方面,本方法可进一步包括:基于所述时间线的一部分的所需粒度水平,在所述时间线的所述部分上选择多个时间间隔;以及为所选多个时间间隔重复所述识别和丢弃的步骤。[0018]根据该特定示例性实施例的再一方面,所述存储系统可包括多个存储器件,所述方法可进一步包括:对一个或更多个所述多个存储器件重复所述识别和丢弃步骤以使得所述多个存储器件相互之间具有一致的时间线的粒度水平。[0019]根据该特定示例性实施例的又一方面,所述选择、识别和丢弃步骤在满足一个或更多个下面的条件时可被触发:所述时间线的预定存储容量已被耗尽;所述时间线的粒度水平的预定数据量已被积累;所述存储系统中至少两个存储器件的所述时间线的粒度水平不一致;收到降低所述时间线的所述粒度的指令;以及达到用于降低所述时间线的所述粒度的预设时间。[0020]根据该特定示例性实施例的另一方面,所述方法可进一步包括扫描存储系统以寻找一存储器件,针对该存储器件可以降低时间线的粒度。[0021]在另一个特定示例性实施例中,所述技术可实现为包含在至少一个载波中的至少一个信号,该载波用于传送计算机程序指令,其被配置为至少一个处理器可读以指示所述至少一个处理器执行计算机处理以完成前述的方法。[0022]在又一个特定示例性实施例中,所述技术可实现为至少一个处理器可读的载体,其用于存储一个计算机程序指令,该指令被配置为可由至少一个处理器读取以指示所述至少一个处理器执行计算机处理以完成前述方法。[0023]在另一个特定示例性实施例中,所述技术可实现为在存储系统中用于时间线压缩的系统,其中所述存储系统的数字内容被备份以使得所述数字内容能够恢复到时间线的一个或更多个点上。该系统可包括用于在时间线上选择时间间隔的装置。该系统也可包括用于识别为所述选定时间间隔记录的一组或更多组备份数据的装置,其中所识别的一组或更多组备份数据代表在所选时间间隔内被改写的旧数据的至少一部分。该系统可进一步包括用于丢弃为所选时间间隔记录的其它备份数据从而降低所选时间间隔中的时间线的粒度水平的装置。[0024]在再一个特定示例性实施例中,所述技术可实现为在存储系统中用于时间线压缩的系统,其中所述存储系统的数字内容被备份以使得所述数字内容能够恢复到时间线的一个或更多个点上。所述系统可包括用于存储指令的存储介质。所述系统也可包括至少一个处理器,其用于:在时间线上选择时间间隔;识别为所选时间间隔记录的一组或更多组备份数据,其中所识别的一组或更多组备份数据代表在所选时间间隔内被改写的旧数据的至少一部分;以及丢弃为所选时间间隔记录的其它备份数据,从而降低在所选时间间隔中的时间线的粒度水平。[0025]现在本公开将比照附图所示的示例性实施例更加详细地阐述。虽然在下面比照示例性实施例对本公开进行阐述,应了解本公开并不受限于此。本领域的一般技术人员在获取本教导后会认可额外的实施方式、修改和实施例,以及在其它领域的使用,这都在此处所述的本公开的范围之内,并且认可本公开可具有重要的功用。【专利附图】【附图说明】[0026]为了便于更完全地理解本公开,现在参考附图,在图中相同的元件用相同的数字标识。这些图不应解读为对本公开的限制,而只是示例性的。[0027]图1a示出为基于传统方法的存储系统所维持的时间线。[0028]图1b示出为根据本公开实施例的存储系统所维持的时间线。[0029]图2示出图解说明根据本公开实施例的示例性时间线压缩方法的流程图。[0030]图3示出图解说明根据本公开实施例的用于时间线压缩的示例性方法的状态图。[0031]图4示出根据本公开实施例的三个相关LU的示例性时间线。[0032]图5示出根据本公开实施例的三个相关LU的另一个示例性时间线。[0033]图6示出根据本公开实施例的用于时间线压缩的示例性程序中涉及到的主要对象。【具体实施方式】[0034]在此处,“备份数据”一般指的是以存回或恢复存储系统的数字内容为目的已经记录和/或组织(或者甚至重组)的数据。[0035]〃写时复制数据〃(或者“C0W数据”)指的是在写时复制操作中已被记录的实际数据(例如响应于写命令要被写入的新数据或者要被改写的旧数据)。响应于写命令要被写入的新数据有时被称为“后像数据”或者“后像”;而响应于写命令要被改写的旧数据有时被称为“前像数据”或者“前像”。写时复制操作可以是响应实际写命令的实际操作。或者,写时复制操作可以是在选定时间间隔内发生的包括多个写时复制操作的集体作用的虚拟操作。[0036]“相应元数据”指的是关于写时复制操作中的相关COW数据的信息数据(例如时间戳)。典型地,一个写时复制操作导致产生一组COW数据和相应元数据。尽管它们存在关联性,COW数据和相应元数据可以被存储在分离的存储器件或段中。在时间存储器中,COW数据可被组织为一个或更多个带有时间戳的“数据块”。[0037]“原始数据”指的是响应于实际写命令已被记录的并且从被记录起尚未进行合并或其它修改的一组或多组COW数据和相应元数据。在一些情况下,“cow数据”以及“相应元数据”可能指的是在时间线压缩过程中进行合并、重组或其它修改的COW数据和相应元数据,其中COW数据和相应元数据的所得组可被认为来自于在选定时间间隔中响应一个或更多个写命令的虚拟写时复制操作。换句话说,“cow数据”和“相应元数据”有时候可以是不在原始数据水平的备份数据。[0038]时间线的“粒度水平”指的是时间标度(诸如,每周、每日、每小时、每秒、每毫秒),根据该时间标度存储系统的数字内容可以被恢复到时间线上的一点。时间线的粒度水平通常由用来备份数字内容的具体机制、备份数据所保持的完整性以及备份数据如何组织来决定。[0039]典型的“存储系统”可包括一个或更多个存储器件,这些存储器件可以是物理的、虚拟的或者逻辑的器件或者它们的组合。根据一个实施例,存储系统可包括存储区域网(SAN),SAN包含一个或更多个数据集,其中每个数据集可包含一个或更多个节点,并且其中一个或更多个逻辑单元(LU)可被耦合到每个节点。在下文中,为了便于图解说明,术语“存储系统”可代表整体的存储系统或者它的一部分(例如数据集或节点等)。典型地,可为同一个数据集中的所有LU维持一个时间线。[0040]“时间线存储”指的是在时间存储器中用于备份数据的存储空间。时间线存储一般被组织为配额组,其中每个配额组为与相应数据集相关的时间线分配预定的存储空间。[0041]本公开的实施例提供一种被称为“时间线压缩”的技术,该技术允许为存储系统(或数据集)维持更扩展的时间线而不对时间线存储容量有任何实质增加或者完全丢弃较旧的备份数据。这可以通过随着备份数据变旧而选择性地降低时间线的粒度水平来实现。为存储系统备份的原始数据中的一个或更多个较旧的部分可被合并和/或重组为一个或更多个数据块,这些数据块以与原始数据的正常反映相比更粗略的粒度水平(例如每小时或每天)反映存储系统中的写操作。时间线的粒度水平的这种降低可提供一种灵活的、用户可定义的折衷,其中时间线存储在无须完全牺牲较旧数据的情况下得以节省。因此,可以为存储系统维持长得多的时间线而不对其数据保护或数据恢复能力有明显的影响。这种将备份数据从一个粒度水平合并和/或重组到另一个粒度水平的过程可称为“时间线回卷(rollup)”或“回卷”。[0042]在下面的详细描述中,将参考编号为10/924,652的美国专利申请和编号为10/668,833美国专利申请中公开的依赖时间的数据存储和恢复技术的实施例。可以理解本公开的实施例可轻易地适应其它维持存储系统的数字内容的历史记录的数据保护方法或系统。[0043]参考图la,其示出基于传统方法为存储系统维持的时间线。在此示例中,当前日期可以是第O周的周一。所述时间线可能已经为存储系统连续维持了多周(即,第-1周、第-2周、第-3周、第-4周等)。如果几个周的备份数据都以原始数据的形式存储,则在时间存储器中可能需要大量的存储空间。如果,例如只有存储14天原始数据的足够空间,那么根据传统方法超过14天的旧原始数据必须被完全丢弃。这就是说,在当前日期的开始(例如,第O周的周一),第-3周和之前记录的所有原始数据可能已经被丢弃了。随着当前日期的前进和新的原始数据被累积,第-2周周一记录的原始数据就要被牺牲以便为新记录的原始数据腾出空间。因此,在任何给定时间,只能备份之前两周的存储系统的数字内容,而超过这两周时间则没有历史记录可用。[0044]图1b示出根据本公开为存储系统维持的时间线。这个时间线可以通过将原始数据进行选择性降低时间线的粒度水平的时间线压缩过程而产生。可以认识到,随着时间的流逝,在最精细的粒度水平上最老的备份数据是最不可能被需要的。因此,为了能够将存储系统恢复到过去几天的任意时间点,只保持几天的原始数据就足够了。对于更旧的备份数据,时间线的粒度水平可渐进地降低。如图1b所示,例如在第O周的周一,过去三天(SP,第-1周的周五、周六、周日)的备份数据以原始数据的形式保存。在第二时间段,也就是例如三天前直到第-2周的开始,备份数据可能以每小时数据的形式来保存。这就是说,最初的原始数据会被选择性地合并和/或丢弃(其将在下面更详细地描述),以便仅保存足够的备份数据以能够将存储系统的数字内容恢复到第二时间段内的任何小时。在例如横跨第-3周和第-4周的第三时间段,备份数据可以每天数据的形式保存。在例如第-4周之前,只有每周数据可能被保存可用。作为该示例性时间线压缩方案的结果,有可能维持一个比图1a中图解说明的传统方法长得多的时间线。即使只有足够保存14天的原始数据的存储空间,也可维持一个远长于两周、甚至数月的时间线。因此,存储系统中的数周旧的数字内容仍可被恢复。唯一的折衷是对较旧的内容的这种恢复可能只可用于比原始数据可实现的较粗略的粒度水平。例如,与能够以每秒或每毫秒挑拣和选择数据恢复点不同的是,用户可能只能以每小时、每天或每周的尺度来选择恢复点。[0045]根据本公开的实施例的时间线压缩功能可以在任何类型的存储系统中实施,优选地与具有当前存储器和时间存储器的存储管理系统连接。用户可以配置一组被称为时间线生命周期简档(TLP)的参数以控制时间线压缩过程。根据一个实施例,所述TLP可指定四级备份数据和用户可配置时间量以便在每级备份数据可能被回卷到下一级之前保存该级备份数据。TLP也可指定在回卷发生前所用的最小时间线存储量。[0046]再次参考图lb,这里图解说明的时间线反映一个涉及四级备份数据的示例性TLP。O级TLP可指定在原始数据能够回卷到下一级之前必须满足的条件。所述条件可以用时间长度和/或时间线存储容量的方式定义为在一些原始数据可被回卷到下一级之前要保持的原始数据量。例如,O级TLP可要求至少使用时间线存储容量的40%积累3天的原始数据之后,3天前或者超出40%存储限制的原始数据才可以被回卷到下一级。根据该配置,即使存在超过3天的原始数据,直到原始数据用完时间线存储容量的40%之后,3天前的原始数据才会被回卷。该设置也可要求,即使原始数据已经占据了时间线存储容量的40%,直到累积超出3天的原始数据才会发生回卷。在O级TLP中,时间长度的默认值可以是无限的,这意味着可以忽略其它级且O级原始数据不会被回卷。时间线存储容量的默认限制可以是0%,这意味着在确定是否开始原始数据的回卷时不会考虑使用中的时间线存储量。[0047]I级TLP可指定一个相对于O级被降低的时间线的粒度水平(例如每小时),以及在I级数据(例如每小时数据)能够被回卷到下一级之前必须满足的条件。与O级TLP类似,所述条件可以以时间长度和/或时间线存储容量的方式定义为在I级数据可被回卷到下一级(例如,如图1b所述,11天的每小时数据使用时间线存储容量的20%)之前所保持的I级数据量。在I级TLP中,时间长度的默认值可以是无限的,这意味着可以忽略其它所有级且回卷不会在I级数据之外持续。对时间线存储容量的默认限制可以是0%,这意味着在确定是否开始I级数据的回卷时不会考虑使用中的时间线存储量。[0048]2级TLP可指定进一步降低的时间线的粒度水平(例如每日),以及触发2级数据的回卷的条件。例如,2级TLP可要求在更旧的每日数据可以回卷到下一级之前至少使用时间线存储容量的20%积累14天的每日数据。[0049]3级TLP可指定更进一步降低的时间线的粒度水平(例如每周),以及触发3级数据回卷到下一级(例如每月数据)的条件。例如,3级TLP可要求在更旧的每周数据可以回卷到下一级之前至少使用时间线存储容量的10%积累12周的每周数据。[0050]根据本公开的实施例,用户一般不明确地建立TLP,因为在存储系统中产生配额组的时候默认的TLP可能已经存在。在生成配额组之后,用户可以选择修改TLP的默认参数。类似地,用户一般不明确地删除TLP。当相关配额组被删除的时候,TLP也可以被删除。用户可以修改TLP以改变时间线压缩的期望行为。TLP可以在任何时间被修改而不对时间线造成即时的影响。在生成配额组后,默认的TLP可指定不发生回卷。用户也可以在修改配额组的属性时修改TLP。当LU被添加到数据集中的时候,所述LU可继承相应配额组中的现有TLP。对时间线的影响可以是时间线的开始可能前移。该行为可能与没有定义回卷的时候相同。但是,回卷可以在全部数据集的当前回卷级中持续,并且新的LU的当前回卷状态可被设置以反映数据集中其它LU的当前回卷状态。当从数据集中移除LU时,剩余时间线的开始可能后移。当没有定义回卷的时候也可能表现出同样的行为。[0051]参考图2,其示出图解说明根据本公开的实施例的示例性时间线压缩方法的流程图。[0052]在步骤202,回卷可在存储系统中的存储器件中开始。图2中的方法步骤图解说明了对一部分时间线内记录的备份数据进行的从一级到下一级的最简单回卷操作,其中假设所述时间线只为一个特定的存储器件维持。涉及到多个存储器件的时间线压缩将在下面单独描述。[0053]在步骤204,选择用于回卷操作的时间间隔。时间间隔的选择一般基于TLP中指定的条件。例如,如果是从原始数据到每小时数据的回卷,时间间隔可以是一个小时长度,并且在时间线上需要每小时数据的部分中选择。时间线中该部分可跨越多个小时。这样,方法步骤204到212可在时间线的该部分中每小时重复进行。类似地,如果是从每小时数据回卷到每日数据,时间间隔可以是24小时长而且从需要每日数据的时间线部分中选择。[0054]在步骤206,COW数据和相应元数据可被识别以代表为所选时间间隔记录的备份数据。例如,在所选时间间隔中,存储器件中的存储单元(例如,存储块)可能已被改写一次或更多次。如果在所选时间间隔内存储块已仅被改写一次,则所得到的一组COW数据和相应元数据可被识别以代表该存储块的备份数据。如果在所选时间间隔内存储块已被改写过多次,则最早的写操作所得到的一组COW数据和相应元数据可被识别以代表该存储块的备份数据。作为替代,在所选时间间隔内最迟的写操作所得到的一组COW数据和相应元数据可被识别。可以使用额外的或者替代的标准以识别在所选时间间隔内存储器件的代表性备份数据。[0055]在步骤208中,为所选时间间隔记录的但没有被步骤206所选中的其它备份数据可被丢弃或简单地被忽略。例如,未选中的备份数据的元数据或其它索弓I数据可被删除或擦除,这样未选中的备份数据被有效地从时间线中删除。[0056]在步骤210中,在步骤206中被识别的或被选中的COW数据和相应元数据可被合并。根据一个实施例,这些COW数据和/或相应元数据被优选地合并到被称为“储体(bucket)”的固定大小分配单元内。例如,当将原始数据回卷成每小时数据时,一个小时的原始数据可被合并到一个512KB固定大小的每小时储体内。接着,24个每小时备份数据储体可被合并到一个12MB固定大小的每日储体内。选中的COW数据和相应元数据的合并可以通过多种方式实现。根据一个实施例,所选时间间隔的元数据可以首先被合并。接着,(由被合并的元数据指向的)COff数据可被合并并且复制到存储器中。被合并的COW数据可接着被存储为所选时间间隔的新的、更高级的COW数据。于是,被合并的元数据可被修改并存储为该新的COW数据的相应元数据。[0057]在步骤212中,可以确定该存储器件的回卷是否已经完成。如果还有额外的时间间隔来回卷,则流程回送到步骤204以重复备份数据的合并直到对于所有适当的时间间隔都根据TLP指定的要求完成回卷。接着,在步骤214,对该存储器件的回卷可结束。时间线回卷操作可以(例如,作为一个线程或子例程)被配置为根据用户的开始或者根据TLP中定义的一个或更多个事件的触发来启动或重新启动。例如,回卷线程可在下面任何情况下被激活:已使用了时间线存储的预定百分比、在时间线否决(deprecation)之前或之后、和/或基于周期。当另一个节点上的第二回卷线程确定在那个节点上的LU必须回卷数据的时候,回卷线程也可被唤醒。[0058]参考图3,其示出图解说明根据本公开的实施例的示例性时间线压缩方法的状态图。该状态图示出时间线回卷操作的五个阶段。如上所述,回卷操作可优选地作为一个在存储管理系统上运行的或与其协调的线程。一旦启动,回卷线程可通过确定阶段、扫描阶段、合并阶段、复制阶段以及替换阶段为存储系统合并和/或重组备份数据。[0059]在确定阶段,可以确定需要进行的工作,诸如为备份数据进行哪级回卷,以及为哪个LU进行回卷。时间线压缩的典型实施环境可以是耦合到具有多个存储器件(例如LU)的存储系统的存储管理系统。对涉及多个LU的时间线压缩的一个典型要求是在所有LU之间时间线粒度水平一致。因此,可能需要确定要回卷哪级备份数据以及从哪个LU开始。要执行回卷的备份数据的级,也就是“回卷级”,可基于已为这些LU维持的回卷状态数据(在下面详述)来决定。为了确定对哪个LU执行回卷,一般通过分析回卷状态数据和/或其它与这些LU相关的信息数据来对这些LU进行逐个检查。对于每个LU,时间线中最旧的备份数据可被识别为当前回卷级。如果,例如,运行中的回卷线程所在的局部节点拥有正被考虑的LU,并且如果正被考虑的时间范围内有足够有效的、未知的备份数据(例如至少两个数据块),则回卷操作可以进入下一阶段(例如扫描阶段)。否则,可以选择并分析另一个LU。如果没有找到符合TLP中定义的标准的LU,则回卷操作结束。如果找到符合执行回卷的标准的LU,则所有相关的LU(例如与同一个配额组关联的LU)也可被回卷。如果确定必须发生回卷,则可以使用远程消息唤醒其它节点上的回卷线程。[0060]在扫描阶段,对于可被回卷的备份数据,可以执行对元数据的扫描以识别由TLP定义的时间段并重新得到相关元数据。该扫描可以是时序地逐片查询元数据。根据本公开的实施例,为了管理和负载平衡的需要,每个LU可被划分为多个固定大小的逻辑分区(例如每个16吉比特(GB)),其中每个固定大小的逻辑分区可被称为一个“片”。当片已被扫描后,可在合并阶段合并所识别的元数据,之后再在扫描阶段扫描下一个片。这种逐片循环可以一直重复直到对正被考虑的LU和时间间隔来说所有的片都已被耗尽。[0061]在合并阶段中,扫描阶段中所识别的元数据可被合并到固定大小的分配单元。元数据的合并可以通过多种方法中的任何一个来实现。根据一个实施例,所识别的元数据首先根据它们的时间戳以时间升序的方式存储在存储器中。接着,从最旧的元数据开始,所识别的元数据被插入到二进制树(B-tree)中,二进制树通过启动在元数据中记录的逻辑块地址(LBA)被索引。在合并的元数据被插入前B-tree首先扫描LBA重叠。包含LBA重叠的更新的COW数据可被丢弃。也可以根据需要对COW数据进行分割以实现合并。例如,对特定的时间间隔,如果块1-5的元数据已经存储在B-tree里,则另一个与块3-8关联的元数据行可被分割为两部分,一个与块3-5关联,另一个与块6-8关联,其中前者可被丢弃而后者可进入到B-tree中。获得的元数据可被合并到较大的固定大小的分配单元(例如512KB)中,每个分配单元代表一个单独的COW操作。保持作为记录的统计可以被合并和插入到B-tree中。可以基于LU保持这些统计,以便可以在复制阶段确定是否要将COW数据实际复制到回卷块还是仅仅修改相应的(合并的)元数据。保持的统计可包括例如原始块的数量、复制块(块保存)的数量、原始COW操作的数量以及被合并COW操作(元数据保存)的数量。[0062]每个得到的元数据行可以是在特定的片中由最早原始操作产生的。例如,如果块128在一行中被写入两次,一次在Tl时刻而另一次在T2时刻,则得到的合并元数据可能只是反映出Tl时刻的写操作。一旦片的元数据已被合并,同一个LU中的下一个片可继续进行扫描阶段。持续进行这样的过程一直到LU中的所有的片都被处理过,于是可执行复制阶段。[0063]在复制阶段,被合并的元数据可以从存储器中读取,并且被合元数据指向的COW数据可被复制到回卷块中。是否要对COW数据进行实际复制可决定于对在合并阶段收集的统计数据的评估。一般地,仅在有一些保留存储空间时进行COW数据的实际复制。[0064]在通过评估并且对一个LU来说所有的元数据都已被合并之后,COW数据可以逐片被复制到所得回卷块中。可使用预分配的无重复缓冲器将COW数据从(存储管理系统中的)一个时间存储器复制到同一个时间存储器中。为了完成数据复制,可生成一个事件链并且将“回卷时间存储移动”(RollupTimeStoreMove)事件可被推入事件链中。该RollupTimeStoreMove对象可源于SGIO和可等待事件(WaitableEvent)对象并可由IO执行环境来处理。该事件可具有两个限度,一个用于原始COW数据的读取,另一个用于对时间存储器中的回卷块的写入。复制阶段可等待事件的完成,然后用代表新索引操作的数据结构对存储器内的阵列进行更新。该阵列可被用于替换阶段以更新被合并的元数据。一旦所有的COW数据都已被复制,则回卷线程可进入替换阶段。[0065]在替换阶段,旧的COW数据的相关部分可被替换为新生成的回卷块,相应元数据可以被替换或修改以反映新的块和其中所包含的被合并的COW数据,并且可以更新回卷状态。替换阶段一般自动执行并且如果有灾难性事件发生可复原。可以锁定元数据被更新的LU以便在该阶段保持配置不发生变化并防止发生时间线否决(cbprecation)。在先前阶段被合并的旧的COW数据可被释放,且新的回卷块可被添加到时间线的合适地方。原始的元数据可被删除并被新的合并元数据替换。最终,LU可被解锁,且符合确定阶段的标准的下一个LU可被处理。[0066]根据一个实施例,旧的COW数据可被转换到新的回卷块内而无须发生实际复制。原始数据块可仅仅被更新以反映回卷时间戳,且它们的回卷级可被相应地更新。[0067]回卷操作在很多阶段进行,其中一个阶段涉及到将COW数据复制到新回卷块,这会花费大量的时间。结果,系统的其它关键组件可造成执行中的回卷取消,这些关键组件干扰回卷或改变时间线的状态,诸如即时存回、时间像或时间线否决(TimelineDeprecation).如果是在特定级的处理过程中取消回卷,则所有其它级也可被取消。因此,在图3示出的状态图中,几乎每个阶段都有指向结束的取消路线。在正被考虑的LU被锁定时,替换阶段不可以任意中断和前行。为了避免回卷的过度中断,当存储系统和/或存储管理系统中的资源处于低需求时可优选安排时间线压缩过程开始。[0068]可能需要逐个LU跟踪已发生的回卷状态。这样,存储系统中的其它组件可以确定哪些备份数据已经被回卷,以及哪些LU还未将其备份数据回卷。例如,对跨越多个LU的时间线开始的确定需要与感兴趣的LU相关的回卷状态信息。回卷状态也可能需要用于未来的回卷以便确定从何处开始回卷。[0069]所述回卷状态可存储在被称为“回卷状态”的全局数据库的数据库表格中,在表I中示出其中一个示例。[0070]表I回卷状态表[0071]【权利要求】1.一种在存储系统中用于时间线压缩的方法,其中所述存储系统的数字内容被备份以使得所述数字内容能够恢复到时间线的一个或更多个点上,所述方法包括:在所述时间线上选择时间间隔,其中所述时间间隔是所述时间线中多个时间间隔中的一个,其中所述多个时间间隔中的每个具有相应关联的存储容量级别和存储长度;根据所选择的时间间隔的相应关联的存储容量级别和存储长度,识别为所选择的时间间隔记录的一组或更多组第一备份数据,以代表针对所选择的时间间隔的备份数据,其中所识别的一组或更多组第一备份数据代表在所选择的时间间隔内被改写的旧数据的至少一部分;以及根据所选择的时间间隔的相应关联的存储容量级别和存储长度,丢弃为所选择的时间间隔记录的一组或更多组第二备份数据,从而降低所述选择的时间间隔内的所述时间线的粒度水平并且避免所述存储系统的存储需求增加。2.根据权利要求1所述的方法,其中所述存储系统的所述数字内容通过写时复制操作备份到多组写时复制数据和相应元数据中,以及其中识别步骤进一步包括识别为所选择的时间间隔记录的一组或更多组写时复制数据和相应元数据。3.根据权利要求2所述的方法,其中所述时间间隔的长度至少部分地基于所述时间线的所需粒度水平进行选择。4.根据权利要求2所述的方法,其中识别步骤进一步包括:确定所述存储系统中的存储单元是否在所选择的时间间隔内已被改写超过一次;如果所述存储单元在所选择的时间间隔内已被改写过一次而导致唯一一组写时复制数据和相应元数据被记录,选择所述唯一组;以及如果所述存储单元在所选择的时间间隔内已被改写过多于一次而导致多组写时复制数据和相应元数据被记录,选择所述多组中的一组。5.根据权利要求4所述的方法,其中,如果所述存储单元在所选择的时间间隔内被改写过多于一次,所选择的写时复制数据和相应元数据的组是为所选择的时间间隔记录的最早的组。6.根据权利要求2所述的方法,进一步包括:合并在所识别的一组或更多组写时复制数据和相应元数据中的元数据。7.根据权利要求6所述的方法,进一步包括:识别对应于所合并的元数据的写时复制数据;以及将之前为所选择的时间间隔记录的写时复制数据和相应元数据的所有组替换为包含所识别的写时复制数据和所合并的元数据的新组。8.根据权利要求2所述的方法,进一步包括:基于所述时间线的一部分的所需粒度水平,在所述时间线的所述部分上选择多个时间间隔;以及为所选择的多个时间间隔重复识别和丢弃的步骤。9.根据权利要求2所述的方法,其中所述存储系统包括多个存储器件,所述方法进一步包括:对一个或更多个所述多个存储器件重复识别和丢弃步骤以使得所述多个存储器件相对彼此具有所述时间线的一致的粒度水平。10.根据权利要求2所述的方法,其中选择、识别和丢弃步骤在满足一个或更多个下面的条件时被触发:所述时间线的预定存储容量已被耗尽;所述时间线的粒度水平的预定数据量已被积累;所述存储系统中至少两个存储器件的所述时间线的粒度水平不一致;收到降低所述时间线的所述粒度的指令;以及达到用于降低所述时间线的所述粒度的预设时间。11.根据权利要求2所述的方法,进一步包括:扫描所述存储系统以寻找一存储器件,针对该存储器件可以降低所述时间线的所述粒度。12.—种在存储系统中用于时间线压缩的系统,其中所述存储系统的数字内容被备份以使得所述数字内容能够恢复到时间线的一个或更多个点上,所述系统包括:用于在所述时间线上选择时间间隔的装置,其中所述时间间隔是所述时间线中多个时间间隔中的一个,其中所述多个时间间隔中的每个具有相应关联的存储容量级别和存储长度;用于根据所选择的时间间隔的相应关联的存储容量级别和存储长度,识别为所选择的时间间隔记录的一组或更多组第一备份数据以代表针对所选择的时间间隔的备份数据的装置,其中所识别的一组或更多组第一备份数据代表在所选择的时间间隔内被改写的旧数据的至少一部分;以及根据所选择的时间间隔的相应关联的存储容量级别和存储长度,丢弃为所选择的时间间隔记录的一组或更多组第二备份数据,从而降低所述选择的时间间隔内的所述时间线的粒度水平并且避免所述存储系统的存储需求增加的装置。【文档编号】G06F11/14GK103927238SQ201410105539【公开日】2014年7月16日申请日期:2006年10月13日优先权日:2005年10月14日【发明者】R·P·帕塞里尼,R·W·佩里,C·A·罗卡,M·D·安东尼申请人:塞门铁克操作公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1