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

一种数据同步的方法、装置、设备及可读介质与流程

2021-11-05 20:45:00 来源:中国专利 TAG:


1.本领域涉及计算机领域,并且更具体地涉及一种数据同步的方法、装置、设备及可读介质。


背景技术:

2.快照是指定数据集合在某一特定时间点的复制,它是一个完全可用的拷贝。快照技术可以实现对数据的保护,在灾备领域得到广泛应用。快照技术将卷划分成同等大小的数据块(称为grain),对某个卷生成快照之后,会进行源卷到目标卷的数据同步,分为写时拷贝(cow,copy on write)和后台拷贝两种拷贝方式。写时拷贝是指源卷某个grain的数据第一次被修改的时候,将源卷这个grain的数据拷贝到目标卷之后,再进行源卷grain的修改,后台拷贝是指根据指定的速率将源卷的grain按照在卷中的位置从小到大的顺序依次拷贝到目标卷中。
3.不管是写时拷贝还是后台拷贝,都需要一个位图,每一位对应卷的一个grain,来标记每个grain是否已经被拷贝过,从而避免同一grain的重复拷贝。每次数据同步,都需要根据grain的位置先计算出它在位图上的索引,然后根据索引读取位图的值并判断是否需要拷贝,在拷贝完成后需要更新位图,记录当前grain已经拷贝完成。这样做有以下不足:(1)主机对源卷进行修改的时候,有很大的可能一次性修改多个连续的grain,这样就需要进行多次cow,需要多次读取位图进行判断和多次位图更新。后台拷贝每处理一个grain之后都会进行一次位图更新。(2)不管是写时拷贝还是后台拷贝,每次拷贝结束后需要判断是否卷的所有grain已经拷贝完成,从而结束快照。判断所有grain拷贝完成的依据就是位图,需要对整个位图进行遍历,位图的所有位都被标记过才表明所有grain拷贝结束。上述对位图的读取和更新操作都占用了计算机的资源,降低了数据拷贝的速度,对主机的读写操作也有较大的性能影响。


技术实现要素:

4.有鉴于此,本发明实施例的目的在于提出一种数据同步的方法、装置、设备及可读介质,通过使用本发明的技术方案,能够提高后台拷贝的速度,并减少后台拷贝对计算机资源的占用,降低后台拷贝对主机性能的影响。
5.基于上述目的,本发明的实施例的一个方面提供了一种数据同步的方法,包括以下步骤:
6.创建水位,并将水位初始化为0,并判断数据同步的方式;
7.响应于数据同步的方式为快照后台拷贝,判断源卷中的数据块是否已经拷贝;
8.在判断后将水位加1,并将水位与源卷中的数据块的总数进行比较;
9.响应于水位等于源卷中的数据块的总数,结束数据同步。
10.根据本发明的一个实施例,还包括:
11.响应于水位小于源卷中的数据块的总数,判断源卷中的下一个数据块是否已经完
成拷贝;
12.在判断后将水位加1,并将水位与源卷中的数据块的总数进行比较;
13.响应于水位等于源卷中的数据块的总数,结束数据同步。
14.根据本发明的一个实施例,还包括:
15.响应于源卷中的数据块没有拷贝,将源卷中没有拷贝的数据块拷贝到目标卷的数据块中。
16.根据本发明的一个实施例,响应于数据同步的方式为快照后台拷贝,判断源卷中的数据块是否已经拷贝包括:
17.基于数据块对应的位图判断数据块是否已经拷贝。
18.根据本发明的一个实施例,还包括:
19.响应于数据同步的方式为快照写时拷贝,将数据块的索引值和水位进行比较并将水位加1;
20.响应于数据块的索引值大于水位,根据当前数据块的位图判断当前数据块是否已经完成拷贝;
21.响应于当前数据块完成拷贝,判断源卷中的数据块是否全部完成拷贝;
22.响应于源卷中的数据块全部完成拷贝,结束数据同步。
23.根据本发明的一个实施例,还包括:
24.响应于当前数据块未完成拷贝,将源卷中没有拷贝的数据块拷贝到目标卷的数据块中并更新位图。
25.根据本发明的一个实施例,还包括:
26.响应于源卷中的数据块未全部完成拷贝,将源卷中的下一个数据块的索引值和水位进行比较并将水位加1;
27.响应于数据块的索引值大于水位,根据当前数据块的位图判断当前数据块是否已经完成拷贝;
28.响应于当前数据块完成拷贝,判断源卷中的数据块是否全部完成拷贝;
29.响应于源卷中的数据块全部完成拷贝,结束数据同步。
30.本发明的实施例的另一个方面,还提供了一种数据同步的装置,装置包括:
31.创建模块,创建模块配置为创建水位,并将水位初始化为0,并判断数据同步的方式;
32.判断模块,判断模块配置为响应于数据同步的方式为快照后台拷贝,判断源卷中的数据块是否已经拷贝;
33.比较模块,比较模块配置为在判断后将水位加1,并将水位与源卷中的数据块的总数进行比较;
34.关闭模块,关闭模块配置为响应于水位等于源卷中的数据块的总数,结束数据同步。
35.本发明的实施例的另一个方面,还提供了一种计算机设备,该计算机设备包括:
36.至少一个处理器;以及
37.存储器,存储器存储有可在处理器上运行的计算机指令,指令由处理器执行时实现上述任意一项方法的步骤。
38.本发明的实施例的另一个方面,还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现上述任意一项方法的步骤。
39.本发明具有以下有益技术效果:本发明实施例提供的数据同步的方法,通过创建水位,并将水位初始化为0,并判断数据同步的方式;响应于数据同步的方式为快照后台拷贝,判断源卷中的数据块是否已经拷贝;在判断后将水位加1,并将水位与源卷中的数据块的总数进行比较;响应于水位等于源卷中的数据块的总数,结束数据同步的技术方案,能够提高后台拷贝的速度,并减少后台拷贝对计算机资源的占用,降低后台拷贝对主机性能的影响。
附图说明
40.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
41.图1为根据本发明一个实施例的数据同步的方法的示意性流程图;
42.图2为根据本发明一个实施例的数据同步的装置的示意图;
43.图3为根据本发明一个实施例的计算机设备的示意图;
44.图4为根据本发明一个实施例的计算机可读存储介质的示意图。
具体实施方式
45.为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
46.基于上述目的,本发明的实施例的第一个方面,提出了一种数据同步的方法的一个实施例。图1示出的是该方法的示意性流程图。
47.如图1中所示,该方法可以包括以下步骤:
48.s1创建水位,并将水位初始化为0,并判断数据同步的方式。
49.水位定义为一个整数型数值,初始化为0,每处理一个源卷的数据块则水位加1,直到达到预设的条件则表示数据拷贝的结束。在数据同步时,对某个卷生成快照之后,会进行源卷到目标卷的数据同步,分为写时拷贝和后台拷贝两种拷贝方式,写时拷贝是指源卷某个grain的数据第一次被修改的时候,将源卷这个grain的数据拷贝到目标卷之后,再进行源卷grain的修改,后台拷贝是指根据指定的速率将源卷的grain按照在卷中的位置从小到大的顺序依次拷贝到目标卷中,两种拷贝方式中对水位的判断不同。在创建水位的同时,还需要创建源卷和目标卷的快照映射关系,创建位图,位图的位数为源卷的大小除以grain的大小,并将位图所有位初始化为0,可以通过位图的值判断数据块grain是否已经被拷贝。
50.s2响应于数据同步的方式为快照后台拷贝,判断源卷中的数据块是否已经拷贝。
51.s3在判断后将水位加1,并将水位与源卷中的数据块的总数进行比较。
52.s4响应于水位等于源卷中的数据块的总数,结束数据同步。
53.当快照后台拷贝开始时,需要开启一个线程,用于后台拷贝任务,从源卷的第1个grain开始遍历,直到最后1个grain,根据位图判断当前grain是否已经拷贝完成,如果已经
拷贝完成,则不对grain进行处理,将水位加1,如果grain没有拷贝完成,则将源卷grain的数据拷贝到目标卷对应grain中,将水位加1。每处理一个grain后,需要将水位与源卷中的数据块的总数进行比较,当水位等于grain的总数时,则表明快照同步完成,关闭线程结束后台拷贝任务,如果水位小于grain的总数时,则继续下一个grain的处理,直到水位等于grain的总数时关闭线程结束后台拷贝任务。
54.通过本发明的技术方案,能够提高后台拷贝的速度,并减少后台拷贝对计算机资源的占用,降低后台拷贝对主机性能的影响。
55.在本发明的一个优选实施例中,还包括:
56.响应于水位小于源卷中的数据块的总数,判断源卷中的下一个数据块是否已经完成拷贝;
57.在判断后将水位加1,并将水位与源卷中的数据块的总数进行比较;
58.响应于水位等于源卷中的数据块的总数,结束数据同步。在每判断一个源卷中的数据块后都对水位加1,然后在满足水位等于源卷中的数据块的总数时结束数据同步,如果不满足则继续处理下一个数据块。
59.在本发明的一个优选实施例中,还包括:
60.响应于源卷中的数据块没有拷贝,将源卷中没有拷贝的数据块拷贝到目标卷的数据块中。
61.在本发明的一个优选实施例中,响应于数据同步的方式为快照后台拷贝,判断源卷中的数据块是否已经拷贝包括:
62.基于数据块对应的位图判断数据块是否已经拷贝。源卷中的数据块的位图都初始化为0,在数据块被拷贝是该值会标记为1,表示该数据块已经被拷贝。
63.在本发明的一个优选实施例中,还包括:
64.响应于数据同步的方式为快照写时拷贝,将数据块的索引值和水位进行比较并将水位加1;
65.响应于数据块的索引值大于水位,根据当前数据块的位图判断当前数据块是否已经完成拷贝;
66.响应于当前数据块完成拷贝,判断源卷中的数据块是否全部完成拷贝;
67.响应于源卷中的数据块全部完成拷贝,结束数据同步。
68.当数据同步的方式为快照写时拷贝,在接收到主机修改源卷数据的请求之后,按照grain索引值从大到小的顺序,循环处理所有grain的数据修改,依次比较每个grain索引值和水位的大小,如果grain索引值小于等于水位,表明本次请求所有grain已经拷贝完成,不做处理,直接结束本次主机请求,如果grain索引值大于水位,则需要根据位图来判断当前grain是否已经拷贝完成,如果已经拷贝完成,则不对grain进行处理,将水位加1,如果没有拷贝完成,则将源卷grain的数据拷贝到目标卷对应grain,并更新位图的grain对应位置,并将水位加1。每处理一个grain后,需要将水位与grain的索引值进行比较,如果不满足grain索引值小于水位的条件,则继续下一个grain的处理,直到满足上述条件结束本次主机请求。
69.在本发明的一个优选实施例中,还包括:
70.响应于当前数据块未完成拷贝,将源卷中没有拷贝的数据块拷贝到目标卷的数据
块中并更新位图。
71.在本发明的一个优选实施例中,还包括:
72.响应于源卷中的数据块未全部完成拷贝,将源卷中的下一个数据块的索引值和水位进行比较并将水位加1;
73.响应于数据块的索引值大于水位,根据当前数据块的位图判断当前数据块是否已经完成拷贝;
74.响应于当前数据块完成拷贝,判断源卷中的数据块是否全部完成拷贝;
75.响应于源卷中的数据块全部完成拷贝,结束数据同步。
76.本发明的技术方案中添加了水位作为grain是否已经拷贝完成的依据以及作为快照是否结束的依据。和传统的位图相比,直接优势在于:(1)判断grain拷贝完成与否更加高效。通过位图来判断grain是否已拷贝完成需要3步:根据grain索引计算grain在位图中的位置,读取位图对应位置内容,判断位图对应位置内容是否被标记,通过水位判断grain是否已拷贝完成只需要1步,比较grain索引和水位的大小。(2)记录快照进度更加高效。通过位图来记录快照进度,需要遍历位图中的每一位,被标记的位的个数和除以总位数即为快照进度,全部被标记则表明快照结束,通过水位来记录快照进度,水位除以grain总数即为快照进度,水位等于grain总个数则表明快照结束。
77.在具体应用中,后台拷贝过程中减去了位图更新的步骤,只更新水位,提高了后台拷贝的速度,并减少后台拷贝对计算机资源的占用,降低后台拷贝对主机性能的影响。写时拷贝过程中优先通过水位来判断grain是否拷贝完成,如果grain已经在后台拷贝中进行了拷贝,则不再需要对位图的判断,判断过程更加高效,尤其对于多个连续数据块修改的场景,只需要比较一次水位即可结束本次主机请求,减少了对位图的多次操作。对于主机读写频繁的系统来说,本发明的技术方案可以在很大程度上提高主机的性能。
78.通过本发明的技术方案,能够提高后台拷贝的速度,并减少后台拷贝对计算机资源的占用,降低后台拷贝对主机性能的影响。
79.需要说明的是,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,上述的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中存储介质可为磁碟、光盘、只读存储器(read

only memory,rom)或随机存取存储器(random access memory,ram)等。上述计算机程序的实施例,可以达到与之对应的前述任意方法实施例相同或者相类似的效果。
80.此外,根据本发明实施例公开的方法还可以被实现为由cpu执行的计算机程序,该计算机程序可以存储在计算机可读存储介质中。在该计算机程序被cpu执行时,执行本发明实施例公开的方法中限定的上述功能。
81.基于上述目的,本发明的实施例的第二个方面,提出了一种数据同步的装置,如图2所示,装置200包括:
82.创建模块,创建模块配置为创建水位,并将水位初始化为0,并判断数据同步的方式;
83.判断模块,判断模块配置为响应于数据同步的方式为快照后台拷贝,判断源卷中的数据块是否已经拷贝;
84.比较模块,比较模块配置为在判断后将水位加1,并将水位与源卷中的数据块的总数进行比较;
85.关闭模块,关闭模块配置为响应于水位等于源卷中的数据块的总数,结束数据同步。
86.在本发明的一个优选实施例中,判断模块还配置为:
87.响应于水位小于源卷中的数据块的总数,判断源卷中的下一个数据块是否已经完成拷贝;
88.在判断后将水位加1,并将水位与源卷中的数据块的总数进行比较;
89.响应于水位等于源卷中的数据块的总数,结束数据同步。
90.在本发明的一个优选实施例中,还包括拷贝模块,拷贝模块配置为:
91.响应于源卷中的数据块没有拷贝,将源卷中没有拷贝的数据块拷贝到目标卷的数据块中。
92.在本发明的一个优选实施例中,判断模块还配置为:
93.基于数据块对应的位图判断数据块是否已经拷贝。
94.在本发明的一个优选实施例中,判断模块还配置为:
95.响应于数据同步的方式为快照写时拷贝,将数据块的索引值和水位进行比较并将水位加1;
96.响应于数据块的索引值大于水位,根据当前数据块的位图判断当前数据块是否已经完成拷贝;
97.响应于当前数据块完成拷贝,判断源卷中的数据块是否全部完成拷贝;
98.响应于源卷中的数据块全部完成拷贝,结束数据同步。
99.在本发明的一个优选实施例中,拷贝模块还配置为:
100.响应于当前数据块未完成拷贝,将源卷中没有拷贝的数据块拷贝到目标卷的数据块中并更新位图。
101.在本发明的一个优选实施例中,判断模块还配置为:
102.响应于源卷中的数据块未全部完成拷贝,将源卷中的下一个数据块的索引值和水位进行比较并将水位加1;
103.响应于数据块的索引值大于水位,根据当前数据块的位图判断当前数据块是否已经完成拷贝;
104.响应于当前数据块完成拷贝,判断源卷中的数据块是否全部完成拷贝;
105.响应于源卷中的数据块全部完成拷贝,结束数据同步。
106.基于上述目的,本发明实施例的第三个方面,提出了一种计算机设备。图3示出的是本发明提供的计算机设备的实施例的示意图。如图3所示,本发明实施例包括如下装置:至少一个处理器s21;以及存储器s22,存储器s22存储有可在处理器上运行的计算机指令s23,指令由处理器执行时实现以下方法:
107.创建水位,并将水位初始化为0,并判断数据同步的方式;
108.响应于数据同步的方式为快照后台拷贝,判断源卷中的数据块是否已经拷贝;
109.在判断后将水位加1,并将水位与源卷中的数据块的总数进行比较;
110.响应于水位等于源卷中的数据块的总数,结束数据同步。
111.在本发明的一个优选实施例中,还包括:
112.响应于水位小于源卷中的数据块的总数,判断源卷中的下一个数据块是否已经完成拷贝;
113.在判断后将水位加1,并将水位与源卷中的数据块的总数进行比较;
114.响应于水位等于源卷中的数据块的总数,结束数据同步。
115.在本发明的一个优选实施例中,还包括:
116.响应于源卷中的数据块没有拷贝,将源卷中没有拷贝的数据块拷贝到目标卷的数据块中。
117.在本发明的一个优选实施例中,响应于数据同步的方式为快照后台拷贝,判断源卷中的数据块是否已经拷贝包括:
118.基于数据块对应的位图判断数据块是否已经拷贝。
119.在本发明的一个优选实施例中,还包括:
120.响应于数据同步的方式为快照写时拷贝,将数据块的索引值和水位进行比较并将水位加1;
121.响应于数据块的索引值大于水位,根据当前数据块的位图判断当前数据块是否已经完成拷贝;
122.响应于当前数据块完成拷贝,判断源卷中的数据块是否全部完成拷贝;
123.响应于源卷中的数据块全部完成拷贝,结束数据同步。
124.在本发明的一个优选实施例中,还包括:
125.响应于当前数据块未完成拷贝,将源卷中没有拷贝的数据块拷贝到目标卷的数据块中并更新位图。
126.在本发明的一个优选实施例中,还包括:
127.响应于源卷中的数据块未全部完成拷贝,将源卷中的下一个数据块的索引值和水位进行比较并将水位加1;
128.响应于数据块的索引值大于水位,根据当前数据块的位图判断当前数据块是否已经完成拷贝;
129.响应于当前数据块完成拷贝,判断源卷中的数据块是否全部完成拷贝;
130.响应于源卷中的数据块全部完成拷贝,结束数据同步。
131.基于上述目的,本发明实施例的第四个方面,提出了一种计算机可读存储介质。图4示出的是本发明提供的计算机可读存储介质的实施例的示意图。如图4所示,计算机可读存储介质存储s31有被处理器执行时执行如上方法的计算机程序s32。
132.此外,根据本发明实施例公开的方法还可以被实现为由处理器执行的计算机程序,该计算机程序可以存储在计算机可读存储介质中。在该计算机程序被处理器执行时,执行本发明实施例公开的方法中限定的上述功能。
133.此外,上述方法步骤以及系统单元也可以利用控制器以及用于存储使得控制器实现上述步骤或单元功能的计算机程序的计算机可读存储介质实现。
134.本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,已经就各种示意性组件、方块、模块、电路和步骤的功能对其进
行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于具体应用以及施加给整个系统的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现的功能,但是这种实现决定不应被解释为导致脱离本发明实施例公开的范围。
135.在一个或多个示例性设计中,功能可以在硬件、软件、固件或其任意组合中实现。如果在软件中实现,则可以将功能作为一个或多个指令或代码存储在计算机可读介质上或通过计算机可读介质来传送。计算机可读介质包括计算机存储介质和通信介质,该通信介质包括有助于将计算机程序从一个位置传送到另一个位置的任何介质。存储介质可以是能够被通用或专用计算机访问的任何可用介质。作为例子而非限制性的,该计算机可读介质可以包括ram、rom、eeprom、cd

rom或其它光盘存储设备、磁盘存储设备或其它磁性存储设备,或者是可以用于携带或存储形式为指令或数据结构的所需程序代码并且能够被通用或专用计算机或者通用或专用处理器访问的任何其它介质。此外,任何连接都可以适当地称为计算机可读介质。例如,如果使用同轴线缆、光纤线缆、双绞线、数字用户线路(dsl)或诸如红外线、无线电和微波的无线技术来从网站、服务器或其它远程源发送软件,则上述同轴线缆、光纤线缆、双绞线、dsl或诸如红外线、无线电和微波的无线技术均包括在介质的定义。如这里所使用的,磁盘和光盘包括压缩盘(cd)、激光盘、光盘、数字多功能盘(dvd)、软盘、蓝光盘,其中磁盘通常磁性地再现数据,而光盘利用激光光学地再现数据。上述内容的组合也应当包括在计算机可读介质的范围内。
136.以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
137.应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。
138.上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。
139.本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
140.所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。
再多了解一些

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

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

相关文献