CN107357688B - 分布式***及其故障恢复方法和装置 - Google Patents

分布式***及其故障恢复方法和装置 Download PDF

Info

Publication number
CN107357688B
CN107357688B CN201710630823.6A CN201710630823A CN107357688B CN 107357688 B CN107357688 B CN 107357688B CN 201710630823 A CN201710630823 A CN 201710630823A CN 107357688 B CN107357688 B CN 107357688B
Authority
CN
China
Prior art keywords
metadata
redo log
master node
mirror image
metadata mirror
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
Application number
CN201710630823.6A
Other languages
English (en)
Other versions
CN107357688A (zh
Inventor
褚建辉
卢申朋
刘东辉
王新栋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba China Co Ltd
Original Assignee
Guangzhou Shenma Mobile Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guangzhou Shenma Mobile Information Technology Co Ltd filed Critical Guangzhou Shenma Mobile Information Technology Co Ltd
Priority to CN201710630823.6A priority Critical patent/CN107357688B/zh
Publication of CN107357688A publication Critical patent/CN107357688A/zh
Priority to PCT/CN2018/097262 priority patent/WO2019020081A1/zh
Application granted granted Critical
Publication of CN107357688B publication Critical patent/CN107357688B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1464Management of the backup or restore process for networked environments

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Retry When Errors Occur (AREA)

Abstract

本发明公开了一种分布式***及其故障恢复方法和装置。其中,从属节点和/或主节点获取并保存记录有主节点上某一时刻的调度信息和***状态的元数据镜像;主节点获取并保存记录有时刻之后主节点所有操作的重做日志;以及主节点在故障恢复时调用元数据镜像及其对应的重做日志进行故障恢复。由此,在主节点发生故障时,就可以根据之前记录的元数据镜像和重做日志快速将主节点恢复到故障前的状态。

Description

分布式***及其故障恢复方法和装置
技术领域
本发明涉及分布式技术领域,特别是涉及一种分布式***及其故障恢复方法和装置。
背景技术
分布式***是把多台机器有机的组合、连接起来,让其协同完成一项任务,例如计算任务、存储任务。其是建立在网络之上的软件***。现有的分布式***大多是主从架构,图1是示出了采用主从架构的分布式***的结构示意图。如图1所示,主从架构的分布式***大多由主节点(master)和多个从属节点(slave)构成。主节点作为分布式***的中心调度节点,通常兼具元数据存储与查询、集群节点状态管理、决策制定与任务下发等功能,由于主节点管理的元数据是***中较为重要的数据,主节点上的数据的丢失对***的影响较大。
因此,需要一种故障切换(failover)机制,使得当主节点遇到未知错误发生崩溃时,能够将主节点恢复到错误发生之前的状态,避免主节点数据的丢失。
发明内容
本发明提供了一种针对分布式***中的主节点的故障恢复方案,通过获取主节点在一个或多个时刻下的元数据镜像,并在重做日志中记录主节点的操作,使得在主节点发生故障时,可以根据之前记录的元数据镜像和重做日志将主节点快速恢复到故障前的状态。
根据本发明的一个方面,提供了一种分布式***,包括用于调度任务并管理***状态的主节点和用于运行被调度的任务的多个从属节点,其中,一个或多个从属节点和/或主节点获取并保存记录有主节点上某一时刻的调度信息和***状态的元数据镜像;主节点获取并保存记录有该时刻之后主节点所有操作的重做日志;以及主节点在故障恢复时调用元数据镜像及其对应的重做日志进行故障恢复。
由此,根据之前记录的元数据镜像和重做日志可以快速将主节点恢复到故障前的状态,与仅通过记录日志文件的方式相比可以提高恢复效率。
优选地,一个或多个从属节点和/或主节点在主节点和/或外部命令的触发下进行元数据镜像的获取和保存操作。由此,可以根据分布式***的特性,设置不同的触发方式来触发元数据镜像的获取和保存操作。
优选地,主节点在其每一次操作被记录在重做日志内并被存储之后才响应从属节点的请求。由此确保重做日志能够完整记录主节点的每一次操作。
优选地,一个或多个从属节点和/或主节点持续获取并保存主节点在多个不同时刻的元数据镜像,并且主节点持续获取并保存分别对应于多个不同时刻的重做日志。主节点可以在故障恢复时调用最新的元数据镜像及其对应的重做日志进行故障恢复,而当最新的元数据镜像和/或其对应的重做日志不可用时,调用元数据镜像及其对应的重做日志都可用的最近时刻的数据进行故障恢复。由此,通过保存多份不同时刻的内存镜像和对应的重做日志,可以提高故障恢复时的容错率。
优选地,一个或多个从属节点和/或主节点直接获取并保存主节点在某一时刻的内存状态作为元数据镜像。元数据镜像可以是按照任务分组进行存储的。由此,在后续恢复时可以根据分组高效地组织对应的元数据镜像。
根据本发明的另一个方面,还提供了一种分布式***的故障恢复装置,分布式***包括用于调度任务并管理***状态的主节点和用于运行任务的多个从属节点,该装置用于在主节点发生故障时进行故障恢复,并且包括:镜像获取单元,用于获取并保存记录有主节点上某一时刻的调度信息和***状态的元数据镜像;重做日志获取单元,用于获取并保存记录有时刻之后主节点所有操作的重做日志;以及故障恢复单元,用于在故障恢复时调用元数据镜像及其对应的重做日志进行故障恢复。
优选地,镜像获取单元在主节点、装置和/或外部命令的触发下进行元数据镜像的获取和保存操作。
优选地,主节点在其每一次操作被重做日志获取单元记录在重做日志内并存储之后才响应从属节点的请求。
优选地,镜像获取单元持续获取并保存主节点在多个不同时刻的元数据镜像,并且重做日志获取单元持续获取并保存分别对应于多个不同时刻的重做日志。
优选地,故障恢复单元在故障恢复时调用最新的元数据镜像及其对应的重做日志进行故障恢复。
优选地,故障恢复单元在最新的元数据镜像和/或其对应的重做日志不可用时,调用元数据镜像及其对应的重做日志都可用的最近时刻的数据进行故障恢复。
优选地,镜像获取单元直接获取并保存主节点在某一时刻的内存状态作为元数据镜像。
优选地,镜像获取单元按照任务分组对元数据镜像进行存储。
根据本发明的又一个方面,还提供了一种分布式***的故障恢复方法,分布式***包括用于运行任务的多个从属节点,该方法包括:获取并保存记录有某一时刻的调度信息和***状态的元数据镜像;获取并保存记录有时刻之后所有调度操作的重做日志;以及在故障恢复时调用元数据镜像及其对应的重做日志进行故障恢复。
优选地,持续获取并保存所述主节点在多个不同时刻的元数据镜像,并且持续获取并保存分别对应于所述多个不同时刻的重做日志。
优选地,在故障恢复时调用元数据镜像及其对应的重做日志进行故障恢复可以包括:在故障恢复时调用最新的元数据镜像及其对应的重做日志进行故障恢复;以及在最新的元数据镜像和/或其对应的重做日志不可用时,调用元数据镜像及其对应的重做日志都可用的最近时刻的数据进行故障恢复。
优选地,可以直接获取并保存主节点在某一时刻的内存状态作为元数据镜像。
本发明的分布式***及其故障恢复方法和装置,通过获取主节点在一个或多个时刻下的元数据镜像,并在重做日志中记录主节点的后续操作,使得在主节点发生故障时,可以根据之前记录的元数据镜像和重做日志将主节点快速恢复到故障前的状态。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1是示出了主从架构的分布式***的架构示意图。
图2是示出了根据本发明一实施例的故障恢复方法的示意性流程图。
图3是示出了连续保存多个元数据镜像以及重做日志的示意图。
图4是示出了根据本发明一实施例的故障恢复装置的结构的示意性方框图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
对于图1所示的主从架构的分布式***,由于主节点存储了***正常运行和调度所必须的数据,例如***状态数据和当前调度数据,因此其数据的丢失对***的影响极大。因此,需要一种故障恢复机制,使得当主节点遇到未知错误时,可以将主节点恢复到一个稳定可靠的状态。针对于此,可以记录主节点所有操作的日志文件,日志文件可以是持久化地存储在磁盘上。那么一旦主节点发生故障,即使丢失主节点的内存中所有数据,当下一次启动时,通过复现(replay)已经记录的日志文件,依然可以使主节点恢复到故障之前的状态。
该方案下主节点的操作流程如下:主节点每次执行操作前,可以将该操作记录到日志文件中,记录成功后再执行该操作,即可以基于该操作更新内存中的数据;发生故障时的恢复流程如下:读取日志文件,基于日志文件中记录的主节点的操作依次修改内存中的数据。这种仅通过记录写操作的日志文件的恢复方式实现简单,但其恢复流程所需时间极长。
为此,发明人在深入研究后发现,在记录主节点的操作的日志文件的过程中,可以穿插地获取主节点在某一时刻下的内存数据的镜像文件,镜像文件可以表征主节点在对应时刻下的当前状态数据,这样在主节点发生故障时,可以调用最近的镜像文件以及日志文件中在所调用的镜像文件所对应的时刻之后记录的操作,根据调用的数据就可以实现主节点的恢复,与仅通过记录日志文件的方式相比可以大幅缩短恢复所需时间。
基于上述构思,本发明提出了一种针对分布式***中的主节点的故障恢复方案,本发明的故障恢复方案可以由图1所示的分布式***实现。如图1所示,本发明的分布式***可以包括用于调度任务并管理***状态的主节点和用于运行被调度的任务的多个从属节点。主节点和从属节点均可以部署在服务器中,并且主节点可以部署在不同于从属节点的一个独立的服务器中,也可以和其中一个从属节点部署在同一个服务器中。作为优选实施例,不同的节点可以部署在不同的服务器中。图1示出的分布式***由一个主节点和多个从属节点构成,应该知道,本发明的分布式***还可以包括多个主节点,并且还可以包括除了主节点、从属节点之外的其它装置,例如备份主节点、故障恢复数据库等等。
下面就本发明的分布式***实现故障恢复方案的具体流程进行详细说明。图2是示出了根据本发明一实施例的故障恢复方法的示意性流程图。其中,图2所示的方法可以由图1所示的分布式***实现,具体地,可以由分布式***中的主节点实现。
参见图2,在步骤S210,获取并保存记录有主节点上某一时刻的调度信息和***状态的元数据镜像。
对于主从架构的分布式***来说,主节点崩溃之后,会导致整个分布式***不可用,因此考虑到主节点的重要性,主节点通常不直接运行具体任务,而是仅负责维持分布式***的运行以及任务的调度分配,具体任务可由从属节点执行。也就是说,主节点主要负责解析任务请求,分配资源,根据元数据定位目标数据或节点,具体任务由主节点指定的从属节点执行。其中,元数据是用于描述数据的数据,本发明中的元数据特指主节点负责保存和管理的数据。由于主节点用于调度任务并管理***状态,因此,元数据可以是指记录主节点上某一时刻的调度信息和***状态的数据。例如对于Hadoop分布式***而言,元数据可以是***相关描述数据、***状态数据、当前任务调度和状态数据等等,再例如对于分布式存储***而言,元数据可以是描述用户数据的状态信息(如存储位置)的数据。
获取到的主节点在某一时刻的元数据镜像可以是主节点在该时刻的内存状态的一个映射,因此可以直接获取并保存主节点在某一时刻的内存状态作为元数据镜像。具体实现上,可以通过Snapshot(磁盘快照)、dump(备份文件***)等方式获取主节点在某一时刻的元数据镜像。
获取元数据镜像的操作可以由主节点执行,也可以由一个或多个从属节点执行,还可以由分布式***中的备份主节点执行。所获取的元数据镜像可以持久化地存储在本地磁盘或分布式文件***中,例如可以持久化地存储在故障恢复数据库中。
作为本发明的一个可选实施例,主节点在调度任务时可以按照分组并发进行调度,此时所获取的元数据镜像可以是多个分组下的元数据镜像,因此,对于所获取的元数据镜像可以按照任务分组进行存储,将属于同一任务分组的元数据镜像存储在同一目录下,由此在后续恢复时可以根据分组高效地组织对应的元数据镜像。
在步骤S220,可以由主节点获取并保存记录有所述时刻之后主节点所有操作的重做日志。此处述及的操作可以是指主节点对元数据执行的操作,或者是主节点对其内存数据执行的操作。
对于主节点执行的每个操作,可以将其记录在重做日志(redo log)中。重做日志中可以顺序地记录有主节点的操作信息。对于主节点将要执行的每个操作,可以在该操作记录在重做日志中并持久化保存后,才由主节点执行该操作。如此使得在该操作执行过程中主节点出错时,可以根据重做日志中记录的数据恢复该操作。否则如果对于某一操作先执行再记录,在该操作执行过程中或者该操作记录、保存前出错时,则无法恢复这一操作,只能重新来过。
例如,在从属节点向主节点请求任务时(如计算任务、存储任务),主节点可以首先将向从属节点下发目标数据的这一操作记录在重做日志中,在记录并持久化保存成功后,主节点才响应于从属节点的请求,将目标数据发送给从属节点。换句话说,对于从属节点的请求,可以在主节点针对该请求的操作记录在重做日志内并被存储(持久化存储)之后,才响应从属节点的请求。
在步骤S230,在故障恢复时调用元数据镜像及其对应的重做日志进行故障恢复。
如上文所述,元数据镜像可以视为主节点在某一时刻的内存状态的映射,而重做日志记录着主节点的所有操作。因此,在主节点出现故障时,可以根据故障发生前所获取的元数据镜像以及重做日志中记录的在元数据镜像对应的时刻之后主节点故障发生之前这段时间内主节点的操作,进行故障恢复,将主节点恢复到故障发生前的状态。以重做日志记录在文件***为例,可以按照如下方式恢复:主节点重新启动后,首先遍历文件***中的元数据镜像目录,找到最近的一次元数据镜像,将其加载到内存,然后开始加载最新元数据镜像之后的重做日志,并开始重放(replay),如此在加载完成之后,整个恢复过程就完成了。
作为本发明的一个可选实施例,在保存主节点的元数据镜像时,可以保存多个对应于不同时刻的元数据镜像。在记录重做日志的过程中,可以周期性地或响应于满足预定的触发条件,执行一次元数据镜像的获取操作。上述触发条件可以是例如某个参数满足预定值,到达预定间隔,或是直接响应于外部的触发命令。例如,可以是在重做日志中每记录预定数量个操作,就执行一次元数据镜像的获取操作,也可以是每隔预定时间执行一次元数据镜像的获取操作等等。
进一步地,在将主节点的操作记录在重做日志中时,可以持续获取分别对应于多个不同时刻(即多个元数据镜像)的重做日志。图3是示出了持续保存多个元数据镜像文件及其对应的重做日志的原理示意图。
参见图3,首先可以获取t1时刻主节点的元数据镜像1,主节点在t1-t2之间的操作可以记录保存在重做日志1中,在t2时刻可以再次获取主节点的元数据镜像2,主节点在t2-t3之间的操作可以记录保存在重做日志2中,以此类推,可以得到分别对应于t1、t2、t3时刻的元数据镜像,以及分别对应于不同时刻的元数据镜像的重做日志。
由此,假设主节点在t4时刻发生崩溃,在故障恢复时主节点可以首先调用最新的元数据镜像(即t3时刻的元数据镜像)及其对应的重做日志(t3-t4段内的重做日志)进行故障恢复。假如最新的元数据镜像和重做日志不可用,则可以进一步调用次新的元数据镜(即t2时刻的元数据镜像)和重做日志(即t2-t3段内的重做日志)进行故障恢复,以此类推,可以通过不断回推直到获取可用的数据文件。由此,通过保存多份不同时刻的内存镜像和对应的重做日志,可以提高故障恢复时的容错率。
换句话说,本申请的方案能够以一定的条件或是命令触发对元数据镜像的获取和存储(例如,保存t3时刻的状态),随即便启动对重做日志的持续记录(即,记录t3之后的所有操作)。在t4时刻发生故障之后,可以通过恢复t3时刻的状态再回放t3之后的所有操作使得主节点快速回到t4时刻的状态。
在获取主节点在某一时刻的元数据镜像时,例如如图3所示,在t1时刻获取元数据镜像1时,往往不会停止主节点的服务,而获取元数据镜像1需要一定的时间,因此t1时刻所获取的元数据镜像1很可能包含了t1时刻之后重做日志1中的一些操作,因此在t2时刻主节点发生故障时,使用t1时刻的元数据镜像1以及对应的重做日志1进行恢复时,很可能最后恢复的主节点的状态与恢复前的状态不一致。
因此,作为本发明的一个可选实施例,在获取某一时刻的元数据镜像的过程中,可以实时地记录此时重做日志中记录的操作的时间,在某一时刻的元数据镜像获取完毕后,可以从重做日志中去除相应的操作,以避免获取的元数据镜像包括此后重做日志中所记录的某些操作的现象,从而使得元数据镜像能够和其对应的重做日志在时间上严格对照。
至此已经结合图2-3详细描述本发明的故障恢复方法。另外,本发明的故障恢复方案还可以由一种故障恢复装置实现。图4示出了根据本发明一个实施例的故障恢复装置的结构框图。其中,故障恢复装置400的功能模块可以由实现本发明原理的硬件、软件或硬件和软件的结合来实现。本领域技术人员可以理解的是,图4所描述的功能模块可以组合起来或者划分成子模块,从而实现上述发明的原理。因此,本文的描述可以支持对本文描述的功能模块的任何可能的组合、或者划分、或者更进一步的限定。
图4所示的故障恢复装置400可以用来实现图2所示的故障恢复方法,下面仅就故障恢复装置400可以具有的功能模块以及各功能模块可以执行的操作做简要说明,对于其中涉及的细节部分可以参见上文结合图2的描述,这里不再赘述。需要说明的是,故障恢复装置400可以是主节点本身,也可以是备份主节点。
如图4所示,本发明的故障恢复装置可以包括镜像获取单元410、重做日志获取单元420以及故障恢复单元430。镜像获取单元410可以获取并保存记录有主节点上某一时刻的调度信息和***状态的元数据镜像,重做日志获取单元420可以获取并保存记录有时刻之后主节点所有操作的重做日志,故障恢复单元430可以在故障恢复时调用元数据镜像及其对应的重做日志进行故障恢复。
优选地,镜像获取单元410可以在主节点、装置和/或外部命令的触发下进行元数据镜像的获取和保存操作。镜像获取单元410可以直接获取并保存主节点在某一时刻的内存状态作为元数据镜像。进一步地,镜像获取单元410可以按照任务分组对元数据镜像进行存储。
优选地,主节点在其每一次操作被重做日志获取单元420记录在重做日志内并存储之后才响应从属节点的新请求。
优选地,镜像获取单元410持续获取并保存主节点在多个不同时刻的元数据镜像,并且重做日志获取单元420持续获取并保存分别对应于多个不同时刻的重做日志。此时,故障恢复单元430在故障恢复时调用最新的元数据镜像及其对应的重做日志进行故障恢复,故障恢复单元430在最新的元数据镜像和/或其对应的重做日志不可用时,可以调用元数据镜像及其对应的重做日志都可用的最近时刻的数据进行故障恢复。
上文中已经参考附图详细描述了根据本发明的分布式***及其故障恢复方法和装置。
此外,根据本发明的方法还可以实现为一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括用于执行本发明的上述方法中限定的上述各步骤的计算机程序代码指令。
或者,本发明还可以实施为一种非暂时性机器可读存储介质(或计算机可读存储介质、或机器可读存储介质),其上存储有可执行代码(或计算机程序、或计算机指令代码),当所述可执行代码(或计算机程序、或计算机指令代码)被电子设备(或计算设备、服务器等)的处理器执行时,使所述处理器执行根据本发明的上述方法的各个步骤。
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。
附图中的流程图和框图显示了根据本发明的多个实施例的***和方法的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标记的功能也可以以不同于附图中所标记的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (20)

1.一种分布式***,包括用于调度任务并管理***状态的主节点和用于运行被调度的任务的多个从属节点,其中,
一个或多个所述从属节点和/或所述主节点获取并保存记录有所述主节点上某一时刻的调度信息和***状态的元数据镜像;
所述主节点获取并保存记录有所述时刻之后所述主节点所有操作的重做日志;以及
所述主节点在故障恢复时调用所述元数据镜像及其对应的重做日志进行故障恢复,
其中,主节点在调度任务时按照分组并发进行调度,所述元数据镜像是多个分组下的元数据镜像,其中,属于同一任务分组的元数据镜像存储在同一目录下,并且所述主节点在故障恢复时根据所述分组组织对应的元数据镜像,
其中,所述主节点在故障恢复时调用所述元数据镜像及其对应的重做日志进行故障恢复包括:
所述主节点在重新启动后找到最近一次的所述元数据镜像并进行内存加载;
加载所述元数据镜像之后的重做日志;
重放所述重做日志上记录的操作。
2.如权利要求1所述的分布式***,其中,一个或多个所述从属节点和/或所述主节点在所述主节点和/或外部命令的触发下进行所述元数据镜像的获取和保存操作。
3.如权利要求1所述的分布式***,其中,所述主节点在其每一次操作被记录在所述重做日志内并被存储之后才响应所述从属节点的请求。
4.如权利要求1所述的分布式***,其中,一个或多个所述从属节点和/或所述主节点持续获取并保存所述主节点在多个不同时刻的元数据镜像,并且
所述主节点持续获取并保存分别对应于所述多个不同时刻的重做日志。
5.如权利要求4所述的分布式***,其中,所述主节点在故障恢复时调用最新的所述元数据镜像及其对应的重做日志进行故障恢复。
6.如权利要求4所述的分布式***,其中,所述主节点在最新的元数据镜像和/或其对应的重做日志不可用时,调用元数据镜像及其对应的重做日志都可用的最近时刻的数据进行故障恢复。
7.如权利要求1所述的分布式***,其中,一个或多个所述从属节点和/或所述主节点直接获取并保存所述主节点在某一时刻的内存状态作为所述元数据镜像。
8.如权利要求1所述的分布式***,其中,所述元数据镜像是按照任务分组进行存储的。
9.一种分布式***的故障恢复装置,所述分布式***包括用于调度任务并管理***状态的主节点和用于运行任务的多个从属节点,该装置用于在所述主节点发生故障时进行故障恢复,并且包括:
镜像获取单元,用于获取并保存记录有所述主节点上某一时刻的调度信息和***状态的元数据镜像;
重做日志获取单元,用于获取并保存记录有所述时刻之后所述主节点所有操作的重做日志;以及
故障恢复单元,用于在故障恢复时调用所述元数据镜像及其对应的重做日志进行故障恢复,
其中,主节点在调度任务时按照分组并发进行调度,所述元数据镜像是多个分组下的元数据镜像,其中,属于同一任务分组的元数据镜像存储在同一目录下,并且所述故障恢复单元在故障恢复时根据所述分组组织对应的元数据镜像,
其中,所述故障恢复单元用于:
所述主节点在重新启动后找到最近一次的所述元数据镜像并进行内存加载;
加载所述元数据镜像之后的所述重做日志;
重放所述重做日志上记录的操作。
10.如权利要求9所述的装置,其中,所述镜像获取单元在所述主节点、所述装置和/或外部命令的触发下进行所述元数据镜像的获取和保存操作。
11.如权利要求9所述的装置,其中,所述主节点在其每一次操作被所述重做日志获取单元记录在所述重做日志内并存储之后才响应所述从属节点的请求。
12.如权利要求9所述的装置,其中,所述镜像获取单元持续获取并保存所述主节点在多个不同时刻的元数据镜像,并且
所述重做日志获取单元持续获取并保存分别对应于所述多个不同时刻的重做日志。
13.如权利要求12所述的装置,其中,所述故障恢复单元在故障恢复时调用最新的所述元数据镜像及其对应的重做日志进行故障恢复。
14.如权利要求12所述的装置,其中,所述故障恢复单元在最新的元数据镜像和/或其对应的重做日志不可用时,调用元数据镜像及其对应的重做日志都可用的最近时刻的数据进行故障恢复。
15.如权利要求9所述的装置,其中,所述镜像获取单元直接获取并保存所述主节点在某一时刻的内存状态作为所述元数据镜像。
16.如权利要求9所述的装置,其中,所述镜像获取单元按照任务分组对所述元数据镜像进行存储。
17.一种分布式***的故障恢复方法,所述分布式***包括用于运行任务的多个从属节点,该方法包括:
获取并保存记录有某一时刻的调度信息和***状态的元数据镜像;
获取并保存记录有所述时刻之后所有调度操作的重做日志;以及
在故障恢复时调用所述元数据镜像及其对应的重做日志进行故障恢复,
其中,主节点在调度任务时按照分组并发进行调度,所述元数据镜像是多个分组下的元数据镜像,其中,属于同一任务分组的元数据镜像存储在同一目录下,并且所述主节点在故障恢复时根据所述分组组织对应的元数据镜像,
其中,在故障恢复时调用所述元数据镜像及其对应的重做日志进行故障恢复包括:
所述主节点在重新启动后找到最近一次的所述元数据镜像并进行内存加载;
加载所述元数据镜像之后的重做日志;
重放所述重做日志上记录的操作。
18.如权利要求17所述的方法,其中,
持续获取并保存主节点在多个不同时刻的元数据镜像,并且
持续获取并保存分别对应于所述多个不同时刻的重做日志。
19.如权利要求18所述的方法,其中,在故障恢复时调用所述元数据镜像及其对应的重做日志进行故障恢复包括:
在故障恢复时调用最新的所述元数据镜像及其对应的重做日志进行故障恢复;以及
在最新的元数据镜像和/或其对应的重做日志不可用时,调用元数据镜像及其对应的重做日志都可用的最近时刻的数据进行故障恢复。
20.如权利要求17所述的方法,其中,直接获取并保存主节点在某一时刻的内存状态作为所述元数据镜像。
CN201710630823.6A 2017-07-28 2017-07-28 分布式***及其故障恢复方法和装置 Active CN107357688B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201710630823.6A CN107357688B (zh) 2017-07-28 2017-07-28 分布式***及其故障恢复方法和装置
PCT/CN2018/097262 WO2019020081A1 (zh) 2017-07-28 2018-07-26 分布式***及其故障恢复方法、装置、产品和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710630823.6A CN107357688B (zh) 2017-07-28 2017-07-28 分布式***及其故障恢复方法和装置

Publications (2)

Publication Number Publication Date
CN107357688A CN107357688A (zh) 2017-11-17
CN107357688B true CN107357688B (zh) 2020-06-12

Family

ID=60285161

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710630823.6A Active CN107357688B (zh) 2017-07-28 2017-07-28 分布式***及其故障恢复方法和装置

Country Status (2)

Country Link
CN (1) CN107357688B (zh)
WO (1) WO2019020081A1 (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107357688B (zh) * 2017-07-28 2020-06-12 广东神马搜索科技有限公司 分布式***及其故障恢复方法和装置
CN108390771B (zh) * 2018-01-25 2021-04-16 ***股份有限公司 一种网络拓扑重建方法和装置
CN108427728A (zh) * 2018-02-13 2018-08-21 百度在线网络技术(北京)有限公司 元数据的管理方法、设备及计算机可读介质
CN109189480B (zh) * 2018-07-02 2021-11-09 新华三技术有限公司成都分公司 文件***启动方法及装置
CN109144792A (zh) * 2018-10-08 2019-01-04 郑州云海信息技术有限公司 数据恢复方法、装置及、***及计算机可读存储介质
CN109656911B (zh) * 2018-12-11 2023-08-01 江苏瑞中数据股份有限公司 分布式并行处理数据库***及其数据处理方法
CN111104226B (zh) * 2019-12-25 2024-01-26 东北大学 一种多租户服务资源的智能管理***及方法
CN112379977A (zh) * 2020-07-10 2021-02-19 中国航空工业集团公司西安飞行自动控制研究所 一种基于时间触发的任务级故障处理方法
CN111880969B (zh) * 2020-07-30 2024-06-04 上海达梦数据库有限公司 存储节点恢复方法、装置、设备和存储介质
CN115563028B (zh) * 2022-12-06 2023-03-14 苏州浪潮智能科技有限公司 一种数据缓存方法、装置、设备和存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8401998B2 (en) * 2010-09-02 2013-03-19 Microsoft Corporation Mirroring file data
CN103294701A (zh) * 2012-02-24 2013-09-11 联想(北京)有限公司 一种分布式文件***以及数据处理的方法
CN104216802A (zh) * 2014-09-25 2014-12-17 北京金山安全软件有限公司 一种内存数据库恢复方法和设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107357688B (zh) * 2017-07-28 2020-06-12 广东神马搜索科技有限公司 分布式***及其故障恢复方法和装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8401998B2 (en) * 2010-09-02 2013-03-19 Microsoft Corporation Mirroring file data
CN103294701A (zh) * 2012-02-24 2013-09-11 联想(北京)有限公司 一种分布式文件***以及数据处理的方法
CN104216802A (zh) * 2014-09-25 2014-12-17 北京金山安全软件有限公司 一种内存数据库恢复方法和设备

Also Published As

Publication number Publication date
WO2019020081A1 (zh) 2019-01-31
CN107357688A (zh) 2017-11-17

Similar Documents

Publication Publication Date Title
CN107357688B (zh) 分布式***及其故障恢复方法和装置
US20220188003A1 (en) Distributed Storage Method and Device
US11397648B2 (en) Virtual machine recovery method and virtual machine management device
CN102158540A (zh) 分布式数据库实现***及方法
CN111651523B (zh) 一种Kubernetes容器平台的MySQL数据同步方法及***
JP2007179551A (ja) ストレージベースのジャーナリングを用いてバックアップ及びリカバリを行う方法と装置
CN110807062B (zh) 一种数据同步的方法、装置和数据库主机
CN109582686B (zh) 分布式元数据管理一致性保证方法、装置、***及应用
CN106873902B (zh) 一种文件存储***、数据调度方法及数据节点
JP7215971B2 (ja) 記憶機器のデータ位置の処理方法及び処理装置、コンピュータ機器並びにコンピュータ読み取り可能な記憶媒体
CN113946471A (zh) 基于对象存储的分布式文件级备份方法及***
CN114385755A (zh) 一种分布式存储***
CN116389233B (zh) 容器云管理平台主备切换***、方法、装置和计算机设备
CN111226200B (zh) 为分布式应用创建一致性快照的方法、装置和分布式***
CN111752892A (zh) 分布式文件***及其实现方法、管理***、设备及介质
CN116048878A (zh) 业务服务恢复方法、装置、计算机设备
CN113515574B (zh) 一种数据同步方法及装置
CN111208949B (zh) 一种确定分布式存储***中的数据回滚时段的方法
CN114860505A (zh) 一种对象存储数据异步备份方法及***
CN113986450A (zh) 一种虚拟机备份方法及装置
CN111176886B (zh) 一种数据库模式的切换方法、装置及电子设备
CN111198849A (zh) 一种基于Hadoop的供电数据读写***及其工作方法
CN115357429A (zh) 恢复数据文件的方法、装置和客户端
CN115756953A (zh) 一种基于区块链的数据备份方法及装置
CN115686943A (zh) 一种基于区块链的数据备份方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for 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: 20200811

Address after: 310052 room 508, floor 5, building 4, No. 699, Wangshang Road, Changhe street, Binjiang District, Hangzhou City, Zhejiang Province

Patentee after: Alibaba (China) Co.,Ltd.

Address before: 510627 Guangdong city of Guangzhou province Whampoa Tianhe District Road No. 163 Xiping Yun Lu Yun Ping square B radio tower 13 layer self unit 01

Patentee before: Guangdong Shenma Search Technology Co.,Ltd.

TR01 Transfer of patent right