CN106155846B - 对块对象执行批量故障回复的方法和装置 - Google Patents
对块对象执行批量故障回复的方法和装置 Download PDFInfo
- Publication number
- CN106155846B CN106155846B CN201510178736.2A CN201510178736A CN106155846B CN 106155846 B CN106155846 B CN 106155846B CN 201510178736 A CN201510178736 A CN 201510178736A CN 106155846 B CN106155846 B CN 106155846B
- Authority
- CN
- China
- Prior art keywords
- failback
- batch
- block object
- file system
- executed
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1471—Saving, restoring, recovering or retrying involving logging of persistent data for recovery
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2089—Redundant storage control functionality
- G06F11/2092—Techniques of failing over between control units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
- G06F16/122—File system administration, e.g. details of archiving or snapshots using management policies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/805—Real-time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/81—Threshold
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/85—Active fault masking without idle spares
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Retry When Errors Occur (AREA)
Abstract
本公开的实施例公开了一种用于对块对象执行批量故障回复的方法和装置,该方法包括:对既有文件系统中的一个或多个文件系统的部分块对象执行批量故障回复;基于记录的已执行批量故障回复的块对象的数量,确定执行下一次批量故障回复所需要的延迟时间;以及在所述延迟时间之后,对剩余块对象执行所述下一次批量故障回复。与现有技术相比,本公开的实施例能够控制在一次批量故障回复中处理的块对象的数量,并且动态调整两次批量故障回复之间的延迟时间,从而避免在短期内给正在启动的存储处理器带来巨大的压力。同时在相同文件系统上的全部块对象的故障回复能够在一次批量处理中完成,从而确保了基本的一致性。
Description
技术领域
本公开的实施例总体涉及故障回复(Failback),更具体地,涉及一种用于对块对象(Block Objects)执行批量故障回复的方法和装置。
背景技术
随着块对象的更大的配置,诸如支持自动精简配置(Thin Provisioning)、先进的快照(Advanced Snaps)和去重(Deduplication)等特征,高端存储产品(例如,EMC公司的VNX2)的功能变得越来越强大,以服务于不同类型的商业需求。这些先进的特征共用相同的底层技术以利用文件系统机制来构建大量的上层块对象,诸如逻辑单元号(LUN)、快照(Snap)和快照逻辑单元号(Snap LUN)等,同时提供尖端的能力。然而,这也给存储处理器(例如,VNX2的存储处理器)带来越来越多的负担,尤其是当存储处理器启动时。
具有传统的双控制器架构的存储产品(例如,EMC公司的VNX2)支持从两个存储处理器来响应外部生产工作负载的能力。在内部,块对象在负载平衡的控制下,将在仅一个存储处理器上被拥有。由于这种实现方式,当存储处理器从正常的重启或者崩溃中启动时,一些块对象,诸如逻辑单元号、快照和快照逻辑单元号等将基于整体负载平衡机制立刻被故障回复到正在启动的原有存储处理器上,从而导致巨大的内部工作负载。这种短暂的内部工作负载可能使得正在启动的存储处理器处于很大的压力之下,从而可能导致两个主要问题。一个问题是存储处理器的性能将会降低并且对服务外部主机工作负载的响应将会变慢;另一问题是正在故障回复的块对象的暂停将导致生产中断。
由于被故障回复的块对象是在不具有底层共用的文件系统的信息的情况下随机选取的。当系统被配置了大量的块对象并且处于某些高IO性能的环境中时,将花费很长时间用来对所有的块对象执行故障回复。由于不能够及时地使所有的块对象上线并且准备就绪,可能最终导致存储处理器崩溃;而更严重的是,另一存储处理器也有可能在此时崩溃。这种情况是非常严重的,将导致用户生产环境中的服务中断,从而可能使得存储产品(例如,EMC公司的VNX2)不能被用于某些生产环境,诸如流行的OpenStack场景。
因此,本领域中需要一种新的故障回复的方法,以避免在短期内对大量的块对象执行故障回复从而给正在启动的存储处理器带来巨大的压力。
发明内容
本公开的实施例旨在提供一种用于对块对象执行批量故障回复的方法和装置,以解决上述问题。
根据本公开的一个方面,提供了一种用于对块对象执行批量故障回复的方法,该方法包括:对既有文件系统中的一个或多个文件系统的部分块对象执行批量故障回复;基于记录的已执行批量故障回复的块对象的数量,确定执行下一次批量故障回复所需要的延迟时间;以及在所述延迟时间之后,对剩余块对象执行所述下一次批量故障回复。
在一个实施例中,当存储处理器启动时,建立所述既有文件系统的列表,以对所述既有文件系统中的一个或多个文件系统执行批量故障回复。
在另一实施例中,对既有文件系统中的一个或多个文件系统的部分块对象执行批量故障回复包括:遍历所述列表,以查找块对象需要被执行故障回复的当前文件系统;以及对所述当前文件系统上的部分块对象执行批量故障回复。
在又一实施例中,对既有文件系统中的一个或多个文件系统的部分块对象执行批量故障回复还包括:基于查找到的文件系统的数量,停止所述批量故障回复。
在再一实施例中,基于查找到的文件系统的数量,停止所述批量故障回复包括:比较查找到的所述文件系统的数量和第一阈值;以及在所述文件系统的数量大于所述第一阈值时,停止所述批量故障回复。
在再一实施例中,对既有文件系统中的一个或多个文件系统的部分块对象执行批量故障回复还包括:在同一次批量故障回复中,执行相同文件系统上的全部块对象的故障回复。
在再一实施例中,对既有文件系统中的一个或多个文件系统的部分块对象执行批量故障回复还包括:记录已触发故障回复的块对象的数量;以及基于所述块对象的数量,停止所述批量故障回复。
在再一实施例中,基于所述块对象的数量,停止所述批量故障回复包括:比较所述块对象的数量和第二阈值;以及在所述块对象的数量大于所述第二阈值时,停止所述批量故障回复。
在再一实施例中,基于记录的已执行批量故障回复的块对象的数量,确定执行下一次批量故障回复所需要的延迟时间包括:记录在最近一次批量故障回复中已触发故障回复的块对象的第一数量;以及计算在最近多次批量故障回复中已触发故障回复的块对象的第二数量。
在再一实施例中,基于记录的已执行批量故障回复的块对象的数量,确定执行下一次批量故障回复所需要的延迟时间还包括:基于所述第一数量和所述第二数量,计算执行下一次批量故障回复所需要的延迟时间。
根据本公开的另一方面,提供了一种用于对块对象执行批量故障回复的装置,该装置包括:处理模块,被配置为对既有文件系统中的一个或多个文件系统的部分块对象执行批量故障回复;延时确定模块,被配置为基于记录的已执行批量故障回复的块对象的数量,确定执行下一次批量故障回复所需要的延迟时间;以及延时处理模块,被配置为在所述延迟时间之后,对剩余块对象执行所述下一次批量故障回复。
在一个实施例中,当存储处理器启动时,所述处理模块建立所述既有文件系统的列表,以对所述既有文件系统中的一个或多个文件系统执行批量故障回复。
在另一实施例中,所述处理模块包括:查找单元,被配置为遍历所述列表,以查找块对象需要被执行故障回复的当前文件系统;以及处理单元,被配置为对所述当前文件系统上的部分块对象执行批量故障回复。
在又一实施例中,所述处理模块还包括:第一停止单元,被配置为基于查找到的文件系统的数量,停止所述批量故障回复。
在再一实施例中,所述第一停止单元被配置为:比较查找到的所述文件系统的数量和第一阈值;以及在所述文件系统的数量大于所述第一阈值时,停止所述批量故障回复。
在再一实施例中,所述处理模块还被配置为:在同一次批量故障回复中,执行相同文件系统上的全部块对象的故障回复。
在再一实施例中,所述处理模块还包括:第一记录单元,被配置为记录已触发故障回复的块对象的数量;以及第二停止单元,被配置为基于所述块对象的数量,停止所述批量故障回复。
在再一实施例中,所述第二停止单元被配置为:比较所述块对象的数量和第二阈值;以及在所述块对象的数量大于所述第二阈值时,停止所述批量故障回复。
在再一实施例中,所述延时确定模块包括:第二记录单元,被配置为记录在最近一次批量故障回复中已触发故障回复的块对象的第一数量;以及第一计算单元,被配置为计算在最近多次批量故障回复中已触发故障回复的块对象的第二数量。
在再一实施例中,所述延时确定模块还包括:第二计算单元,被配置为基于所述第一数量和所述第二数量,计算执行下一次批量故障回复所需要的延迟时间。
根据本公开的又一方面,提供了一种用于对块对象执行批量故障回复的计算机程序产品,所述计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括计算机可执行指令,所述计算机可执行指令在被执行时使得计算机执行所述方法的任意步骤。
与现有技术相比,本公开的实施例能够控制在一次批量故障回复中处理的块对象的数量,并且动态调整两次批量故障回复之间的延迟时间,从而避免在短期内给正在启动的存储处理器带来巨大的压力。同时在相同文件系统上的全部块对象的故障回复能够在一次批量处理中完成,从而确保了基本的一致性。可以预见,即使存储产品在将来进一步增加其块对象的数量,本公开的实施例能够保证系统处于正常运行的状态。
附图说明
在此所述的附图用来提供对本公开的进一步理解,构成本公开的一部分,本公开的示意性实施例及其说明用于解释本公开,并不构成对本公开的不当限定。在附图中:
图1图示了根据本公开的实施例的用于对块对象执行批量故障回复的方法100的流程图;
图2图示了根据本公开的实施例的用于对块对象执行批量故障回复的装置200的框图;
图3图示了适于实现本公开的示例实施例的计算机系统300的框图。
具体实施方式
在下文中,将参考附图详细描述本公开的各个示例性实施例。应当注意,这些附图和描述涉及的仅仅是作为示例性的实施例。应该指出的是,根据随后描述,很容易设想出此处公开的结构和方法的替换实施例,并且可以在不脱离本公开要求保护的原理的情况下使用这些替代实施例。
应当理解,给出这些示例性实施例仅仅是为了使本领域技术人员能够更好地理解进而实现本公开,而并非以任何方式限制本公开的范围。
在此使用的术语“包括”、“包含”及类似术语应该被理解为是开放性的术语,即“包括/包含但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”。其他术语的相关定义将在下文描述中给出。
现在参考图1,其图示了根据本公开的实施例的用于对块对象执行批量故障回复的方法100的流程图。方法100包括步骤S101至S103。
在步骤S101,对既有文件系统中的一个或多个文件系统的部分块对象执行批量故障回复。
根据本公开的实施例,当存储处理器启动时,建立所述既有文件系统的列表。作为示例,假设建立的既有文件系统列表L中一共有5个文件系统,依次为F1、F2……F5。在一次批量故障回复中,首先遍历既有文件系统的列表,以查找其块对象需要被执行故障回复的当前文件系统;然后对当前文件系统上的块对象执行批量故障回复。例如,在上述示例中,首先遍历列表L来查找块对象需要被执行故障回复的文件系统,例如最先找到的是文件系统F1,则对F1上的块对象执行批量故障回复;然后遍历列表L来查找下一个需要执行故障回复的文件系统,例如是文件系统F2,则对F2上的块对象执行批量故障回复。
根据本公开的实施例,步骤S101还包括基于查找到的文件系统的数量,停止所述批量故障回复。更具体地,比较查找到的所述文件系统的数量和第一阈值;以及在所述文件系统的数量大于所述第一阈值时,停止所述批量故障回复。例如,假设根据实验数据或历史经验确定了在一次批量故障回复中允许执行故障回复的文件系统数量是2(即,第一阈值是2),则当找到的文件系统数量大于2时,停止本次批量故障回复。在上述示例中,例如在完成了对文件系统F1和F2上的块对象的故障回复之后,继续遍历列表L找到的下一个需要执行故障回复的文件系统是F4。然而,此时找到的文件系统数量一共是3,即大于第一阈值2,因此停止本次批量故障回复(即,将不继续对F4上的块对象执行批量故障回复)。
根据本公开的实施例,步骤S101还包括记录已触发故障回复的块对象的数量;以及基于所述块对象的数量,停止所述批量故障回复。更具体地,比较所述块对象的数量和第二阈值;以及在所述块对象的数量大于所述第二阈值时,停止所述批量故障回复。例如,假设根据实验数据或历史经验确定了在一次批量故障回复中允许执行故障回复的块对象数量是100(即,第二阈值是100),则当触发了故障回复操作的块对象的数量大于100时,停止本次批量故障回复。在上述示例中,假设在F1上需要执行故障回复的块对象的数量是60,在F2上需要执行故障回复的块对象的数量是41,在F4上需要执行故障回复的块对象的数量是10。首先对F1上的块对象执行批量故障回复,当对F1上的全部块对象执行了故障回复时,记录的已触发故障回复的块对象数量是60。由于60小于第二阈值100,接下来对F2上的块对象执行批量故障回复,当对F2上的全部块对象执行了故障回复时,此时记录的已触发故障回复的块对象数量是101(即,60+41=101)。由于101大于第二阈值100,因此停止本次批量故障回复(即,将不继续对F4上的块对象执行批量故障回复)。
根据本公开的实施例,相同文件系统上的全部块对象的故障回复在同一次批量故障回复中被执行。例如,在上述示例中,文件系统F1上共有60个块对象需要执行故障回复,那么对这60个块对象的故障回复必须在一次批量处理中完成。即需要避免以下情况发生:一部分块对象(例如,文件系统F1的60个块对象中的已经执行了故障回复的20个块对象)在一个存储处理器上,而剩余块对象(例如,文件系统F1的60个块对象中的尚未执行故障回复的40个块对象)在另一个存储处理器上。这种不一致的所有权可能导致严重的问题,诸如系统性能下降等。
可能存在以下情况:例如,仍然假设在F1上需要执行故障回复的块对象的数量是60,在F2上需要执行故障回复的块对象的数量是41,在F4上需要执行故障回复的块对象的数量是10;重新假设第二阈值为70(即,在一次批量故障回复中允许执行故障回复的块对象数量是70)。那么,当对F1上的全部块对象执行了故障回复时,记录的已触发故障回复的块对象数量是60。由于60小于第二阈值70,接下来可以对F2上的块对象执行批量故障回复。当执行F2上的第11个块对象的故障回复之后,记录的已触发故障回复的块对象数量将是71,此时应当停止本次批量故障回复。然而由于F2上需要执行故障回复的块对象的数量是41,这样将导致文件系统F2上的11个块对象在一个存储处理器上而另外的30个块对象在另一存储处理器上的情况。在此情况下,为了确保不发生不一致的所有权问题,将不在本次批量故障回复中执行对F2上的任意块对象的故障回复,从而保证对相同文件系统上的全部块对象的故障回复在同一次批量处理中完成。
接下来,方法100进行至步骤S102。
在步骤S102,基于记录的已执行批量故障回复的块对象的数量,确定执行下一次批量故障回复所需要的延迟时间。
根据本公开的实施例,步骤S102包括:记录在最近一次批量故障回复中已触发故障回复的块对象的第一数量;以及计算在最近多次批量故障回复中已触发故障回复的块对象的第二数量。步骤S102还包括:基于所述第一数量和所述第二数量,计算执行下一次批量故障回复所需要的延迟时间。
例如,假设在一次批量故障回复中允许执行故障回复的块对象数量是M,在最近1次批量故障回复中已触发故障回复的块对象的数量是N1(即,第一数量为N1),在最近K次批量故障回复中已触发故障回复的块对象的总数量是NK(即,第二数量为Nk)。那么由于处于故障回复中的活跃的块对象与那些已经执行了故障回复的块对象相比,将产生更多的内部工作负载,因此可以按照如下公式(1)计算执行下一次批量故障回复所需要的延迟时间:
延迟时间=(R×(NK-N1)+N1)/M×T 公式(1)
在公式(1)中,T表示固定延迟时间(单位:秒),R表示权值,T、R和K均通过实验数据或者历史经验来确定。例如,假设R=0.2,T=1s,K=10,M=100,N1=50,NK=200,则根据公式(1)计算出的延迟时间是(0.2×(200-50)+50)/100×1s=0.8s
接下来,方法100进行至步骤S103。
在步骤S103,在所述延迟时间之后,对剩余块对象执行所述下一次批量故障回复。
根据本公开的实施例,步骤S103与步骤S101类似,两者的区别在于步骤S103是在等待了在步骤S102中确定的延迟时间(例如,在上述示例中计算出的0.8秒)之后对剩余块对象执行批量故障回复,其中对剩余块对象执行批量故障回复的过程与步骤S101相同,因此在此不作再次的详细描述。
至此,方法100结束。
通过对方法100的描述应当理解,一次批量故障回复由两个重要因素来引导:一个因素是两次批量处理之间的等待时间;另一因素是在一次批量处理中处理有限数量的文件系统或者块对象。等待时间基于最近历史故障回复的记录来动态地调整,以确保存储处理器能够平滑地启动来处理所有需要执行故障回复的块对象,并且同时服务诸如配置更改、生产IO等其他请求。
下面参考图2,其图示了根据本公开的实施例的用于对块对象执行批量故障回复的装置200的框图。装置200包括:处理模块201,被配置为对既有文件系统中的一个或多个文件系统的部分块对象执行批量故障回复;延时确定模块202,被配置为基于记录的已执行批量故障回复的块对象的数量,确定执行下一次批量故障回复所需要的延迟时间;以及延时处理模块203,被配置为在所述延迟时间之后,对剩余块对象执行所述下一次批量故障回复。
根据本公开的实施例,当存储处理器启动时,处理模块201建立所述既有文件系统的列表,以对所述既有文件系统中的一个或多个文件系统执行批量故障回复。
根据本公开的实施例,处理模块201包括:查找单元,被配置为遍历所述列表,以查找块对象需要被执行故障回复的当前文件系统;以及处理单元,被配置为对所述当前文件系统上的部分块对象执行批量故障回复。
根据本公开的实施例,处理模块201还包括:第一停止单元,被配置为基于查找到的文件系统的数量,停止所述批量故障回复。
根据本公开的实施例,所述第一停止单元被配置为:比较查找到的文件系统的数量和第一阈值;以及在所述文件系统的数量大于所述第一阈值时,停止所述批量故障回复。
根据本公开的实施例,处理模块201还被配置为:在同一次批量故障回复中,执行相同文件系统上的全部块对象的故障回复。
根据本公开的实施例,处理模块201还包括:第一记录单元,被配置为记录已触发故障回复的块对象的数量;以及第二停止单元,被配置为基于所述块对象的数量,停止所述批量故障回复。
根据本公开的实施例,所述第二停止单元被配置为:比较所述块对象的数量和第二阈值;以及在所述块对象的数量大于所述第二阈值时,停止所述批量故障回复。
根据本公开的实施例,延时确定模块202包括:第二记录单元,被配置为记录在最近一次批量故障回复中已触发故障回复的块对象的第一数量;以及第一计算单元,被配置为计算在最近多次批量故障回复中已触发故障回复的块对象的第二数量。
根据本公开的实施例,延时确定模块202还包括:第二计算单元,被配置为基于所述第一数量和所述第二数量,计算执行下一次批量故障回复所需要的延迟时间。
为清晰起见,在图2中没有示出装置200的某些可选模块。然而,应当理解,上文参考本公开的方法所描述的各个特征同样适用于装置200。而且,装置200中的各个模块可以是硬件模块,也可以是软件模块。例如,在某些实施例中,装置200可以部分或者全部利用软件和/或固件来实现,例如被实现为包含在计算机可读介质上的计算机程序产品。备选地或附加地,装置200可以部分或者全部基于硬件来实现,例如被实现为集成电路(IC)、专用集成电路(ASIC)、片上系统(SOC)、现场可编程门阵列(FPGA)等。本发明的范围在此方面不受限制。
下面参考图3,其图示了适于实现本公开的示例实施例的计算机系统300的框图。如图3所示,计算机系统300包括中央处理单元(CPU)301,其可以根据存储在只读存储器(ROM)302中的程序或者从存储部分308加载到随机访问存储器(RAM)303中的程序而执行各种适当的动作和处理。在RAM 303中,还存储有装置200操作所需的各种程序和数据。CPU301、ROM 302以及RAM 303通过总线304彼此相连。输入/输出(I/O)接口305也连接至总线304。
以下部件连接至I/O接口305:包括键盘、鼠标等的输入部分306;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分307;包括硬盘等的存储部分308;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分309。通信部分309经由诸如因特网的网络执行通信处理。驱动器310也根据需要连接至I/O接口305。可拆卸介质311,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器310上,以便于从其上读出的计算机程序根据需要被安装入存储部分308。
特别地,根据本公开的实施例,参考图1描述的方法100可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,所述计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括计算机可执行指令,所述计算机可执行指令在被执行时使得计算机执行方法100的任意步骤。
综上所述,根据上述本公开的实施例,提供了一种用于对块对象执行批量故障回复的方法和装置。与现有技术相比,本公开的实施例能够控制在一次批量故障回复中处理的块对象的数量,并且动态调整两次批量故障回复之间的延迟时间,从而避免在短期内给正在启动的存储处理器带来巨大的压力。同时在相同文件系统上的全部块对象的故障回复能够在一次批量处理中完成,从而确保了基本的一致性。可以预见,即使存储产品在将来进一步增加其块对象的数量,本公开的实施例能够保证系统处于正常运行的状态。
一般而言,本公开的各种示例实施例可以在硬件或专用电路、软件、逻辑,或其任何组合中实施。某些方面可以在硬件中实施,而其他方面可以在可以由控制器、微处理器或其他计算设备执行的固件或软件中实施。当本公开的实施例的各方面被图示或描述为框图、流程图或使用某些其他图形表示时,将理解此处描述的方框、装置、系统、技术或方法可以作为非限制性的示例在硬件、软件、固件、专用电路或逻辑、通用硬件或控制器或其他计算设备,或其某些组合中实施。
而且,流程图中的各框可以被看作是方法步骤,和/或计算机程序代码的操作生成的操作,和/或理解为执行相关功能的多个耦合的逻辑电路元件。例如,本公开的实施例包括计算机程序产品,该计算机程序产品包括有形地实现在机器可读介质上的计算机程序,该计算机程序包含被配置为实现上文描述方法的程序代码。
在公开的上下文内,机器可读介质可以是包含或存储用于或有关于指令执行系统、装置或设备的程序的任何有形介质。机器可读介质可以是机器可读信号介质或机器可读存储介质。机器可读介质可以包括但不限于电子的、磁的、光学的、电磁的、红外的或半导体系统、装置或设备,或其任意合适的组合。机器可读存储介质的更详细示例包括带有一根或多根导线的电气连接、便携式计算机磁盘、硬盘、随机存取存取器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、光存储设备、磁存储设备,或其任意合适的组合。
用于实现本公开的方法的计算机程序代码可以用一种或多种编程语言编写。这些计算机程序代码可以提供给通用计算机、专用计算机或其他可编程的数据处理装置的处理器,使得程序代码在被计算机或其他可编程的数据处理装置执行的时候,引起在流程图和/或框图中规定的功能/操作被实施。程序代码可以完全在计算机上、部分在计算机上、作为独立的软件包、部分在计算机上且部分在远程计算机上或完全在远程计算机或服务器上执行。
另外,尽管操作以特定顺序被描绘,但这并不应该理解为要求此类操作以示出的特定顺序或以相继顺序完成,或者执行所有图示的操作以获取期望结果。在某些情况下,多任务或并行处理会是有益的。同样地,尽管上述讨论包含了某些特定的实施细节,但这并不应解释为限制任何发明或权利要求的范围,而应解释为对可以针对特定发明的特定实施例的描述。本说明书中在分开的实施例的上下文中描述的某些特征也可以整合实施在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以分离地在多个实施例或在任意合适的子组合中实施。
针对前述本公开的示例实施例的各种修改、改变将在连同附图查看前述描述时对相关技术领域的技术人员变得明显。任何及所有修改将仍落入非限制的和本公开的示例实施例范围。此外,前述说明书和附图存在启发的益处,涉及本公开的这些实施例的技术领域的技术人员将会想到此处阐明的本公开的其他实施例。
将会理解,本法明的实施例不限于公开的特定实施例,并且修改和其他实施例都应包含于所附的权利要求范围内。尽管此处使用了特定的术语,但是它们仅在通用和描述的意义上使用,而并不用于限制目的。
Claims (21)
1.一种用于对块对象执行批量故障回复的方法,包括:
对既有文件系统中的一个或多个文件系统的部分块对象执行批量故障回复;
基于记录的已执行批量故障回复的块对象的数量,确定执行下一次批量故障回复所需要的延迟时间;以及
在所述延迟时间之后,对剩余块对象执行所述下一次批量故障回复。
2.根据权利要求1所述的方法,其中当存储处理器启动时,建立所述既有文件系统的列表,以对所述既有文件系统中的一个或多个文件系统执行批量故障回复。
3.根据权利要求2所述的方法,其中对既有文件系统中的一个或多个文件系统的部分块对象执行批量故障回复包括:
遍历所述列表,以查找块对象需要被执行故障回复的当前文件系统;以及
对所述当前文件系统上的部分块对象执行批量故障回复。
4.根据权利要求3所述的方法,其中对既有文件系统中的一个或多个文件系统的部分块对象执行批量故障回复还包括:
基于查找到的文件系统的数量,停止所述批量故障回复。
5.根据权利要求4所述的方法,其中基于查找到的文件系统的数量,停止所述批量故障回复包括:
比较查找到的所述文件系统的数量和第一阈值;以及
在所述文件系统的数量大于所述第一阈值时,停止所述批量故障回复。
6.根据权利要求1所述的方法,其中对既有文件系统中的一个或多个文件系统的部分块对象执行批量故障回复还包括:
在同一次批量故障回复中,执行相同文件系统上的全部块对象的故障回复。
7.根据权利要求1所述的方法,其中对既有文件系统中的一个或多个文件系统的部分块对象执行批量故障回复还包括:
记录已触发故障回复的块对象的数量;以及
基于所述块对象的数量,停止所述批量故障回复。
8.根据权利要求7所述的方法,其中基于所述块对象的数量,停止所述批量故障回复包括:
比较所述块对象的数量和第二阈值;以及
在所述块对象的数量大于所述第二阈值时,停止所述批量故障回复。
9.根据权利要求1所述的方法,其中基于记录的已执行批量故障回复的块对象的数量,确定执行下一次批量故障回复所需要的延迟时间包括:
记录在最近的一次批量故障回复中已触发故障回复的块对象的第一数量;以及
计算在最近的预定数目次批量故障回复中已触发故障回复的块对象的第二数量。
10.根据权利要求9所述的方法,其中基于记录的已执行批量故障回复的块对象的数量,确定执行下一次批量故障回复所需要的延迟时间还包括:
基于所述第一数量和所述第二数量,计算执行下一次批量故障回复所需要的延迟时间。
11.一种用于对块对象执行批量故障回复的装置,包括:
处理模块,被配置为对既有文件系统中的一个或多个文件系统的部分块对象执行批量故障回复;
延时确定模块,被配置为基于记录的已执行批量故障回复的块对象的数量,确定执行下一次批量故障回复所需要的延迟时间;以及
延时处理模块,被配置为在所述延迟时间之后,对剩余块对象执行所述下一次批量故障回复。
12.根据权利要求11所述的装置,其中当存储处理器启动时,所述处理模块建立所述既有文件系统的列表,以对所述既有文件系统中的一个或多个文件系统执行批量故障回复。
13.根据权利要求12所述的装置,其中所述处理模块包括:
查找单元,被配置为遍历所述列表,以查找块对象需要被执行故障回复的当前文件系统;以及
处理单元,被配置为对所述当前文件系统上的部分块对象执行批量故障回复。
14.根据权利要求13所述的装置,其中所述处理模块还包括:
第一停止单元,被配置为基于查找到的文件系统的数量,停止所述批量故障回复。
15.根据权利要求14所述的装置,其中所述第一停止单元被配置为:
比较查找到的所述文件系统的数量和第一阈值;以及
在所述文件系统的数量大于所述第一阈值时,停止所述批量故障回复。
16.根据权利要求11所述的装置,其中所述处理模块还被配置为:
在同一次批量故障回复中,执行相同文件系统上的全部块对象的故障回复。
17.根据权利要求11所述的装置,其中所述处理模块还包括:
第一记录单元,被配置为记录已触发故障回复的块对象的数量;以及
第二停止单元,被配置为基于所述块对象的数量,停止所述批量故障回复。
18.根据权利要求17所述的装置,其中所述第二停止单元被配置为:
比较所述块对象的数量和第二阈值;以及
在所述块对象的数量大于所述第二阈值时,停止所述批量故障回复。
19.根据权利要求11所述的装置,其中所述延时确定模块包括:
第二记录单元,被配置为记录在最近的一次批量故障回复中已触发故障回复的块对象的第一数量;以及
第一计算单元,被配置为计算在最近的预定数目次批量故障回复中已触发故障回复的块对象的第二数量。
20.根据权利要求19所述的装置,其中所述延时确定模块还包括:
第二计算单元,被配置为基于所述第一数量和所述第二数量,计算执行下一次批量故障回复所需要的延迟时间。
21.一种非瞬态计算机可读介质,其包括计算机可执行指令,所述计算机可执行指令在被执行时使得计算机执行根据权利要求1至10任一项所述的方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510178736.2A CN106155846B (zh) | 2015-04-15 | 2015-04-15 | 对块对象执行批量故障回复的方法和装置 |
US15/095,953 US9940207B2 (en) | 2015-04-15 | 2016-04-11 | Failing back block objects in batch |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510178736.2A CN106155846B (zh) | 2015-04-15 | 2015-04-15 | 对块对象执行批量故障回复的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106155846A CN106155846A (zh) | 2016-11-23 |
CN106155846B true CN106155846B (zh) | 2019-06-28 |
Family
ID=57129786
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510178736.2A Active CN106155846B (zh) | 2015-04-15 | 2015-04-15 | 对块对象执行批量故障回复的方法和装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9940207B2 (zh) |
CN (1) | CN106155846B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10133643B2 (en) | 2015-05-05 | 2018-11-20 | International Business Machines Corporation | Resynchronizing to a first storage system after a failover to a second storage system mirroring the first storage system |
US10769040B2 (en) * | 2016-11-21 | 2020-09-08 | Sap Se | Logical equivalent replication with snapshot based fallback of database systems |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102016852A (zh) * | 2008-03-05 | 2011-04-13 | 美国日本电气实验室公司 | 内容可寻址存储系统和方法 |
CN102024015A (zh) * | 2009-09-18 | 2011-04-20 | 软件股份公司 | 用于批量删除数据库系统的数据记录的方法 |
CN102096722A (zh) * | 2011-03-21 | 2011-06-15 | 成都市华为赛门铁克科技有限公司 | 文件存储方法和装置 |
Family Cites Families (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6782537B1 (en) * | 1999-09-23 | 2004-08-24 | International Business Machines Corporation | Establishing a communicator across multiple processes in a multithreaded computing environment |
US7231403B1 (en) * | 2002-11-15 | 2007-06-12 | Messageone, Inc. | System and method for transformation and analysis of messaging data |
US7594053B2 (en) * | 2003-12-12 | 2009-09-22 | Alcatel-Lucent Usa Inc. | Adaptive object level locking |
JP4462969B2 (ja) * | 2004-03-12 | 2010-05-12 | 株式会社日立製作所 | フェイルオーバクラスタシステム及びフェイルオーバ方法 |
US7496726B1 (en) * | 2005-04-18 | 2009-02-24 | Sun Microsystems, Inc. | Controlling contention via transactional timers among conflicting transactions issued by processors operating in insistent or polite mode |
US7984444B1 (en) * | 2005-09-15 | 2011-07-19 | Oracle America, Inc. | Composite abortable locks |
US7475228B2 (en) * | 2006-01-03 | 2009-01-06 | Sun Microsystems, Inc. | Ensuring progress in a system that supports execution of obstruction-free operations |
US8176491B1 (en) * | 2006-08-04 | 2012-05-08 | Oracle America, Inc. | Fast synchronization of simple synchronized methods |
US7861042B2 (en) * | 2006-10-23 | 2010-12-28 | Hewlett-Packard Development Company, L.P. | Processor acquisition of ownership of access coordinator for shared resource |
US7912965B2 (en) * | 2007-10-12 | 2011-03-22 | Informed Control Inc. | System and method for anomalous directory client activity detection |
US8032713B2 (en) * | 2007-12-10 | 2011-10-04 | International Business Machines Corporation | Structure for handling data access |
US8539486B2 (en) * | 2009-07-17 | 2013-09-17 | International Business Machines Corporation | Transactional block conflict resolution based on the determination of executing threads in parallel or in serial mode |
US8706980B2 (en) * | 2009-07-30 | 2014-04-22 | Cleversafe, Inc. | Method and apparatus for slice partial rebuilding in a dispersed storage network |
US9411810B2 (en) * | 2009-08-27 | 2016-08-09 | International Business Machines Corporation | Method and apparatus for identifying data inconsistency in a dispersed storage network |
US8271434B2 (en) * | 2009-10-01 | 2012-09-18 | Verizon Patent And Licensing Inc. | Central data store process configuration |
US8402008B2 (en) * | 2010-09-10 | 2013-03-19 | International Business Machines Corporation | Handling file operations with low persistent storage space |
US9032163B2 (en) * | 2010-09-22 | 2015-05-12 | Novell, Inc. | Data access management |
US9531597B2 (en) * | 2010-10-28 | 2016-12-27 | Hewlett Packard Enterprise Development Lp | Methods and systems to maintain data coherency |
US9805108B2 (en) * | 2010-12-23 | 2017-10-31 | Mongodb, Inc. | Large distributed database clustering systems and methods |
US8510597B2 (en) * | 2011-02-08 | 2013-08-13 | Wisconsin Alumni Research Foundation | Providing restartable file systems within computing devices |
US9116759B2 (en) * | 2011-02-18 | 2015-08-25 | Ab Initio Technology Llc | Restarting data processing systems |
JP5754301B2 (ja) * | 2011-08-25 | 2015-07-29 | 日本電気株式会社 | トランザクション同時実行制御システム、トランザクション同時実行制御方法、およびプログラム |
US20130179400A1 (en) * | 2012-01-09 | 2013-07-11 | Morgan Stanley | Intelligent data publishing framework for common data updates in large scale networks of heterogeneous computer systems |
US8719225B1 (en) * | 2012-01-17 | 2014-05-06 | Amazon Technologies, Inc. | System and method for log conflict detection and resolution in a data store |
CN104067219B (zh) * | 2012-03-15 | 2019-08-02 | 慧与发展有限责任合伙企业 | 确定用于作业复制在存储装置上存储的对象的时间表 |
IN2013CH04372A (zh) * | 2013-09-26 | 2015-04-03 | Infosys Ltd | |
US9460143B2 (en) * | 2014-02-14 | 2016-10-04 | Oracle International Corporation | Methods, systems, and computer readable media for a multi-view data construct for lock-free operations and direct access |
US9513946B2 (en) * | 2014-06-27 | 2016-12-06 | Vmware, Inc. | Maintaining high availability during network partitions for virtual machines stored on distributed object-based storage |
-
2015
- 2015-04-15 CN CN201510178736.2A patent/CN106155846B/zh active Active
-
2016
- 2016-04-11 US US15/095,953 patent/US9940207B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102016852A (zh) * | 2008-03-05 | 2011-04-13 | 美国日本电气实验室公司 | 内容可寻址存储系统和方法 |
CN102024015A (zh) * | 2009-09-18 | 2011-04-20 | 软件股份公司 | 用于批量删除数据库系统的数据记录的方法 |
CN102096722A (zh) * | 2011-03-21 | 2011-06-15 | 成都市华为赛门铁克科技有限公司 | 文件存储方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
US20160306717A1 (en) | 2016-10-20 |
CN106155846A (zh) | 2016-11-23 |
US9940207B2 (en) | 2018-04-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10817501B1 (en) | Systems and methods for using a reaction-based approach to managing shared state storage associated with a distributed database | |
US9722873B2 (en) | Zero-downtime, reversible, client-driven service migration | |
RU2702268C2 (ru) | Масштабируемые пулы хранения данных | |
US20140280766A1 (en) | Method and System for Event State Management in Stream Processing | |
CN108139931A (zh) | 通过重映射同步来加速任务子图 | |
US10896058B2 (en) | Managing virtual clustering environments according to requirements | |
US9298373B2 (en) | Placement and movement of sub-units of a storage unit in a tiered storage environment | |
US11212175B2 (en) | Configuration management for cloud storage system and method | |
US9384044B2 (en) | Intelligent inclusion/exclusion automation | |
CN106155846B (zh) | 对块对象执行批量故障回复的方法和装置 | |
US9678830B2 (en) | Recovery improvement for quiesced systems | |
US11194771B2 (en) | Methods for transferring reserves when moving virtual machines across systems | |
US9372855B1 (en) | Transactional control of RDBMS database definition language operations | |
US20110289059A1 (en) | Ordering volumes and tracks for data transfer based on usage characteristics | |
CN105528303B (zh) | 用于管理存储系统的方法和装置 | |
CN109379235B (zh) | 基于高并发请求场景创建云主机的方法 | |
US12007965B2 (en) | Method, device and storage medium for deduplicating entity nodes in graph database | |
US20220405135A1 (en) | Scheduling in a container orchestration system utilizing hardware topology hints | |
CN105635276B (zh) | 云平台分布式物理卷对象迁移到非分布式存储的方法 | |
US8966133B2 (en) | Determining a mapping mode for a DMA data transfer | |
US10831828B2 (en) | Method and system for improving datacenter operations utilizing layered information model | |
US10338828B1 (en) | Shared storage based host device state transition control | |
US9697036B2 (en) | Method and apparatus for generating unique identifier for distributed computing environment | |
US12081625B2 (en) | Session based data persistency | |
US11366830B1 (en) | Techniques for live repartitioning of cross-service database shards |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20200413 Address after: Massachusetts, USA Patentee after: EMC IP Holding Company LLC Address before: Massachusetts, USA Patentee before: EMC Corp. |
|
TR01 | Transfer of patent right |