一种分布式快照方法、装置、设备以及计算机存储介质与流程
未命名
09-24
阅读:63
评论:0
1.本技术涉及设备管理技术领域,尤其涉及一种分布式快照方法、装置、设备以及计算机存储介质。
背景技术:
2.快照(snapshot)是关于指定数据集合的一个完全可用拷贝,该拷贝包括相应数据在某个时间点(拷贝开始的时间点)的映像。快照可以是其所表示的数据的一个副本。快照能够进行在线数据备份与恢复,当存储设备发生应用故障或者文件损坏时可以进行快速的数据恢复,将数据恢复某个可用的时间点的状态。
3.目前相关技术中,常见的对关联虚拟机进行快照的方式通常包含两步,第一步是对单个虚拟机做快照,第二步是通过一致性协议对多个做快照的虚拟机进行协调,虚拟机之间的网络包有可能被丢弃,会导致传输控制协议返回(tcp backoff)周期长的问题,从而导致各虚拟机间网络通讯中断,做不到真正的热快照,严重情况下会影响业务应用程序的运行。
技术实现要素:
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.图1为本技术实施例提供的一种分布式快照方法的流程示意图;
39.图2为本技术实施例提供的另一种分布式快照方法的流程示意图;
40.图3为本技术实施例提供的一种分布式快照方法的全局一致性协议示意图;
41.图4为本技术实施例提供的一种分布式快照装置的组成结构示意图;
42.图5为本技术实施例提供的一种关联虚拟机的具体硬件结构示意图;
43.图6为本技术实施例提供的一种关联虚拟机的组成结构示意图。
具体实施方式
44.为了能够更加详尽地了解本技术实施例的特点与技术内容,下面结合附图对本技术实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本技术实施例。
45.除非另有定义,本文所使用的所有的技术和科学术语与属于本技术的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本技术实施例的目的,不是旨在限制本技术。
46.在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。还需要指出,本技术实施例所涉及的术语“第一\第二\第三”仅是用于区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本技术实施例能够以除了在这里图示或描述的以外的顺序实施。
47.在相关技术中,快照(snapshot)是关于指定数据集合的一个完全可用拷贝,该拷贝包括相应数据在某个时间点(拷贝开始的时间点)的映像。快照可以是其所表示的数据的一个副本,也可以是数据的一个复制品。快照能够进行在线数据备份与恢复,当存储设备发生应用故障或者文件损坏时可以进行快速的数据恢复,将数据恢复某个可用的时间点的状态。
48.在虚拟化环境中,快照是保证系统可靠性的常用方法,能够让系统在故障期间快速地恢复过来。在相关技术中,快照方式是针对于部署在单个虚拟机(virtual machine,vm)中的应用程序。
49.随着大量的分布式应用程序也逐渐部署在虚拟化平台中,对分布式应用程序做快
照的需求也逐渐被提出来。常见的对此做快照的方式通常包含两步,第一步是对单个vm做快照,第二步是通过一致性协议对多个做快照的vm进行协调。具体的:首先用户发起snapshot命令给vm1,vm1接收到命令后,一方面会转发给vm2,另一方面自己同时会开始执行热快照过程,不断地将内存中的脏页、各种设备状态以及磁盘数据保存到持久性的存储中,或者保存到预留的内存区域。这些步骤完成后,vm1的快照就完成了,之后vm2也同时做类似的快照步骤。
50.在上述描述的现有方案中,存在vm1快照做完了,但vm2还处在快照过程中的情况。此时,如果vm1给vm2进行网络通信,为了保持全局状态一致性,vm1发给vm2的网络包会被丢弃,这样就会产生tcp backoff周期长的问题,从而导致各vm间网络通讯中断,做不到真正的热快照,严重情况下会影响业务应用程序的运行。传统的对每个vm单独进行快照过程,有明显的网络中断现象,影响业务的运行,造成用户极差的体验感。
51.基于此,本技术实施例提供了一种分布式快照方法,应用于关联虚拟机,关联虚拟机包括发起虚拟机和若干个执行虚拟机。该方法的基本思想是:发起虚拟机获取快照指令;快照指令包括短暂式快照指令和全量式快照指令;发起虚拟机向若干个执行虚拟机发出短暂式快照指令,以完成发起虚拟机和执行虚拟机的短暂式快照;在发起虚拟机和执行虚拟机完成短暂式快照的情况下,发起虚拟机向若干个执行虚拟机发出全量式快照指令,以完成发起虚拟机和执行虚拟机的全量式快照。这样,关联虚拟机依次执行短暂式快照和全量式快照,实现关联虚拟机的分布式快照,解决了快照过程中出现网络中断影响业务运行的问题。
52.实施例一
53.参见图1,其示出了本技术实施例提供的一种分布式快照方法的流程示意图,该方法应用于关联虚拟机,所述关联虚拟机包括发起虚拟机和若干个执行虚拟机如图1所示,该方法可以包括:
54.s101:所述发起虚拟机获取快照指令;所述快照指令包括短暂式快照指令和全量式快照指令。
55.需要说明的是,分布式应用程序部署在任意两个或者两个以上不同的虚拟机时,形成了由至少两个虚拟机构成的关联虚拟机,在需要进行分布式快照的关联虚拟机中,可以包括发起虚拟机和若干个执行虚拟机,示例性地,在10个关联虚拟机中,可以包括一个发起虚拟机和9个执行虚拟机。
56.还需要说明的是,在分布式快照的实现过程中,可以包括两个过程,分别是短暂式快照和全量式快照两个部分,与此对应的是发起虚拟机从用户端获取的快照指令可以包括短暂式快照指令和全量式快照指令,其中,短暂式快照指令用于实现短暂式快照,全量式快照指令用于实现全量式快照。
57.在一些实施例中,参见图2,其示出了本技术实施例提供的另一种分布式快照方法的流程示意图,如图2所示,所述方法可以包括:
58.s201:确定所述关联虚拟机中任意一个虚拟机作为所述发起虚拟机;
59.s202:将所述关联虚拟机中除所述发起虚拟机之外的虚拟机确定为所述若干个执行虚拟机。
60.需要说明的是,可以在关联虚拟机中随机确定一个虚拟机作为发起虚拟机,在发
起虚拟机确定之后,关联虚拟机中剩余的若干个虚拟机作为执行虚拟机,以实现发起虚拟机对若干个执行虚拟机的管理。
61.在一些具体的实施例中,所述方法还可以包括:
62.所述发起虚拟机为与所述关联虚拟机中剩余虚拟机都存在信息交互的虚拟机,或者,
63.所述发起虚拟机为所述关联虚拟机中存储空间大于预设空间阈值的虚拟机。
64.需要说明的是,在需要进行分布式快照的关联虚拟机中,根据预设标准选取一个虚拟机作为发起虚拟机,关联虚拟机中的其他虚拟机作为执行虚拟机,发起虚拟机对执行虚拟机发出快照指令,以实现关联虚拟中发起虚拟机对执行虚拟机的交互管理,最终实现关联虚拟机的分布式快照,也可以在需要进行分布式快照的关联虚拟机中选取多个虚拟机作为发起虚拟机,对余下的执行虚拟机进行交互管理。
65.还需要说明的是,选取发起虚拟机的预设标准可以为根据数据传输效率进行选择,例如选择与剩余虚拟机都存在信息交互的虚拟机作为发起虚拟机,也可以根据数据存储需求进行选择,例如选择存储空间大的虚拟机作为发起虚拟机,以及其他可以实现发起虚拟机选取的预设标准,在此不作任何限定。
66.这样,发起虚拟机获取到短暂式快照指令和全量式快照指令,以实现对执行虚拟机的交互管理。
67.s102:所述发起虚拟机向若干个执行虚拟机发出短暂式快照指令,以完成所述发起虚拟机和所述执行虚拟机的短暂式快照。
68.需要说明的是,发起虚拟机向若干个执行虚拟机广播短暂式快照指令,同时发起虚拟机开始进行短暂式快照,若干个执行虚拟机在接收到短暂式快照指令后也开始进行短暂式快照,最终实现发起虚拟机和执行虚拟机的短暂式快照,完成分布式快照的第一步也就是短暂式快照。
69.在一些实施例中,所述发起虚拟机向若干个执行虚拟机发出短暂式快照指令,以完成所述发起虚拟机和所述执行虚拟机的短暂式快照,可以包括:
70.所述发起虚拟机向所述若干个执行虚拟机分别发送短暂式快照指令;
71.所述发起虚拟机和所述若干个执行虚拟机各自执行所述短暂式快照指令,所述若干个执行虚拟机发送短暂式对等命令至所述发起虚拟机;
72.所述发起虚拟机在收到所述若干个执行虚拟机中每一执行虚拟机返回的短暂式对等命令的情况下,确定所述发起虚拟机和所述执行虚拟机完成所述短暂式快照。
73.需要说明的是,一种情况下,如果发起虚拟机管理执行虚拟机以及包括发起虚拟机本身在内的所有虚拟机,发起虚拟机既作为管理者又作为被管理者,则在发起虚拟机广播短暂式快照指令后,发起虚拟机和执行虚拟机均需要完成短暂式快照,并在完成短暂式快照的流程之后对发起虚拟机进行反馈,以告知发起虚拟机短暂式快照已经完成。
74.还需要说明的是,另一种情况下,如果发起虚拟机管理不包括发起虚拟机本身在内的执行虚拟机,发起虚拟机只作为管理者,则在发起虚拟机广播短暂式快照指令后,执行虚拟机完成短暂式快照,并在完成短暂式快照的流程之后对发起虚拟机进行反馈,以告知发起虚拟机该执行虚拟机短暂式快照已经完成。
75.在一些具体地实施例中,所述发起虚拟机和所述若干个执行虚拟机各自执行所述
短暂式快照指令;可以包括:
76.基于第一虚拟机,为所述短暂式快照指令分配存储空间;
77.基于所述短暂式快照指令,将所述第一虚拟机对应的当前状态信息存储至至所述存储空间;
78.其中,所述第一虚拟机为所述发起虚拟机和所述若干个执行虚拟机中任意一个虚拟机。
79.需要说明的是,当第一虚拟机收到短暂式快照指令的时候,会暂停当前虚拟机运行,执行短暂式快照,短暂式快照对当前状态信息进行存储,在复制完短暂式快照对应的当前状态信息后,可以通过创建bitmap栅格图文件的方式进行存储,短暂式快照对应的状态信息与全量式快照对应的当前数据信息存在关联关系,也就是说对于同一个虚拟机而言,当前状态信息和当前数据信息存在一一对应的关系。
80.还需要说明的是,在本技术实施例中,可以对存储空间中的每个内存页设置写保护,防止文件被篡改,或者误删。
81.在一些实施例中,所述当前状态信息可以包括设备状态、磁盘状态、内存状态中的一个或者多个。
82.需要说明的是,短暂式快照可以包括设备状态,磁盘状态,内存状态等等信息,具体地可以包括物理位置元数据,存储位置,文件记录,历史数据信息等等信息,在此不作任何限定。
83.基于上述实施例,这里提供了分布式快照过程中短暂式快照的具体实现过程,这样完成了分布式快照的第一步,在此基础之上,可以继续进行全量式快照。
84.s103:在所述发起虚拟机和所述执行虚拟机完成所述短暂式快照的情况下,所述发起虚拟机向若干个所述执行虚拟机发出全量式快照指令,以完成所述发起虚拟机和所述执行虚拟机的全量式快照。
85.需要说明的是,全量式快照进行的前提是确保每一个被管理的虚拟机均完成了短暂式快照,也就是说,在发起虚拟机在管理执行虚拟机的同时也管理自身的情况下,需要确定发起虚拟机和每一个执行虚拟机均完成了短暂式快照,在发起虚拟机只管理执行虚拟机的情况下,需要确定每一个执行虚拟机均完成了短暂式快照。
86.在一些实施例中,所述发起虚拟机向若干个所述执行虚拟机发出全量式快照指令,以完成所述发起虚拟机和所述执行虚拟机的全量式快照,可以包括:
87.所述发起虚拟机向所述若干个执行虚拟机分别发送全量式快照指令;
88.所述发起虚拟机和若干个执行虚拟机执行所述全量式快照指令,所述执行虚拟机发送全量式对等命令至所述发起虚拟机;
89.所述发起虚拟机在收到所述若干个执行虚拟机中每一执行虚拟机返回的全量式对等命令的情况下,发送快照终止指令至所述若干个执行虚拟机,并确定所述全量式快照完成。
90.需要说明的是,全量式快照对当前数据信息进行存储,全量式快照对应的当前数据信息与短暂式快照对应的当前状态信息存在关联关系,也就是说对于同一个虚拟机而言,当前状态信息和当前数据信息存在一一对应的关系。
91.还需要说明的是,需要说明的是,一种情况下,如果发起虚拟机管理执行虚拟机以
及包括发起虚拟机本身在内的所有虚拟机,发起虚拟机既作为管理者又作为被管理者,则在发起虚拟机广播全量式快照指令后,发起虚拟机和执行虚拟机均需要完成全量式快照,并在完成全量式快照的流程之后对发起虚拟机进行反馈,以告知发起虚拟机全量式快照已经完成。另一种情况下,如果发起虚拟机管理不包括发起虚拟机本身在内的执行虚拟机,发起虚拟机只作为管理者,则在发起虚拟机广播全量式快照指令后,执行虚拟机完成全量式快照,并在完成全量式快照的流程之后对发起虚拟机进行反馈,以告知发起虚拟机全量式快照已经完成。
92.在一些实施例中,所述若干个执行虚拟机各自执行所述全量式快照指令,可以包括:
93.基于所述若干个执行虚拟机,创建一个磁盘文件;
94.基于所述全量式快照指令,将所述若干个执行虚拟机对应的当前数据信息存储至所述磁盘文件中。
95.需要说明的是,在进行全量式快照时,对磁盘文件进行写操作,之后将执行虚拟机的当前数据信息进行复制,并存储到磁盘文件中;其中,在进行写操作时,新写入数据的内容会被写到原始的磁盘文件位置;对于内存页写操作,会先把原先的内存页数据存储到快照文件中,然后将新内存数据写到原先的内存页位置中。
96.本实施例提供了一种分布式快照方法,应用于关联虚拟机,关联虚拟机包括发起虚拟机和若干个执行虚拟机,该方法包括:发起虚拟机获取快照指令;快照指令包括短暂式快照指令和全量式快照指令;发起虚拟机向若干个执行虚拟机发出短暂式快照指令,以完成发起虚拟机和执行虚拟机的短暂式快照;在发起虚拟机和执行虚拟机完成短暂式快照的情况下,发起虚拟机向若干个执行虚拟机发出全量式快照指令,以完成发起虚拟机和执行虚拟机的全量式快照。这样,关联虚拟机依次执行短暂式快照和全量式快照,实现关联虚拟机的分布式快照,解决了快照过程中出现网络中断影响业务运行的问题。
97.实施例二
98.基于前述实施例相同的发明构思,本技术提出了一种详细的分布式快照方法,该方法可以包括以下两个方面:
99.第一方面,对单个虚拟机做快照时,快照步骤分为两步:第一步是短暂式快照备份当前状态信息(当前状态信息可以包含设备状态,磁盘状态,内存状态),第二步是全量式快照备份当前数据信息(当前数据信息实际记录了数据状态)。
100.具体地,执行短暂式快照的过程为:当虚拟机收到短暂式快照指令snapshot时,会暂停当前虚拟机运行,执行短暂式快照,其过程就是为快照分配对应的存储空间,复制一份当前原始数据所在物理位置元数据,存储位置,文件记录,历史数据信息,其指向的数据为原始数据。具体的,它会对每个内存页设置写保护,然后对内存状态创建栅格图(bitmap)文件,并创建一个新的空磁盘文件,这一步中都是一些轻量级操作,因此会很快结束。之后就开始恢复虚拟机运行。
101.具体地,执行全量式快照的过程为,对于磁盘写操作,会把原始位置的数据复制一份到新的磁盘文件,新写入数据的内容会被写到原始的磁盘文件位置;对于内存页写操作,会先把原先的内存页数据存储到快照文件中,然后将新内存数据写到原先的内存页位置中。这种基于cow的内存快照仅保存每个内存页一次,这样就使得内存快照大小与虚拟机中
所用内存大小保持一致。等所有内存页和磁盘数据都保存好后,单个虚拟机的快照流程就结束了。
102.第二方面,参见图3,其示出了本技术实施例提供的一种分布式快照方法的全局一致性协议示意图,如图3所示,将虚拟机分为两种角色,一种是initiator(即前述实施例中的发起虚拟机),一种是peer vm(即前述实施例中的执行虚拟机)。在分布式环境中,用户给initiator发起snapshot命令,peervm接收snapshot命令,同时initiator和多个peervm都执行短暂式快照,之后,再执行全量式快照。其中的具体步骤如下:
103.步骤一、用户对指定的多个关联虚拟机发起snapshot命令(即前述实施例中的短暂式快照指令),虚拟化管理器会选定一个虚拟机作为initiator,其它虚拟机作为peervm。
104.步骤二、initiator广播snapshot命令给多个peervm虚拟机,同时自己开始执行短暂式快照流程,而peervm虚拟机接收到命令后,同样也开始执行短暂式快照流程。
105.步骤三、当peervm短暂式快照完成后,会发transient_snap_fin消息(即前述实施例中的短暂式对等命令)给initiator,告诉initiator,第一步的快照已完成。而当initiator收到所有的peer vm的transient_snap_fin消息时,会广播all_transient_snap_fin消息(即前述实施例中的全量式快照指令)给所有的peer vm,告诉peer vm可以进行全量式快照过程了。
106.步骤四、当peer vm完成全量式快照后,会发消息full_snap_fin(即前述实施例中的全量式对等命令)给initiator,之后等initiator收到所有peer vm的full_snap_fin消息后,会发消息all_full_snap_fin(即前述实施例中的快照终止指令)回应给每个peer vm,表明分布式快照的过程结束了。
107.本实施例提供了一种分布式快照方法,通过上述实施例对前述实施例的具体实现进行了详细阐述,从中可以看出,通过前述实施例的技术方案,一是对于单个虚拟机做快照,本发明提出了两个快照步骤,分别为短暂式快照(包含设备状态,磁盘状态,内存状态)和全量式快照(实际记录了数据状态);二是本发明提出了一种全局一致性快照协议,将虚拟机分为两种角色,一个是initiator,一个是peer vm,关联的虚拟机之间及时完成快照过程同步,有效的缩短tcp backoff周期。这样,通过上述技术的实现,可有效缩短tcp backoff周期,避免vm中业务的网络中断现象,保证业务可持续地运行。
108.实施例三
109.基于前述实施例相同的发明构思,参见图4,其示出了本技术实施例提供的一种分布式快照装置的组成结构示意图。如图4所示,所述分布式快照装置可以包括:
110.获取单元401,配置为所述发起虚拟机获取快照指令;所述快照指令包括短暂式快照指令和全量式快照指令;
111.短暂式快照单元402,配置为所述发起虚拟机向若干个执行虚拟机发出短暂式快照指令,以完成所述发起虚拟机和所述执行虚拟机的短暂式快照;
112.全量式快照单元403,配置为在所述发起虚拟机和所述执行虚拟机完成所述短暂式快照的情况下,所述发起虚拟机向若干个所述执行虚拟机发出全量式快照指令,以完成所述发起虚拟机和所述执行虚拟机的全量式快照。
113.在一些实施例中,短暂式快照单元402,具体配置为所述发起虚拟机向所述若干个执行虚拟机分别发送短暂式快照指令;以及所述发起虚拟机和所述若干个执行虚拟机各自
执行所述短暂式快照指令,所述若干个执行虚拟机发送短暂式对等命令至所述发起虚拟机;以及所述发起虚拟机在收到所述若干个执行虚拟机中每一执行虚拟机返回的短暂式对等命令的情况下,确定所述发起虚拟机和所述执行虚拟机完成所述短暂式快照。
114.在一些实施例中,短暂式快照单元402,具体配置为基于第一虚拟机,为所述短暂式快照指令分配存储空间;以及基于所述短暂式快照指令,将所述第一虚拟机对应的当前状态信息存储至至所述存储空间;其中,所述第一虚拟机为所述发起虚拟机和所述若干个执行虚拟机中任意一个虚拟机。
115.在一些实施例中,所述当前状态信息包括设备状态、磁盘状态、内存状态中的一个或者多个。
116.在一些实施例中,全量式快照单元403,具体配置为所述发起虚拟机向所述若干个执行虚拟机分别发送全量式快照指令;以及所述发起虚拟机和若干个执行虚拟机执行所述全量式快照指令,所述执行虚拟机发送全量式对等命令至所述发起虚拟机;以及所述发起虚拟机在收到所述若干个执行虚拟机中每一执行虚拟机返回的全量式对等命令的情况下,发送快照终止指令至所述若干个执行虚拟机,并确定所述全量式快照完成。
117.在一些实施例中,全量式快照单元403,具体配置为基于所述若干个执行虚拟机,创建一个磁盘文件;以及基于所述全量式快照指令,将所述若干个执行虚拟机对应的当前数据信息存储至所述磁盘文件中。
118.在一些实施例中,该分布式快照装置还可以包括分配单元404,配置为所述发起虚拟机为与所述关联虚拟机中剩余虚拟机都存在信息交互的虚拟机,或者,所述发起虚拟机为所述关联虚拟机中存储空间大于预设空间阈值的虚拟机。
119.可以理解地,在本实施例中,“单元”可以是部分电路、部分处理器、部分程序或软件等等,当然也可以是模块,还可以是非模块化的。而且在本实施例中的各组成部分可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
120.所述集成的单元如果以软件功能模块的形式实现并非作为独立的产品进行销售或使用时,可以存储在一个计算机可读取存储介质中,基于这样的理解,本实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或processor(处理器)执行本实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
121.因此,本实施例提供了一种计算机存储介质,该计算机存储介质存储有分布式快照程序,所述分布式快照程序被至少一个处理器执行时实现前述实施例中任一项所述的方法的步骤。
122.基于上述分布式快照装置40的组成以及计算机存储介质,参见图5,其示出了本技术实施例提供的一种关联虚拟机的具体硬件结构示意图。如图5所示,关联虚拟机50可以包括:通信接口501、存储器502和处理器503;各个组件通过总线系统504耦合在一起。可理解,
specific integrated circuits,asic)、数字信号处理器(digital signal processing,dsp)、数字信号处理设备(dsp device,dspd)、可编程逻辑设备(programmable logic device,pld)、现场可编程门阵列(field-programmable gate array,fpga)、通用处理器、控制器、微控制器、微处理器、用于执行本技术所述功能的其它电子单元或其组合中。
131.对于软件实现,可通过执行本文所述功能的模块(例如过程、函数等)来实现本文所述的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。
132.可选地,作为另一个实施例,处理器503还配置为在运行所述计算机程序时,执行前述实施例中任一项所述的方法的步骤。
133.在一些实施例中,参见图6,其示出了本技术实施例提供的一种关联虚拟机50的组成结构示意图。如图6所示,该关联虚拟机50至少包括前述实施例中任一项所述的分布式快照装置40。
134.在本技术实施例中,对于关联虚拟机50而言,发起虚拟机获取快照指令;快照指令包括短暂式快照指令和全量式快照指令;发起虚拟机向若干个执行虚拟机发出短暂式快照指令,以完成发起虚拟机和执行虚拟机的短暂式快照;在发起虚拟机和执行虚拟机完成短暂式快照的情况下,发起虚拟机向若干个执行虚拟机发出全量式快照指令,以完成发起虚拟机和执行虚拟机的全量式快照。这样,关联虚拟机依次执行短暂式快照和全量式快照,实现关联虚拟机的分布式快照,解决了快照过程中出现网络中断影响业务运行的问题。
135.需要说明的是,在本技术中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
136.上述本技术实施例序号仅仅为了描述,不代表实施例的优劣。
137.本技术所提供的几个方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。
138.本技术所提供的几个产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。
139.本技术所提供的几个方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。
140.以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
技术特征:
1.一种分布式快照方法,其特征在于,应用于关联虚拟机,所述关联虚拟机包括发起虚拟机和若干个执行虚拟机,所述方法包括:所述发起虚拟机获取快照指令;所述快照指令包括短暂式快照指令和全量式快照指令;所述发起虚拟机向若干个执行虚拟机发出短暂式快照指令,以完成所述发起虚拟机和所述执行虚拟机的短暂式快照;在所述发起虚拟机和所述执行虚拟机完成所述短暂式快照的情况下,所述发起虚拟机向若干个所述执行虚拟机发出全量式快照指令,以完成所述发起虚拟机和所述执行虚拟机的全量式快照。2.根据权利要求1所述的方法,其特征在于,所述发起虚拟机向若干个执行虚拟机发出短暂式快照指令,以完成所述发起虚拟机和所述执行虚拟机的短暂式快照,包括:所述发起虚拟机向所述若干个执行虚拟机分别发送短暂式快照指令;所述发起虚拟机和所述若干个执行虚拟机各自执行所述短暂式快照指令,所述若干个执行虚拟机发送短暂式对等命令至所述发起虚拟机;所述发起虚拟机在收到所述若干个执行虚拟机中每一执行虚拟机返回的短暂式对等命令的情况下,确定所述发起虚拟机和所述执行虚拟机完成所述短暂式快照。3.根据权利要求2所述的方法,其特征在于,所述发起虚拟机和所述若干个执行虚拟机各自执行所述短暂式快照指令;包括:基于第一虚拟机,为所述短暂式快照指令分配存储空间;基于所述短暂式快照指令,将所述第一虚拟机对应的当前状态信息存储至至所述存储空间;其中,所述第一虚拟机为所述发起虚拟机和所述若干个执行虚拟机中任意一个虚拟机。4.根据权利要求3所述的方法,其特征在于,所述当前状态信息包括设备状态、磁盘状态、内存状态中的一个或者多个。5.根据权利要求1所述的方法,其特征在于,所述发起虚拟机向若干个所述执行虚拟机发出全量式快照指令,以完成所述发起虚拟机和所述执行虚拟机的全量式快照,包括:所述发起虚拟机向所述若干个执行虚拟机分别发送全量式快照指令;所述发起虚拟机和若干个执行虚拟机执行所述全量式快照指令,所述执行虚拟机发送全量式对等命令至所述发起虚拟机;所述发起虚拟机在收到所述若干个执行虚拟机中每一执行虚拟机返回的全量式对等命令的情况下,发送快照终止指令至所述若干个执行虚拟机,并确定所述全量式快照完成。6.根据权利要求5所述的方法,其特征在于,所述若干个执行虚拟机各自执行所述全量式快照指令,包括:基于所述若干个执行虚拟机,创建一个磁盘文件;基于所述全量式快照指令,将所述若干个执行虚拟机对应的当前数据信息存储至所述磁盘文件中。7.根据权利要求1-6任一项所述的方法,其特征在于,所述发起虚拟机为与所述关联虚拟机中剩余虚拟机都存在信息交互的虚拟机,或者,
所述发起虚拟机为所述关联虚拟机中存储空间大于预设空间阈值的虚拟机。8.一种分布式快照装置,其特征在于,包括:获取单元,配置为所述发起虚拟机获取快照指令;所述快照指令包括短暂式快照指令和全量式快照指令;短暂式快照单元,配置为所述发起虚拟机向若干个执行虚拟机发出短暂式快照指令,以完成所述发起虚拟机和所述执行虚拟机的短暂式快照;全量式快照单元,配置为在所述发起虚拟机和所述执行虚拟机完成所述短暂式快照的情况下,所述发起虚拟机向若干个所述执行虚拟机发出全量式快照指令,以完成所述发起虚拟机和所述执行虚拟机的全量式快照。9.一种关联虚拟机,其特征在于,包括:存储器,用于存储能够在处理器上运行的计算机程序;处理器,用于在运行所述计算机程序时,执行如权利要求1至7任一项所述方法。10.一种计算机存储介质,其特征在于,所述计算机存储介质存储有计算机程序,所述计算机程序被至少一个处理器执行时实现如权利要求1至7任一项所述方法。
技术总结
本申请实施例公开了一种分布式快照方法、装置、设备以及计算机存储介质。应用于关联虚拟机,关联虚拟机包括发起虚拟机和若干个执行虚拟机,该方法包括:发起虚拟机获取快照指令;快照指令包括短暂式快照指令和全量式快照指令;发起虚拟机向若干个执行虚拟机发出短暂式快照指令,以完成发起虚拟机和执行虚拟机的短暂式快照;在发起虚拟机和执行虚拟机完成短暂式快照的情况下,发起虚拟机向若干个执行虚拟机发出全量式快照指令,以完成发起虚拟机和执行虚拟机的全量式快照。这样,关联虚拟机依次执行短暂式快照和全量式快照,实现关联虚拟机的分布式快照,解决了快照过程中出现网络中断影响业务运行的问题。影响业务运行的问题。影响业务运行的问题。
技术研发人员:刘振国
受保护的技术使用者:中国移动通信集团有限公司
技术研发日:2022.08.17
技术公布日:2023/9/22
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
航空商城 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/