CN111752913A - 分布式系统的数据恢复方法、介质、计算机设备、装置 - Google Patents
分布式系统的数据恢复方法、介质、计算机设备、装置 Download PDFInfo
- Publication number
- CN111752913A CN111752913A CN201910244854.7A CN201910244854A CN111752913A CN 111752913 A CN111752913 A CN 111752913A CN 201910244854 A CN201910244854 A CN 201910244854A CN 111752913 A CN111752913 A CN 111752913A
- Authority
- CN
- China
- Prior art keywords
- serial number
- file
- data
- logic
- reference point
- 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.)
- Granted
Links
- 238000011084 recovery Methods 0.000 title claims abstract description 71
- 238000000034 method Methods 0.000 title claims abstract description 46
- 238000004458 analytical method Methods 0.000 claims description 15
- 238000012216 screening Methods 0.000 claims description 3
- 238000004590 computer program Methods 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
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/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
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)
Abstract
本发明提供一种分布式系统的数据恢复方法、介质、计算机设备、装置。方法包括:每个块存储设备接收到写数据请求后,按照追加写入的方式,将数据写入归属的一个或多个逻辑段;为每次在每个逻辑段的写入操作分配的序号ID、记录时间戳,并生成日志文件以及索引文件;其中,日志文件、所述序号ID和时间戳相对应,序号ID覆盖所有的逻辑段、索引文件用于回放含有所述数据的数据文件;在所有的逻辑段中设置基准点,记录基准点对应的所述序号ID;接收含有基准点或第一时间戳的恢复请求,解析对应的序号ID,回放解析的序号ID所对应的索引文件。根据序号ID在任意的时间点恢复,保证恢复数据的一致性。由于通过日志文件的恢复,减低了物理存储的空间。
Description
技术领域
本发明涉及计算机技术领域,特别是指一种分布式系统的数据恢复方法、介质、计算机设备、装置。
背景技术
在云盘技术的虚拟机环境,存储大量的用户数据,会涉及对之前数据的恢复。现有的数据恢复方案,多为连续数据恢复方案,大都依赖于集中方式的存储设备,用户数据恢复所需要的连续写入数据及日志,并与存储设备分开存储,不仅加重了云存储条件下的实现成本,而且恢复数据必然产生大量的存储IO,从而减低了存储的整体性能,更甚的是延误了恢复的时间。
存储设备多为本地的存储阵列,数据的存储都是集中存放。对于云盘的分布式高可用性环境下,数据的存放都是采用非集中式的多台主机的架构模式。因此,现有方案很难应用到云盘这种分布式的存储系统中,更无法来实现恢复数据的一致性。
发明内容
本发明所要解决的技术问题是上述现有方案很难应用到云盘这种分布式的存储系统中,更无法来实现恢复数据的一致性的问题。
本发明解决上述技术问题,本发明的实施例提供一种分布式系统的数据恢复方法,包括:
每个块存储设备接收到写数据请求后,按照追加写入的方式,将数据写入归属的一个或多个逻辑段;
为每次在每个逻辑段的写入操作,分配序号ID和记录时间戳,并生成日志文件以及索引文件;其中,所述日志文件、所述序号ID和所述时间戳相对应,所述日志文件合成所述索引文件,所述序号ID覆盖所有的逻辑段、所述索引文件用于回放含有所述数据的数据文件;
在所有的逻辑段中设置基准点,记录所述基准点对应的所述序号ID;
接收含有基准点或第一时间戳的恢复请求,根据所述恢复请求的基准点解析对应的序号ID、或根据所述第一时间戳和所述记录的时间戳解析对应的序号ID,回放解析的序号ID所对应的索引文件。
优选地,在所有的逻辑段中设置基准点,包括:
按照设置的时间点,在多个逻辑段中选择一个逻辑段的序号ID,其中,所述选择的逻辑段的序号ID对应的时间戳与所述时间点最接近;
在每个逻辑段中找到小于所述选择的序号ID且最接近的序号ID;
在找到的所有序号ID位置分别设置一个基准点。
优选地,所述解析对应的序号ID包括:
将所述恢复请求中的基准点位置设置的序号ID作为所述解析得到的序号ID。
优选地,根据含有所述第一时间戳的恢复请求和所述记录的所述时间戳,解析所述序号ID的过程包括:
在记录的所有逻辑段的基准点中,根据所述记录的时间戳中,选择早于所述第一时间戳的基准点;
在每个逻辑段中,确定所述第一时间戳对应的序号ID,选择基准点至所述确定的序号ID之间的全部序号ID;
将所有逻辑段中,确定出的所述全部序号ID作为所述解析到的序号ID。
优选地,在每个块存储设备的内存中,记录所述日志文件的数据,并按时间间隔或在所述日志文件的容量超过阈值后更新所述索引文件;
所述索引文件及其对应的所述数据文件和所述日志文件保存在具有分布式文件系统的存储设备内。
优选地,所述更新之前,还包括:根据每个逻辑段的基准点和所述第一时间戳的序号ID,确定全部序号ID所对应的用于所述记录的所述日志文件的数据。
优选地,所述更新的过程包括:
将所述全部序号ID对应的日志的逻辑地址LBA指向的数据文件ID替换在内存中的相同序号ID的日志的逻辑地址指向的数据文件ID。
优选地,所述索引文件包括:所述数据文件ID、数据文件偏移和逻辑块地址;
所述逻辑段包括所述索引文件及所述数据文件ID对应的数据文件。
优选地,还包括:每个块存储设备在每次数据写入时,访问描述所述数据所在的逻辑段、逻辑段属性的元数据。
本发明的实施例还提供一种计算机可读存储介质,存储有计算机程序,该程序被处理器执行时,实现上述的方法。
本发明的实施例还提供一种计算机设备,包括所述的可读存储介质。
本发明的实施例还提供一种分布式系统的数据恢复装置,包括:
写入模块,用于在每个块存储设备接收到写数据请求后,按照追加写入的方式,将数据写入归属的一个或多个逻辑段;
记录模块,用于为每次在每个逻辑段的写入操作,分配序号ID和记录时间戳,并生成日志文件以及索引文件;其中,所述日志文件、所述序号ID和所述时间戳相对应,所述日志文件合成所述索引文件,所述序号ID覆盖所有的逻辑段、所述索引文件用于回放含有所述数据的数据文件;
设置模块,用于在所有的逻辑段中设置基准点,记录所述基准点对应的所述序号ID;
解析模块,用于接收含有基准点或第一时间戳的恢复请求,根据所述恢复请求的基准点解析对应的序号ID、或根据所述第一时间戳和所述记录的时间戳解析对应的序号ID,回放解析的序号ID所对应的索引文件。
优选地,所述设置模块包括:
选择子模块,用于按照所述设置的时间点,在多个逻辑段中选择一个逻辑段的序号ID,其中,所述选择的逻辑段的序号ID对应的时间戳与所述时间点最接近;
筛选子模块,用于在每个逻辑段中找到小于所述选择的序号ID且最接近的序号ID;
设置子模块,用于在找到的所有序号ID位置分别设置一个所述基准点。
优选地,所述解析模块包括第一解析子模块,用于将所述恢复请求中的基准点位置设置的序号ID作为所述解析得到的序号ID。
优选地,所述解析模块包括第二解析子模块,用于在记录的所有逻辑段的基准点中,根据所述记录的时间戳中,选择早于所述第一时间戳的基准点;
在每个逻辑段中,确定所述第一时间戳对应的序号ID,选择基准点至所述确定的序号ID之间的全部序号ID;
将所有逻辑段中,确定出的所述全部序号ID作为所述解析到的序号ID。
优选地,所述装置包括:内存模块,用于在每个块存储设备的内存中,记录所述日志文件的数据,并按时间间隔或在所述日志文件的容量超过阈值后更新所述索引文件;
用于将所述索引文件及其对应的所述数据文件和所述日志文件保存在具有分布式文件系统的存储设备内。
优选地,所述内存模块更新之前,还包括:
更新模块,用于根据每个逻辑段的基准点和所述第一时间戳的序号ID,确定全部序号ID所对应的用于所述记录的的所述日志文件的数据。
优选地,所述更新模块包括:
更新子模块,用于将所述全部序号ID对应的日志的逻辑地址LBA指向的数据文件ID替换在内存中的相同序号ID的日志的逻辑地址指向的数据文件ID。
优选地,所述索引文件包括:所述数据文件ID、数据文件偏移和逻辑块地址;
所述逻辑段包括所述索引文件及所述数据文件ID对应的数据文件。
本发明实施例的效果包括:由于增加了针对每个块存储设备的全局操作的日志,以及序号ID,能够根据序号ID在任意的时间点进行恢复,并根据序号ID的顺序性,保证恢复数据的一致性。另外,由于通过日志文件的恢复,实现了对数据的恢复,不需要大量的读写操作,有效减低了物理存储的空间和占用,提高了恢复的时间和效率。
在整个数据的恢复过程中,基准点的索引文件所表示的逻辑块地址与日志产生的增量索引在内存中的合并操作,并不存在实际物理数据文件的读写操作,从而有效地减少了恢复的时间,满足更低恢复时间的、高性能的数据恢复要求。
数据的写入是以追加方式进行的;块存储设备写入数据的逻辑地址引用不需要实时刷新到磁盘,而是累计在内存达到一定程度,再将内存中更新的索引部分与整个全量经索引内容归并后持久化到磁盘,从而实现数据的高效访问。
附图说明
图1为本发明实施例的方法流程示意图;
图2为本发明实施例中一种分布式架构的示意图;
图3为本发明实施例中逻辑存储单元的逻辑结构框图;
图4为本发明实施例中文件的逻辑结构图;
图5为本发明实施例中写入数据的逻辑框图;
图6为本发明实施例的写入数据过程的流程图;
图7为本发明实施例的确定基准点的逻辑框图;
图8为本发明实施例的筛选的增量的序号ID的示意图;
图9为本发明实施例中通过基准点确定增量的逻辑框图;
图10为本发明实施例中将增量文件更新内存的流程图;
图11为本发明实施例中图10的替换LBA中数据文件ID的逻辑框图;
图12为本发明实施例的装置结构框图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
下面通过附图详细说明本发明的各个实施例,参见图1,实施例中的数据恢复流程包括以下步骤:
S31:每个块存储设备接收到写数据请求后,按照追加写入的方式,将数据写入归属的一个或多个逻辑段;
S32:为每次在每个逻辑段的写入操作,分配序号ID和记录时间戳,并生成日志文件以及索引文件;其中,所述日志文件、所述序号ID和时间戳相对应,所述日志文件合成索引文件,所述序号ID覆盖所有的逻辑段、所述索引文件用于回放含有所述数据的数据文件;
S33:在所有的逻辑段中设置基准点,记录所述基准点对应的所述序号ID;
S34:接收含有基准点或第一时间戳的恢复请求,根据所述恢复请求的基准点解析对应的序号ID、或根据所述第一时间戳和所述记录的时间戳解析对应的序号ID,回放解析的序号ID所对应的索引文件。
通过上述的方案,由于增加了针对每个块存储设备的全局操作的日志,以及序号ID,能够根据序号ID在任意的时间点进行恢复,并根据序号ID的顺序性,保证恢复数据的一致性。另外,由于通过日志文件的恢复,实现了对数据的恢复,不需要大量的读写操作,有效减低了物理存储的空间和占用,提高了恢复的时间和效率。
连续的写入,可以采用日志结构块设备(LSBD,Log Structured Block Device)的追加写的方式存储,块存储设备写入数据的逻辑地址引用,不需要实时刷新到磁盘,而是累计在内存的容量超过阈值后,再将内存中更新的索引部分文件与整个索引全量文件经索引归并后持久化写入到磁盘,从而实现数据的高效访问。在实施例中,块存储设备可以是采用块存储技术的计算机设备,如块存储服务器,数据文件的存储,采用分布式的文件系统进行存储。
下面对实施例中主要涉及的数据结构,列举说明。
参见图2,在实施例中,可以在图中的一种架构实现,在图中显示了一种分布式存储环境,当用户运行一个应用程序后,通过块服务器b1、b2、和b3访问分布式文件系统中相应的逻辑段。
每个块服务器可在对应的元数据服务器中获得相应的逻辑段的描述,如图中的元数据服务器a1、a2、a3,以及每个块服务器可以访问的逻辑段,可以是一个或多个逻辑段。
逻辑段包括数据文件和索引文件,其中索引文件用于访问或数据恢复过程中回放相应的数据文件等。
参见图3,在图2中逻辑段,在分布式文件系统中,多个逻辑段构成段组,多个段组构成逻辑存储单元LUN,元数据服务器集群,还用于存储逻辑段组、逻辑段及逻辑存储单元LUN之间的关系。
在图4中,显示了本发明的实施例中,各个文件的逻辑结构,在分布式文件系统中,存放逻辑段的物理数据。其中包括:存储数据的数据文件(Data File)及加速数据访问的逻辑块的索引文件(Index File)。应用程序对数据文件的写入采取追加写入的方式,文件的物理偏移单调递增且不可被覆盖;索引文件表示整个逻辑段的逻辑地址空间,在逻辑段加载时调入内存,给应用程序提供逻辑地址到物理数据块地址的转换,包括逻辑块地址所对应的数据文件及在数据文件的偏移地址。即数据文件偏移offset。通过索引文件实现回放操作,回放操作是按照索引文件的提供的地址,访问到相应的数据文件。
日志文件用于记录每次块存储设备的操作的内容等,日志文件中发号器ID为序号ID,是连续的覆盖所有逻辑段的序号ID,多个日志文件最终合成索引文件。例如,日志所对应的LBA范围用后面写入的范围覆盖。比如相同的逻辑块地址#0,对应新的写入ID1物理位置文件1[起始偏移Offset,长度]为[0,100],假设后面有新的写入ID2文件位置[0,50],那么合并后的结果为[0,50]为文件2的位置,[50,100]为文件1的位置。合并后构成索引文件。
通过上述的数据结构,以图5所示的实施例中的一种数据写入的过程,即实施例中的步骤S31和步骤S32的过程。
在图5以及所有实施例中的各个模块,仅是实施例中一种软件架构的举例说明,各个模块可以全部或部分集成在一起,形成一个运行软件的电子器件,如处理器等。图中的41~45为图6中的步骤标记,参见图6,包括以下步骤:
S41:应用程序发起写数据的请求;
S42:读写模块执行写入数据的操作;
S43:更新索引文件的数据逻辑地址范围LBARun到内存中;
S44:分布式发号器客户端获取发号器ID;
通过在存储端增加发号器,在数据块对写入存储设备时获取其全局发号器ID;实现跨所有的逻辑段,对数据的操作标识。在该流程中引入发号器及记录整个数据写入操作的日志文件。
逻辑块读写模块获取从发号器获取该逻辑块存储单元LUN全局唯一的发号器ID,在实施例中,也称为序号ID。
S45:读写模块写日志到日志文件。
在完成写入后,将该发号器ID所组成的日志条目TXN写入到日志文件JournalFile中。
上面的存储系统的架构及流程可以看出,应用程序的数据写入可以是跨逻辑段的,该逻辑段由存在时钟误差的不同物理节点(即图中的块服务器)来负责提供数据访问。对于连续数据恢复的来讲,当应用程序选择某一时间点时,主机节点的时间不同步,以时间点为选择方式,会导致恢复数据的不一致性。
采用日志管理模块,保留追加写入数据块的日志,以实现对指定点的数据的恢复。为了将数据保护的时间窗口限制在一定的范围内,数据恢复子模块会根据保护的策略,保留最近一定时间段内的日志,删除比较老的日志文件。
由于存储采用追加写的方式,数据恢复子模块通过日志条目检索找到对应的数据块地址来实现物理数据文件的引用保留。
在实施例中,日志文件记录了每次操作的内容,日志文件中的每个日志包括了发号器ID、数据文件ID、数据文件偏移以及逻辑地址LBA,多次的日志条目先保存在内存中,合并成索引数据,积累到一定量之后,按时间间隔或在所述日志文件的容量超过阈值后,更新到索引文件中。索引文件及其对应的所述数据文件和所述日志文件保存在具有分布式文件系统的存储设备内。
上述过程与写入日志的过程无冲突,两个过程并无先后顺序的限制。
在上述写入文件的过程中,除了加入跨所有逻辑段的全局的序号ID,还按照时间间隔、操作类型、或用户触发等形式,在日志中加入基准点,如图7所示,基准点的设置,如图中的基准点1,数字1为序号ID。在多个逻辑段,设置基准点,会在所有的逻辑段,都加入基准点。加入基准点的过程包括:
按照设置基准点的时间点,在所有的多个逻辑段中选择一个逻辑段的序号ID,其中,所述选择的逻辑段的序号ID对应的时间戳与所述时间点最接近;
在每个逻辑段中找到小于所述选择的序号ID且最接近的序号ID;
将找到的所有序号ID位置设置所述基准点。
例如,当前的时间为9点,触发了设置基准点的操作,多个逻辑段中,离9点最近的逻辑段中的序号ID为15,则在其他的每个逻辑段中,选择离15最近的且小于15的序号ID作为基准点,如另一个逻辑段,在小于15的序号且最接近15,是7,则在序号ID7的位置设置基准点,并记录。
上述设置基准点的流程,如图7所示,包括:
S51:向块存储服务器发起基准点的操作;
S52a:写入数据一致性点,即基准点;
S52b:写入基准点日志;
上述的两个步骤52a和52b可以同时进行,并没有先后限制;由于基准点用于恢复,可以采用恢复引擎模块发起基准点操作,恢复数据子模块实现写入操作。
基准点产生后,就产生当前的各个逻辑段用于数据恢复的基准点与恢复的时间戳之间的对应关系,如表1所示。同时,生成各个分布式逻辑段的具体的基准点与日志及索引文件的对应关系,如表2所示。
基准点ID | 时间戳 |
基准点#0 | 时间戳#0 |
基准点#1 | 时间戳#2 |
表1全局基准点与时间戳的对应关系
基准点ID | 日志TXN ID | 索引文件 |
基准点#0 | 日志编号#100 | 索引文件Index File#0 |
基准点#1 | 日志编号#2000 | 索引文件Index File#2 |
表2逻辑段所对应的基准点的日志ID及索引文件
通过上述的步骤,详细说明了实施例中的步骤S31、步骤32以及步骤S33的具体实现的一种方式。
下面通过附图详细说明步骤S34的数据恢复过程中,解析相应的序号ID的过程。
在进行数据恢复时,应用程序根据用户选择的时间点后,将要恢复的时间点发送给数据恢复引擎模块。用户选择的时间点,也可认为是第一时间戳。
数据恢复引擎模块查询表1中的全局的数据基准点及时间戳,根据时间点,选择早于其的恢复数据的基准点ID。然后将基准点ID及用户的输入第一时间戳发给逻辑段所在的块存储服务器。
逻辑段所在的块存储服务器根据基准点ID,查询到开始日志ID,然后递进搜索日志条目,对比时间戳直到大于该时间戳的日志条目,返回该日志条目所对应的发号器ID。
恢复引擎模块根据各个逻辑段返回的发号器ID,选择最大的发号器ID作为最终的一致性数据恢复点。
具体如图8所示,例如:
1.根据用户的输入第一时间戳8点30,在各个逻辑段中的基准点中,选择早于所述第一时间戳的基准点,如图中的三个逻辑段的基准点#1。
2、在每个逻辑段中,确定所述第一时间戳对应的序号ID,选择基准点至所述确定的序号ID之间的全部序号ID。
第一时间戳在三个逻辑段中,分别对应的序号ID为ID#8、ID#7和ID#6,则全部序号ID包括:ID#1、ID#3、ID#4、ID#8、ID#2、ID#7、ID#5和ID#6。
另外,选择基准点的方式,还可以选择某个逻辑段为参考逻辑段,如逻辑段#0为时间参考逻辑段,与用户输入时间点8:30进行比较,发号器的序号ID为ID#8。
从基准点开始,分别将该序号ID#8与每个逻辑段的ID进行比较,直到选出不大于恢复点的最大序号ID#8。
对于逻辑段#0,选择ID#1、ID#3、ID#4、ID#8,生成该逻辑段的增量索引文件。
对于逻辑段#1,小于ID#8的序号ID选择ID#2、ID#7,生成该逻辑段的增量索引文件。
对于逻辑段#2,小于ID#8的序号ID选择ID#5、ID#6,生成该逻辑段的增量索引文件。
通过上述的步骤,获得相应全部的序号ID和基准点后,将每个逻辑段的序号发给对应的块存储服务器,通过全部的序号ID的日志条目,合成索引文件,根据索引文件,回放相应的数据文件。
上述的情况中,还有特殊情况,即用户指定在设置的基准点位置进行恢复,则直接将所述恢复请求中的基准点位置设置的序号ID作为所述解析得到的序号ID,将序号ID的日志条目,合成索引文件,根据索引文件,回放相应的数据文件。
在上述的步骤中,用户输入的第一时间戳并非在基准点,而是靠后了一些时间段,在此期间,由于内存中还保留了一些索引数据,未同步到索引文件中,需要将这些增量的索引,同步到索引文件中。以图9的结构图为例,包括:
S61:根据用户输入的恢复的第一时间戳,查询基准点;
S62:查询日志的序号ID及索引文件;
S63:读取各个序号ID日志条目;
S64:生成增量索引文件;
S65:进行合并替换索引文件。
在更新索引文件之前,根据每个逻辑段的基准点和所述第一时间戳的序号ID,确定全部序号ID所对应的用于所述记录的所述日志文件的数据。这些日志文件的数据含有日志的逻辑地址LBA和数据文件ID。
在图9和图10中,显示了合并的过程,具体包括:
S71:以基准点的日志序号ID为开始点;
在实施例中,还以图8中的序号为例,以每个基准点的日志序号ID为起点;
S72:比较当前日志的序号ID是否小于最大的序号ID;如果是,则执行S73,如果否,则执行S77。
将三个逻辑段的小于最大的序号ID#8的序号,ID#1、ID#3、ID#4、ID#8、ID#2、ID#7、ID#5和ID#6。
S73:开始应用序号ID的日志TXN所表示的LBA的范围更新到内存中。
S74:判断相应的LBA所表示的逻辑地址范围在内存中,如果是,则执行S77,如果否,则执行S75。
S75:在内存中生成TXN文件的LBA的信息。
S76:将内存中的存在的逻辑地址空间LBA指向的数据文件ID替换为当前TXN的LBA所执行的数据文件ID。
S77:应用日志完毕。
合并基准点的对应的索引文件及与由日志应用所新生成的增量索引文件,合并的过程按照整个逻辑块地址范围进行。在相同逻辑范围内,增量索引文件逻辑块地址覆盖基准点文件的逻辑块地址;如果该范围没有被增量索引文件更新,保留被覆盖的逻辑块地址范围。整个合并过程的复杂度为O(n),其中n为逻辑空间的逻辑块大小。
如图11所示,增量索引覆盖了被合并基准点文件的逻辑块地址LBA#0及LBA#J,合并后的索引文件选择增量索引中的逻辑块地址LBA#0,该逻辑块所指向的物理文件的文件ID及文件偏移发生改变。数据文件由ID1变成数据文件ID2,增加了数据文件ID3。基准点索引文件中的逻辑块LBARun#K被保留。
最后,用合并生成的索引文件替换当前存储系统的数据读写路径上索引文件。索引文件所对应的实际物理存储的数据文件同时被当前的存储设备再次引用,从而完成数据的恢复过程。在此过程中,不发生数据文件的读写,只是轻量级的引用关系的合并与替换。数据文件或者数据块的变化,以日志的形式进行保存。
参加图12,本发明的实施例还提供一种分布式系统的数据恢复装置,包括:
写入模块,用于在每个块存储设备接收到写数据请求后,按照追加写入的方式,将数据写入归属的一个或多个逻辑段;
记录模块,用于为每次在每个逻辑段的写入操作,分配序号ID和记录时间戳,并生成日志文件以及索引文件;其中,所述日志文件、所述序号ID和时间戳相对应,所述日志文件合成索引文件,所述序号ID覆盖所有的逻辑段、所述索引文件用于回放含有所述数据的数据文件;
设置模块,用于在所有的逻辑段中设置基准点,记录所述基准点对应的所述序号ID;
解析模块,用于接收含有基准点或第一时间戳的恢复请求,根据所述恢复请求的基准点解析对应的序号ID、或根据所述第一时间戳和所述记录的时间戳解析对应的序号ID,回放解析的序号ID所对应的索引文件。
优选地,所述设置模块包括:
选择子模块,用于按照所述设置的时间点,在多个逻辑段中选择一个逻辑段的序号ID,其中,所述选择的逻辑段的序号ID对应的时间戳与所述时间点最接近;
筛选子模块,用于在每个逻辑段中找到小于所述选择的序号ID且最接近的序号ID;
设置子模块,用于在找到的所有序号ID位置分别设置一个所述基准点。
优选地,所述解析模块包括第一解析子模块,用于将所述恢复请求中的基准点位置设置的序号ID作为所述解析得到的序号ID。
优选地,所述解析模块包括第二解析子模块,用于在记录的所有逻辑段的基准点中,根据所述记录的时间戳中,选择早于所述第一时间戳的基准点;
在每个逻辑段中,确定所述第一时间戳对应的序号ID,选择基准点至所述确定的序号ID之间的全部序号ID;
将所有逻辑段中,确定出的所述全部序号ID作为所述解析到的序号ID。
优选地,所述装置包括:内存模块,用于在每个块存储设备的内存中,记录所述日志文件的数据,并按时间间隔或在所述日志文件的容量超过阈值后更新所述索引文件;
用于将所述索引文件及其对应的所述数据文件和所述日志文件保存在具有分布式文件系统的存储设备内。
优选地,所述内存模块更新之前,还包括:
更新模块,用于根据每个逻辑段的基准点和所述第一时间戳的序号ID,确定全部序号ID所对应的用于所述记录的的所述日志文件的数据。
优选地,所述更新模块包括:
更新子模块,用于将所述全部序号ID对应的日志的逻辑地址LBA指向的数据文件ID替换在内存中的相同序号ID的日志的逻辑地址指向的数据文件ID。
优选地,装置中的所述索引文件包括:所述数据文件ID、数据文件偏移和逻辑块地址;
所述逻辑段包括所述索引文件及其包含的数据文件ID对应的数据文件。
上述实施例中的装置,可以实现上述实施例中的方法步骤,且并不局限于各个实施例中的软件架构。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (19)
1.一种分布式系统的数据恢复方法,其特征在于,包括:
每个块存储设备接收到写数据请求后,按照追加写入的方式,将数据写入归属的一个或多个逻辑段;
为每次在每个逻辑段的写入操作,分配序号ID和记录时间戳,并生成日志文件以及索引文件;其中,所述日志文件、所述序号ID和所述时间戳相对应,所述日志文件合成所述索引文件,所述序号ID覆盖所有的逻辑段、所述索引文件用于回放含有所述数据的数据文件;
在所有的逻辑段中设置基准点,记录所述基准点对应的所述序号ID;
接收含有基准点或第一时间戳的恢复请求,根据所述恢复请求的基准点解析对应的序号ID、或根据所述第一时间戳和所述记录的时间戳解析对应的序号ID,回放解析的序号ID所对应的索引文件。
2.根据权利要求1所述的方法,其特征在于,在所有的逻辑段中设置基准点,包括:
按照设置基准点的时间点,在多个逻辑段中选择一个逻辑段的序号ID,其中,所述选择的逻辑段的序号ID对应的时间戳与所述时间点最接近;
在每个逻辑段中找到小于所述选择的序号ID且最接近的序号ID;
在找到的所有序号ID位置分别设置一个基准点。
3.根据权利要求2所述的方法,其特征在于,所述解析对应的序号ID包括:
将所述恢复请求中的基准点位置设置的序号ID作为所述解析得到的序号ID。
4.根据权利要求2所述的方法,其特征在于,根据含有所述第一时间戳的恢复请求和所述记录的所述时间戳,解析所述序号ID的过程包括:
在记录的所有逻辑段的基准点中,根据所述记录的时间戳中,选择时间戳早于所述第一时间戳的基准点;
在每个逻辑段中,确定所述第一时间戳对应的序号ID,选择基准点至所述确定的序号ID之间的全部序号ID;
将所有逻辑段中,确定出的所述全部序号ID作为所述解析到的序号ID。
5.根据权利要求4所述的方法,其特征在于,在每个块存储设备的内存中,记录所述日志文件的数据,并按时间间隔或在所述日志文件的容量超过阈值后更新所述索引文件;
所述索引文件及其对应的所述数据文件和所述日志文件保存在具有分布式文件系统的存储设备内。
6.根据权利要求5所述的方法,其特征在于,所述更新之前,根据每个逻辑段的基准点和所述第一时间戳的序号ID,确定全部序号ID所对应的用于所述记录的所述日志文件的数据。
7.根据权利要求6所述的方法,其特征在于,所述更新的过程包括:
将所述全部序号ID对应的日志的逻辑地址LBA指向的数据文件ID替换在内存中的相同序号ID的日志的逻辑地址指向的数据文件ID。
8.根据权利要求1~7任一项所述的方法,其特征在于,所述索引文件包括:所述数据文件ID、数据文件偏移和逻辑块地址;
所述逻辑段包括所述索引文件及所述数据文件ID对应的数据文件。
9.根据权利要求8所述的方法,其特征在于,还包括:每个块存储设备在每次数据写入时,访问用于描述所述数据所在的逻辑段、逻辑段属性的元数据。
10.一种计算机可读存储介质,其特征在于:存储有计算机程序,该程序被处理器执行时,实现权利要求1~7、8或9任一项所述的方法。
11.一种计算机设备,其特征在于,包括权利要求10所述的可读存储介质。
12.一种分布式系统的数据恢复装置,其特征在于,包括:
写入模块,用于在每个块存储设备接收到写数据请求后,按照追加写入的方式,将数据写入归属的一个或多个逻辑段;
记录模块,用于为每次在每个逻辑段的写入操作,分配序号ID和记录时间戳,并生成日志文件以及索引文件;其中,所述日志文件、所述序号ID和所述时间戳相对应,所述日志文件合成所述索引文件,所述序号ID覆盖所有的逻辑段、所述索引文件用于回放含有所述数据的数据文件;
设置模块,用于在所有的逻辑段中设置基准点,记录所述基准点对应的所述序号ID;
解析模块,用于接收含有基准点或第一时间戳的恢复请求,根据所述恢复请求的基准点解析对应的序号ID、或根据所述第一时间戳和所述记录的时间戳解析对应的序号ID,回放解析的序号ID所对应的索引文件。
13.根据权利要求12所述的装置,其特征在于,所述设置模块包括:
选择子模块,用于按照所述设置基准点的时间点,在多个逻辑段中选择一个逻辑段的序号ID,其中,所述选择的逻辑段的序号ID对应的时间戳与所述时间点最接近;
筛选子模块,用于在每个逻辑段中找到小于所述选择的序号ID且最接近的序号ID;
设置子模块,用于在找到的所有序号ID位置分别设置一个所述基准点。
14.根据权利要求13所述的装置,其特征在于,
所述解析模块包括第一解析子模块,用于将所述恢复请求中的基准点位置设置的序号ID作为所述解析得到的序号ID。
15.根据权利要求13所述的装置,其特征在于,所述解析模块包括第二解析子模块,用于在记录的所有逻辑段的基准点中,根据所述记录的时间戳中,选择时间点早于所述第一时间戳的基准点;
在每个逻辑段中,确定所述第一时间戳对应的序号ID,选择基准点至所述确定的序号ID之间的全部序号ID;
将所有逻辑段中,确定出的所述全部序号ID作为所述解析到的序号ID。
16.根据权利要求15所述的装置,其特征在于,所述装置包括:内存模块,用于在每个块存储设备的内存中,记录所述日志文件的数据,并按时间间隔或在所述日志文件的容量超过阈值后更新所述索引文件;
用于将所述索引文件及其对应的所述数据文件和所述日志文件保存在具有分布式文件系统的存储设备内。
17.根据权利要求16所述的装置,其特征在于,所述内存模块更新之前,还包括:
更新模块,用于根据每个逻辑段的基准点和所述第一时间戳的序号ID,确定全部序号ID所对应的用于所述记录的所述日志文件的数据。
18.根据权利要求17所述的装置,其特征在于,所述更新模块包括:
更新子模块,用于将所述全部序号ID对应的日志的逻辑地址LBA指向的数据文件ID替换在内存中的相同序号ID的日志的逻辑地址指向的数据文件ID。
19.根据权利要求12~18任一项所述的装置,其特征在于,所述索引文件包括:所述数据文件ID、数据文件偏移和逻辑块地址;
所述逻辑段包括所述索引文件及所述数据文件ID对应的数据文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910244854.7A CN111752913B (zh) | 2019-03-28 | 2019-03-28 | 分布式系统的数据恢复方法、介质、计算机设备、装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910244854.7A CN111752913B (zh) | 2019-03-28 | 2019-03-28 | 分布式系统的数据恢复方法、介质、计算机设备、装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111752913A true CN111752913A (zh) | 2020-10-09 |
CN111752913B CN111752913B (zh) | 2024-03-01 |
Family
ID=72672338
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910244854.7A Active CN111752913B (zh) | 2019-03-28 | 2019-03-28 | 分布式系统的数据恢复方法、介质、计算机设备、装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111752913B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1993022719A1 (en) * | 1992-04-24 | 1993-11-11 | Hewlett-Packard Company | Disk storage system |
CN104133867A (zh) * | 2014-07-18 | 2014-11-05 | 中国科学院计算技术研究所 | 分布式顺序表片内二级索引方法及系统 |
CN104866435A (zh) * | 2015-06-06 | 2015-08-26 | 成都云祺科技有限公司 | 一种连续数据保护方法 |
CN109426585A (zh) * | 2017-08-22 | 2019-03-05 | 阿里巴巴集团控股有限公司 | 一种备份、恢复数据库数据的方法和装置 |
CN109522290A (zh) * | 2018-11-14 | 2019-03-26 | 中国刑事警察学院 | 一种HBase数据块恢复及数据记录提取方法 |
-
2019
- 2019-03-28 CN CN201910244854.7A patent/CN111752913B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1993022719A1 (en) * | 1992-04-24 | 1993-11-11 | Hewlett-Packard Company | Disk storage system |
CN104133867A (zh) * | 2014-07-18 | 2014-11-05 | 中国科学院计算技术研究所 | 分布式顺序表片内二级索引方法及系统 |
CN104866435A (zh) * | 2015-06-06 | 2015-08-26 | 成都云祺科技有限公司 | 一种连续数据保护方法 |
CN109426585A (zh) * | 2017-08-22 | 2019-03-05 | 阿里巴巴集团控股有限公司 | 一种备份、恢复数据库数据的方法和装置 |
CN109522290A (zh) * | 2018-11-14 | 2019-03-26 | 中国刑事警察学院 | 一种HBase数据块恢复及数据记录提取方法 |
Non-Patent Citations (1)
Title |
---|
李红燕, 王力: "日志结构文件系统技术的研究", 计算机应用研究, no. 01 * |
Also Published As
Publication number | Publication date |
---|---|
CN111752913B (zh) | 2024-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108810041B (zh) | 一种分布式缓存系统的数据写入及扩容方法、装置 | |
US8225029B2 (en) | Data storage processing method, data searching method and devices thereof | |
KR101259557B1 (ko) | 클러스터 데이터 관리 시스템 및 클러스터 데이터 관리 시스템에서 병렬 처리를 이용한 데이터 복구 방법 | |
US7836107B2 (en) | Disk seek optimized file system | |
US6571351B1 (en) | Tightly coupled secondary storage system and file system | |
US20100161565A1 (en) | Cluster data management system and method for data restoration using shared redo log in cluster data management system | |
CN107391544B (zh) | 列式存储数据的处理方法、装置、设备及计算机储存介质 | |
CN110147203B (zh) | 一种文件管理方法、装置、电子设备及存储介质 | |
CN103399823A (zh) | 业务数据的存储方法、设备和系统 | |
CN111930716A (zh) | 一种数据库扩容方法、装置及系统 | |
CN111324665A (zh) | 一种日志回放方法及装置 | |
CN114936188A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN114827178A (zh) | 一种数据处理方法、装置、设备及可读存储介质 | |
CN113608701A (zh) | 一种存储系统中数据管理方法和固态硬盘 | |
CN109165120B (zh) | 分布式存储系统中管理快照和差异位图生成方法和产品 | |
CN110737389B (zh) | 存储数据的方法和装置 | |
CN112463880B (zh) | 一种区块链数据存储方法及相关装置 | |
CN110134551A (zh) | 一种持续数据保护方法及装置 | |
CN112995257B (zh) | 基于云存储架构的缓存扩容方法、装置以及存储介质 | |
CN109582235B (zh) | 管理元数据存储方法及装置 | |
CN111752913B (zh) | 分布式系统的数据恢复方法、介质、计算机设备、装置 | |
CN111444114B (zh) | 一种非易失性内存中数据的处理方法、装置及系统 | |
CN113868018A (zh) | 一种数据保存方法及装置和一种数据恢复方法 | |
CN107168645B (zh) | 一种分布式系统的存储控制方法及系统 | |
CN105573862A (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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20231207 Address after: Room 1-2-A06, Yungu Park, No. 1008 Dengcai Street, Sandun Town, Xihu District, Hangzhou City, Zhejiang Province Applicant after: Aliyun Computing Co.,Ltd. Address before: Box 847, four, Grand Cayman capital, Cayman Islands, UK Applicant before: ALIBABA GROUP HOLDING Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |