CN111522689A - 全局快照方法、装置、电子设备及计算机可读存储介质 - Google Patents
全局快照方法、装置、电子设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN111522689A CN111522689A CN201910105133.8A CN201910105133A CN111522689A CN 111522689 A CN111522689 A CN 111522689A CN 201910105133 A CN201910105133 A CN 201910105133A CN 111522689 A CN111522689 A CN 111522689A
- Authority
- CN
- China
- Prior art keywords
- snapshot
- global
- node
- global snapshot
- request
- 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
- 238000000034 method Methods 0.000 title claims abstract description 62
- 238000002360 preparation method Methods 0.000 claims abstract description 120
- 230000004044 response Effects 0.000 claims abstract description 71
- 238000013507 mapping Methods 0.000 claims description 56
- 230000015654 memory Effects 0.000 claims description 11
- 238000001514 detection method Methods 0.000 claims description 8
- 230000008014 freezing Effects 0.000 claims description 5
- 238000007710 freezing Methods 0.000 claims description 5
- 230000000977 initiatory effect Effects 0.000 claims description 4
- 230000011218 segmentation Effects 0.000 claims description 2
- 239000000126 substance Substances 0.000 claims description 2
- 230000007246 mechanism Effects 0.000 abstract description 11
- 238000011084 recovery Methods 0.000 abstract description 7
- 230000002452 interceptive effect Effects 0.000 abstract description 6
- 230000015556 catabolic process Effects 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 28
- 230000006870 function Effects 0.000 description 10
- 230000002123 temporal effect Effects 0.000 description 10
- 238000004891 communication Methods 0.000 description 6
- 238000004590 computer program Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000007789 sealing Methods 0.000 description 1
- 239000004065 semiconductor Substances 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
本发明实施例公开了一种全局快照方法、装置、电子设备及计算机可读存储介质,所述方法包括:响应于接收到全局快照准备请求,进行全局快照准备,获得输入输出操作顺序标识;响应于接收到全局快照请求,逐级向上级协调节点发送顺序标识最大值直至顶级协调节点;响应于接收到携带快照时间节点的全局快照提交请求,执行快照操作,其中,所述快照时间节点为所述顶级协调节点接收到的顺序标识中的最大值。该技术方案为云计算分布式系统提供了一个具有崩溃一致性的全局快照机制,进而在不干扰系统和用户应用程序的运行的前提下,实现全局数据快照,提高运行数据的安全性,保障数据的恢复功能。
Description
技术领域
本发明实施例涉及数据处理技术领域,具体涉及一种全局快照方法、装置、电子设备及计算机可读存储介质。
背景技术
随着数据技术的发展,云计算的应用越来越广泛。云计算中一个很重要的部分是弹性计算,弹性计算中资源用量可弹性扩展,从而能够自适应应对存在波动的业务流量。在弹性计算中,用户要求虚拟机(VM)能够持续运行,不受其他运维因素的干扰,但其实用户数据也需要进行保护,比如,用户需要对磁盘数据进行定期快照和备份。在执行数据快照的过程中,用户通常要求虚拟机不停机,用户应用程序运行不受干扰,实际上,只要操作系统和应用程序能够在崩溃一致性(Crash Consistency)的存储环境下正常运行,就可以在存储系统上实现崩溃一致性快照,这样用户在虚拟机运行期间所制作的快照就能够用于用户系统的恢复,而且用户应用程序的运行也不会受到影响。
但在云计算的应用中存在大量的分布式系统,例如:在数据库中,数据库的数据内容和日志通常存放在不同的磁盘上,而且上述分布式系统并不存在全局时钟。在这种情况下,基于现有技术,对数据库系统进行快照时就很难保证数据磁盘和日志磁盘上的输入输出(IO,Input Output)的总体崩溃一致性。而如果不能实现以上磁盘组的一致性快照,就必须先停止整个分布式应用再进行快照,这就会对系统的运行造成严重的干扰。
发明内容
本发明实施例提供一种全局快照方法、装置、电子设备及计算机可读存储介质。
第一方面,本发明实施例中提供了一种全局快照方法。
具体的,所述全局快照方法,包括:
响应于接收到全局快照准备请求,进行全局快照准备,获得输入输出操作顺序标识;
响应于接收到全局快照请求,逐级向上级协调节点发送顺序标识最大值直至顶级协调节点;
响应于接收到携带快照时间节点的全局快照提交请求,执行快照操作,其中,所述快照时间节点为所述顶级协调节点接收到的顺序标识中的最大值。
结合第一方面,本发明实施例在第一方面的第一种实现方式中,所述响应于接收到全局快照准备请求,进行全局快照准备,获得输入输出操作顺序标识,包括:
响应于接收到全局快照准备请求,冻结当前索引文件;
创建准备增量索引映射文件,并在将冻结的当前索引文件写入所述准备增量索引映射文件后关闭所述准备增量索引映射文件;
创建新增量索引映射文件;
响应于检测到输入输出操作,向顺序标识生成设备请求顺序标识,并将所述输入输出操作对应的数据索引和顺序标识写入所述新增量索引映射文件。
结合第一方面和第一方面的第一种实现方式,本发明实施例在第一方面的第二种实现方式中,所述响应于接收到全局快照请求,逐级向上级协调节点发送顺序标识最大值直至顶级协调节点,包括:
响应于接收到全局快照请求,检测所述新增量索引映射文件中的顺序标识;
将检测到的顺序标识最大值逐级发送给顶级协调节点。
结合第一方面、第一方面的第一种实现方式和第一方面的第二种实现方式,本公开在第一方面的第三种实现方式中,所述响应于接收到携带快照时间节点的全局快照提交请求,执行快照操作,包括:
响应于接收到携带快照时间节点的全局快照提交请求,根据所述快照时间节点确定目标全局快照数据;
对于所述目标全局快照数据执行快照操作。
结合第一方面的第一种实现方式、第一方面的第二种实现方式和第一方面的第三种实现方式,本公开在第一方面的第四种实现方式中,所述响应于接收到携带快照时间节点的全局快照提交请求,根据所述快照时间节点确定目标全局快照数据,包括:
响应于接收到携带快照时间节点的全局快照提交请求,获取所述新增量索引映射文件中存储的带有顺序标识的输入输出操作索引值;
将顺序标识小于所述快照时间节点的输入输出操作索引值对应的数据、冻结的当前索引文件对应的数据以及历史索引文件对应的数据确定为目标全局快照数据。
结合第一方面、第一方面的第一种实现方式、第一方面的第二种实现方式、第一方面的第三种实现方式和第一方面的第四种实现方式,本公开在第一方面的第五种实现方式中,所述对于所述目标全局快照数据执行快照操作,包括:
响应于所述顺序标识小于所述快照时间节点的输入输出操作索引值对应的数据落盘完成,获取所述新增量索引映射文件对应的Txn文件中顺序标识小于所述快照时间节点的Txn记录数据;
对所述历史索引文件、准备增量索引映射文件和Txn记录数据进行合并,并将合并数据写入快照索引文件。
第二方面,本发明实施例中提供了一种全局快照方法。
具体的,所述全局快照方法,包括:
响应于全局快照操作的启动,向低级协调节点下发全局快照准备请求;
响应于接收到所述低级协调节点返回的准备完成信息,向所述低级协调节点下发全局快照请求,并根据接收到的所述低级协调节点上传的输入输出操作顺序标识最大值确定快照时间节点;
向所述低级协调节点下发全局快照提交请求,完成全局快照。
结合第二方面,本发明实施例在第二方面的第一种实现方式中,所述响应于全局快照操作的启动,向低级协调节点下发全局快照准备请求,包括:
响应于全局快照操作的启动,向块设备协调节点发送全局快照准备请求,以使所述块设备协调节点在接收到全局快照准备请求后,向块设备分段协调节点发送全局快照准备请求。
结合第二方面和第二方面的第一种实现方式,本发明实施例在第二方面的第二种实现方式中,所述响应于接收到所述低级协调节点返回的准备完成信息,向所述低级协调节点下发全局快照请求,并根据接收到的所述低级协调节点上传的输入输出操作顺序标识最大值确定快照时间节点,包括:
响应于接收到所述低级协调节点返回的准备完成信息,逐级下发全局快照请求,以使所述块设备分段协调节点在接收到全局快照请求后,逐级上传其检测到的输入输出操作顺序标识的最大值;
将所接收到的顺序标识中的最大值确定为快照时间节点。
结合第二方面、第二方面的第一种实现方式和第二方面的第二种实现方式,本公开在第二方面的第三种实现方式中,所述向所述低级协调节点下发全局快照提交请求,完成全局快照,包括:
响应于所述快照时间节点确定完成,将所述全局快照提交请求与所述快照时间节点下发至所述低级协调节点,以使所述低级协调节点根据所述快照时间节点确定目标全局快照数据,并对所述目标全局快照数据执行全局快照;
接收所述低级协调节点返回的全局快照完成消息。
第三方面,本发明实施例中提供了一种全局快照装置。
具体的,所述全局快照装置,包括:
准备模块,被配置为响应于接收到全局快照准备请求,进行全局快照准备,获得输入输出操作顺序标识;
第一发送模块,被配置为响应于接收到全局快照请求,逐级向上级协调节点发送顺序标识最大值直至顶级协调节点;
执行模块,被配置为响应于接收到携带快照时间节点的全局快照提交请求,执行快照操作,其中,所述快照时间节点为所述顶级协调节点接收到的顺序标识中的最大值。
结合第三方面,本发明实施例在第三方面的第一种实现方式中,所述准备模块包括:
冻结子模块,被配置为响应于接收到全局快照准备请求,冻结当前索引文件;
第一创建子模块,被配置为创建准备增量索引映射文件,并在将冻结的当前索引文件写入所述准备增量索引映射文件后关闭所述准备增量索引映射文件;
第二创建子模块,被配置为创建新增量索引映射文件;
请求子模块,被配置为响应于检测到输入输出操作,向顺序标识生成设备请求顺序标识,并将所述输入输出操作对应的数据索引和顺序标识写入所述新增量索引映射文件。
结合第三方面和第三方面的第一种实现方式,本发明实施例在第三方面的第二种实现方式中,所述第一发送模块包括:
检测子模块,被配置为响应于接收到全局快照请求,检测所述新增量索引映射文件中的顺序标识;
第一发送子模块,被配置为将检测到的顺序标识最大值逐级发送给顶级协调节点。
结合第三方面、第三方面的第一种实现方式和第三方面的第二种实现方式,本公开在第三方面的第三种实现方式中,所述执行模块包括:
第一确定子模块,被配置为响应于接收到携带快照时间节点的全局快照提交请求,根据所述快照时间节点确定目标全局快照数据;
执行子模块,被配置为对于所述目标全局快照数据执行快照操作。
结合第三方面的第一种实现方式、第三方面的第二种实现方式和第三方面的第三种实现方式,本公开在第三方面的第四种实现方式中,所述第一确定子模块包括:
第一获取子模块,被配置为响应于接收到携带快照时间节点的全局快照提交请求,获取所述新增量索引映射文件中存储的带有顺序标识的输入输出操作索引值;
第二确定子模块,被配置为将顺序标识小于所述快照时间节点的输入输出操作索引值对应的数据、冻结的当前索引文件对应的数据以及历史索引文件对应的数据确定为目标全局快照数据。
结合第三方面、第三方面的第一种实现方式、第三方面的第二种实现方式、第三方面的第三种实现方式和第三方面的第四种实现方式,本公开在第三方面的第五种实现方式中,所述执行子模块包括:
第二获取子模块,被配置为响应于所述顺序标识小于所述快照时间节点的输入输出操作索引值对应的数据落盘完成,获取所述新增量索引映射文件对应的Txn文件中顺序标识小于所述快照时间节点的Txn记录数据;
写数据子模块,被配置为对所述历史索引文件、准备增量索引映射文件和Txn记录数据进行合并,并将合并数据写入快照索引文件。
第四方面,本发明实施例中提供了一种全局快照装置。
具体的,所述全局快照装置,包括:
第二发送模块,被配置为响应于全局快照操作的启动,向低级协调节点下发全局快照准备请求;
确定模块,被配置为响应于接收到所述低级协调节点返回的准备完成信息,向所述低级协调节点下发全局快照请求,并根据接收到的所述低级协调节点上传的输入输出操作顺序标识最大值确定快照时间节点;
第三发送模块,被配置为向所述低级协调节点下发全局快照提交请求,完成全局快照。
结合第四方面,本发明实施例在第四方面的第一种实现方式中,所述第二发送模块被配置为响应于全局快照操作的启动,向块设备协调节点发送全局快照准备请求,以使所述块设备协调节点在接收到全局快照准备请求后,向块设备分段协调节点发送全局快照准备请求。
结合第四方面和第四方面的第一种实现方式,本发明实施例在第四方面的第二种实现方式中,所述确定模块包括:
第二发送子模块,被配置为响应于接收到所述低级协调节点返回的准备完成信息,逐级下发全局快照请求,以使所述块设备分段协调节点在接收到全局快照请求后,逐级上传其检测到的输入输出操作顺序标识的最大值;
第三确定子模块,被配置为将所接收到的顺序标识中的最大值确定为快照时间节点。
结合第四方面、第四方面的第一种实现方式和第四方面的第二种实现方式,本公开在第四方面的第三种实现方式中,所述第三发送模块包括:
第三发送子模块,被配置为响应于所述快照时间节点确定完成,将所述全局快照提交请求与所述快照时间节点下发至所述低级协调节点,以使所述低级协调节点根据所述快照时间节点确定目标全局快照数据,并对所述目标全局快照数据执行全局快照;
接收子模块,被配置为接收所述低级协调节点返回的全局快照完成消息。
第五方面,本发明实施例提供了一种电子设备,包括存储器和处理器,所述存储器用于存储一条或多条支持全局快照装置执行上述第一和第二方面中全局快照方法的计算机指令,所述处理器被配置为用于执行所述存储器中存储的计算机指令。所述全局快照装置还可以包括通信接口,用于全局快照装置与其他设备或通信网络通信。
第六方面,本发明实施例提供了一种计算机可读存储介质,用于存储全局快照装置所用的计算机指令,其包含用于执行上述第一和第二方面中全局快照方法为全局快照装置所涉及的计算机指令。
本发明实施例提供的技术方案可包括以下有益效果:
上述技术方案通过为快照期间的数据设置全局顺序标识,将顶级协调节点接收到的最大顺序标识作为快照时间节点进行全局数据快照,从而为云计算分布式系统提供了一个具有崩溃一致性的全局快照机制,进而在不干扰系统和用户应用程序的运行的前提下,实现全局数据快照,提高运行数据的安全性,保障数据的恢复功能。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明实施例。
附图说明
结合附图,通过以下非限制性实施方式的详细描述,本发明实施例的其它特征、目的和优点将变得更加明显。在附图中:
图1示出根据本发明一实施方式的全局快照方法的流程图;
图2示出根据本发明一实施方式的云计算资源架构图;
图3示出根据本发明一实施方式的云计算系统架构图;
图4示出根据本发明一实施方式的基于分布式文件系统的LSBD设备架构图;
图5示出根据图1所示实施方式的全局快照方法的步骤S101的流程图;
图6示出根据本发明一实施方式的发号器的工作原理图;
图7示出根据图1所示实施方式的全局快照方法的步骤S102的流程图;
图8示出根据图1所示实施方式的全局快照方法的步骤S103的流程图;
图9示出根据图8所示实施方式的全局快照方法的步骤S801的流程图;
图10示出根据图8所示实施方式的全局快照方法的步骤S802的流程图;
图11示出根据本发明另一实施方式的全局快照方法的流程图;
图12示出根据图11所示实施方式的全局快照方法的步骤S1102的流程图;
图13示出根据图11所示实施方式的全局快照方法的步骤S1103的流程图;
图14示出根据本发明一实施方式的全局快照装置的结构框图;
图15示出根据图14所示实施方式的全局快照装置的准备模块1401的结构框图;
图16示出根据图14所示实施方式的全局快照装置的第一发送模块1402的结构框图;
图17示出根据图14所示实施方式的全局快照装置的执行模块1403的结构框图;
图18示出根据图17所示实施方式的全局快照装置的第一确定子模块1701的结构框图;
图19示出根据图17所示实施方式的全局快照装置的执行子模块1702的结构框图;
图20示出根据本发明另一实施方式的全局快照装置的结构框图;
图21示出根据图20所示实施方式的全局快照装置的确定模块2002的结构框图;
图22示出根据图20所示实施方式的全局快照装置的第三发送模块2003的结构框图;
图23示出根据本发明一实施方式的电子设备的结构框图;
图24是适于用来实现根据本发明一实施方式的全局快照方法的计算机系统的结构示意图。
具体实施方式
下文中,将参考附图详细描述本发明实施例的示例性实施方式,以使本领域技术人员可容易地实现它们。此外,为了清楚起见,在附图中省略了与描述示例性实施方式无关的部分。
在本发明实施例中,应理解,诸如“包括”或“具有”等的术语旨在指示本说明书中所公开的特征、数字、步骤、行为、部件、部分或其组合的存在,并且不欲排除一个或多个其他特征、数字、步骤、行为、部件、部分或其组合存在或被添加的可能性。
另外还需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明实施例。
本发明实施例提供的技术方案通过为快照期间的数据设置全局顺序标识,将顶级协调节点接收到的最大顺序标识作为快照时间节点进行全局数据快照,从而为云计算分布式系统提供了一个具有崩溃一致性的全局快照机制,进而在不干扰系统和用户应用程序的运行的前提下,实现全局数据快照,提高运行数据的安全性,保障数据的恢复功能。
图1示出根据本发明一实施方式的全局快照方法的流程图,如图1所示,所述全局快照方法包括以下步骤S101-S103:
在步骤S101中,响应于接收到全局快照准备请求,进行全局快照准备,获得输入输出操作顺序标识;
在步骤S102中,响应于接收到全局快照请求,逐级向上级协调节点发送顺序标识最大值直至顶级协调节点;
在步骤S103中,响应于接收到携带快照时间节点的全局快照提交请求,执行快照操作,其中,所述快照时间节点为所述顶级协调节点接收到的顺序标识中的最大值。
上文提及,在云计算的应用中存在大量的分布式系统,而且上述分布式系统并不存在全局时钟,在这种情况下,基于现有技术,对数据库系统进行快照时就很难保证数据磁盘和日志磁盘上的输入输出总崩溃一致性,而如果不能实现以上磁盘组的一致性快照,就必须先停止整个分布式应用再进行快照,这就会对系统的运行造成严重的干扰。
考虑到上述问题,在该实施方式中,提出一种全局快照方法,该方法通过为快照期间的数据设置全局顺序标识,将顶级协调节点接收到的最大顺序标识作为快照时间节点进行全局数据快照,从而为云计算分布式系统提供了一个具有崩溃一致性的全局快照机制,进而在不干扰系统和用户应用程序的运行的前提下,实现全局数据快照,提高运行数据的安全性,保障数据的恢复功能。
在本发明一实施方式中,所述全局快照方法适用于不存在全局时钟,无法获得全局时间戳的分布式系统,尤其是云计算分布式系统。
首先,先介绍一下云计算资源的基本架构,如图2所示,在云计算资源中,云计算资源的分配单位包括:云计算区域(Region)、可用区(Azone,Avaible Zone)和集群(Cluster),其中,Region指的是一个云计算区域,比如可以为一个城市;所述Azone指的是一个拥有独立的电力和网络资源的计算单元,在同一Azone内部,网络访问的质量是一致的,一般情况下,一个Region可包含3个Azone,每个Region有一个镜像中心,用于存储虚拟机系统盘快照/镜像,服务Region范围内的所有Azone;所述Cluster指的是计算存储主机的管理单元,一个Azone可包含多个集群,而集群的主机规模一般在数百数量级上。
图3是云计算系统的基本架构,如图3所示,在云计算系统中,存储和计算是相互分离的,那么云计算集群就可分为包括多个存储节点的存储集群/快照中心存储集群和包括多个计算节点的计算集群,其中,存储集群负责提供磁盘块设备的存储资源(即VM的磁盘(disk)),计算集群负责提供计算资源(即VM的CPU/内存),存储集群、快照中心存储集群和计算集群通过交换机交换和传输需要处理的数据。
其中,所述存储集群是基于日志结构块设备(LSBD,log structured blockdevice)块存储技术实现的,LSBD采用日志文件(log file)来构建磁盘块设备,日志文件是一种只能追加写,不能覆盖写的分布式文件,而设备都是基于日志文件构造的。图4示出根据本发明一实施方式的基于分布式文件系统的LSBD设备架构图,如图4所示,LSBD设备是基于分布式文件系统的日志文件实现的,多个设备和快照可能会通过硬链接(Hardlink)共享同一个日志文件,其中,分布式文件系统通过多副本(Replica)的方式来保证数据的安全性和可用性。
进一步地,LSBD设备可切分成由多个设备分段(Device Segment)组成的多个设备分段组(Device Segment Group),其中,每个设备分段都由一个块服务器(BlockServer)负责处理,这样就可以使LSBD块设备系统容易达到负载均衡。进一步地,设备分段由索引文件(Index file),数据文件(data file)和Txn文件(Txn file)组成,这些文件均是分布式文件中的日志文件,只能追加写,不能覆盖写。其中,索引文件负责记录设备逻辑地址区间(LBA Range)和数据文件的物理地址区间之间的对应关系,数据文件负责存储设备分段的数据,Txn文件负责记录修改设备分段的事务日志(Transaction Log)。具体地,对于设备分段来说,写入数据的过程可以描述为:首先在数据文件中写入数据,然后在Txn文件中写入事务日志,最后更新索引文件。
基于以上,再简单介绍一下时间一致性和空间一致性原理,上文提及,分布式系统中没有全局时钟,因此不能采用时间戳来比较两个不同的机器的IO之间的时间顺序,因为每个机器上的时间戳都是基于机器本地的时间产生的。
对于时间一致性问题,定义快照S为一组写IO操作(W)的集合,若存在时间位置P使得以下条件均成立:对于任意操作W,若W<P(W在P之前),则W属于快照S;对于任意操作W,若P<W(W在P之后),则W不属于快照S,那么快照S就是一个具有时间一致性的快照。比如,假设一个数据系统存在两个存储设备:数据磁盘A和日志磁盘B,数据库首先向日志磁盘B写入W1,然后向数据磁盘A写入W2,在数据库系统进行快照时,若快照中包含W1,或者快照中包含W1和W2,则说明该快照数据是满足时间一致性的,但若快照中仅包含W2,则说明快照数据出现了问题,该快照数据是不满足时间一致性的。
对于空间一致性问题,在分布式应用系统中,用户的IO在某些情况下无法保证原子性,也就是说,用户的IO可能会拆分成一组子IO,分别写入设备或设备分段。那么定义快照S为一组写IO(W)的集合,IO因为某些原因被破坏原子性,被拆分成一组子IO(W1…Wn),若存在时间位置P使得以下条件均成立:对于任意W,若W<P(W在P之前),则W属于快照S;对于任意W,若P<W(W在P之后),则W不属于快照S,则说明该快照数据是满足空间一致性的。比如,某个写IO(W),位于两个设备分段的分界处,被分割为W1和W2,其中,W1写入设备分段1,W2写入设备分段2,在数据库系统进行快照时,若快照中包含W1,或者快照中包含W1和W2,则说明该快照数据是满足空间一致性的,但若快照中仅包含W2,则说明快照数据出现了问题,该快照数据是不满足空间一致性的。
在本发明中,当IO原子性被破坏时,得到的子IO(W1…Wn)可按照顺序串行执行,这样就可以把空间一致性问题转换为时间一致性问题。
接下来就来介绍分布式系统中,具有时间一致性的全局快照的实现方案。在云计算存储架构中,一个分布式应用系统的最小存储单元是设备分段,每个设备分段由唯一的一个块服务器负责处理,设备分段会记录写入的每个IO记录,保存在Txn文件中,记录IO的Txn记录(Txn Record)严格按照时间顺序存储。由于本发明的目的是要实现分布式系统的全局快照,所以需要在每层存储架构中设置相应的快照协调节点,在上述存储架构中,考虑到Ocean为Region级别的组件,因此将其作为Region级别的快照协调节点,BlockMaster是存储集群的元数据管理者,因此将其作为Cluster级别的快照协调节点,负责协调多个设备分段以同时完成快照,另外,将负责处理设备分段的BlockServer作为最低级的快照协调节点,来负责单个设备分段的快照流程。更为具体地,上述实施方式的全局快照方法适用于在块服务器处实现。
在该方案中,全局快照的执行分为三个阶段,首先是全局快照准备阶段,在该阶段中,在当前快照操作节点,比如块服务器接收到全局快照准备请求后,进行全局快照准备,获得输入输出操作顺序标识;然后在接收到全局快照请求后,逐级向顶级协调节点发送顺序标识最大值;最后在接收到携带快照时间节点的全局快照提交请求后,执行快照操作,其中,所述快照时间节点取为所述顶级协调节点接收到的顺序标识中的最大值。
在本发明一实施方式中,所述全局快照准备请求、全局快照请求和全局快照提交请求均是由顶级协调节点逐级下发下来的,而顺序标识最大值也是逐级上传至顶级协调节点处。
其中,所述输入输出操作顺序标识用于标识不同输入输出操作发生的时间顺序。上文提及,分布式系统中不存在全局时钟,无法获得全局时间戳,因此,在该实施方式中,为快照期间的输入输出操作分配顺序标识,以表征多个输入输出操作发生的时间顺序,起到全局时间戳的作用,这样后续所述顺序标识就可被用来辅助确定哪些数据是属于需要进行快照的数据。
在本发明一实施方式中,如图5所示,所述步骤S101,即响应于接收到全局快照准备请求,进行全局快照准备,获得输入输出操作顺序标识的步骤,包括以下步骤S501-S504:
在步骤S501中,响应于接收到全局快照准备请求,冻结当前索引文件;
在步骤S502中,创建准备增量索引映射文件,并在将冻结的当前索引文件写入所述准备增量索引映射文件后关闭所述准备增量索引映射文件;
在步骤S503中,创建新增量索引映射文件;
在步骤S504中,响应于检测到输入输出操作,向顺序标识生成设备请求顺序标识,并将所述输入输出操作对应的数据索引和顺序标识写入所述新增量索引映射文件。
为了对于在快照期间发生的输入输出操作进行顺序标识,以表征其发生时间的先后顺序,在该实施方式中,在全局快照准备阶段,当块服务器接收到上级协调节点下发的全局快照准备请求时,先冻结当前的索引文件,然后创建一个准备增量索引映射文件,把冻结的索引文件写入至所述准备增量索引映射文件中进行封存,之后关闭所述准备增量索引映射文件,创建一个新增量索引映射文件,接下来当发生输入输出操作时,就向顺序标识生成设备为所发生的输入输出操作请求一个顺序标识,顺序标识越大,说明该操作发生的时间越晚,然后将所述输入输出操作对应的数据索引和分配的顺序标识一并写入所述新增量索引映射文件中,需要注意的是,每个IO在写入存储系统之前,必须向顺序标识生成设备申请一个IO顺序标识后才能写入,而且写入的IO数据需携带该顺序标识。
在本发明一实施方式中,为了尽量减少存储空间的占用,所述准备增量索引映射文件建立在内存中。
在本发明一实施方式中,所述顺序标识生成设备可以实现为发号器,所述发号器可以在Region范围内为每个分布式应用系统中的IO分配一个顺序标识,即序列号,这个IO序列号就用来代表全局时间戳。图6是根据本发明一实施方式的发号器的工作原理图,其中,一个发号器可以管理多个序列号发生器,每个序列号发生器可以为一个磁盘组快照服务,所述发号器可以保证每个序列号发生器所生成的IO序列号是单调递增的。
发号器是一个独立的组件,可以服务整个Region,其他存储组件通过远程过程调用(RPC)向发号器申请序列号,也就是说,在发号器工作的过程中,每个IO都需要增加一次额外的RPC。在该实施方式中,为了节约系统开销,所述发号器只在快照期间启用,而在非快照期间,则处于休眠等待指令的状态,也正如上文所述,块服务器在接收到全局快照准备请求后,才进行全局快照准备,获得输入输出操作顺序标识,而且快照完成的时间很短,一般都是在秒级,因此快照对于用户IO的影响可以忽略不计。
在本实施例的一个可选实现方式中,如图7所示,所述步骤S102,即响应于接收到全局快照请求,逐级向上级协调节点发送顺序标识最大值直至顶级协调节点的步骤,包括以下步骤S701-S702:
在步骤S701中,响应于接收到全局快照请求,检测所述新增量索引映射文件中的顺序标识;
在步骤S702中,将检测到的顺序标识最大值逐级发送给顶级协调节点。
在本实施例的一个可选实现方式中,块服务器在完成快照准备工作之后可逐级向上级协调节点反馈快照准备完成消息,顶级协调节点在收到快照准备完成消息之后,再逐级向下级协调节点发送全局快照请求。块服务器收到全局快照请求后,先将其所检测到的其所属范围内的顺序标识中的最大值逐级上传至上级协调节点直至顶级协调节点,待顶级协调节点根据接收到的顺序标识计算并返回快照时间节点后即可执行数据快照。
在本实施例的一个可选实现方式中,如图8所示,所述步骤S103,即响应于接收到携带快照时间节点的全局快照提交请求,执行快照操作的步骤,包括以下步骤S801-S802:
在步骤S801中,响应于接收到携带快照时间节点的全局快照提交请求,根据所述快照时间节点确定目标全局快照数据;
在步骤S802中,对于所述目标全局快照数据执行快照操作。
在该实施方式中,顶级协调节点在接收到各下级协调节点上传的顺序标识之后,选择其中的最大值作为快照时间节点,并将其与全局快照提交请求一同下发至块服务器,而块服务器在接收到携带有快照时间节点的全局快照提交请求之后,就可以根据所述快照时间节点来确定目标全局快照数据,以对其进行快照操作。
在本实施例的一个可选实现方式中,如图9所示,所述步骤S801,即响应于接收到携带快照时间节点的全局快照提交请求,根据所述快照时间节点确定目标全局快照数据的步骤,包括以下步骤S901-S902:
在步骤S901中,响应于接收到携带快照时间节点的全局快照提交请求,获取所述新增量索引映射文件中存储的带有顺序标识的输入输出操作索引值;
在步骤S902中,将顺序标识小于所述快照时间节点的输入输出操作索引值对应的数据、冻结的当前索引文件对应的数据以及历史索引文件对应的数据确定为目标全局快照数据。
在顶级协调节点将快照时间节点确定为所接收到的所有顺序标识中的最大值时,就意味着目标全局快照数据为顺序标识最大值所对应的时间之前的全量数据,即,所述目标全局快照数据可包括顺序标识小于所述快照时间节点的输入输出操作索引值对应的数据、冻结的当前索引文件对应的数据以及历史索引文件对应的数据,后续需要对于这些全量数据进行快照。
在本实施例的一个可选实现方式中,如图10所示,所述步骤S802,即对于所述目标全局快照数据执行快照操作的步骤,包括以下步骤S1001-S1002:
在步骤S1001中,响应于所述顺序标识小于所述快照时间节点的输入输出操作索引值对应的数据落盘完成,获取所述新增量索引映射文件对应的Txn文件中顺序标识小于所述快照时间节点的Txn记录数据;
在步骤S1002中,对所述历史索引文件、准备增量索引映射文件和Txn记录数据进行合并,并将合并数据写入快照索引文件。
在该实施方式中,待所述顺序标识小于所述快照时间节点的输入输出操作索引值对应的数据落盘完成,即可将所述新增量索引映射文件对应的Txn文件中顺序标识小于所述快照时间节点的Txn记录数据、所述历史索引文件和准备增量索引映射文件的合并数据写入快照索引文件中,完成快照操作。
图11示出根据本发明另一实施方式的全局快照方法的流程图,如图11所示,所述全局快照方法包括以下步骤S1101-S1103:
在步骤S1101中,响应于全局快照操作的启动,向低级协调节点下发全局快照准备请求;
在步骤S1102中,响应于接收到所述低级协调节点返回的准备完成信息,向所述低级协调节点下发全局快照请求,并根据接收到的所述低级协调节点上传的输入输出操作顺序标识最大值确定快照时间节点;
在步骤S1103中,向所述低级协调节点下发全局快照提交请求,完成全局快照。
上文提及,在云计算的应用中存在大量的分布式系统,而且上述分布式系统并不存在全局时钟,在这种情况下,基于现有技术,对数据库系统进行快照时就很难保证数据磁盘和日志磁盘上的IO总体崩溃一致性,而如果不能实现以上磁盘组的一致性快照,就必须先停止整个分布式应用再进行快照,这就会对系统的运行造成严重的干扰。
考虑到上述问题,在该实施方式中,提出一种全局快照方法,该方法支持在Region范围内建立多级别(Region级别和Cluster级别)的快照协调节点来协调快照的一致性,通过全局范围内逐级传输命令和信息,各级协调节点对其范围内数据进行管理,为快照期间的数据设置全局顺序标识,将顶级协调节点接收到的最大顺序标识作为快照时间节点进行全局数据快照,从而为云计算分布式系统提供了一个具有崩溃一致性的全局快照机制,进而在不干扰系统和用户应用程序的运行的前提下,实现全局数据快照,提高运行数据的安全性,保障数据的恢复功能。
在本发明一实施方式中,所述全局快照方法适用于不存在全局时钟,无法获得全局时间戳的分布式系统,尤其是云计算分布式系统,其中,所述全局快照装置可在顶级协调节点即Ocean组件处实现,在云计算存储架构中,Ocean组件为Region级别的快照协调节点,另外,BlockMaster组件为Cluster级别的快照协调节点,而BlockServer作为面向设备分段的末级快照协调节点。
在本实施例的一个可选实现方式中,所述步骤S1101,即响应于全局快照操作的启动,向低级协调节点下发全局快照准备请求的步骤可被实现为:
响应于全局快照操作的启动,向块设备协调节点发送全局快照准备请求,以使所述块设备协调节点在接收到全局快照准备请求后,向块设备分段协调节点发送全局快照准备请求。
在该实施方式中,在进行全局快照操作时,顶级协调节点即Ocean组件向其下级协调节点-块设备协调节点即BlockMaster组件发送全局快照准备请求,BlockMaster组件再向其下级协调节点-块设备分段协调节点即BlockServer组件发送全局快照准备请求,以实现全局快照准备请求的逐级下发。
在本实施例的一个可选实现方式中,如图12所示,所述步骤S1102,即响应于接收到所述低级协调节点返回的准备完成信息,向所述低级协调节点下发全局快照请求,并根据接收到的所述低级协调节点上传的输入输出操作顺序标识最大值确定快照时间节点的步骤,包括以下步骤S1201-S1202:
在步骤S1201中,响应于接收到所述低级协调节点返回的准备完成信息,逐级下发全局快照请求,以使所述块设备分段协调节点在接收到全局快照请求后,逐级上传其检测到的输入输出操作顺序标识的最大值;
在步骤S1202中,将所接收到的顺序标识中的最大值确定为快照时间节点。
在该实施方式中,在接收到低级协调节点逐级返回的准备完成信息后,逐级下传全局快照请求,即顶级协调节点向块设备协调节点发送全局快照请求,所述块设备协调节点再向块设备分段协调节点发送全局快照请求,之后末级协调节点(块设备分段协调节点),即BlockServer组件响应于接收到全局快照请求,将其检测到的输入输出操作顺序标识的最大值分别逐级上传至顶级协调节点,顶级协调节点再将所接收到的所有顺序标识中的最大值确定为快照时间节点,也就是说,早于该快照时间节点的数据均被认为是快照数据。
在本实施例的一个可选实现方式中,如图13所示,所述步骤S1103,即向所述低级协调节点下发全局快照提交请求,完成全局快照的步骤,包括以下步骤S1301-S1302:
在步骤S1301中,响应于所述快照时间节点确定完成,将所述全局快照提交请求与所述快照时间节点下发至所述低级协调节点,以使所述低级协调节点根据所述快照时间节点确定目标全局快照数据,并对所述目标全局快照数据执行全局快照;
在步骤S1302中,接收所述低级协调节点返回的全局快照完成消息。
在该实施方式中,在确定了快照时间节点之后,将所述全局快照提交请求与所述快照时间节点逐级下发至末级协调节点,以使所述末级协调节点可以根据所述快照时间节点来确定目标全局快照数据,并对所述目标全局快照数据执行全局快照,之后末级协调节点再逐级上传全局快照完成消息。
综上,上述技术方案实现了一种对分布式应用系统的全局快照方法,其既能够满足时间一致性,也能够满足空间一致性。同时,该方法只需在存储层面实现,无需依赖上层应用,而且该方法对应用系统的运行不会产生任何影响,更无需应用系统暂停。
下述为本发明装置实施例,可以用于执行本发明方法实施例。
图14示出根据本发明一实施方式的全局快照装置的结构框图,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部。如图14所示,所述全局快照装置包括:
准备模块1401,被配置为响应于接收到全局快照准备请求,进行全局快照准备,获得输入输出操作顺序标识;
第一发送模块1402,被配置为响应于接收到全局快照请求,逐级向上级协调节点发送顺序标识最大值直至顶级协调节点;
执行模块1403,被配置为响应于接收到携带快照时间节点的全局快照提交请求,执行快照操作,其中,所述快照时间节点为所述顶级协调节点接收到的顺序标识中的最大值。
上文提及,在云计算的应用中存在大量的分布式系统,而且上述分布式系统并不存在全局时钟,在这种情况下,基于现有技术,对数据库系统进行快照时就很难保证数据磁盘和日志磁盘上的输入输出总崩溃一致性,而如果不能实现以上磁盘组的一致性快照,就必须先停止整个分布式应用再进行快照,这就会对系统的运行造成严重的干扰。
考虑到上述问题,在该实施方式中,提出一种全局快照装置,该装置通过为快照期间的数据设置全局顺序标识,将顶级协调节点接收到的最大顺序标识作为快照时间节点进行全局数据快照,从而为云计算分布式系统提供了一个具有崩溃一致性的全局快照机制,进而在不干扰系统和用户应用程序的运行的前提下,实现全局数据快照,提高运行数据的安全性,保障数据的恢复功能。
在本发明一实施方式中,所述全局快照装置可被实施于不存在全局时钟,无法获得全局时间戳的分布式系统,尤其是云计算分布式系统。
上文提及,在云计算存储架构中,一个分布式应用系统的最小存储单元是设备分段,每个设备分段由唯一的一个块服务器负责处理,设备分段会记录写入的每个IO记录,保存在Txn文件中,记录IO的Txn记录(Txn Record)严格按照时间顺序存储。由于本发明的目的是要实现分布式系统的全局快照,所以需要在每层存储架构中设置相应的快照协调节点,在上述存储架构中,考虑到Ocean为Region级别的组件,因此将其作为Region级别的快照协调节点,BlockMaster是存储集群的元数据管理者,因此将其作为Cluster级别的快照协调节点,负责协调多个设备分段以同时完成快照,另外,将负责处理设备分段的BlockServer作为最低级的快照协调节点,来负责单个设备分段的快照流程。更为具体地,上述实施方式的全局快照装置可被实现为块服务器。
在该方案中,全局快照装置可分为三个部分:全局快照准备部分,该部分在当前快照操作节点,比如块服务器接收到全局快照准备请求后,进行全局快照准备,获得输入输出操作顺序标识;顺序标识发送部分,该部分在接收到全局快照请求后,逐级向顶级协调节点发送顺序标识最大值;快照执行部分,该部分在接收到携带快照时间节点的全局快照提交请求后,执行快照操作,其中,所述快照时间节点取为所述顶级协调节点接收到的顺序标识中的最大值。
在本发明一实施方式中,所述全局快照准备请求、全局快照请求和全局快照提交请求均是由顶级协调节点逐级下发下来的,而顺序标识最大值也是逐级上传至顶级协调节点处。
其中,所述输入输出操作顺序标识用于标识不同输入输出操作发生的时间顺序。上文提及,分布式系统中不存在全局时钟,无法获得全局时间戳,因此,在该实施方式中,为快照期间的输入输出操作分配顺序标识,以表征多个输入输出操作发生的时间顺序,起到全局时间戳的作用,这样后续所述顺序标识就可被用来辅助确定哪些数据是属于需要进行快照的数据。
在本发明一实施方式中,如图15所示,所述准备模块1401包括:
冻结子模块1501,被配置为响应于接收到全局快照准备请求,冻结当前索引文件;
第一创建子模块1502,被配置为创建准备增量索引映射文件,并在将冻结的当前索引文件写入所述准备增量索引映射文件后关闭所述准备增量索引映射文件;
第二创建子模块1503,被配置为创建新增量索引映射文件;
请求子模块1504,被配置为响应于检测到输入输出操作,向顺序标识生成设备请求顺序标识,并将所述输入输出操作对应的数据索引和顺序标识写入所述新增量索引映射文件。
为了对于在快照期间发生的输入输出操作进行顺序标识,以表征其发生时间的先后顺序,在该实施方式中,在准备模块1401中,当块服务器接收到上级协调节点下发的全局快照准备请求时,冻结子模块1501先冻结当前的索引文件,然后第一创建子模块1502创建一个准备增量索引映射文件,把冻结的索引文件写入至所述准备增量索引映射文件中进行封存,之后关闭所述准备增量索引映射文件,第二创建子模块1503创建一个新增量索引映射文件,接下来当发生输入输出操作时,请求子模块1504就向顺序标识生成设备为所发生的输入输出操作请求一个顺序标识,顺序标识越大,说明该操作发生的时间越晚,然后将所述输入输出操作对应的数据索引和分配的顺序标识一并写入所述新增量索引映射文件中,需要注意的是,每个IO在写入存储系统之前,必须向顺序标识生成设备申请一个IO顺序标识后才能写入,而且写入的IO数据需携带该顺序标识。
在本发明一实施方式中,为了尽量减少存储空间的占用,所述准备增量索引映射文件建立在内存中。
在本发明一实施方式中,所述顺序标识生成设备可以实现为发号器,所述发号器可以在Region范围内为每个分布式应用系统中的IO分配一个顺序标识,即序列号,这个IO序列号就用来代表全局时间戳。图6是根据本发明一实施方式的发号器的工作原理图,其中,一个发号器可以管理多个序列号发生器,每个序列号发生器可以为一个磁盘组快照服务,所述发号器可以保证每个序列号发生器所生成的IO序列号是单调递增的。
发号器是一个独立的组件,可以服务整个Region,其他存储组件通过远程过程调用(RPC)向发号器申请序列号,也就是说,在发号器工作的过程中,每个IO都需要增加一次额外的RPC。在该实施方式中,为了节约系统开销,所述发号器只在快照期间启用,而在非快照期间,则处于休眠等待指令的状态,也正如上文所述,块服务器在接收到全局快照准备请求后,才进行全局快照准备,获得输入输出操作顺序标识,而且快照完成的时间很短,一般都是在秒级,因此快照对于用户IO的影响可以忽略不计。
在本实施例的一个可选实现方式中,如图16所示,所述第一发送模块1402包括:
检测子模块1601,被配置为响应于接收到全局快照请求,检测所述新增量索引映射文件中的顺序标识;
第一发送子模块1602,被配置为将检测到的顺序标识最大值逐级发送给顶级协调节点。
在本实施例的一个可选实现方式中,块服务器在完成快照准备工作之后可逐级向上级协调节点反馈快照准备完成消息,顶级协调节点在收到快照准备完成消息之后,再逐级向下级协调节点发送全局快照请求。块服务器收到全局快照请求后,第一发送子模块1602先将检测子模块1601所检测到的其所属范围内的顺序标识中的最大值逐级上传至上级协调节点直至顶级协调节点,待顶级协调节点根据接收到的顺序标识计算并返回快照时间节点后即可执行数据快照。
在本实施例的一个可选实现方式中,如图17所示,所述执行模块1403包括:
第一确定子模块1701,被配置为响应于接收到携带快照时间节点的全局快照提交请求,根据所述快照时间节点确定目标全局快照数据;
执行子模块1702,被配置为对于所述目标全局快照数据执行快照操作。
在该实施方式中,顶级协调节点在接收到各下级协调节点上传的顺序标识之后,选择其中的最大值作为快照时间节点,并将其与全局快照提交请求一同下发至块服务器,而块服务器在接收到携带有快照时间节点的全局快照提交请求之后,第一确定子模块1701就可以根据所述快照时间节点来确定目标全局快照数据,以使执行子模块1702对其进行快照操作。
在本实施例的一个可选实现方式中,如图18所示,所述第一确定子模块1701包括:
第一获取子模块1801,被配置为响应于接收到携带快照时间节点的全局快照提交请求,获取所述新增量索引映射文件中存储的带有顺序标识的输入输出操作索引值;
第二确定子模块1802,被配置为将顺序标识小于所述快照时间节点的输入输出操作索引值对应的数据、冻结的当前索引文件对应的数据以及历史索引文件对应的数据确定为目标全局快照数据。
在顶级协调节点将快照时间节点确定为所接收到的所有顺序标识中的最大值时,就意味着目标全局快照数据为顺序标识最大值所对应的时间之前的全量数据,即,所述目标全局快照数据可包括顺序标识小于所述快照时间节点的输入输出操作索引值对应的数据、冻结的当前索引文件对应的数据以及历史索引文件对应的数据,后续需要对于这些全量数据进行快照。
在本实施例的一个可选实现方式中,如图19所示,所述执行子模块1702包括:
第二获取子模块1901,被配置为响应于所述顺序标识小于所述快照时间节点的输入输出操作索引值对应的数据落盘完成,获取所述新增量索引映射文件对应的Txn文件中顺序标识小于所述快照时间节点的Txn记录数据;
写数据子模块1902,被配置为对所述历史索引文件、准备增量索引映射文件和Txn记录数据进行合并,并将合并数据写入快照索引文件。
在该实施方式中,待所述顺序标识小于所述快照时间节点的输入输出操作索引值对应的数据落盘完成,写数据子模块1902即可将第二获取子模块1901获得的所述新增量索引映射文件对应的Txn文件中顺序标识小于所述快照时间节点的Txn记录数据、所述历史索引文件和准备增量索引映射文件的合并数据写入快照索引文件中,完成快照操作。
图20示出根据本发明另一实施方式的全局快照装置的结构框图,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部。如图20所示,所述全局快照装置包括:
第二发送模块2001,被配置为响应于全局快照操作的启动,向低级协调节点下发全局快照准备请求;
确定模块2002,被配置为响应于接收到所述低级协调节点返回的准备完成信息,向所述低级协调节点下发全局快照请求,并根据接收到的所述低级协调节点上传的输入输出操作顺序标识最大值确定快照时间节点;
第三发送模块2003,被配置为向所述低级协调节点下发全局快照提交请求,完成全局快照。
上文提及,在云计算的应用中存在大量的分布式系统,而且上述分布式系统并不存在全局时钟,在这种情况下,基于现有技术,对数据库系统进行快照时就很难保证数据磁盘和日志磁盘上的IO总体崩溃一致性,而如果不能实现以上磁盘组的一致性快照,就必须先停止整个分布式应用再进行快照,这就会对系统的运行造成严重的干扰。
考虑到上述问题,在该实施方式中,提出一种全局快照装置,该装置支持在Region范围内建立多级别(Region级别和Cluster级别)的快照协调节点来协调快照的一致性,通过全局范围内逐级传输命令和信息,各级协调节点对其范围内数据进行管理,为快照期间的数据设置全局顺序标识,将顶级协调节点接收到的最大顺序标识作为快照时间节点进行全局数据快照,从而为云计算分布式系统提供了一个具有崩溃一致性的全局快照机制,进而在不干扰系统和用户应用程序的运行的前提下,实现全局数据快照,提高运行数据的安全性,保障数据的恢复功能。
在本发明一实施方式中,所述全局快照装置适用于不存在全局时钟,无法获得全局时间戳的分布式系统,尤其是云计算分布式系统,其中,所述全局快照装置可在顶级协调节点即Ocean组件处实现,在云计算存储架构中,Ocean组件为Region级别的快照协调节点,另外,BlockMaster组件为Cluster级别的快照协调节点,而BlockServer作为面向设备分段的末级快照协调节点。
在本实施例的一个可选实现方式中,所述第二发送模块2001被配置为响应于全局快照操作的启动,向块设备协调节点发送全局快照准备请求,以使所述块设备协调节点在接收到全局快照准备请求后,向块设备分段协调节点发送全局快照准备请求。
在该实施方式中,在进行全局快照操作时,顶级协调节点即Ocean组件向其下级协调节点-块设备协调节点即BlockMaster组件发送全局快照准备请求,BlockMaster组件再向其下级协调节点-块设备分段协调节点即BlockServer组件发送全局快照准备请求,以实现全局快照准备请求的逐级下发。
在本实施例的一个可选实现方式中,如图21所示,所述确定模块2002包括:
第二发送子模块2101,被配置为响应于接收到所述低级协调节点返回的准备完成信息,逐级下发全局快照请求,以使所述块设备分段协调节点在接收到全局快照请求后,逐级上传其检测到的输入输出操作顺序标识的最大值;
第三确定子模块2102,被配置为将所接收到的顺序标识中的最大值确定为快照时间节点。
在该实施方式中,在接收到低级协调节点逐级返回的准备完成信息后,第二发送子模块逐级下传全局快照请求,即第二发送子模块向块设备协调节点发送全局快照请求,所述块设备协调节点再向块设备分段协调节点发送全局快照请求,之后末级协调节点(块设备分段协调节点),即BlockServer组件响应于接收到全局快照请求,将其检测到的输入输出操作顺序标识的最大值分别逐级上传,而第三确定子模块将其所接收到的所有顺序标识中的最大值确定为快照时间节点,也就是说,早于该快照时间节点的数据均被认为是快照数据。
在本实施例的一个可选实现方式中,如图22所示,所述第三发送模块2003包括:
第三发送子模块2201,被配置为响应于所述快照时间节点确定完成,将所述全局快照提交请求与所述快照时间节点下发至所述低级协调节点,以使所述低级协调节点根据所述快照时间节点确定目标全局快照数据,并对所述目标全局快照数据执行全局快照;
接收子模块2202,被配置为接收所述低级协调节点返回的全局快照完成消息。
在该实施方式中,在确定了快照时间节点之后,将所述全局快照提交请求与所述快照时间节点逐级下发至末级协调节点,以使所述末级协调节点可以根据所述快照时间节点来确定目标全局快照数据,并对所述目标全局快照数据执行全局快照,之后末级协调节点再逐级上传全局快照完成消息。
综上,上述技术方案实现了一种对分布式应用系统的全局快照装置,其既能够满足时间一致性,也能够满足空间一致性。同时,该装置只需设置在存储层面,无需依赖上层应用,而且该装置对应用系统的运行不会产生任何影响,更无需应用系统暂停。
本发明实施例还公开了一种电子设备,图23示出根据本发明一实施方式的电子设备的结构框图,如图23所示,所述电子设备2300包括存储器2301和处理器2302;其中,
所述存储器2301用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器2302执行以实现上述任一方法步骤。
图24适于用来实现根据本发明实施方式的全局快照方法的计算机系统的结构示意图。
如图24所示,计算机系统2400包括中央处理单元(CPU)2401,其可以根据存储在只读存储器(ROM)2402中的程序或者从存储部分2408加载到随机访问存储器(RAM)2403中的程序而执行上述实施方式中的各种处理。在RAM2403中,还存储有系统2400操作所需的各种程序和数据。CPU2401、ROM2402以及RAM2403通过总线2404彼此相连。输入/输出(I/O)接口2405也连接至总线2404。
以下部件连接至I/O接口2405:包括键盘、鼠标等的输入部分2406;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分2407;包括硬盘等的存储部分2408;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分2409。通信部分2409经由诸如因特网的网络执行通信处理。驱动器2410也根据需要连接至I/O接口2405。可拆卸介质2411,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器2410上,以便于从其上读出的计算机程序根据需要被安装入存储部分2408。
特别地,根据本发明的实施方式,上文描述的方法可以被实现为计算机软件程序。例如,本发明的实施方式包括一种计算机程序产品,其包括有形地包含在及其可读介质上的计算机程序,所述计算机程序包含用于执行所述全局快照方法的程序代码。在这样的实施方式中,该计算机程序可以通过通信部分2409从网络上被下载和安装,和/或从可拆卸介质2411被安装。
附图中的流程图和框图,图示了按照本发明各种实施方式的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,路程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施方式中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定。
作为另一方面,本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施方式中所述装置中所包含的计算机可读存储介质;也可以是单独存在,未装配入设备中的计算机可读存储介质。计算机可读存储介质存储有一个或者一个以上程序,所述程序被一个或者一个以上的处理器用来执行描述于本发明实施例的方法。
以上描述仅为本发明的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本发明实施例中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本发明实施例中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (22)
1.一种全局快照方法,其特征在于,包括:
响应于接收到全局快照准备请求,进行全局快照准备,获得输入输出操作顺序标识;
响应于接收到全局快照请求,逐级向上级协调节点发送顺序标识最大值直至顶级协调节点;
响应于接收到携带快照时间节点的全局快照提交请求,执行快照操作,其中,所述快照时间节点为所述顶级协调节点接收到的顺序标识中的最大值。
2.根据权利要求1所述的方法,其特征在于,所述响应于接收到全局快照准备请求,进行全局快照准备,获得输入输出操作顺序标识,包括:
响应于接收到全局快照准备请求,冻结当前索引文件;
创建准备增量索引映射文件,并在将冻结的当前索引文件写入所述准备增量索引映射文件后关闭所述准备增量索引映射文件;
创建新增量索引映射文件;
响应于检测到输入输出操作,向顺序标识生成设备请求顺序标识,并将所述输入输出操作对应的数据索引和顺序标识写入所述新增量索引映射文件。
3.根据权利要求2所述的方法,其特征在于,所述响应于接收到全局快照请求,逐级向上级协调节点发送顺序标识最大值直至顶级协调节点,包括:
响应于接收到全局快照请求,检测所述新增量索引映射文件中的顺序标识;
将检测到的顺序标识最大值逐级发送给顶级协调节点。
4.根据权利要求2所述的方法,其特征在于,所述响应于接收到携带快照时间节点的全局快照提交请求,执行快照操作,包括:
响应于接收到携带快照时间节点的全局快照提交请求,根据所述快照时间节点确定目标全局快照数据;
对于所述目标全局快照数据执行快照操作。
5.根据权利要求4所述的方法,其特征在于,所述响应于接收到携带快照时间节点的全局快照提交请求,根据所述快照时间节点确定目标全局快照数据,包括:
响应于接收到携带快照时间节点的全局快照提交请求,获取所述新增量索引映射文件中存储的带有顺序标识的输入输出操作索引值;
将顺序标识小于所述快照时间节点的输入输出操作索引值对应的数据、冻结的当前索引文件对应的数据以及历史索引文件对应的数据确定为目标全局快照数据。
6.根据权利要求5所述的方法,其特征在于,所述对于所述目标全局快照数据执行快照操作,包括:
响应于所述顺序标识小于所述快照时间节点的输入输出操作索引值对应的数据落盘完成,获取所述新增量索引映射文件对应的Txn文件中顺序标识小于所述快照时间节点的Txn记录数据;
对所述历史索引文件、准备增量索引映射文件和Txn记录数据进行合并,并将合并数据写入快照索引文件。
7.一种全局快照方法,其特征在于,包括:
响应于全局快照操作的启动,向低级协调节点下发全局快照准备请求;
响应于接收到所述低级协调节点返回的准备完成信息,向所述低级协调节点下发全局快照请求,并根据接收到的所述低级协调节点上传的输入输出操作顺序标识最大值确定快照时间节点;
向所述低级协调节点下发全局快照提交请求,完成全局快照。
8.根据权利要求7所述的方法,其特征在于,所述响应于全局快照操作的启动,向低级协调节点下发全局快照准备请求,包括:
响应于全局快照操作的启动,向块设备协调节点发送全局快照准备请求,以使所述块设备协调节点在接收到全局快照准备请求后,向块设备分段协调节点发送全局快照准备请求。
9.根据权利要求7或8所述的方法,其特征在于,所述响应于接收到所述低级协调节点返回的准备完成信息,向所述低级协调节点下发全局快照请求,并根据接收到的所述低级协调节点上传的输入输出操作顺序标识最大值确定快照时间节点,包括:
响应于接收到所述低级协调节点返回的准备完成信息,逐级下发全局快照请求,以使所述块设备分段协调节点在接收到全局快照请求后,逐级上传其检测到的输入输出操作顺序标识的最大值;
将所接收到的顺序标识中的最大值确定为快照时间节点。
10.根据权利要求7-9任一所述的方法,其特征在于,所述向所述低级协调节点下发全局快照提交请求,完成全局快照,包括:
响应于所述快照时间节点确定完成,将所述全局快照提交请求与所述快照时间节点下发至所述低级协调节点,以使所述低级协调节点根据所述快照时间节点确定目标全局快照数据,并对所述目标全局快照数据执行全局快照;
接收所述低级协调节点返回的全局快照完成消息。
11.一种全局快照装置,其特征在于,包括:
准备模块,被配置为响应于接收到全局快照准备请求,进行全局快照准备,获得输入输出操作顺序标识;
第一发送模块,被配置为响应于接收到全局快照请求,逐级向上级协调节点发送顺序标识最大值直至顶级协调节点;
执行模块,被配置为响应于接收到携带快照时间节点的全局快照提交请求,执行快照操作,其中,所述快照时间节点为所述顶级协调节点接收到的顺序标识中的最大值。
12.根据权利要求11所述的装置,其特征在于,所述准备模块包括:
冻结子模块,被配置为响应于接收到全局快照准备请求,冻结当前索引文件;
第一创建子模块,被配置为创建准备增量索引映射文件,并在将冻结的当前索引文件写入所述准备增量索引映射文件后关闭所述准备增量索引映射文件;
第二创建子模块,被配置为创建新增量索引映射文件;
请求子模块,被配置为响应于检测到输入输出操作,向顺序标识生成设备请求顺序标识,并将所述输入输出操作对应的数据索引和顺序标识写入所述新增量索引映射文件。
13.根据权利要求12所述的装置,其特征在于,所述第一发送模块包括:
检测子模块,被配置为响应于接收到全局快照请求,检测所述新增量索引映射文件中的顺序标识;
第一发送子模块,被配置为将检测到的顺序标识最大值逐级发送给顶级协调节点。
14.根据权利要求12所述的装置,其特征在于,所述执行模块包括:
第一确定子模块,被配置为响应于接收到携带快照时间节点的全局快照提交请求,根据所述快照时间节点确定目标全局快照数据;
执行子模块,被配置为对于所述目标全局快照数据执行快照操作。
15.根据权利要求14所述的装置,其特征在于,所述第一确定子模块包括:
第一获取子模块,被配置为响应于接收到携带快照时间节点的全局快照提交请求,获取所述新增量索引映射文件中存储的带有顺序标识的输入输出操作索引值;
第二确定子模块,被配置为将顺序标识小于所述快照时间节点的输入输出操作索引值对应的数据、冻结的当前索引文件对应的数据以及历史索引文件对应的数据确定为目标全局快照数据。
16.根据权利要求15所述的装置,其特征在于,所述执行子模块包括:
第二获取子模块,被配置为响应于所述顺序标识小于所述快照时间节点的输入输出操作索引值对应的数据落盘完成,获取所述新增量索引映射文件对应的Txn文件中顺序标识小于所述快照时间节点的Txn记录数据;
写数据子模块,被配置为对所述历史索引文件、准备增量索引映射文件和Txn记录数据进行合并,并将合并数据写入快照索引文件。
17.一种全局快照装置,其特征在于,包括:
第二发送模块,被配置为响应于全局快照操作的启动,向低级协调节点下发全局快照准备请求;
确定模块,被配置为响应于接收到所述低级协调节点返回的准备完成信息,向所述低级协调节点下发全局快照请求,并根据接收到的所述低级协调节点上传的输入输出操作顺序标识最大值确定快照时间节点;
第三发送模块,被配置为向所述低级协调节点下发全局快照提交请求,完成全局快照。
18.根据权利要求17所述的装置,其特征在于,所述第二发送模块被配置为响应于全局快照操作的启动,向块设备协调节点发送全局快照准备请求,以使所述块设备协调节点在接收到全局快照准备请求后,向块设备分段协调节点发送全局快照准备请求。
19.根据权利要求17或18所述的装置,其特征在于,所述确定模块包括:
第二发送子模块,被配置为响应于接收到所述低级协调节点返回的准备完成信息,逐级下发全局快照请求,以使所述块设备分段协调节点在接收到全局快照请求后,逐级上传其检测到的输入输出操作顺序标识的最大值;
第三确定子模块,被配置为将所接收到的顺序标识中的最大值确定为快照时间节点。
20.根据权利要求17-19任一所述的装置,其特征在于,所述第三发送模块包括:
第三发送子模块,被配置为响应于所述快照时间节点确定完成,将所述全局快照提交请求与所述快照时间节点下发至所述低级协调节点,以使所述低级协调节点根据所述快照时间节点确定目标全局快照数据,并对所述目标全局快照数据执行全局快照;
接收子模块,被配置为接收所述低级协调节点返回的全局快照完成消息。
21.一种电子设备,其特征在于,包括存储器和处理器;其中,
所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现权利要求1-10任一项所述的方法步骤。
22.一种计算机可读存储介质,其上存储有计算机指令,其特征在于,该计算机指令被处理器执行时实现权利要求1-10任一项所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910105133.8A CN111522689B (zh) | 2019-02-01 | 2019-02-01 | 全局快照方法、装置、电子设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910105133.8A CN111522689B (zh) | 2019-02-01 | 2019-02-01 | 全局快照方法、装置、电子设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111522689A true CN111522689A (zh) | 2020-08-11 |
CN111522689B CN111522689B (zh) | 2022-04-29 |
Family
ID=71900049
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910105133.8A Active CN111522689B (zh) | 2019-02-01 | 2019-02-01 | 全局快照方法、装置、电子设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111522689B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113868027A (zh) * | 2021-12-01 | 2021-12-31 | 云和恩墨(北京)信息技术有限公司 | 数据快照方法及装置 |
CN114328018A (zh) * | 2021-12-28 | 2022-04-12 | 阿里巴巴(中国)有限公司 | 快照的创建方法、计算设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6493721B1 (en) * | 1999-03-31 | 2002-12-10 | Verizon Laboratories Inc. | Techniques for performing incremental data updates |
CN101996108A (zh) * | 2009-08-18 | 2011-03-30 | 中兴通讯股份有限公司 | 一种分布式环境的备份和恢复方法及其系统 |
US20120066182A1 (en) * | 2010-09-10 | 2012-03-15 | International Business Machines Corporation | Inode management in redirect-on-write file system |
US20160371356A1 (en) * | 2015-06-19 | 2016-12-22 | Sap Se | Distributed database transaction protocol |
US20170351667A1 (en) * | 2015-02-28 | 2017-12-07 | Huawei Technologies Co., Ltd. | Transaction processing method, processing node, central node, and cluster |
CN107835983A (zh) * | 2015-04-16 | 2018-03-23 | 诺宝公司 | 使用一致的数据库快照在分布式数据库中进行备份和还原 |
-
2019
- 2019-02-01 CN CN201910105133.8A patent/CN111522689B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6493721B1 (en) * | 1999-03-31 | 2002-12-10 | Verizon Laboratories Inc. | Techniques for performing incremental data updates |
CN101996108A (zh) * | 2009-08-18 | 2011-03-30 | 中兴通讯股份有限公司 | 一种分布式环境的备份和恢复方法及其系统 |
US20120066182A1 (en) * | 2010-09-10 | 2012-03-15 | International Business Machines Corporation | Inode management in redirect-on-write file system |
US20170351667A1 (en) * | 2015-02-28 | 2017-12-07 | Huawei Technologies Co., Ltd. | Transaction processing method, processing node, central node, and cluster |
CN107835983A (zh) * | 2015-04-16 | 2018-03-23 | 诺宝公司 | 使用一致的数据库快照在分布式数据库中进行备份和还原 |
US20160371356A1 (en) * | 2015-06-19 | 2016-12-22 | Sap Se | Distributed database transaction protocol |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113868027A (zh) * | 2021-12-01 | 2021-12-31 | 云和恩墨(北京)信息技术有限公司 | 数据快照方法及装置 |
CN114328018A (zh) * | 2021-12-28 | 2022-04-12 | 阿里巴巴(中国)有限公司 | 快照的创建方法、计算设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111522689B (zh) | 2022-04-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102240557B1 (ko) | 데이터 저장 방법, 장치 및 시스템 | |
US11467755B2 (en) | Method and system for enabling agentless backup and restore operations on a container orchestration platform | |
US9720989B2 (en) | Dynamic partitioning techniques for data streams | |
US9858322B2 (en) | Data stream ingestion and persistence techniques | |
CN102594849B (zh) | 数据备份、恢复方法、虚拟机快照删除、回滚方法及装置 | |
US9563385B1 (en) | Profile-guided data preloading for virtualized resources | |
US10152499B1 (en) | Database replication scaling | |
US10445186B1 (en) | Associating a guest application within a virtual machine to create dependencies in backup/restore policy | |
US10853189B2 (en) | Image restore from incremental backup | |
JP2015504202A (ja) | クラスタ・ファイルシステムを横断する同期更新方法、システム、およびコンピュータ・プログラム | |
CN106777394B (zh) | 一种集群文件系统 | |
CN103514298A (zh) | 一种实现文件锁的方法及元数据服务器 | |
US20220083281A1 (en) | Reading and writing of distributed block storage system | |
US10795579B2 (en) | Methods, apparatuses, system and computer program products for reclaiming storage units | |
CN112346647B (zh) | 数据存储方法、装置、设备和介质 | |
CN111026510A (zh) | 一种云环境下虚拟机跨存储热迁移方法 | |
CN111522689B (zh) | 全局快照方法、装置、电子设备及计算机可读存储介质 | |
CN106095957A (zh) | 分布式文件系统的跨域多副本文件同步方法及装置 | |
CN107566470B (zh) | 云数据系统中管理虚拟机的方法和装置 | |
US11157456B2 (en) | Replication of data in a distributed file system using an arbiter | |
CN116149818A (zh) | Gpu应用的迁移方法、设备、系统及存储介质 | |
CN114780564A (zh) | 数据处理方法、数据处理装置、电子设备和存储介质 | |
US8738873B2 (en) | Interfacing with a point-in-time copy service architecture | |
CN116360696B (zh) | 分布式块存储系统、介质及其电子设备 | |
US9965357B1 (en) | Virtual backup and restore of virtual machines |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20231212 Address after: Room 1-2-A06, Yungu Park, No. 1008 Dengcai Street, Sandun Town, Xihu District, Hangzhou City, Zhejiang Province Patentee after: Aliyun Computing Co.,Ltd. Address before: Box 847, four, Grand Cayman capital, Cayman Islands, UK Patentee before: ALIBABA GROUP HOLDING Ltd. |
|
TR01 | Transfer of patent right |