一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于偏移量的云硬盘增量备份合并方法及存储介质与流程

2022-02-22 08:46:30 来源:中国专利 TAG:


1.本发明涉及云计算技术领域,具体地说是一种基于偏移量的云硬盘增量备份合并方法及存储介质。


背景技术:

2.目前,云计算技术已经在各个领域大放异彩。随着云计算技术的推广,云硬盘备份技术在保障用户业务数据安全方面发挥了极大作用,已经成为云计算技术中一个不可分割的部分。而如何提升备份速度和节省备份存储空间仍然是云硬盘备份技术中面临的重点难题。
3.openstack是目前各云计算厂家广泛采用的云计算平台,其模块松耦合、组件之间配置灵活和二次开发容易等特点为云计算厂家根据自己的业务特色搭建云计算平台带来了诸多便利。cinder作为openstack的重要组件之一,在云硬盘、备份、快照等云计算资源的生命周期管理方面发挥了不可替代的作用。增量备份是cinder的一个重要功能,它在备份速度和节省备份存储空间上相较于全量备份拥有极大的优势,但是也会导致备份之间产生较强的依赖关系,增加增量备份删除过程中备份合并的难度。针对此问题,已有的增量备份合并算法仅考虑了备份中对象大小与块大小相同的情况,且未考虑到一个增量备份存在多个依赖项的场景,这大大限制了增量备份在云计算领域中的推广。


技术实现要素:

4.本发明的技术任务是提供一种基于偏移量的云硬盘增量备份合并方法及存储介质,来解决云计算过程中增量备份在复杂环境中的合并的问题。
5.本发明的技术任务是按以下方式实现的,一种基于偏移量的云硬盘增量备份合并方法,该方法是根据数据库中备份的依赖关系,获得父备份的所有子备份,并且利用对象中记录的偏移量信息,将每个备份的所有对象按照偏移量的大小排序;再遍历父备份中的每个对象,根据每个对象的偏移量,获得对应于子备份中的对象;并通过比较两个对象的位置信息,利用压缩算法获得合并后的对象。
6.作为优选,该方法具体如下:
7.判断备份的父备份和子备份中不存在状态为deleting或creating:增量备份可删除的条件为父子备份的状态不为删除中或创建中;
8.模糊查询备份和子备份的所有元数据文件;
9.读备份和子备份的元数据文件,获取备份和子备份的对象信息;
10.根据备份对象的偏移量及长度信息与子备份的偏移量及长度信息之间的关系,修改备份的对象信息;
11.根据修改的对象信息,生成新的对象,合并到子备份中;
12.修改子备份的parent_id、actual_size及object_count的信息;
13.删除备份的所有对象、元数据文件、sha256文件。
14.更优地,增量备份的创建具体如下:
15.设云硬盘的内存大小为s,a为云硬盘的全量备份,a的对象个数根据云硬盘内存大小设定,每个对象由a/bs个大小为bs的块组成;
16.基于云硬盘的全量备份a创建增量备份b,b的对象个数根据云硬盘内存大小设定;
17.云硬盘还有一个快照s,且快照s的创建时间晚于备份b,分别基于快照s和增量备份b创建一个增量备份c和一个增量备份d;此时,增量备份b有两个增量备份,分别为增量备份c和增量备份d。
18.更优地,增量备份删除时,将删除的增量备份中的对象数据合并到其子备份中,实现了删除增量备份链中被依赖备份;
19.更优地,增量备份存在多个依赖项时,通过查询数据库获得所有依赖项,再根据备份与每个依赖项之间的关系,将备份的对象分别合并到每个依赖项中。
20.更优地,对象数据合并过程中,相邻备份的对象存在如下关系:
21.①
、增量备份b存在对象(a0,a1),增量备份c不存在对应位置的对象,则将(a0-1,a1-1)合并到增量备份c中;
22.②
、增量备份b存在对象a3,增量备份c存在对应位置的对象,则删除a3;
23.③
、增量备份b存在对象(b1,b2),增量备份c的对象(b0、b1)中b1重复,则删除增量备份b中的对象(b1,b2)中的b1,生成新的对象b2合并到增量备份b中;
24.④
、增量备份b存在对象(b4,b5),增量备份c存在对象(b5,b6),两个备份存在重复位置b5,则删除增量备份b中的对象(b4,b5)中的b5,生成新的对象b4合并到增量备份c中;
25.⑤
、增量备份b存在对象(b7,b8,b9),增量备份c存在对象b8,其中b8重复,则删除增量备份b中的b8,生成新的对象b7和b9合并到增量备份c中。
26.更优地,增量备份合并程具体如下:
27.(1)、获取备份当前的状态,记为ps;
28.(2)、判断备份的状态是否为不可用或异常:
29.①
、若是,则执行步骤(3);
30.②
、如否,则跳转至步骤(4);
31.(3)、判断存在子备份的状态是否为删除中或创建中:
32.①
、若是,则执行步骤(5);
33.②
、如否,则跳转至步骤(4);
34.(4)、删除失败;
35.(5)判断父备份状态是否不为删除中或创建中:
36.①
、若是,则执行步骤(6);
37.②
、如否,则跳转至步骤(4);
38.(6)、重新获取备份当前的状态,并判断当前的状态与ps值相同:
39.①
、若是,则执行步骤(7);
40.②
、如否,则跳转至步骤(4);
41.(7)、将备份状态更改为删除中;
42.(8)、重新判断存在子备份的状态是否为删除中或创建中:
43.①
、若是,则跳转至步骤(4);
44.②
、如否,则执行步骤(9);
45.(9)、重新判断父备份的状态是否为删除中:
46.①
、若是,则跳转至步骤(4);
47.②
、如否,则执行步骤(10);
48.(10)、遍历备份的所有子备份;
49.(11)、删除合并备份与每个子备份中重复的对象信息;
50.(12)、生成子备份的元数据文件,用于记录合并到子备份的对象信息;
51.(13)、判断遍历子备份是否结束:
52.①
、若是,则执行步骤(14);
53.②
、若否,则跳转至步骤(10);
54.(14)、删除备份的所有对象、元数据文件、sha256文件;
55.(15)、结束。
56.更优地,备份中对象根据偏移量及对象的长度,按照对象之间的位置关系实现对象的合并及删除;具体如下:
57.(1)、根据备份id模糊查询所有的元数据文件,获取元数据文件中记录的所有对象信息,下一步执行步骤(2);
58.(2)、根据子备份id模糊查询所有的元数据文件,获取元数据文件中记录的所有对象信息,下一步执行步骤(3);
59.(3)、遍历备份的所有对象,下一步执行步骤(4)和步骤(11);
60.(4)、获取对象的位置信息:偏移量os及es=偏移量 长度-1,下一步执行步骤(5);
61.(5)、遍历子备份的所有对象,下一步执行步骤(6)和步骤(10);
62.(6)、获取子备份对象的位置信息:偏移量dos及des=偏移量 长度,下一步执行步骤(7);
63.(7)、循环比较备份与子备份的对象位置信息,判断dos≤os且oe≤des:
64.①
、若是,则执行步骤(8);
65.②
、若否,则跳转至步骤(9);
66.(8)、标记删除备份对象,下一步执行步骤(10);
67.(9)、删除备份对象信息中的偏移量和长度信息,去除备份对象中与子备份对象信息重复的部分,下一步执行步骤(10);
68.(10)、判断是否遍历子备份的所有对象结束,下一步执行步骤(11);
69.(11)、判断是否遍历备份所有的对象结束,下一步执行步骤(12);
70.(12)、获取备份中需要合并到子备份中的所有对象信息,下一步执行步骤(13);
71.(13)、根据获取的合并信息,合并备份的对象中与子备份的对象未重复的部分,下一步执行步骤(14);
72.(14)、子备份遍历结束后,删除备份中所有的对象。
73.一种电子设备,包括:存储器和至少一个处理器;
74.其中,所述存储器存储计算机执行指令;
75.所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如上述的基于偏移量的云硬盘增量备份合并方法。
76.一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行时,实现如上述的基于偏移量的云硬盘增量备份合并方法。
77.本发明的基于偏移量的云硬盘增量备份合并方法及存储介质具有以下优点:
78.(一)本发明在备份依赖项的数量大于1以及块大小与对象大小不一致的情况下,根据对象的偏移量及长度信息,将对象之间的关系分成5多情况,并对每种情况提出了合并方法,解决了增量备份在复杂环境中的合并问题;
79.(二)本发明利用备份对象的偏移量,不仅实现了增量备份在对象大小与块大小不一致的情况下的备份合并,还解决了父备份存在多个依赖项的情况下的备份删除问题。
附图说明
80.下面结合附图对本发明进一步说明。
81.附图1为增量备份创建的示意图;
82.附图2为删除被依赖备份的示意图;
83.附图3为增量备份合并的流程框图;
84.附图4为为对象合并的流程框图。
具体实施方式
85.参照说明书附图和具体实施例对本发明的基于偏移量的云硬盘增量备份合并方法及存储介质作以下详细地说明。
86.实施例1:
87.本发明的基于偏移量的云硬盘增量备份合并方法,该方法是根据数据库中备份的依赖关系,获得父备份的所有子备份,并且利用对象中记录的偏移量信息,将每个备份的所有对象按照偏移量的大小排序;再遍历父备份中的每个对象,根据每个对象的偏移量,获得对应于子备份中的对象;并通过比较两个对象的位置信息,利用压缩算法获得合并后的对象;该方法具体如下:
88.s1、判断备份的父备份和子备份中不存在状态为deleting或creating:增量备份可删除的条件为父子备份的状态不为删除中或创建中;
89.s2、模糊查询备份和子备份的所有元数据文件;
90.s3、读备份和子备份的元数据文件,获取备份和子备份的对象信息;
91.s4、根据备份对象的偏移量及长度信息与子备份的偏移量及长度信息之间的关系,修改备份的对象信息;
92.s5、根据修改的对象信息,生成新的对象,合并到子备份中;
93.s6、修改子备份的parent_id、actual_size及object_count的信息;
94.s7、删除备份的所有对象、元数据文件、sha256文件。
95.如附图1所示,本发明的增量备份的创建具体如下:
96.设云硬盘的内存大小为s,a为云硬盘的全量备份,a的对象个数为2,每个对象由a/bs个大小为bs的块组成;
97.基于云硬盘的全量备份a创建增量备份b,如附图1所示,灰色部分为数据相同的块,b的对象个数为5;
98.云硬盘还有一个快照s,且快照s的创建时间晚于备份b,分别基于快照s和增量备份b创建一个增量备份c和一个增量备份d;此时,增量备份b有两个增量备份,分别为增量备份c和增量备份d。其中,增量备份c由4个对象组成。
99.如附图2所示,为了实现删除增量备份链中被依赖备份,增量备份删除时,将删除的增量备份中的对象数据合并到其子备份中;对象数据合并过程中,相邻备份的对象存在如下关系:
100.①
、增量备份b存在对象(a0,a1),增量备份c不存在对应位置的对象,则将(a0-1,a1-1)合并到增量备份c中;
101.②
、增量备份b存在对象a3,增量备份c存在对应位置的对象,则删除a3;
102.③
、增量备份b存在对象(b1,b2),增量备份c的对象(b0、b1)中b1重复,则删除增量备份b中的对象(b1,b2)中的b1,生成新的对象b2合并到增量备份b中;
103.④
、增量备份b存在对象(b4,b5),增量备份c存在对象(b5,b6),两个备份存在重复位置b5,则删除增量备份b中的对象(b4,b5)中的b5,生成新的对象b4合并到增量备份c中;
104.⑤
、增量备份b存在对象(b7,b8,b9),增量备份c存在对象b8,其中b8重复,则删除增量备份b中的b8,生成新的对象b7和b9合并到增量备份c中。
105.本实施例中,更优地,增量备份存在多个依赖项时,通过查询数据库获得所有依赖项,再根据备份与每个依赖项之间的关系,将备份的对象分别合并到每个依赖项中。
106.如附图3所示,本实施例中的增量备份合并程具体如下:
107.(1)、获取备份当前的状态,记为ps;
108.(2)、判断备份的状态是否为不可用或异常:
109.①
、若是,则执行步骤(3);
110.②
、如否,则跳转至步骤(4);
111.(3)、判断存在子备份的状态是否为删除中或创建中:
112.①
、若是,则执行步骤(5);
113.②
、如否,则跳转至步骤(4);
114.(4)、删除失败;
115.(5)判断父备份状态是否不为删除中或创建中:
116.①
、若是,则执行步骤(6);
117.②
、如否,则跳转至步骤(4);
118.(6)、重新获取备份当前的状态,并判断当前的状态与ps值相同:
119.①
、若是,则执行步骤(7);
120.②
、如否,则跳转至步骤(4);
121.(7)、将备份状态更改为删除中;
122.(8)、重新判断存在子备份的状态是否为删除中或创建中:
123.①
、若是,则跳转至步骤(4);
124.②
、如否,则执行步骤(9);
125.(9)、重新判断父备份的状态是否为删除中:
126.①
、若是,则跳转至步骤(4);
127.②
、如否,则执行步骤(10);
128.(10)、遍历备份的所有子备份;
129.(11)、删除合并备份与每个子备份中重复的对象信息;
130.(12)、生成子备份的元数据文件,用于记录合并到子备份的对象信息;
131.(13)、判断遍历子备份是否结束:
132.①
、若是,则执行步骤(14);
133.②
、若否,则跳转至步骤(10);
134.(14)、删除备份的所有对象、元数据文件、sha256文件;
135.(15)、结束。
136.如附图4所示,本实施例中的备份中对象根据偏移量及对象的长度,按照对象之间的位置关系实现对象的合并及删除;具体如下:
137.(1)、根据备份id模糊查询所有的元数据文件,获取元数据文件中记录的所有对象信息,下一步执行步骤(2);
138.(2)、根据子备份id模糊查询所有的元数据文件,获取元数据文件中记录的所有对象信息,下一步执行步骤(3);
139.(3)、遍历备份的所有对象,下一步执行步骤(4)和步骤(11);
140.(4)、获取对象的位置信息:偏移量os及es=偏移量 长度-1,下一步执行步骤(5);
141.(5)、遍历子备份的所有对象,下一步执行步骤(6)和步骤(10);
142.(6)、获取子备份对象的位置信息:偏移量dos及des=偏移量 长度,下一步执行步骤(7);
143.(7)、循环比较备份与子备份的对象位置信息,判断dos≤os且oe≤des:
144.①
、若是,则执行步骤(8);
145.②
、若否,则跳转至步骤(9);
146.(8)、标记删除备份对象,下一步执行步骤(10);
147.(9)、删除备份对象信息中的偏移量和长度信息,去除备份对象中与子备份对象信息重复的部分,下一步执行步骤(10);
148.(10)、判断是否遍历子备份的所有对象结束,下一步执行步骤(11);
149.(11)、判断是否遍历备份所有的对象结束,下一步执行步骤(12);
150.(12)、获取备份中需要合并到子备份中的所有对象信息,下一步执行步骤(13);
151.(13)、根据获取的合并信息,合并备份的对象中与子备份的对象未重复的部分,下一步执行步骤(14);
152.(14)、子备份遍历结束后,删除备份中所有的对象。
153.实施例2:
154.本发明实施例还提供了一种电子设备,包括:存储器和一个处理器;
155.其中,存储器存储计算机执行指令;
156.一个处理器执行存储器存储的计算机执行指令,使一个处理器执行本发明任一实施例中的基于偏移量的云硬盘增量备份合并方法。
157.实施例3:
158.本发明实施例还提供了一种计算机可读存储介质,其中存储有多条指令,指令由处理器加载,使处理器执行本发明任一实施例中的基于偏移量的云硬盘增量备份合并方
法。具体地,可以提供配有存储介质的系统或者装置,在该存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机(或cpu或mpu)读出并执行存储在存储介质中的程序代码。
159.在这种情况下,从存储介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此程序代码和存储程序代码的存储介质构成了本发明的一部分。
160.用于提供程序代码的存储介质实施例包括软盘、硬盘、磁光盘、光盘(如cd-rom、cd-r、cd-rw、dvd-rom、dvd-ram、dvd-rw、dvd rw)、磁带、非易失性存储卡和rom。可选择地,可以由通信网络从服务器计算机上下载程序代码。
161.此外,应该清楚的是,不仅可以通过执行计算机所读出的程序代码,而且可以通过基于程序代码的指令使计算机上操作的操作系统等来完成部分或者全部的实际操作,从而实现上述实施例中任意一项实施例的功能。
162.此外,可以理解的是,将由存储介质读出的程序代码写到插入计算机内的扩展板中所设置的存储器中或者写到与计算机相连接的扩展单元中设置的存储器中,随后基于程序代码的指令使安装在扩展板或者扩展单元上的cpu等来执行部分和全部实际操作,从而实现上述实施例中任一实施例的功能。
163.最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献