快照后台同步方法、装置、电子设备和存储介质与流程

未命名 09-29 阅读:117 评论:0


1.本发明涉及计算机技术领域,尤其涉及一种快照后台同步方法、装置、电子设备和存储介质。


背景技术:

2.随着计算机技术的快速发展,对存储设备中数据的可靠性和安全性的要求也越来越高。快照不仅能够实现在线数据的备份与恢复,还能够为存储用户提供另外一个数据访问通道。对于几乎所有的高中低端存储系统,快照都是一个不可或缺的功能。后台拷贝是指按照一定的速率和顺序将源卷中的各个数据块依次拷贝到目标卷中。现有技术通常在双控或多控存储系统中选择一个控制器作为快照的owner控制器,并仅在owner控制器上执行数据的后台拷贝任务,其他非owner的控制器并没有发挥后台拷贝的作用,造成了多控存储系统的资源浪费,大大降低了快照后台同步的速度。


技术实现要素:

3.本发明提供一种快照后台同步方法、装置、电子设备和存储介质,用以解决现有技术在双控或多控存储系统中选择一个控制器作为快照的owner控制器,并仅在owner控制器上执行数据的后台拷贝任务,造成了多控存储系统的资源浪费,大大降低了快照后台同步的速度的缺陷。
4.第一方面,本发明提供一种快照后台同步方法,包括:
5.将源卷数据划分成n个数据部分;其中,n为大于1的自然数;
6.将所述n个数据部分均衡分配给多控存储系统的n个控制器,以使得每个控制器负责至少一个数据部分的同步;
7.将每个所述控制器所负责的数据部分通过后台拷贝方式同步至目标卷。
8.在一些实施例中,所述将所述n个数据部分均衡分配给多控存储系统的n个控制器,包括:
9.初始化时,为所述n个控制器中的每个控制器分配一个数据部分,控制器与数据部分一一对应;
10.在所述n个控制器中存在故障控制器的情况下,将所述故障控制器所负责的数据部分重新分配给目标控制器,所述目标控制器为未发生故障的控制器中所负责的数据部分的数量最少的任一控制器。
11.在一些实施例中,所述将所述n个数据部分均衡分配给多控存储系统的n个控制器,还包括:
12.在所述故障控制器恢复正常后,将所述故障控制器所负责的数据部分重新分配给所述故障控制器。
13.在一些实施例中,所述将每个所述控制器所负责的数据部分通过后台拷贝方式同步至目标卷,包括:
14.重复执行以下步骤,直至完成每个所述控制器所负责的数据部分的同步:
15.若检测到快照的后台拷贝速度从0变成大于0,或者,数据部分拷贝状态标识发生变化,根据所述数据部分拷贝状态标识确定第一个未完成拷贝的数据部分;
16.若确定所述第一个未完成拷贝的数据部分存在,则将下一个需要去进行后台拷贝的数据部分标识设置为所述第一个未完成拷贝的数据部分的编号;
17.根据所述下一个需要去进行后台拷贝的数据部分标识,从每个所述控制器所负责的数据部分中确定每个所述控制器需要拷贝的数据部分,并通知给每个所述控制器,以使得每个所述控制器通过启动自身的后台同步线程,将其需要拷贝的数据部分通过后台拷贝方式同步至目标卷;
18.在接收到控制器反馈的拷贝完成通知消息的情况下,更新所述数据部分拷贝状态标识中所述拷贝完成通知消息对应的数据部分所在的比特位;
19.其中,所述数据部分拷贝状态标识用于表示各个控制器所负责的数据部分的拷贝状态,每个比特位表示一个数据部分的拷贝状态;
20.所述下一个需要去进行后台拷贝的数据部分标识用于表示下一个需要去进行后台拷贝的数据部分的编号。
21.在一些实施例中,所述根据所述下一个需要去进行后台拷贝的数据部分标识,从每个所述控制器所负责的数据部分中确定每个所述控制器需要拷贝的数据部分,包括:
22.遍历所有控制器,针对每个控制器,将每个控制器所负责的所有数据部分的编号按照从小到大的顺序排列,确定编号大于等于所述下一个需要去进行后台拷贝的数据部分标识的第一个数据部分,作为每个所述控制器需要拷贝的数据部分。
23.在一些实施例中,所述将源卷数据划分成n个数据部分,包括:
24.将源卷数据划分成同等大小的多个数据块;
25.基于所述多个数据块在所述源卷中的位置,对所述多个数据块按照从小到大的顺序进行编号;
26.将每一数据块对应的编号对所述n的取值进行取余;
27.将取余相同的编号对应的数据块组合成一个数据部分,得到n个数据部分。
28.在一些实施例中,所述方法还包括:
29.获取每个所述控制器在进行数据同步时实时地反馈的后台拷贝进度;
30.汇总所有控制器反馈的后台拷贝进度,得到整体后台拷贝进度,将所述整体后台拷贝进度反馈给用户。
31.第二方面,本发明提供一种快照后台同步装置,包括:
32.数据划分单元,用于将源卷数据划分成n个数据部分;其中,n为大于1的自然数;
33.数据分配单元,用于将所述n个数据部分均衡分配给多控存储系统的n个控制器,以使得每个控制器负责至少一个数据部分的同步;
34.数据同步单元,用于将每个所述控制器所负责的数据部分通过后台拷贝方式同步至目标卷。
35.第三方面,本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述快照后台同步方法。
36.第四方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述快照后台同步方法。
37.本发明提供的一种快照后台同步方法、装置、电子设备和存储介质,通过将源卷数据划分成n个数据部分,将n个数据部分均衡分配给多控存储系统的n个控制器,以使得每个控制器负责至少一个数据部分的同步,将每个控制器所负责的数据部分通过后台拷贝方式同步至目标卷,充分利用了多控存储系统的控制器资源,提高了快照后台同步的速度。
附图说明
38.为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
39.图1是本发明实施例提供的快照后台同步方法的流程示意图之一;
40.图2是本发明实施例提供的将每个控制器所负责的数据部分通过后台拷贝方式同步至目标卷的流程示意图;
41.图3是本发明实施例提供的将源卷数据划分成n个数据部分的示例;
42.图4是本发明实施例提供的快照后台同步方法的流程示意图之二;
43.图5是本发明提供的快照后台同步装置的结构示意图;
44.图6是本发明提供的电子设备的结构示意图。
具体实施方式
45.为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
46.快照是指定数据集合在某一特定时间点的复制,它是一个完全可用的拷贝。快照技术将源卷划分成同等大小的数据块,对某个源卷生成快照之后,会进行源卷到目标卷的数据同步。快照技术分为写时拷贝和后台拷贝两种拷贝方式。后台拷贝是指按照一定的速率,根据数据块在源卷中的位置按照从小到大的顺序,将源卷中各个数据块中的数据依次拷贝到目标卷中对应数据块的位置。
47.如果用户指定快照的后台拷贝速率大于0,那么系统就会为这个快照启动一个后台任务线程,用来执行该快照中所有数据块的拷贝,并设置一个水位(watermark),来记录当前拷贝到第几个数据块了,每拷贝一个数据块就将watermark加1。由于后台数据同步必须按照数据块在卷中从小到大的顺序来执行,因此在多控存储系统中,为了避免两个控制器会同时操作同一个数据块、以及避免造成顺序混乱,系统会选择一个控制器作为快照的owner控制器,并仅在owner控制器上进行后台同步任务,没有充分利用其他非owner控制器,从而大大降低了快照后台同步的速度。
48.为此,本发明提供了一种快照后台同步方法、装置、电子设备和存储介质,通过将源卷数据划分成n个数据部分,将n个数据部分均衡分配给多控存储系统的n个控制器,以使
得每个控制器负责至少一个数据部分的同步,将每个控制器所负责的数据部分通过后台拷贝方式同步至目标卷。本发明可以充分利用多控存储系统的控制器资源,从而能够提高快照后台同步的速度。
49.图1为本发明实施例提供的快照后台同步方法的流程示意图之一。如图1所示,提供了一种快照后台同步方法,包括以下步骤:步骤110、步骤120、步骤130。该方法流程步骤仅仅作为本发明一个可能的实现方式。
50.步骤110、将源卷数据划分成n个数据部分;其中,n为大于1的自然数。
51.其中,源卷数据是指在某个时间点上,对存储系统中某个卷的数据进行一次完整的备份,保存在另一个存储介质中的数据。这个备份通常是用来恢复数据的,当系统中的数据出现故障或丢失时,可以使用快照源卷数据来恢复数据,使得系统能够继续正常工作。
52.可选地,根据n个数据部分在源卷中的位置对n个数据部分按照从小到大的顺序进行编号。
53.可以理解的是,将源卷数据分成n个数据部分是为了便于将大量数据。具体的划分方法可以根据应用场景和数据类型来决定。常见的划分方法有按时间、按大小或者按内容特征进行划分。在划分时,需要保证每个部分之间的数据没有重复且可以完整地还原源卷数据。同时,也需要考虑到数据划分过程中可能出现的数据丢失或者数据损坏的情况,以保证数据的完整性和可靠性。
54.步骤120、将n个数据部分均衡分配给多控存储系统的n个控制器,以使得每个控制器负责至少一个数据部分的同步。
55.其中,多控存储系统是指一种具备多个控制器的存储系统,这些控制器能够同时访问存储设备,从而提高了存储系统的性能和可靠性。多控存储系统通常使用冗余控制器来保证故障容错,同时还可以通过多路径访问提供更好的负载均衡和容错能力。此外,多控存储系统还可以提供更高的存储容量和可扩展性,以满足不同规模和需求的应用场景。
56.可以理解的是,通过将n个数据部分均衡分配给多控存储系统的n个控制器,以使得每个控制器负责至少一个数据部分的同步,进而能够在多个控制器上同时执行数据的后台拷贝任务,从而能够提高n个数据部分的后台同步速度。
57.可选地,可以使用分布式算法,例如哈希函数或分布式哈希表,在不同的控制器之间分配数据部分,这种方法可以有效地平衡负载,同时确保数据的一致性和可恢复性。
58.步骤130、将每个控制器所负责的数据部分通过后台拷贝方式同步至目标卷。
59.其中,后台拷贝是指按照一定的速率,按照每个控制器所负责的数据部分的编号从小到大的顺序将各个数据部分依次拷贝到目标卷中。后台拷贝是快照技术中的一种方式,它是通过后台进程复制源数据并保存到快照中,从而实现快照的创建,而不需要停止应用程序或系统操作。这样可以使得快照的创建变得更为快速和高效,并且不会影响到正在运行的系统或应用程序。
60.需要说明的是,将每个控制器所负责的数据部分通过后台拷贝方式同步至目标卷之前,通常需要创建源卷到目标卷的快照映射关系,可以通过对源卷和目标卷进行特征匹配,从而确定它们之间的对应关系。
61.可以理解的是,将每个控制器所负责的数据部分通过后台拷贝方式同步至目标卷,多个控制器可以同时执行各自负责的数据部分的后台拷贝任务,从而能够提高数据部
分的后台拷贝速度。
62.在本发明实施例中,通过将源卷数据划分成n个数据部分,将n个数据部分均衡分配给多控存储系统的n个控制器,以使得每个控制器负责至少一个数据部分的同步,将每个控制器所负责的数据部分通过后台拷贝方式同步至目标卷,充分利用了多控存储系统的控制器资源,提高了快照后台同步的速度。
63.需要说明的是,本发明每一个实施方式可以自由组合、调换顺序或者单独执行,并不需要依靠或依赖固定的执行顺序。
64.在一些实施例中,将n个数据部分均衡分配给多控存储系统的n个控制器,包括:
65.初始化时,为n个控制器中的每个控制器分配一个数据部分,控制器与数据部分一一对应;
66.在n个控制器中存在故障控制器的情况下,将故障控制器所负责的数据部分重新分配给目标控制器,目标控制器为未发生故障的控制器中所负责的数据部分的数量最少的任一控制器。
67.例如,初始化时,将4个数据部分“section1、section2、section3和section4”均衡分配给4个控制器,控制器1负责“section1”,控制器2负责“section2”,控制器3负责“section3”,控制器4负责“section4”;在控制器1出现故障的情况下,将其负责的“section1”重新分配给控制器2、控制器3和控制器4中的任一控制器;在控制器1和控制器2均出现故障的情况下,将“section1”重新分配给控制器3,将“section2”重新分配给控制器4,或者将“section1”重新分配给控制器4,将“section2”重新分配给控制器3。
68.可选地,可以按照未发生故障的控制器负责的数据部分的数量从小到大的顺序,依次将故障控制器所负责的数据部分重新分配给数量最少的目标控制器,直到所有故障控制器所负责的数据部分都被重新分配。这样可以保证未发生故障的控制器对n个数据部分进行均衡负载,并且可以尽可能地保留原有的数据分配关系,减少系统的不稳定性。
69.需要说明的是,故障处理过程中,除了故障控制器和目标控制器之外,其他控制器不受影响,仍可以继续为其所负责的数据部分进行后台数据同步。
70.可以理解的是,初始化时,通过为n个控制器中的每个控制器分配一个数据部分,进而能够使n个控制器对n个数据部分进行均衡负载,从而能够最大程度发挥多控存储系统的性能优势,使得所有控制器都能发挥自己的作用,达到性能上限,避免owner控制器压力过大,影响该控制器上的主机业务性能;在n个控制器中存在故障控制器的情况下,将故障控制器所负责的数据部分重新分配给目标控制器,目标控制器为未发生故障的控制器中所负责的数据部分的数量最少的任一控制器,可以保证所有的数据部分都可以完成后台数据同步,从而降低了故障控制器对现有业务的影响。
71.在一些实施例中,将n个数据部分均衡分配给多控存储系统的n个控制器,还包括:
72.在故障控制器恢复正常后,将故障控制器所负责的数据部分重新分配给故障控制器。
73.可以理解的是,在故障控制器恢复正常后,通过将故障控制器所负责的数据部分重新分配给故障控制器,从而可以保留原有的数据分配关系,减少系统的不稳定性。
74.图2为本发明实施例提供的将每个控制器所负责的数据部分通过后台拷贝方式同步至目标卷的流程示意图。如图2所示,在一些实施例中,步骤130将每个控制器所负责的数
据部分通过后台拷贝方式同步至目标卷,包括:
75.重复执行以下步骤,直至完成每个控制器所负责的数据部分的同步:
76.步骤131、若检测到快照的后台拷贝速度从0变成大于0,或者,数据部分拷贝状态标识发生变化,根据数据部分拷贝状态标识确定第一个未完成拷贝的数据部分。
77.可选地,数据部分拷贝状态标识可以用section_copied变量表示,section_copied包括bit值,即比特位,每个bit值表示一个数据部分的拷贝状态;若一个数据部分完成了拷贝,则其对应的比特位为1,若一个数据部分未完成拷贝,则其对应的比特位为0,比特位的初始值设为0。
78.其中,第一个未完成拷贝的数据部分是指所有未完成拷贝的数据部分中编号最小的数据部分。
79.需要说明的是,若检测到快照的后台拷贝速度从0变成大于0,说明用户修改了拷贝速率,其中,快照的后台拷贝速度为0表示关闭后台同步,大于0表示开启后台同步;数据部分拷贝状态标识发生变化表明存在某个数据部分拷贝完成,可以开始下一个数据部分的拷贝。
80.步骤132、若确定第一个未完成拷贝的数据部分存在,则将下一个需要去进行后台拷贝的数据部分标识设置为第一个未完成拷贝的数据部分的编号。
81.可选地,下一个需要去进行后台拷贝的数据部分标识可以用section_need_to_copy变量表示,section_need_to_copy的初始值设为-1,若第一个未完成拷贝的数据部分的编号为1,则section_need_to_copy=1。
82.步骤133、根据下一个需要去进行后台拷贝的数据部分标识,从每个控制器所负责的数据部分中确定每个控制器需要拷贝的数据部分,并通知给每个控制器,以使得每个控制器通过启动自身的后台同步线程,将其需要拷贝的数据部分通过后台拷贝方式同步至目标卷。
83.可选地,每个控制器收到需要拷贝的数据部分的通知后,会判断当前是否已经在进行该数据部分的拷贝,如果是则不做处理;如果当前在进行其他数据部分的拷贝,则停止其他数据部分的拷贝任务,去进行该数据部分的后台拷贝,完成一个数据部分的拷贝后向系统发送拷贝完成通知消息。
84.需要说明的是,根据下一个需要去进行后台拷贝的数据部分标识,从而能够确定每个控制器需要拷贝的数据部分,将每个控制器需要拷贝的数据部分通知给对应的控制器,进而能够使得每个控制器能够同时将其需要拷贝的数据部分通过后台拷贝方式同步至目标卷。
85.步骤134、在接收到控制器反馈的拷贝完成通知消息的情况下,更新数据部分拷贝状态标识中拷贝完成通知消息对应的数据部分所在的比特位。
86.其中,数据部分拷贝状态标识用于表示各个控制器所负责的数据部分的拷贝状态,每个比特位表示一个数据部分的拷贝状态。
87.可选地,若一个数据部分完成了拷贝,则其对应的比特位更新为1。
88.下一个需要去进行后台拷贝的数据部分标识用于表示下一个需要去进行后台拷贝的数据部分的编号。
89.例如,若下一个需要去进行后台拷贝的数据部分的编号为1,则下一个需要去进行
后台拷贝的数据部分标识为1。
90.可以理解的是,在接收到控制器反馈的拷贝完成通知消息的情况下,通过更新数据部分拷贝状态标识中拷贝完成通知消息对应的数据部分所在的比特位,进而能够对下一个需要去进行后台拷贝的数据部分标识进行更新,以便继续对下一个数据部分进行后台拷贝。
91.在本发明实施例中,若检测到快照的后台拷贝速度从0变成大于0,或者,数据部分拷贝状态标识发生变化,根据数据部分拷贝状态标识确定第一个未完成拷贝的数据部分,若确定第一个未完成拷贝的数据部分存在,则将下一个需要去进行后台拷贝的数据部分标识设置为第一个未完成拷贝的数据部分的编号,根据下一个需要去进行后台拷贝的数据部分标识,从每个控制器所负责的数据部分中确定每个控制器需要拷贝的数据部分,并通知给每个控制器,以使得每个控制器通过启动自身的后台同步线程,将其需要拷贝的数据部分通过后台拷贝方式同步至目标卷,在接收到控制器反馈的拷贝完成通知消息的情况下,更新数据部分拷贝状态标识中拷贝完成通知消息对应的数据部分所在的比特位,从而能够在多个控制器上同时自动化地执行数据的后台同步任务,大大提高数据后台同步的速率。
92.在一些实施例中,根据下一个需要去进行后台拷贝的数据部分标识,从每个控制器所负责的数据部分中确定每个控制器需要拷贝的数据部分,包括:
93.遍历所有控制器,针对每个控制器,将每个控制器所负责的所有数据部分的编号按照从小到大的顺序排列,确定编号大于等于下一个需要去进行后台拷贝的数据部分标识的第一个数据部分,作为每个控制器需要拷贝的数据部分。
94.例如,一个控制器所负责的数据部分有两个,为section1和section3,将这两个数据部分的编号按照从小到大的顺序排列为“1、3”,若下一个需要去进行后台拷贝的数据部分标识为1,则确定编号大于等于1的第一个数据部分为section1,若下一个需要去进行后台拷贝的数据部分标识为2,则确定编号大于等于2的第一个数据部分为section3。
95.可以理解的是,通过将每个控制器所负责的所有数据部分的编号按照从小到大的顺序排列,进而能够确定编号大于等于下一个需要去进行后台拷贝的数据部分标识的第一个数据部分,作为每个控制器需要拷贝的数据部分,以便对该数据部分进行后台拷贝。
96.在一些实施例中,将源卷数据划分成n个数据部分,包括:
97.将源卷数据划分成同等大小的多个数据块;
98.基于多个数据块在源卷中的位置,对多个数据块按照从小到大的顺序进行编号;
99.将每一数据块对应的编号对n的取值进行取余;
100.将取余相同的编号对应的数据块组合成一个数据部分,得到n个数据部分。
101.图3为本发明实施例提供的将源卷数据划分成n个数据部分的示例。如图3所示,多控存储系统中共有4个控制器,将源卷数据划分成同等大小的22个数据块(即grain),其编号为1-22;将22对4进行取余,数据部分section1对应22对4取余等于1的grain,即grain1、grain 5、grain 9、grain 13、grain 17、grain 21;数据部分section2对应22对4取余等于2的grain,grain 2、grain 6、grain 10、grain 14、grain 18、grain 22;数据部分section3对应22对4取余等于3的grain,即grain 3、grain 7、grain 11、grain 15、grain 19;数据部分section4对应22对4取余等于0的grain,即grain 4、grain 8、grain 12、grain16、grain 20。
102.可以理解的是,通过将源卷数据划分成同等大小的多个数据块,基于多个数据块在源卷中的位置,对多个数据块按照从小到大的顺序进行编号,将每一数据块对应的编号对n的取值进行取余,将取余相同的编号对应的数据块组合成一个数据部分,得到n个数据部分,进而能够更好地实现数据的负载均衡,如果主机顺序读写的话,相邻的grain也可以分配到不同的控制器上去进行同步,这样的话不管是主机随机读写还是顺序读写,这种分配方式都能实现更好的负载均衡。该分配方式是应对主机读写的优选分配方式。
103.在一些实施例中,快照后台同步方法还包括:
104.获取每个控制器在进行数据同步时实时地反馈的后台拷贝进度;
105.汇总所有控制器反馈的后台拷贝进度,得到整体后台拷贝进度,将整体后台拷贝进度反馈给用户。
106.首先,设置如下变量:progress,整体后台拷贝进度,初始值设为0;total_grain_count,快照grain的总个数,创建快照后即设定好对应值;section_grain_count[n]数组,每个元素表示第n个section的grain个数,创建快照分配完section后即设定好对应值;section_progress[n]数组,每个元素表示第n个section的同步进度。
[0107]
其次,设置每个控制器的后台拷贝进度变量section_progress,在后台拷贝过程中对每个控制器对应的section_progress进行实时更新,并发送后台拷贝进度通知;
[0108]
再次,接收到控制器的后台拷贝进度通知后,将section_progress中对应的元素进行更新,然后通过“progress=sum{section_progress[n]*section_grain_count[n]}/total_grain_count”公式计算整体后台拷贝进度,最后将计算结果通知给用户。
[0109]
图4为本发明实施例提供的快照后台同步方法的流程示意图之二。如图4所示,包括以下步骤:
[0110]
步骤401、初始化设置;
[0111]
步骤402、设置section_copied=0,section_need_to_copy=-1;
[0112]
步骤403、将各个section均衡分配给各个控制器,每个控制器负责的section记为数组own_section[n],数组中section按照序号从小到大排序;
[0113]
步骤404、用户调整后台拷贝速率;
[0114]
步骤405、更新section_copied,将已完成后台拷贝的section对应的bit置为1;
[0115]
步骤406、检测到后台拷贝速率或section_copied发生变化;
[0116]
步骤407、从低位到高位找到section_copied中第一个等于0的section,记录section_need_to_copy等于该section的编号,如果找不到则结束;
[0117]
步骤408、对于每个控制器,从小到大遍历其负责的section数组section[n],找到编号大于等于section_need_to_copy的section,如果找到了则通知对应控制器,找不到则跳过该控制器;
[0118]
步骤409、控制器1收到通知拷贝section1,对section1进行后台拷贝,拷贝完成后,发送section1完成拷贝的通知;
[0119]
步骤410、控制器2收到通知拷贝section2,对section2进行后台拷贝,拷贝完成后,发送section2完成拷贝的通知;
[0120]
步骤411、以此类推,控制器n收到通知拷贝sectionn,对sectionn进行后台拷贝,拷贝完成后,发送sectionn完成拷贝的通知。
[0121]
可以理解的是,通过对section_copied和section_need_to_copy进行初始化设置,将各个section均衡分配给各个控制器,在用户调整后台拷贝速率或者section_copied更新的情况下,检测到后台拷贝速率或section_copied发生变化,从低位到高位找到section_copied中第一个等于0的section,记录section_need_to_copy等于该section的编号,如果找不到则结束,对于每个控制器,从小到大遍历其负责的section数组section[n],找到编号大于等于section_need_to_copy的section,如果找到了则通知对应控制器,找不到则跳过该控制器,各个控制器收到通知拷贝的section后,进行对应section的后台拷贝,拷贝完成后,发送完成拷贝的通知,充分利用了多控存储系统的控制器资源,提高了快照后台同步的速度。
[0122]
下面对本发明实施例提供的快照后台同步装置进行描述,下文描述的快照后台同步装置与上文描述的快照后台同步方法可相互对应参照。
[0123]
图5为本发明提供的快照后台同步装置的结构示意图,如图5所示,该快照后台同步装置500包括:
[0124]
数据划分单元510,用于将源卷数据划分成n个数据部分;其中,n为大于1的自然数;
[0125]
数据分配单元520,用于将n个数据部分均衡分配给多控存储系统的n个控制器,以使得每个控制器负责至少一个数据部分的同步;
[0126]
数据同步单元530,用于将每个控制器所负责的数据部分通过后台拷贝方式同步至目标卷。
[0127]
可选地,将n个数据部分均衡分配给多控存储系统的n个控制器,包括:
[0128]
初始化时,为n个控制器中的每个控制器分配一个数据部分,控制器与数据部分一一对应;
[0129]
在n个控制器中存在故障控制器的情况下,将故障控制器所负责的数据部分重新分配给目标控制器,目标控制器为未发生故障的控制器中所负责的数据部分的数量最少的任一控制器。
[0130]
可选地,快照后台同步装置,还包括:
[0131]
恢复处理单元,用于在故障控制器恢复正常后,将故障控制器所负责的数据部分重新分配给故障控制器。
[0132]
可选地,将每个控制器所负责的数据部分通过后台拷贝方式同步至目标卷,包括:
[0133]
重复执行以下步骤,直至完成每个控制器所负责的数据部分的同步:
[0134]
若检测到快照的后台拷贝速度从0变成大于0,或者,数据部分拷贝状态标识发生变化,根据数据部分拷贝状态标识确定第一个未完成拷贝的数据部分;
[0135]
若确定第一个未完成拷贝的数据部分存在,则将下一个需要去进行后台拷贝的数据部分标识设置为第一个未完成拷贝的数据部分的编号;
[0136]
根据下一个需要去进行后台拷贝的数据部分标识,从每个控制器所负责的数据部分中确定每个控制器需要拷贝的数据部分,并通知给每个控制器,以使得每个控制器通过启动自身的后台同步线程,将其需要拷贝的数据部分通过后台拷贝方式同步至目标卷;
[0137]
在接收到控制器反馈的拷贝完成通知消息的情况下,更新数据部分拷贝状态标识中拷贝完成通知消息对应的数据部分所在的比特位;
[0138]
其中,数据部分拷贝状态标识用于表示各个控制器所负责的数据部分的拷贝状态,每个比特位表示一个数据部分的拷贝状态;
[0139]
下一个需要去进行后台拷贝的数据部分标识用于表示下一个需要去进行后台拷贝的数据部分的编号。
[0140]
可选地,根据下一个需要去进行后台拷贝的数据部分标识,从每个控制器所负责的数据部分中确定每个控制器需要拷贝的数据部分,包括:
[0141]
遍历所有控制器,针对每个控制器,将每个控制器所负责的所有数据部分的编号按照从小到大的顺序排列,确定编号大于等于下一个需要去进行后台拷贝的数据部分标识的第一个数据部分,作为每个控制器需要拷贝的数据部分。
[0142]
可选地,将源卷数据划分成n个数据部分,包括:
[0143]
将源卷数据划分成同等大小的多个数据块;
[0144]
基于多个数据块在源卷中的位置,对多个数据块按照从小到大的顺序进行编号;
[0145]
将每一数据块对应的编号对n的取值进行取余;
[0146]
将取余相同的编号对应的数据块组合成一个数据部分,得到n个数据部分。
[0147]
可选地,快照后台同步装置,还包括:
[0148]
获取单元,用于获取每个控制器在进行数据同步时实时地反馈的后台拷贝进度;
[0149]
反馈单元,用于汇总所有控制器反馈的后台拷贝进度,得到整体后台拷贝进度,将整体后台拷贝进度反馈给用户。
[0150]
在此需要说明的是,本发明实施例提供的快照后台同步装置,能够实现上述快照后台同步方法实施例所实现的所有方法步骤,且能够达到相同的技术效果,在此不再对本实施例中与方法实施例相同的部分及有益效果进行具体赘述。
[0151]
图6示例了一种电子设备的实体结构示意图,如图6所示,该电子设备可以包括:处理器(processor)610、通信接口(communications interface)620、存储器(memory)630和通信总线640,其中,处理器610,通信接口620,存储器630通过通信总线640完成相互间的通信。处理器610可以调用存储器630中的逻辑指令,以执行快照后台同步方法,该方法包括:将源卷数据划分成n个数据部分;其中,n为大于1的自然数;将n个数据部分均衡分配给多控存储系统的n个控制器,以使得每个控制器负责至少一个数据部分的同步;将每个控制器所负责的数据部分通过后台拷贝方式同步至目标卷。
[0152]
此外,上述的存储器630中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0153]
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的快照后台同步方法,该方法包括:将源卷数据划分
成n个数据部分;其中,n为大于1的自然数;将n个数据部分均衡分配给多控存储系统的n个控制器,以使得每个控制器负责至少一个数据部分的同步;将每个控制器所负责的数据部分通过后台拷贝方式同步至目标卷。
[0154]
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的快照后台同步方法,该方法包括:将源卷数据划分成n个数据部分;其中,n为大于1的自然数;将n个数据部分均衡分配给多控存储系统的n个控制器,以使得每个控制器负责至少一个数据部分的同步;将每个控制器所负责的数据部分通过后台拷贝方式同步至目标卷。
[0155]
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0156]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
[0157]
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

技术特征:
1.一种快照后台同步方法,其特征在于,包括:将源卷数据划分成n个数据部分;其中,n为大于1的自然数;将所述n个数据部分均衡分配给多控存储系统的n个控制器,以使得每个控制器负责至少一个数据部分的同步;将每个所述控制器所负责的数据部分通过后台拷贝方式同步至目标卷。2.根据权利要求1所述的快照后台同步方法,其特征在于,所述将所述n个数据部分均衡分配给多控存储系统的n个控制器,包括:初始化时,为所述n个控制器中的每个控制器分配一个数据部分,控制器与数据部分一一对应;在所述n个控制器中存在故障控制器的情况下,将所述故障控制器所负责的数据部分重新分配给目标控制器,所述目标控制器为未发生故障的控制器中所负责的数据部分的数量最少的任一控制器。3.根据权利要求2所述的快照后台同步方法,其特征在于,所述将所述n个数据部分均衡分配给多控存储系统的n个控制器,还包括:在所述故障控制器恢复正常后,将所述故障控制器所负责的数据部分重新分配给所述故障控制器。4.根据权利要求1-3中任一项所述的快照后台同步方法,其特征在于,所述将每个所述控制器所负责的数据部分通过后台拷贝方式同步至目标卷,包括:重复执行以下步骤,直至完成每个所述控制器所负责的数据部分的同步:若检测到快照的后台拷贝速度从0变成大于0,或者,数据部分拷贝状态标识发生变化,根据所述数据部分拷贝状态标识确定第一个未完成拷贝的数据部分;若确定所述第一个未完成拷贝的数据部分存在,则将下一个需要去进行后台拷贝的数据部分标识设置为所述第一个未完成拷贝的数据部分的编号;根据所述下一个需要去进行后台拷贝的数据部分标识,从每个所述控制器所负责的数据部分中确定每个所述控制器需要拷贝的数据部分,并通知给每个所述控制器,以使得每个所述控制器通过启动自身的后台同步线程,将其需要拷贝的数据部分通过后台拷贝方式同步至目标卷;在接收到控制器反馈的拷贝完成通知消息的情况下,更新所述数据部分拷贝状态标识中所述拷贝完成通知消息对应的数据部分所在的比特位;其中,所述数据部分拷贝状态标识用于表示各个控制器所负责的数据部分的拷贝状态,每个比特位表示一个数据部分的拷贝状态;所述下一个需要去进行后台拷贝的数据部分标识用于表示下一个需要去进行后台拷贝的数据部分的编号。5.根据权利要求4所述的快照后台同步方法,其特征在于,所述根据所述下一个需要去进行后台拷贝的数据部分标识,从每个所述控制器所负责的数据部分中确定每个所述控制器需要拷贝的数据部分,包括:遍历所有控制器,针对每个控制器,将每个控制器所负责的所有数据部分的编号按照从小到大的顺序排列,确定编号大于等于所述下一个需要去进行后台拷贝的数据部分标识的第一个数据部分,作为每个所述控制器需要拷贝的数据部分。
6.根据权利要求1所述的快照后台同步方法,其特征在于,所述将源卷数据划分成n个数据部分,包括:将源卷数据划分成同等大小的多个数据块;基于所述多个数据块在所述源卷中的位置,对所述多个数据块按照从小到大的顺序进行编号;将每一数据块对应的编号对所述n的取值进行取余;将取余相同的编号对应的数据块组合成一个数据部分,得到n个数据部分。7.根据权利要求1所述的快照后台同步方法,其特征在于,所述方法还包括:获取每个所述控制器在进行数据同步时实时地反馈的后台拷贝进度;汇总所有控制器反馈的后台拷贝进度,得到整体后台拷贝进度,将所述整体后台拷贝进度反馈给用户。8.一种快照后台同步装置,其特征在于,包括:数据划分单元,用于将源卷数据划分成n个数据部分;其中,n为大于1的自然数;数据分配单元,用于将所述n个数据部分均衡分配给多控存储系统的n个控制器,以使得每个控制器负责至少一个数据部分的同步;数据同步单元,用于将每个所述控制器所负责的数据部分通过后台拷贝方式同步至目标卷。9.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7任一项所述快照后台同步方法。10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述快照后台同步方法。

技术总结
本发明提供一种快照后台同步方法、装置、电子设备和存储介质,属于计算机技术领域,其中,快照后台同步方法包括:将源卷数据划分成N个数据部分;其中,N为大于1的自然数;将N个数据部分均衡分配给多控存储系统的N个控制器,以使得每个控制器负责至少一个数据部分的同步;将每个控制器所负责的数据部分通过后台拷贝方式同步至目标卷。本发明充分利用了多控存储系统的控制器资源,提高了快照后台同步的速度。度。度。


技术研发人员:马杨 马亚辉 蒋米传
受保护的技术使用者:苏州浪潮智能科技有限公司
技术研发日:2023.06.28
技术公布日:2023/9/25
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐