本公开涉及云计算,尤其涉及一种快照生成的方法及装置、电子设备和存储介质。
背景技术:
1、快照一致性问题的根源在于分布式系统中数据存储节点在执行快照操作时无法形成统一的共识。由于网络时延、机器能力和负载压力等因素的差异,各节点收到执行请求的时间点和执行速度可能不一致。这导致在快照操作中,数据的时间顺序性和空间完整性无法得到保证。在云计算领域,特别是数据库应用中,这种不一致性可能导致数据损坏、应用崩溃或无法恢复等问题。因此,解决快照一致性问题对于保证分布式系统数据的可靠性和一致性至关重要。
2、目前现有技术中,在解决分布式系统快照一致性问题时,面临在高负载或网络条件不佳时,由于阻塞客户端i/o,严重影响应用性能;并且缺乏客户端参与一致性保证过程,可能导致快照数据空间完整性不足,即快照可能不包含所有最新写入的数据,特别是在数据分块非顺序写入时情况更糟。因此,如何在不阻塞客户端i/o的情况下,完成快照数据的创建,保证创建的快照数据准确性以及一致性,成为亟待解决的问题。
技术实现思路
1、本公开提供了一种快照生成的方法及装置、电子设备和存储介质。其主要目的在于解决创建快照数据时,快照数据准确性不高,且存在较高频率的客户端i/o阻塞的问题。
2、根据本公开的第一方面,提供了一种快照生成的方法,所述方法应用于客户端,所述方法包括:
3、将服务应用发送的第一写入请求,与数据集版本序列号合并生成第二写入请求,其中,所述数据集版本序列号为分布式系统中写入数据集的时间版本序列号;
4、将所述第二写入请求发送至对应的存储单元,以便将所述第一写入请求对应的写入数据集存储至所述存储单元;
5、响应于快照请求,利用所述数据集版本序列号,对所述快照请求对应的目标数据所在的目标存储单元进行快照创建,并在快照创建进行后,向数据存储管理组件发送快照回复信息;
6、向所述数据存储管理组件发送序列号确认请求,确定所述数据集版本序列号是否发生变化;在所述数据集版本序列号发生变化后,向所述目标存储单元发送停止指令,以停止对所述目标存储单元的快照创建。
7、在一些实施例中,所述数据存储管理组件包括:快照协调组件,其中,所述快照协调组件用于协助数据存储管理组件对客户端进行快照处理;
8、在响应于快照请求,对所述快照请求对应的目标数据所在的目标存储单元进行快照创建之后,所述方法还包括:
9、监测对所述目标存储单元进行快照创建的处理时长;
10、在确定所述处理时长超过超时阈值时,向所述快照协调组件发送快照失败信息,并停止对所述目标存储单元进行快照创建。
11、在一些实施例中,所述响应于快照请求,利用所述数据集版本序列号,对所述快照请求对应的目标数据所在的目标存储单元进行快照创建,并在快照创建进行后,向数据存储管理组件发送快照回复信息,包括:
12、响应于所述数据存储管理组件发送的快照请求,基于当前数据集版本序列号,生成所述目标数据的数据序列范围,其中,所述数据序列范围由所述存储单元中的数据的起始数据集版本序列号及终止数据集版本序列号组成;
13、根据当前快照创建模式,对所述目标存储单元中的数据块进行快照创建,其中,创建得到的快照包括所述数据序列范围及引用关系;并在进行快照创建后,向所述数据存储管理组件发送快照回复信息。
14、在一些实施例中,所述根据当前快照创建模式,对所述目标存储单元中的数据块进行快照创建,包括:
15、在所述客户端包括数据块索引服务的情况下,若当前快照创建模式为写时重定向模式时,则基于所述数据块索引服务,为创建快照时接收的写入数据集,创建第一数据块并对所述第一数据块进行重定向处理;
16、若当前快照创建模式为写时复制模式时,则基于所述数据块索引服务,确定创建快照时接收的写入数据集对应的目标数据块,并创建第二数据块,以便将所述目标数据块中的数据复制至所述第二数据块;
17、在所述客户端不包括数据块索引服务的情况下,将所述第二写入请求转发至数据块索引服务;所述数据块索引服务基于所述第二写入请求中的数据集版本序列号,与所述目标存储单元中的数据块的数据集版本序列号进行对比,以确定是否按照当前快照创建模式,创建所述第一数据块或所述第二数据块。
18、在一些实施例中,所述方法还包括:
19、在创建快照之前,若存在快照被删除的情况,则将被删除快照的数据序列范围对应的数据,及当前数据集版本序列号对应的数据作为进行快照创建的目标数据,对所述目标数据所在的存储单元进行快照创建。
20、在一些实施例中,所述方法还包括:
21、响应于克隆请求,确定需要进行克隆处理的目标克隆存储单元,并确定所述目标克隆存储单元对应的目标快照;
22、获取所述目标快照的数据序列范围中的终止数据集版本序列号,将所述终止数据集版本序列号递增处理后,挂载克隆存储单元;并将所述目标源数据克隆至所述克隆存储单元;
23、在完成克隆处理后,向所述数据存储管理组件发送克隆回复消息。
24、在一些实施例中,所述方法还包括:
25、响应于回滚请求,确定回滚处理对应的回滚快照,基于当前数据集版本序列号及所述回滚快照,确定需要覆盖的数据集版本序列号范围;
26、确定所述数据集版本序列号范围对应的目标覆盖数据,并将所述目标覆盖数据删除;
27、在完成回滚处理后,向所述数据存储管理组件发送回滚回复消息。
28、根据本公开的第二方面,提供了一种快照生成的方法,所述方法应用于存储单元,所述存储单元包括:数据块,所述方法包括:
29、接收客户端发送的第二写入请求,读取所述第二写入请求中的第一写入请求,并将所述第一写入请求对应的写入数据集及所述第二写入请求中的数据集版本序列号一同进行存储,其中,所述数据集版本序列号为分布式系统中写入数据集的时间版本序列号;
30、响应于快照请求,确定所述快照请求对应的目标数据所在的目标数据块,并基于当前快照创建模式,对所述目标数据块进行快照创建;
31、接收所述客户端发送的停止指令,并停止对所述目标数据进行快照创建。
32、在一些实施例中,所述响应于快照请求,确定所述快照请求对应的目标数据所在的目标数据块,并基于当前快照创建模式,对所述目标数据块进行快照创建,包括:
33、若当前快照创建模式为写时重定向模式时,则将创建快照时接收的写入数据集,存储至所述数据块索引服务创建的第一数据块;
34、若当前快照创建模式为写时复制模式时,则确定创建快照时接收的写入数据集对应的目标数据块,将所述目标数据块中的数据复制至所述第二数据块,并将所述写入数据集存储至所述目标数据块。
35、根据本公开的第三方面,提供了一种快照生成的方法,所述方法应用于数据存储管理组件,所述方法包括:
36、将快照请求发送至所有的客户端;
37、接收所述客户端发送的快照回复消息,并在所述接收到所有的所述客户端的快照回复消息后,将数据集版本序列号进行递增处理,其中,所述数据集版本序列号为分布式系统中写入数据集的时间版本序列号;
38、接收所述客户端发送的序列号确认请求,并回复所述客户端当前数据集版本序列号。
39、在一些实施例中,所述数据存储管理组件包括:快照协调组件,其中,所述快照协调组件用于协助数据存储管理组件对客户端进行快照处理;
40、所述接收所述客户端发送的快照回复消息,并在所述接收到所有的所述客户端的快照回复消息后,将数据集版本序列号进行递增处理,包括:
41、所述快照协调组件接收到所有的所述客户端的快照回复消息后,记录快照信息,并确定快照创建完成;
42、在确定快照创建完成后,将所述数据集版本序列号进行递增处理。
43、在一些实施例中,所述方法还包括:
44、接收所述客户端发送的克隆回复消息及回滚回复消息,并在所述接收到所述克隆回复消息及所述回滚回复消息后,将数据集版本序列号进行递增处理。
45、根据本公开的第四方面,提供了一种快照生成的装置,所述装置应用于客户端,所述装置包括:
46、生成单元,用于将服务应用发送的第一写入请求,与数据集版本序列号合并生成第二写入请求,其中,所述数据集版本序列号为分布式系统中写入数据集的时间版本序列号;
47、第一发送单元,用于将所述第二写入请求发送至对应的存储单元,以便将所述第一写入请求对应的写入数据集存储至所述存储单元;
48、第一创建单元,用于响应于快照请求,利用所述数据集版本序列号,对所述快照请求对应的目标数据所在的目标存储单元进行快照创建,并在快照创建进行后,向数据存储管理组件发送快照回复信息;
49、第一确定单元,用于向所述数据存储管理组件发送序列号确认请求,确定所述数据集版本序列号是否发生变化;在所述数据集版本序列号发生变化后,向所述目标存储单元发送停止指令,以停止对所述目标存储单元的快照创建。
50、在一些实施例中,所述数据存储管理组件包括:快照协调组件,其中,所述快照协调组件用于协助数据存储管理组件对客户端进行快照处理;
51、所述装置还包括:
52、监测单元,用于在创建单元响应于快照请求,对所述快照请求对应的目标数据所在的目标存储单元进行快照创建之后,监测对所述目标存储单元进行快照创建的处理时长;
53、第二发送单元,用于在确定所述处理时长超过超时阈值时,向所述快照协调组件发送快照失败信息,并停止对所述目标存储单元进行快照创建。
54、在一些实施例中,所述第一创建单元包括:
55、生成模块,用于响应于所述数据存储管理组件发送的快照请求,基于当前数据集版本序列号,生成所述目标数据的数据序列范围,其中,所述数据序列范围由所述存储单元中的数据的起始数据集版本序列号及终止数据集版本序列号组成;
56、创建模块,用于根据当前快照创建模式,对所述目标存储单元中的数据块进行快照创建,其中,创建得到的快照包括所述数据序列范围及引用关系;并在进行快照创建后,向所述数据存储管理组件发送快照回复信息。
57、在一些实施例中,所述创建模块还用于:
58、在所述客户端包括数据块索引服务的情况下,若当前快照创建模式为写时重定向模式时,则基于所述数据块索引服务,为创建快照时接收的写入数据集,创建第一数据块并对所述第一数据块进行重定向处理;
59、若当前快照创建模式为写时复制模式时,则基于所述数据块索引服务,确定创建快照时接收的写入数据集对应的目标数据块,并创建第二数据块,以便将所述目标数据块中的数据复制至所述第二数据块;
60、在所述客户端不包括数据块索引服务的情况下,将所述第二写入请求转发至数据块索引服务;所述数据块索引服务基于所述第二写入请求中的数据集版本序列号,与所述目标存储单元中的数据块的数据集版本序列号进行对比,以确定是否按照当前快照创建模式,创建所述第一数据块或所述第二数据块。
61、在一些实施例中,所述装置还包括:
62、第二创建单元,用于在创建快照之前,若存在快照被删除的情况,则将被删除快照的数据序列范围对应的数据,及当前数据集版本序列号对应的数据作为进行快照创建的目标数据,对所述目标数据所在的存储单元进行快照创建。
63、在一些实施例中,所述装置还包括:
64、第二确定单元,用于响应于克隆请求,确定需要进行克隆处理的目标克隆存储单元,并确定所述目标克隆存储单元对应的目标快照;
65、克隆单元,用于获取所述目标快照的数据序列范围中的终止数据集版本序列号,将所述终止数据集版本序列号递增处理后,挂载克隆存储单元;并将所述目标源数据克隆至所述克隆存储单元;
66、第三发送单元,用于在完成克隆处理后,向所述数据存储管理组件发送克隆回复消息。
67、在一些实施例中,所述装置还包括:
68、第四确定单元,用于响应于回滚请求,确定回滚处理对应的回滚快照,基于当前数据集版本序列号及所述回滚快照,确定需要覆盖的数据集版本序列号范围;
69、删除单元,用于确定所述数据集版本序列号范围对应的目标覆盖数据,并将所述目标覆盖数据删除;
70、第四发送单元,用于在完成回滚处理后,向所述数据存储管理组件发送回滚回复消息。
71、根据本公开的第五方面,提供了一种快照生成的装置,所述装置应用于存储单元,所述存储单元包括:数据块,所述装置包括:
72、存储单元,用于接收客户端发送的第二写入请求,读取所述第二写入请求中的第一写入请求,并将所述第一写入请求对应的写入数据集及所述第二写入请求中的数据集版本序列号一同进行存储,其中,所述数据集版本序列号为分布式系统中写入数据集的时间版本序列号;
73、创建单元,用于响应于快照请求,确定所述快照请求对应的目标数据所在的目标数据块,并基于当前快照创建模式,对所述目标数据块进行快照创建;
74、接收单元,用于接收所述客户端发送的停止指令,并停止对所述目标数据进行快照创建。
75、在一些实施例中,所述创建单元包括:
76、第一创建模块,用于在当前快照创建模式为写时重定向模式时,将创建快照时接收的写入数据集,存储至所述数据块索引服务创建的第一数据块;
77、第二创建模块,用于在当前快照创建模式为写时复制模式时,确定创建快照时接收的写入数据集对应的目标数据块,将所述目标数据块中的数据复制至所述第二数据块,并将所述写入数据集存储至所述目标数据块。
78、根据本公开的第六方面,提供了一种快照生成的装置,所述装置应用于数据存储管理组件,所述装置包括:
79、发送单元,用于将快照请求发送至所有的客户端;
80、第一接收单元,用于接收所述客户端发送的快照回复消息,并在所述接收到所有的所述客户端的快照回复消息后,将数据集版本序列号进行递增处理,其中,所述数据集版本序列号为分布式系统中写入数据集的时间版本序列号;
81、回复单元,用于接收所述客户端发送的序列号确认请求,并回复所述客户端当前数据集版本序列号。
82、在一些实施例中,所述数据存储管理组件包括:快照协调组件,其中,所述快照协调组件用于协助数据存储管理组件对客户端进行快照处理;
83、所述第一接收单元包括:
84、确定模块,用于所述快照协调组件接收到所有的所述客户端的快照回复消息后,记录快照信息,并确定快照创建完成;
85、处理模块,用于在确定快照创建完成后,将所述数据集版本序列号进行递增处理。
86、在一些实施例中,所述装置还包括:
87、第二接收单元,用于接收所述客户端发送的克隆回复消息及回滚回复消息,并在所述接收到所述克隆回复消息及所述回滚回复消息后,将数据集版本序列号进行递增处理。
88、根据本公开的第七方面,提供了一种电子设备,包括:
89、至少一个处理器;以及
90、与所述至少一个处理器通信连接的存储器;其中,
91、所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行前述第一方面所述的方法。
92、根据本公开的第八方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行前述第一方面所述的方法。
93、根据本公开的第九方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现如前述第一方面所述的方法。
94、本公开提供了一种快照生成的方法及装置、电子设备和存储介质,将服务应用发送的第一写入请求,与数据集版本序列号合并生成第二写入请求,其中,所述数据集版本序列号为分布式系统中写入数据集的时间版本序列号;将所述第二写入请求发送至对应的存储单元,以便将所述第一写入请求对应的写入数据集存储至所述存储单元;响应于快照请求,利用所述数据集版本序列号,对所述快照请求对应的目标数据所在的目标存储单元进行快照创建,并在快照创建进行后,向数据存储管理组件发送快照回复信息;向所述数据存储管理组件发送序列号确认请求,确定所述数据集版本序列号是否发生变化;在所述数据集版本序列号发生变化后,向所述目标存储单元发送停止指令,以停止对所述目标存储单元的快照创建。与相关技术相比,本公开实施例通过将服务应用的写入请求与数据集版本序列号合并生成第二写入请求,确保了写入数据与当前数据集版本的一致性。数据集版本序列号作为时间戳,反映了数据集的最新状态,有助于避免数据冲突和不一致的问题,特别是在高并发写入场景下;通过向数据存储管理组件发送序列号确认请求,动态监控数据集版本序列号的变化,能够在版本更新后及时作出响应,如停止不必要的快照创建,避免了基于过时数据的快照,保证了数据的时效性和一致性;在检测到数据集版本序列号变化后,立即向目标存储单元发送停止指令,有效防止了资源浪费,能够避免客户端的i/o阻塞。
95、应当理解,本部分所描述的内容并非旨在标识本技术的实施例的关键或重要特征,也不用于限制本技术的范围。本技术的其它特征将通过以下的说明书而变得容易理解。
1.一种快照生成的方法,其特征在于,所述方法应用于客户端,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述数据存储管理组件包括:快照协调组件,其中,所述快照协调组件用于协助数据存储管理组件对客户端进行快照处理;
3.根据权利要求1所述的方法,其特征在于,所述响应于快照请求,利用所述数据集版本序列号,对所述快照请求对应的目标数据所在的目标存储单元进行快照创建,并在快照创建进行后,向数据存储管理组件发送快照回复信息,包括:
4.根据权利要求3所述的方法,其特征在于,所述根据当前快照创建模式,对所述目标存储单元中的数据块进行快照创建,包括:
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
8.一种快照生成的方法,其特征在于,所述方法应用于存储单元,所述存储单元包括:数据块,所述方法包括:
9.根据权利要求8所述的方法,其特征在于,所述响应于快照请求,确定所述快照请求对应的目标数据所在的目标数据块,并基于当前快照创建模式,对所述目标数据块进行快照创建,包括:
10.一种快照生成的方法,其特征在于,所述方法应用于数据存储管理组件,所述方法包括:
11.根据权利要求10所述的方法,其特征在于,所述数据存储管理组件包括:快照协调组件,其中,所述快照协调组件用于协助数据存储管理组件对客户端进行快照处理;
12.根据权利要求10所述的方法,其特征在于,所述方法还包括:
13.一种快照生成的装置,其特征在于,所述装置应用于客户端,所述装置包括:
14.一种快照生成的装置,其特征在于,所述装置应用于存储单元,所述存储单元包括:数据块,所述装置包括:
15.一种快照生成的装置,其特征在于,所述装置应用于数据存储管理组件,所述装置包括:
16.一种电子设备,其特征在于,包括:
17.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行根据权利要求1-12中任一项所述的方法。
18.一种计算机程序产品,其特征在于,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1-12中任一项所述的方法。
