首页> 中国专利> 用于信息生命周期管理的同步对象放置

用于信息生命周期管理的同步对象放置

摘要

本公开的实施例涉及用于信息生命周期管理的同步对象放置。分布式存储系统可以在摄取时对对象同步地应用信息生命周期管理(ILM)策略。在同步ILM的一个实施例中,有三个选项可用于用户:平衡的、严格的和二阶段提交。二阶段提交是指将总是在同一站点中创建两个复制的副本并异步地应用ILM的行为。严格的是指存储系统尝试与摄取地同步地应用ILM策略,并且如果存储系统不能,对象的摄取将失败。这确保了存储系统可以保证ILM已经被应用于最近摄取的对象。平衡的是指存储系统尝试同步地应用ILM,但是如果存储系统不能,则存储系统可以回退到二阶段提交。

著录项

说明书

技术领域

本说明书总体上涉及数据处理领域,并且更具体地,涉及数据库和文件管理或数据结构。

背景技术

信息生命周期管理(LIM)通常包括从信息被创建到它的最终配置期间,被用于使信息的业务/规章要求与适当的且有成本效益的基础设施保持一致的策略、过程、实践、服务和工具,ILM可以通过与应用、元数据和数据相关联的管理策略和服务水平,使信息与业务要求保持一致。组织指定要被用于数据的ILM规则集。ILM规则的集合可以在ILM策略中被指定。影响ILM策略的一些因素包括管理企业数据的成本、对于各种法律和跨各种管辖范围和数据领域(例如,健康相关数据)的规章的合规、诉讼准备以及企业规模内容管理。一般来说,可访问性要求和数据的价值随时间流逝而降低。因此,ILM策略将通常以反映出数据价值的下降的方式(如,较少的副本、较少的资源密集数据保护、较高的延迟等)来存储价值较低的数据。

发明内容

本说明书提供一种方法,包括:由分布式存储系统的节点接收用以建立连接以将对象保存到分布式存储系统的请求;由节点捕获与对象相关联的元数据;基于评估信息生命周期管理(ILM)策略规则和与对象相关联的元数据,来确定针对对象的副本的存储位置;以及在基于所评估的ILM策略规则的存储位置处,创建对象的副本。

在一个实施例中,在存储位置处创建对象的副本是基于确定对象的副本能够在摄取时被做出的。

在一个实施例中,该方法还包括向如下客户端应用返回摄取成功消息,该客户端应用发送用以建立连接的请求。

在一个实施例中,在存储位置处创建对象的副本被做出,而不将对象的临时的副本存储在分布式存储系统中。

在一个实施例中,在存储位置处创建对象的副本与摄取对象同步地被做出。

在一个实施例中,存储位置包括多个存储位置,并且创建对象的副本包括将对象的副本的数据片段存储在多个存储位置中的不同的存储位置上,并且将对象的副本的奇偶校验片段存储在多个存储位置中的其他存储位置上。

在一个实施例中,元数据包括以下至少一项:摄取时间、最后访问时间、对象名称、对象名称的一部分、对象关键字、创建位置、对象大小、用户元数据以及对象标签数据。

本说明书提供一种计算设备,包括:

存储器,该存储器包含机器可读介质,机器可读介质包括机器可执行代码,机器可读介质具有存储在其上的、用于执行将对象摄取到分布式存储系统的方法的指令;

处理器,该处理器被耦合到存储器,处理器被配置为执行机器可执行代码,以使处理器:

接收用以建立连接以将对象保存到分布式存储系统的请求;

捕获与对象相关联的元数据;

基于评估信息生命周期管理(ILM)策略规则和与对象关联的元数据,来确定针对对象的副本的存储位置;以及

确定副本不能够被做出到所确定的存储位置。

在一个实施例中,机器可执行代码还被配置为使处理器:发送消息,消息指示基于确定的摄取选项来摄取对象失败,确定的摄取选项要求在对象的摄取时遵守ILM策略规则。

在一个实施例中,机器可执行代码还被配置为使处理器:基于回退ILM策略规则来存储对象。

在一个实施例中,机器可执行代码还被配置为使处理器:基于回退ILM策略规则来存储对象,并且向如下客户端应用返回摄取成功消息,该客户端应用发送用以建立连接的请求。

在一个实施例中,机器可执行代码还被配置为使处理器:将两个临时的对象副本存储在分布式存储系统的两个不同节点处。

在一个实施例中,机器可执行代码还被配置为使处理器:将对象副本存储在分布式存储系统的多个不同节点中的每个节点处,并且执行ILM策略规则的异步评估。

在一个实施例中,机器可执行代码还被配置为使处理器:将临时的对象副本存储在分布式存储系统的多个不同节点中的每个节点处,并且对临时的对象副本执行ILM策略规则的异步评估。

在一个实施例中,确定副本不能够被做出到所确定的存储位置包括:确定存储位置暂时不可用。

本说明书提供一种非瞬态机器可读介质,其具有存储在其上的、用于执行方法的指令,指令包括机器可执行代码,机器可执行代码在被至少一个机器执行时,使机器:

接收用以建立连接以将对象保存到分布式存储系统的请求;

捕获与对象相关联的元数据;

基于评估信息生命周期管理(ILM)策略规则和与对象相关联的元数据,来确定针对对象的副本的存储位置;以及

在基于所评估的ILM策略规则的存储位置处,创建对象的副本。

在一个实施例中,机器可执行代码在被至少一个机器执行时,还使机器确定对象的副本能够在摄取时被存储在存储位置处,其中在存储位置处创建对象的副本是基于确定对象的副本能够在摄取时被做出的。

在一个实施例中,机器可执行代码在被至少一个机器执行时,还使机器向如下客户端应用返回摄取成功消息,该客户端应用发送用以建立连接的请求。

在一个实施例中,在存储位置处创建对象的副本与摄取对象同步地被做出。

在一个实施例中,存储位置包括多个存储位置,并且创建对象的副本包括将对象的副本的数据片段存储在多个存储位置中的不同的存储位置上,并且将对象的副本的奇偶校验片段存储在多个存储位置中的其他存储位置上。

附图说明

通过参考附图,本公开的实施例将被更好的理解。

图1是用于在摄取(ingest)时和在对象的整个生命周期中应用ILM策略的分布式存储系统的概念图。

图2是图示在对象生命周期的各阶段期间该对象的ILM管理的图表。

图3是图示用以操作分布式存储系统的ILM规则的示例性接口。

图4是图示用以操作分布式存储系统的示例性ILM策略的流程图。

图5是用于在分布式存储系统中摄取对象的示例操作的流程图。

图6A图示了示例性ILM规则。

图6B至图6D图示了纠删编码算法(erasure coding algorithm)在对象数据上的使用。

图7是用于信息生命周期管理的同步对象放置的示例操作的流程图。

图8是用于信息生命周期管理的同步对象放置的示例操作的流程图。

图9描绘了具有信息生命周期管理摄取扫描器的示例计算机系统。

具体实施方式

下面的描述包括实施本公开实施例的示例系统、方法、技术和程序流。然而,可以理解,本公开可以在无需这些特定细节的情况下被实践。在其他的实例中,众所周知的指令实例、协议、结构和技术未被详细展示,以免混淆描述。

地理上的分布式大规模存储系统(“存储系统”、“分布式存储系统”或“网格”)的用户可以针对他们的对象配置信息生命周期管理(ILM)规则。然而,在摄取时,为了冗余,用户数据的两个复制的副本可以在同一个站点中,并且事后接着应用ILM以创建最终的放置。例如,用户可以希望对他们的数据进行纠删编码,以便存储系统可以立即在同一个站点中创建两个复制的副本,并且然后在摄取后异步地对数据进行纠删编码。

该工作流的两个主要问题可以在本文中利用同步ILM被解决。首先,效率低,因为针对除了同一个站点要求两个复制的副本的ILM策略以外的ILM策略(例如,ILM策略与默认相同),存储系统可能在做浪费的工作:存储系统可能必须创建最终被丢弃的两个复制的副本。其次,用户对存储系统何时已经结束对被摄取的对象应用ILM策略几乎没有可见性。

根据本公开的各方面,存储系统可以被配置为在摄取时同步地应用数据生命周期策略,为说明这两个方法间的差异,示例存储系统被呈现,其中用户具有ILM规则,以在两个站点A和B中的每个站点中创建一个复制的副本。

在第一个方法中:

1.存储系统在站点A中创建两个复制的副本。

2.返回成功响应(如,对S3 PUT请求的超文本传输协议(HTTP)“200OK”成功状态响应码),并且将该对象排队以进行生命周期管理。

3.异步生命周期规则被激活。

4.存储系统在站点B中创建另一副本以满足ILM策略。

5.存储系统删除站点A中复制的副本中的一个副本。

注意,在第一个方法中,因为存储系统在应用ILM之前向客户端返回了成功响应(200OK),所以存储系统可能不能够保证关于生命周期管理的应用的任何事。存储系统可以尝试立即应用ILM策略,但存储系统不能够保证它。在第一个方法中,ILM策略可以异步地被应用如下:

1.客户端执行用以存储对象的请求(如,PUT请求),存储系统可以将该对象排队到存储器中以用于ILM处理,并且然后返回成功响应(如,200OK)。

2.如果存储系统在很大的载荷下,存储系统可以选择取消对象的该初始存储器入队并且推迟扫描ILM。

2a.扫描过程可以被用来处理重新扫描存储系统中的对象并且在需要时应用ILM。当扫描系统推迟来自异步ILM的动作时,用户现在必须等待该扫描以再次执行它。该扫描过程的示例在标题为“Iterative Object Scanning For Information LifecycleManagement”的美国专利公开号2018/0314706A1中被描述,其整体内容通过引用并入本文。

3.如果存储系统没有取消对象的初始存储器入列队,存储系统可以尝试立即执行ILM。然而,如果ILM策略的应用此时不是可实现的(例如,存储系统的整个站点当机或者不可连接),操作系统可以将此推迟直到稍后的时间,并且再次依赖于扫描ILM。

由于异步过程的以下性质:在初始摄取后但在应用ILM规则前返回成功响应,存储系统不能够保证ILM已经被应用于刚刚摄取的对象的确定性。同步ILM使这成为可能。

在第二个方法中,根据本公开的实施例:

1.客户端执行用以存储对象的请求(如,PUT请求),存储系统在站点A中创建一个复制的副本,并在站点B中创建一个复制的副本。

2.存储系统可以返回成功响应(对S3 PUT请求的“200OK”)

在这第二个方法中,针对该PUT请求的存储系统资源消耗少创建复制的对象的1个副本,并且少使用1个删除/解除链接。在无需将对象的临时的副本存储在分布式存储系统中的情况下,复制的(或经纠删编码的)对象的副本被创建。本公开的实施例确保存储系统降低该PUT请求的资源消耗(例如,由存储系统通过少创建复制对象的一个副本,并且少需要一个删除/解除链接)。

在同步ILM的实施例中,有三个可用选项可用于用户:平衡的、严格的和二阶段提交(dual commit)。二阶段提交是指分布式存储系统的存储节点在同一个站点中创建两个复制的副本、并且然后异步地应用ILM的行为。选择二阶段提交在一些场景中可以是有优势的,诸如针对具有高站点间延迟和具有充足的硬件资源备用的存储系统实例(如,非CPU或I/O受限的,因而不需要同时提高摄取对象的效率)。在其他的实施例中,其他的默认行为可以在异步地应用ILM策略之前被提供,诸如在站点处创建单个的副本、在站点处三个或更多副本、或更复杂的默认。严格的是指存储系统尝试在摄取时同步地应用ILM策略的行为,并且如果它不能够,则S3/Swift PUT将失败。这确保存储系统可以保证ILM已被应用于最近摄取的对象。平衡的是指存储系统尝试同步地应用ILM的行为,但是如果存储系统不能(例如,未能连接远程站点失败),则存储系统可以回退到二阶段提交或另一回退规则。一些存储系统可以将平衡的设为新ILM策略的默认设置。平衡的设置可以恰好和二阶段提交一样可用,但在大部分时间里,具有作为同步的效率利益。使用平衡的方法在用户不要求摄取时ILM应用的保证、但确实想要利用效率益处时可以是有优势的。

在摄取时同步地应用ILM策略提供了许多优势。根据本公开实施例的存储系统具有给出生命周期策略的保证应用的能力。这可以是具有针对数据保护的服务水平协议(SLA)、并且想要能够保证他们的数据满足他们的SLA的顾客所期望的。例如,SLA可以具有声明,诸如“我们将在至少两个地理位置中具有所有数据的复制副本”。

根据本公开实施例的存储系统也可以通过同步地应用ILM来提高效率;这可以降低在摄取数据时的I/O、CPU和/或其他资源的消耗(例如,如果ILM策略具有用以在每个站点创建一个复制副本的规则并且存在两个站点)。在按照先前方法的确定系统中,流将是在站点A中创建两个复制的副本,然后存储系统可以在站点B中创建另一复制的副本,然后删除站点A中的复制的副本中的一个复制的副本。与此不同,根据本公开的实施例在摄取时同步地应用ILM规则移除这些复制中的一个复制和移除项(removal)。

同步ILM附加地提供更好的数据安全性。例如,对象数据立即如ILM规则的放置指令中所指定的那样被保护,其可以被配置为免受包括多于一个存储位置的失败在内的多种不同的失败条件。此外,同步ILM提供更有效率的网格操作。每个对象只在它被摄取时被处理一次。因为分布式存储系统不需要追踪或删除临时的副本,较少的处理载荷和较少的数据库空间被消耗。

图1是用于在摄取时和在对象的整个生命周期中应用ILM策略的分布式存储系统的概念图。分布式存储系统是地理上分布在跨包括站点105、133、135和137(作为任何数目的站点的示例)的多个站点,这些站点经由包括广域网(WAN)的网络进行通信。这些站点中的每个站点可以容纳多个存储节点和存储设备。存储节点包括将对象数据和元数据存储在存储设备并且访问存储设备中的对象数据和元数据的过程(应用过程、服务等等)的集合。该过程的集合可以由虚拟机或物理主机所封装。站点105、133、135和137中的任何站点处的存储节点可以将对象摄取进网格中。摄取是指由一个或多个存储节点根据客户端请求和(多个)任何支配ILM策略来将对象存储在网格中的操作。摄取过程包括基于为网格定义的对象名称空间向对象指派对象标识符。摄取可以包括对象被划分为其内容数据和元数据、高速缓存、复制、纠删编码等等。与分布式存储系统连接的接口可以包括用以将对象存储到网格中的对象存储应用编程接口(API),诸如S3型API(基于亚马逊简单存储服务(S3)API)或Swift型(基于OpenStack对象存储项目Swift API)(仅提及本公开的实施例可以应用的两个示例)。针对S3的API参考手册可以在“Amazon Simple Storage Service APIReference API Version 2006-03-01”中找到,其整体内容通过引用并入本文。

摄取在客户端应用(如,基于S3或Swift客户端的应用)建立用以将对象保存到存储系统的连接时开始,并且在存储系统向客户端返回“摄取成功”消息时完成。取决于ILM如何被指定,对象数据可以通过立即应用ILM指令(同步放置)、或通过创建临时的副本并在稍后应用ILM(二阶段提交),而在摄取期间被保护。

网格的存储节点在摄取时和在网格中的对象的整个生命中向对象应用ILM策略120。网格的每个存储节点负责对象名称空间123的不同区域。分布式存储系统中每个站点处的一个存储节点的子集(“管理节点”)维护ILM策略120的副本。ILM策略的修改或替换可以在管理节点中的一个节点被做出,并且在整个存储系统中被传送给不同站点处的其他管理节点。组成ILM规则从ILM策略120中被提炼并且被ILM规则应用方125访问。为了解决ILM策略中改变的情况,网格在网格存储节点可访问的分布式数据存储库(或分布式数据库)131中维护提议的和当前的ILM指示(ILM策略标识符122)。为增强实用性,提议的和当前的ILM策略由从组成规则得出的标识符标识以捕获规则中的差异。ILM规则的示例包括复制规则、存储分级或分层规则、数据保护规则等等。ILM规则集通常被表示为ILM策略,以用于对包括优先次序的规则进行一致的组织。为应用ILM策略或规则集,存储节点按优先级次序根据规则集中的每个规则评估对象的元数据,并基于规则评估确定ILM任务是否将被执行。作为说明,放置规则和存储分级规则可以基于对象的大小和年龄被触发,造成对象内容数据被移动到不同站点处的存储节点,该存储节点被指派给一个更低级别的存储池。分布式数据存储库131托管对象元数据,尽管不同的分布式数据存储库可以被用于对象元数据和ILM策略标识符122。由于ILM策略可以被改变并且分布式数据存储库131可以是最终一致的分布式数据存储库,因此跨网格的存储节点可以应用ILM策略的不同版本或不同的ILM策略。

针对该示例图示,站点105处的存储节点107包括内容传送服务109、存储子系统115,分布式数据存储库服务117、ILM扫描器121和ILM规则应用方125。内容传送服务109管理用于对象的摄取的初始操作。由内容传送服务109处理的初始摄取操作可以包括请求处理、数据存储、存储管理、向另一存储节点的数据传输和存储协议接口的操作。数据存储操作可以包括对象内容数据的本地高速缓存和对象元数据的路由或储存。初始的摄取操作可以包括应用基于摄取的ILM规则。例如,站点105处的存储节点107处的分布式存储系统可以在摄取期间通过以下来保护对象:通过执行同步放置,其评估ILM并随着对象被摄取做出满足要求的副本;或通过执行诸如二阶段提交的默认ILM,其创建临时的副本并然后在稍后评估ILM。管理员用户可以在创建ILM规则时指定用于每个对象的方法。

存储子系统115与存储设备和/或外部存储服务接口,以用于响应于来自内容传送服务109的命令或请求,存储数据到存储设备(物理的或虚拟的)。分布式数据存储库服务117执行对应于分布式数据存储库131的操作,包括管理包括网格中对象的元数据的分布式数据存储库131的本地实例119。分布式数据存储库服务117处理来自内容传送服务109和ILM扫描器121的、针对分布式数据存储库131的请求。ILM扫描器121可以持续地扫描自主指派给ILM扫描器121的对象名称空间的(多个)区域123内的、的对象的对象元数据。ILM扫描器121从分布式数据存储库服务117请求数据元数据,并基于评估优先级将对象元数据列队入队列集127(“ILM元数据队列”)中。ILM应用方125从ILM元数据队列127选择对象元数据,按ILM策略120的ILM规则集评估对象元数据,并取决于是否任务是有风险的而执行所得的ILM任务。

在一些示例中,ILM改变可以在多部分上传进行时出现。上传的每部分根据在该部分被摄取时活动的规则被放置;当该多部分上传完成时,对象的一些部分可能不满足当前的ILM要求。在这些情况中,该对象的摄取不会失败。而是,没有被正确地放置的任何部分可以被排队以进行ILM重新评估,并在稍后被移动到正确的位置。

针对图1的图示,客户端101请求将对象103存储到网格。站点105的存储节点107接收该请求和对象103。内容传送服务109在对象名称空间123内针对对象103确定对象标识符。内容传送服务109将对象103划分为对象元数据111和内容数据113,并将两者都与对象103的对象标识符关联。对象元数据111可以指示数据大小、数据类型、创建日期、摄取的日期/时间、数据拥有方等等。除了已经在对象103中被指示的元数据,元数据111可以包括由存储节点107创建的元数据(如,与摄取存储节点相对应的站点标识符)。在一些示例中,用户可以确定是否让内容传送服务109在对象103的摄取时执行内联ILM评估,或在初始ILM评估之前,让内容传送服务109通过存储子系统115在本地将数据内容113存储在站点105的存储设备中(如,在根据纠删编码方案跨分布式存储系统的多个存储节点进行的分片和片段分布之前)。

因此,当默认或二阶段提交选项被选择时,元数据111可以初始地指示存储节点107作为内容数据113的位置。内容传送服务109请求分布式数据存储库服务117将元数据111存储进分布式数据存储库131的本地实例119中。内容传送服务109也将元数据插入到ILM元数据队列127中。ILM元数据队列127可以包括第一优先级队列和第二优先级队列。内容传送服务109将在摄取时的对象的元数据插入到队列127的更高优先级的队列(即第一优先级队列)中。ILM规则应用方125可以以被倾向于第一优先级队列而不使第二优先级队列饥饿的方式(例如,加权轮询)出列。

然而,当其他选项(诸如严格的或平衡的选项)被选择时,本地高速缓存并不必须被实现为摄取的部分。内容传送服务109可以被编程为在摄取时按ILM策略120评估对象元数据111,并执行从规则评估中确定的ILM任务,而不是异步地委托给ILM规则应用方125。

图2是图示在对象的生命周期的各阶段期间对象的ILM管理的图表。

摄取:在框202处,摄取在客户端应用(如,S3或Swift客户端应用)建立连接以将对象保存到分布式存储系统中时开始,并在分布式存储系统向客户端返回“摄取成功”消息时完成。对象数据在摄取期间通过以下被保护:通过在框204处立即应用ILM指令(同步放置),或通过创建临时的副本并稍后应用ILM(二阶段提交),这取决于ILM要求如何被指定。

副本管理:在创建了在ILM的放置指令中指定的数目和类型的对象副本后,分布式存储系统管理对象位置并保护对象以防丢失。

ILM扫描和评估:在框208处,分布式存储系统可以持续地扫描存储在网格中的对象列表并检查当前的副本是否满足ILM要求。在其他的实施例中,分布式存储系统以规律的间隔周期性地扫描对象。在另外的实施例中,分布式存储系统可以不以规律的间隔周期性地扫描对象,而是可以基于触发扫描。触发可以包括对象的移动,对象的元数据中的改变、对象访问频率的增加。

当要求不同类型、数目或位置的对象副本时,分布式存储系统按需要创建、删除或移动副本。背景验证:在框210处,分布式存储系统持续地执行背景验证以检查对象数据的完整性。在框212处,如果问题被发现,则分布式存储系统在满足当前ILM要求的位置自动地创建新的对象副本或替换纠删编码对象片段。

对象删除:对象的管理在副本被从分布式存储系统中被移除时结束。在框214处,作为客户端删除请求的结果,对象可以被删除;或在框216处,作为由ILM的删除、S3桶生命周期期满引起的删除、或由服从的(compliant)S3桶的保留期的结束触发的自动删除的结果,对象可以被删除。在客户端请求对象移除之后,在框218处,分布式存储系统确定同步(例如,立即的)移除是否是可能的(例如,如果所有的副本被存储在分布式存储系统之内并且不是在云上,或访问磁带备份缓慢,或所有的站点是可访问的)。如果是,则在框220处,对象副本被移除并且空间被回收。如果否,(或在删除由ILM触发时),在框222处,对象被标记为删除并且副本被排队以进行移除。接下来,在框224处,对象副本被移除。

图3是图示用以操作分布式存储系统的ILM规则的示例性接口。ILM规则可以包括三个元素:(1)过滤标准:规则的基本和高级过滤标准定义该规则应用于哪些对象。如果对象与该过滤标准匹配,分布式存储系统应用该规则并创建在该规则的放置指令中指定的对象副本。(2)放置指令:规则的放置指令定义对象副本的数目、类型和位置。每个规则可以包括用以随着时间推移改变对象副本的数目、类型和位置放置指令的序列。在一个放置的时间段期满时,下一个放置中的指令由下一个ILM评估自动地应用。(3)摄取行为:规则的摄取行为定义在客户端(如,S3或Swift)将对象保存到网格时会发生什么。摄取行为控制对象副本是否根据规则中的指令立即被放置,或临时的副本是否被做出并且放置指令在稍后被应用。

放置指令确定对象数据在何处、在何时以及如何被存储。ILM规则可以包括一个或多个放置指令。每个放置指令应用于一个单个的时间段。当用户创建放置指令时,该用户可以指定放置何时应用(时间段)、要创建哪个类型的副本(复制的或经纠删编码的)以及在何处存储副本(一个或多个存储位置)。在单个规则内,用户可以针对一个时间段指定多个放置,以及针对多于一个时间段指定放置指令。

当用户为规则定义放置指令集时,该用户可以被要求确保至少一个放置指令在第0天开始(例如,在摄取时)、在所定义的时间段之间无间隙、以及最终的放置指令永久地/无限期地继续或继续直到任何对象副本不再被需要为止。随着规则中的每个时间段期满,针对下一个时间段的内容放置指令可以被应用。新的对象副本被创建并且任何不需要的副本被删除。

如图3中的示例所图示,示例性ILM规则应用于分布式存储系统中属于租户A的数据。该规则要求分布式存储系统做出摄取的对象的三个复制的副本,并在不同的数据中心中处将每个副本存储两年。两年以后,一个副本被移动以永久地(或无限期地)存档存储。该ILM规则针对摄取行为使用平衡的选项:只要租户A将对象保存到分布式存储系统,该三副本放置指令就被应用,除非立即做出三个请求的副本是不可能的。在那种情况下,分布式存储系统立即在两个不同的存储节点上做出两个临时的副本,并在稍后做出要求的副本。

当用户创建ILM规则时,他们可以指定过滤标准以标识该规则应用于哪些对象。过滤规则可以是简单的或复杂的。在最简单的情况中,规则可能不指定任何过滤标准。没有过滤标准的规则应用于对象,该规则将在数据中的每一项具有相同的存储要求的情况中应用。没有过滤标准的规则的示例是库存规则“做出2个副本”,该规则永久地在任何两个存储节点上存储两个复制的对象副本。如果用户没有更特定的存储需要,则“做出2个副本”规则可以被用于对象。用户也可以将“做出2个副本”做为默认规则包括在ILM策略中,以为不满足其他规则中的过滤标准中的任何标准的对象提供存储指令。基本过滤标准允许用户将不同的规则应用在大型的、清楚的对象组。针对租户账号、针对S3桶或针对Swift容器(作为两个示例),可用的过滤器可以使用“创建ILM规则”向导(wizard)被创建。这些基本过滤器允许用户以简单的方法向大量对象应用不同的规则。例如,公司的财务记录可能需要被存储以满足规章要求,而来自市场部门的数据可能需要被存储以便于日常操作。在为每个部门创建了单独的租户账号之后或将来自不同部门的数据分离到单独的S3桶中之后,用户可以容易地创建应用于所有财务记录的一个规则和应用于所有市场数据的第二规则。“创建ILM规则”向导内的高级过滤选项可以给予用户粒度控制。用户可以基于一个或多个下面的对象属性来创建过滤规则以选择对象:摄取时间、最后访问时间、全部或部分对象名称(关键字)、S3桶区域(位置约束)、对象大小、用户元数据以及S3对象标签。表1描述了可以被用作过滤标准的不同的元数据类型。

表1

用户可以使用高级过滤来创建非常特定的过滤标准。例如,被医院的成像部门存储的对象可能在它们存在小于30日时被频繁使用,并在之后不频繁使用;而包含病人来访信息的对象可能需要被复制给健康网络总部处的账单部门。用户可以创建基于对象名称、大小、S3对象标签或其他任何相关标准来标识对象的每个类型的过滤器,并然后创建单独的规则以适当地存储每组对象。

用户也可以按需在单个规则中结合基本和高级过滤规则。例如,市场部门可能想要以他们的供应商记录不同的方式存储大型图像文件,而人力资源部门可能需要将人事记录集中存储在特定的地理位置和政策信息中。在该情况中,用户可以创建由租户账号过滤的规则以分离来自每个部门的记录,同时在每个规则中使用标识该规则应用于的对象的特定类型的高级过滤器。

图4是图示用以操作分布式存储系统的示例性ILM策略的流程图。信息生命周期管理(ILM)策略包括有序的ILM规则集,该ILM规则集确定分布式存储系统如何随着时间推移管理对象。在示例性ILM策略中,针对分布式存储系统的活动ILM策略控制所有对象的放置、持续时间和数据保护。当客户端将对象存储到分布式存储系统时,对象可以按活动策略中的有序ILM规则集被评估,如下:如果针对策略中第一个规则的过滤标准与对象的元数据匹配,则该对象根据那个规则的摄取行为被摄取,并根据那个规则的放置指令被存储。如果针对第一个规则的过滤标准与对象的元数据不匹配,则该对象按根据策略中每个接后续规则评估,直到匹配被做出为止。如果没有规则与对象的元数据匹配,则策略中针对默认规则的摄取行为和放置指令被应用。

为管理对象,用户可以创建信息生命周期管理(ILM)规则集并将它们组织到ILM策略中。被摄取到系统中的每个对象可以按活动策略被评估。当策略中的规则与对象的元数据匹配时,该规则中的指令确定分布式存储系统采取什么动作来复制和存储那个对象。ILM规则可以定义:(1)哪些对象应该当被存储。规则可以应用于所有的对象、属于特定租户账号或桶/容器的对象、或包含特定元数据值的对象。(2)存储装置类型和位置。对象可以被存储在存储节点上、云存储池中、或存档节点上。(3)做出的对象副本的类型。副本可以是复制的或经纠删编码的。(4)针对复制的副本,做出的副本的数目。(5)针对经纠删编码的副本,使用的纠删编码算法。(6)对象的存储位置和副本的类型随时间推移的改变。(7)随着对象被摄取到网格中,对象数据被如何保护(同步放置或二阶段提交)。在一些示例中,对象元数据可以不由ILM规则管理。作为替代,对象元数据可以被存储在被称为元数据存储库的数据库中(如,APACHE CASSANDRA数据库)。对象元数据的多个(例如,三个)副本可以在每个站点处自动地被维护,以保护数据以防丢失。副本可以跨分布式存储系统的所有存储节点进行负载平衡。

在框402处,当对象被摄取时,活动策略被应用。在图示的示例中,在框404处,属于租户A的所有对象由“规则1”匹配并且在三个数据中心处被存储为三个复制的副本。属于其他租户的对象未由第一个规则匹配,因此它们按策略中的下一个规则被评估。在框406处,“规则2”应用于被任何租户存储的、大于定义大小(如,在图示示例中为200KB)的对象。这些更大的对象使用纠删编码跨两个数据中心站点被存储。200KB(在示例中)或更小的对象不由第二个规则匹配,因此他们按第三个规则被评估。在框408处,“规则3”是策略的默认规则。默认规则被应用于不匹配策略中的任何其他规则的任何对象。在该示例中,默认规则做出不属于租户A的200KB或更小的所有对象的两个复制的副本。

图5是用于在分布式存储系统中摄取对象的示例操作的流程图。在框502处,方法500由客户端应用将对象保存到分布式存储系统开始。分布式存储系统可以评估当创建针对摄取的ILM规则/ILM策略时用户选择了哪个摄取行为。当用户创建ILM规则时,用户可以指定分布式存储系统是否应当在摄取时使用二阶段提交、平衡的或严格的选项来保护对象。取决于用户选择,分布式存储系统做出临时的副本并将对象排队以进行稍后的ILM评估,或使用同步放置并立即做出满足ILM要求的副本。用于在摄取时保护对象的三个选项(平衡的、严格的、或二阶段提交)中的每个选项在一些状况中适用。

二阶段提交:当用户选择二阶段提交时,分布式存储系统立即在两个不同的存储节点上做出临时的副本并返回“摄取成功”消息给客户端。对象被排队以进行ILM评估,并且满足规则的放置指令的副本被稍后做出。二阶段提交向客户端提供快速响应,以便分布式存储系统能够更迅速地处理后续请求,并且冗余的临时的副本在ILM可以被评估之前保护数据免受存储节点的丢失。然而,如果临时的副本不满足规则的放置指令,则二阶段提交可能较低效,因为分布式存储系统必须创建、追踪并删除最终不被需要的对象副本。

严格的:当用户选择严格的选项时,分布式存储系统可以在摄取时使用同步放置并立即做出规则的放置指令中指定的对象副本。如果创建这些副本是不可能的,例如因为需要的存储位置暂时不可用,则摄取失败。客户端可以在稍后重新尝试操作。严格的选项确保了对象总是被提供有规则中的放置指令中指定的以防丢失的保护。例如,如果那些保护存在于规则中的话,则对象可以被保护免受多于一个存储节点的失败或免受整个站点的完全失败。然而,当使用严格的选项时,可能有更高水平的摄取失败,因为瞬时问题可能使创建请求的副本暂时不可能。

平衡的:当用户选择平衡的选项时,分布式存储系统也在摄取时使用同步放置并立即做出规则的放置指令中指定的所有副本。与严格的选项相反,如果立即做出这些副本是不可能的,则分布式存储系统转而使用二阶段提交。备选地,不同的默认规则被使用。平衡的选项提供了高水平的数据安全性、网格性能和摄取成功。摄取可能耗时更久,因为分布式存储系统可能需要在它可以返回“摄取成功”消息给客户端之前,创建经纠删编码的对象或远程的副本。在分布式存储系统的一些实施例中,除非被用户改变,否则平衡的选项可以被提供为默认项。

表2提供了用于保护数据的摄取行为选项中的每个摄取行为选项的优点。

表2

如果评估ILM规则或策略的分布式存储系统确定摄取行为是严格的,则在504处,分布式存储系统可以确定第0日副本是否可以被立即做出到由ILM规则确定的存储位置。确定的存储位置可以基于按与对象关联的元数据来评估ILM策略。第0日副本可以包括到预期位置的对象的即刻副本。第0日副本包括评估对象的副本是否可以根据ILM策略被做出。第0日副本不可以被做出的可能原因是如果:存储站点不可用(如,连接错误),或存储站点是不可以接受第0日放置的存储站点。在连接错误的情况中,分布式存储系统(或分布式存储系统的存储节点)可以尝试与不可用的资源重新连接。在示例实施例中,不可以接受第0日放置的存储站点可以包括云存储池(通过第三方云托管服务,诸如亚马逊网络服务(AWS)和微软AZURE),和基于速度/带宽要求可能不能够在摄取时存储对象的存档节点(如,基于磁带的存档存储装置)。备选地,第三方云服务和/或存档存储装置可以接受第0日放置。

如果第0日副本不可以被立即做出(框504,否分支),则在框506处,分布式存储系统可以向做出请求的客户端应用发送摄取失败消息。在该示例中,对象不被复制到分布式存储系统,该摄取失败消息可以警告客户端应用发送的对象没有被保存在分布式存储系统中。客户端应用可以重新提交用以存储该对象的请求。

如果第0日副本可以被立即地做出(框504,是分支),则在框508处,副本被分布式存储系统创建以满足ILM。分布式存储系统可以向客户端应用发送“摄取成功”消息,其指示对象的一个或多个副本根据ILM策略从摄取被存储到分布式存储系统中。

如果评估ILM规则或策略的分布式存储系统确定摄取行为是平衡的,则在512处,分布式存储系统可以确定第0日副本是否可以被立即做出到由ILM规则确定的存储位置。如果第0日副本可以被立即做出(框512,是分支),则在框508处,副本被分布式存储系统创建以满足ILM。分布式存储系统可以向客户端应用发送“摄取成功”消息,其指示对象的一个或多个副本根据ILM策略从摄取被存储到分布式存储系统中。备选地,摄取成功消息可以在不指示ILM策略是否已经被遵循的情况下指示对象被摄取。

如果第0日副本不可以被立即做出(框512,否分支),则分布式存储系统可以尝试使用二阶段提交或另一备用过程。

如果评估ILM规则或策略的分布式存储系统确定摄取行为是二阶段提交,或者如果对象的存储未能通过平衡的规则,则在框514处,分布式存储系统可以存储对象的临时的副本。临时的副本可以在不考虑ILM规则或策略的情况下被做出。在框516处,分布式存储系统可以向客户端应用发送“摄取成功”消息。该消息可以指示对象的一个或多个副本被存储到分布式存储系统中。摄取成功消息可以指示临时的副本被做出。备选地,摄取成功消息不指示是否对象副本被暂时地存储或永久地存储在分布式存储系统中。

在框518处,分布式存储系统可以异步地将对象排队以进行ILM评估。在框520处,对象的副本被创建以满足ILM。对象的附加副本可以被做出,如果它们没有因为暂时地存储的副本而已经存在的话。在框522处,不需要的任何临时的副本被删除。

对象可以使用包括复制和纠删编码的各种技术被存储到分布式存储系统中。当分布式存储系统将对象与被配置以创建复制的副本的ILM规则相匹配时,系统创建对象数据的精确副本并将副本存储在存储节点或存档节点上。当用户配置ILM规则以创建复制的副本时,用户可以指定多少个副本应当被创建、那些副本应当被放置于何处、以及副本应当在每个位置被保存多久。

例如,图6A图示了示例性ILM规则,其指定每个对象的两个复制的副本被放置在包含三个存储节点的存储池中。当分布式存储系统将对象与该规则匹配时,分布式存储系统创建该对象的两个副本,将每个副本放置在该存储池中的不同的存储节点上。这两个副本可能被放置在三个可用存储节点中的任何两个存储节点上。在这种情况下,规则将对象副本放置在存储节点2和3上。因为有两个副本,所以如果存储池中的节点中的任何节点出现故障,则对象可以被获取。在一些示例中,分布式存储系统在任何给定的存储节点上存储对象的仅一个复制的副本。在该示例中,如果分布式存储系统包括三个存储节点,并且ILM被创建以创建对象的4个副本,则仅三个副本将被做出——每个存储节点上一个副本。

纠删编码是被分布式存储系统用来存储对象数据的第二个方法。当分布式存储系统将对象和被配置以创建经纠删编码的副本的ILM规则匹配时,它将对象数据切分(slide)为数据片段,计算附加的奇偶校验片段,并将每个片段存储在不同的存储节点上。当对象被访问时,它被使用存储的片段被重新组装。如果数据或奇偶校验片段损坏或丢失,则纠删编码算法可以使用剩余数据和奇偶校验片段的子集重新创建该片段。

分布式存储系统可以使用诸如Reed-Solomon(理德-所罗门)纠删编码算法的纠删编码算法,Reed-Solomon纠删编码算法将对象切分为k个数据片段并计算m个奇偶校验片段(使用k+m记法表示)。该k+m=n个片段跨n个存储节点分散以提供数据保护。对象可以承受多达m个丢失或损坏的片段。k个片段可能被需要以获取或修复对象。

图6B图示了纠删编码在对象的数据上的使用。在图示的示例中,ILM规则使用4+2纠删编码方案,每个对象被切分为四个均等的数据片段,并且两个奇偶校验片段从对象数据中被计算。在6+3纠删编码方案中,六个片段中的每个片段被存储在跨在三个数据中心的不同的节点上,以针对节点故障或站点丢失提供数据保护。诸如8+2、6+2、9+3、2+1、4+1和6+1的其他纠删编码方案是可用的。

4+2纠删编码方案要求最少九个存储节点,三个不同站点中的每一个站点处三个存储节点。如图6C所图示,只要六个片段(数据或奇偶校验)中的任何四个片段保持可用,则对象可以被获取。在没有对象数据丢失的情况下,多达两个片段可以丢失。如果整个数据中心站点丢失,只要其他片段中的所有片段保持可访问,则该对象依然可以被获取或修复。如图6D所图示,如果多于两个存储节点丢失,则该对象是不可获取的。当与复制比较时,纠删编码可以提供改进的可靠性、可用性和存储效率。然而,增多数目的节点和站点可能被要求,并且在纠删编码跨多个地理上分布的站点被使用时,可能有增多的获取延迟。

ILM规则可以被创建以对数据(或高于一定的阈值大小的数据,如,1MB或200KB)执行纠删编码。在摄取时,分布式存储系统可以评估ILM规则,以确定是否二阶段提交、严格的或平衡的选项被选择。上述选项中的每个选项可以与纠删编码一起使用。然而,在多个存储节点创建经纠删编码的对象可能耗时更久并可能比使用复制具有更大的失败机会。在其他的实施例中,使用纠删编码的ILM规则在二阶段提交中将不会应用纠删编码,直到对象的临时的副本被评估为止。在一些实施例中,严格的选项可能对纠删编码不可用,或有更大的失败可能性。

图7是用于信息生命周期管理的同步对象放置的示例操作的流程图。在框702处,分布式存储系统(或分布式存储系统的存储节点)可以接收用以建立连接以将对象保存到分布式存储系统的请求。在框704处,分布式存储系统的节点可以捕获与对象关联的元数据。元数据可以包括摄取时间、最后访问时间、对象名称、对象名称的一部分、对象关键字、创建位置、对象大小、用户元数据和/或对象标签数据。在框706处,分布式存储系统可以基于评估ilm策略规则和与对象相关联的元数据来确定针对对象的副本的存储位置。

在框708处,分布式存储系统可以在基于所评估的ILM策略规则的存储位置处创建对象的副本。在一个或多个存储位置处创建对象的副本是基于确定对象的副本可以在摄取时被做出的。创建对象的副本可以与摄取该对象同步地被做出。分布式存储系统可以向客户端应用返回“摄取成功”消息。在一些示例中,创建对象的副本包括在多个存储位置中的不同的存储位置上存储对象的副本的数据片段,并且在这多个存储位置中的其他位置上存储对象的副本的奇偶校验片段。

图8是用于信息生命周期管理的同步对象放置的示例操作的流程图。在框802处,分布式存储系统可以接收用以建立连接以将对象保存到分布式存储系统的请求。在框804处,分布式存储系统的节点可以捕获与对象相关联的元数据。在框806处,分布式存储系统可以基于评估策略规则和与对象关联的元数据来确定针对对象的副本的存储位置。在框808处,分布式存储系统可以确定副本不可以被做出到确定的存储位置。

在示例性实施例中,分布式存储系统可以发送消息,该消息指示基于确定的摄取选项来摄取对象失败,该确定的摄取选项要求在对象的摄取时遵守ILM策略规则。在另一示例性实施例中,分布式存储系统可以基于回退ILM策略规则来存储对象并向客户端应用返回摄取成功消息。在另外的实施例中,分布式存储系统可以在分布式存储系统的两个不同的节点处存储两个临时的对象副本。在又一个实施例中,分布式存储系统可以在分布式存储系统的多个不同节点中的每个节点处存储对象副本并执行ILM策略规则的异步评估。该评估可以对临时对象副本进行。分布式存储系统可以确定副本不可以被做出到确定的存储位置,因为该存储位置暂时不可用。

流程图被提供来帮助理解说明,不被用于限制权利要求的范围。流程图描述了可以在权利要求范围内变化的示例操作。附加操作可以被执行;更少的操作可以被执行;操作可以并行地被执行,以及操作可以以不同的顺序被执行。应当理解,流程图和/或框图中的每个框,和流程图和/或框图中框的组合可以由程序代码实现。程序代码可以被提供给通用计算机、专用计算机或其他可编程机器或装置的处理器。

应当理解,本公开的各方面可以被实施为在一个或多个机器可读介质中所存储的系统、方法或程序代码/指令。相应地,各方面可以采取以下形式:硬件、软件(包括固件、常驻软件、微码等)或可以在本文中通称为“电路”、“模块”或“系统”软件和硬件方面的组合。在示例图示中被呈现为个体模块/单元的功能性可以根据以下任何项被不同地组织:平台(操作系统和/或硬件)、应用生态系统、接口、程序员偏好、编程语言、管理员偏好等。

一个或多个机器可读介质的任何组合可以被利用。机器可读介质可以是机器可读信号介质或机器可读存储介质。机器可读存储介质可以是,例如,但不限于,用以存储程序代码或机器可执行代码的、采用电子、磁性、光学、电磁、红外或半导体技术中的任何项或组合的系统、装置或设备。机器可读存储介质的更具体的示例(非详尽的列表)将包括以下:便携式计算机软盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、便携式光盘只读存储器(CD-ROM)、光学存储设备、磁性存储设备、或任何适合的前述项的组合。在本文档的上下文中,机器可读存储介质可以是可以包含或存储程序的有任何形介质,以供指令执行系统、装置或设备使用,或与其结合使用。机器可读存储介质不是机器可读信号介质。

机器可读信号介质可以包括具有实施在其中的机器可读程序代码的传播数据信号,例如,在基带中或作为载波的一部分。这样传播的信号可以采取多种的形式中的任何形式,包括但不限于,电磁、光学或其任何合适的组合,机器可读信号介质可以是如下机器可读介质:该机器可读介质不是机器可读存储介质,并且可以传送、传播或传输程序以供指令执行系统、装置或设备使用或与其结合使用。

被实施在机器可读介质上的程序代码可以使用任何合适的介质传输,包括但不限于无线电、电话线、光纤电缆、RF等,或前述项的任何合适组合。

用于执行本公开各方面的操作的程序代码取决于实现而可以被实施为以各种形式的指令。例如,指令可以用一个或多个编程语言的任何组合来编写,包括:面向对象的编程语言(诸如

程序代码/指令也可以被存储在可以指导机器以特定的方式工作的机器可读介质中,使得存储在该机器可读介质中的指令产生包括实现流程图和/或框图或框中指定的功能/动作的指令的制品。

图9描绘了具有信息生命周期管理迭代扫描器的示例计算机系统。该计算机系统包括处理器901(可能包括多个处理器、多个核心、多个节点、和/或实现多线程等等)。该计算器系统包括存储器907。存储器907可以是系统存储器(例如,以下一项或多项:高速缓存、SRAM、DRAM、零电容器RAM、双晶体管RAM、eDRAM、EDO RAM、DDR RAM、EEPROM、NRAM、RRAM、SONOS、PRAM等)或机器可读介质的上文中已经描述过的可能实现中的任何项。该计算机系统也包括总线903(如,PCI、ISA、PCI-Express、

尽管本公开的各方面是参照各种实现和开发被描述的,但是应当理解这些方面是示例性的,并且权利要的范围不限于这些方面。通常,如本文中所描述的使用ILM的同步对象放置技术可以用与任何硬件系统或硬件系统一致的设施实现。许多变化、修改、添加或改进是可能的。

针对本文中所描述的组件、操作或结构的多个的实例可以被提供为单个的实例。最终,各种组件、操作和数据存储库之间的边界多少是随意的,并且具体的操作在特定的说明性配置的背景下说明。功能的其他装配被设想并落入本公开的范围之内。通常,示例配置中呈现为分开的组件们的结构和功能,可以被实现为结合的结构或组件。类似地,被呈现为单个组件的结构和功能,可以被实现为分开的组件。这些和其他的变化、修改、添加或改进可以落在本公开的范围之内。

除非另有特定说明,否则具有连词“和”的列表前的短语“…中的至少一项”不应当被当作排他性列表,并且不应当被解释为具有来自每个类别的一个项的类别列表。阐述“A、B和C中的至少一项”的语句可以被以下侵犯:所列项中的仅一项、所列项中的多个项、以及列表中的项中的一项或多项和未列出的另一项。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号