1.本发明实施例涉及虚拟机迁移技术领域,具体而言,涉及一种跨云平台的虚拟机迁移方法、装置、存储介质及电子装置。
背景技术:2.很多企业往往在各地都有自己的云平台数据中心,以提供云桌面给不同地区的员工使用。有时候往往会出现在a地办公,但是云桌面在b地云平台上。这就造成了用户无法就近使用云桌面,网络带宽可能存在瓶颈,无法提供优质的用户体验。
3.同时,当某个数据中心资源出现瓶颈时,需要进行资源调度,将虚拟机向资源富余的数据中心进行迁移。当前的迁移方案只能完成同一数据中心内的虚拟机整机迁移,如果要进行异地迁移,只能通过将虚拟机从a数据中心导出再导入到b数据中心云平台的方式。
4.许多教育机构在建设自己的云桌面,往往采用单个教室使用一个虚拟化平台一体机的部署方案,易于部署以及维护。上述的传统方案具有如下的缺陷:(1)数据中心内迁移无法完成异地迁移,只能调度云平台内各个资源池之间的资源分布;(2)导入导出需要从源数据中心导出虚拟机,再将导出的虚拟机磁盘镜像和配置文件导入到目的虚拟机,全程需要人工干预,操作复杂;(3)导入导出改变了虚拟机磁盘文件链结构,无法保持磁盘文件链结构的一致性。
5.鉴于此,就亟待提供一种能够便于进行跨云平台异地迁移,不对虚拟机本身磁盘文件链结构改动的容灾备份实施方案。
技术实现要素:6.本发明实施例提供了一种跨云平台虚拟机迁移方法、装置、存储介质及电子装置,以至少解决相关技术中数据中心内迁移无法完成异地迁移、导入导出全程需要人工干预、无法保持磁盘文件链结构的一致性的问题。
7.根据本发明的一个实施例,提供了一种跨云平台的虚拟机迁移方法,包括:在目的云平台创建迁移的目的虚拟机,其中,所述目的虚拟机的配置信息与源云平台的源虚拟机的配置信息一致,所述目的虚拟机的网络端口组配置为所述目的云平台的网络端口组,所述目的虚拟机的磁盘存储库配置为所述目的云平台的磁盘存储库;按照所述源云平台的所述源虚拟机的磁盘文件链结构通过网络拷贝方式逐一迁移文件节点至所述目的云平台的目的虚拟机的磁盘存储库中。
8.在一个示例性实施例中,在目的云平台创建迁移的目的虚拟机之前,还包括,通过管理界面将需要迁移的所述源虚拟机加入迁移列表。
9.进一步地,通过管理界面将需要迁移的所述源虚拟机加入迁移列表之后,还包括:设置所述源虚拟机迁移开始时间;当所述迁移时间到达时,触发对所述源虚拟机的迁移操作。
10.在一个示例性实施例中,按照所述源云平台的所述源虚拟机的磁盘文件链结构通
过网络拷贝方式逐一迁移文件节点至所述目的云平台的目的虚拟机的磁盘存储库中,还包括:构建所述源虚拟机待迁移的磁盘列表,并针对每个磁盘构建待迁移的文件列表;选择所述源云平台或所述目的云平台中的主机将所述源虚拟机的磁盘文件拷贝操作至所述的虚拟机的磁盘存储库中。
11.进一步地,选择所述源云平台或所述目的云平台中的主机将所述源虚拟机的磁盘文件拷贝操作至所述的虚拟机的磁盘存储库中,包括:选择源云平台的主机进行磁盘文件拷贝操作;向所述目的云平台发送消息,判断所述目的虚拟机是否存在已经拷贝过的共用节点;当所述共用节点正在拷贝时,所述源云平台的主机等待所述共用节点拷贝完成;当所述共用节点已经完成拷贝,所述源云平台的主机不再进行所述共用节点的拷贝操作,并进行下一磁盘文件节点的拷贝。
12.进一步地,在向所述目的云平台发送消息,判断所述目的虚拟机是否存在已经拷贝过的共用节点之后,还包括,当所述共用节点为第一次拷贝时,则向所述目的云平台的主机发送消息,以启动所述目的云平台的主机对所述共用节点进行网络拷贝。
13.根据本发明的另一个实施例,提供了一种跨云平台的虚拟机迁移装置,包括:创建模块,用于在目的云平台创建迁移的目的虚拟机,其中,所述目的虚拟机的配置信息与源云平台的源虚拟机的配置信息一致,所述目的虚拟机的网络端口组配置为所述目的云平台的网络端口组,所述目的虚拟机的磁盘存储库配置为所述目的云平台的磁盘存储库;迁移模块,用于按照所述源云平台的所述源虚拟机的磁盘文件链结构通过网络拷贝方式逐一迁移文件节点至所述目的云平台的目的虚拟机的磁盘存储库中。
14.在一个示例性实施例中,还包括:管理模块,用于在创建目的虚拟机之前,通过管理界面将需要迁移的所述源虚拟机加入迁移列表。
15.进一步地,还包括:设置模块,用于设置所述源虚拟机迁移开始时间,以便当所述迁移时间到达时,触发对所述源虚拟机的迁移操作。
16.在一个示例性实施例中,所述迁移模块还包括:列表构建单元,用于构建所述源虚拟机待迁移的磁盘列表,并针对每个磁盘构建待迁移的文件列表;执行单元,用于选择所述源云平台或所述目的云平台中的主机将所述源虚拟机的磁盘文件拷贝操作至所述的虚拟机的磁盘存储库中。
17.进一步地,所述执行单元还用于:选择源云平台的主机进行磁盘文件拷贝操作,向所述目的云平台发送消息,判断所述目的虚拟机是否存在已经拷贝过的共用节点,在所述共用节点正在拷贝的情况下,等待所述共用节点拷贝完成,在所述共用节点已经完成拷贝的情况下,不再进行所述共用节点的拷贝操作,并进行下一磁盘文件节点的拷贝。
18.进一步地,所述执行单元,还用于在所述共用节点为第一次拷贝的情况下,向所述目的云平台的主机发送消息,以启动所述目的云平台的主机对所述共用节点进行网络拷贝。
19.根据本发明的又一个实施例,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
20.根据本发明的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项
方法实施例中的步骤。
21.通过本发明的上述实施例,由于通过在异地数据中心创建不带磁盘实体的目的虚拟机,打通异地云平台间消息组件的消息通道,基于管理网的网络拷贝方式以完全对称的方式拷贝磁盘文件链,因此,可以解决相关技术中数据中心内迁移无法完成异地迁移、导入导出全程需要人工干预、无法保持磁盘文件链结构的一致性的问题,达到实现虚拟机跨云平台异地迁移、保持磁盘文件链结构一致的效果。
附图说明
22.图1是根据本发明实施例的跨云平台的虚拟机迁移方法的流程图;
23.图2是根据本发明实施例的跨云平台的虚拟机迁移装置的结构框图;
24.图3是根据本发明实施例的具有管理模块的跨云平台的虚拟机迁移装置的结构框图;
25.图4是根据本发明实施例的具有执行单元的跨云平台的虚拟机迁移装置的结构框图;
26.图5是根据相关技术的通过导出导入方式将虚拟机迁移到异地云平台方案的示意图;
27.图6是根据本发明可选实施例的通过跨云平台迁移完成虚拟机整机迁移的示意图;
28.图7是根据本发明可选实施例的云平台内部整机迁移方案的示意图;
29.图8是根据本发明可选实施例的云平台内部整机迁移方法的流程图;
30.图9是根据本发明可选实施例的云平台内部迁移以及跨平台迁移所依赖的组网条件的对比示意图;
31.图10是根据本发明可选实施例的跨云平台虚拟机异地迁移方法的流程图。
具体实施方式
32.下文中将参考附图并结合实施例来详细说明本发明的实施例。
33.需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
34.在本实施例中提供了一种跨云平台的虚拟机迁移方法,图1是根据本发明实施例的跨云平台的虚拟机迁移方法的流程图,如图1所示,该流程包括如下步骤:
35.步骤s101,在目的云平台创建迁移的目的虚拟机,其中,所述目的虚拟机的配置信息与源云平台的源虚拟机的配置信息一致,所述目的虚拟机的网络端口组配置为所述目的云平台的网络端口组,所述目的虚拟机的磁盘存储库配置为所述目的云平台的磁盘存储库;
36.步骤s102,按照所述源云平台的所述源虚拟机的磁盘文件链结构通过网络拷贝方式逐一迁移文件节点至所述目的云平台的目的虚拟机的磁盘存储库中。
37.在本实施例的步骤s101之前,还可以包括:通过管理界面将需要迁移的所述源虚拟机加入迁移列表。
38.在本实施例中,通过管理界面将需要迁移的所述源虚拟机加入迁移列表之后,还
可以包括:设置所述源虚拟机迁移开始时间;当所述迁移时间到达时,触发对所述源虚拟机的迁移操作。
39.在本实施例中,步骤s102可以包括:构建所述源虚拟机待迁移的磁盘列表,并针对每个磁盘构建待迁移的文件列表;选择所述源云平台或所述目的云平台中的主机将所述源虚拟机的磁盘文件拷贝操作至所述的虚拟机的磁盘存储库中。
40.在本实施例中,选择所述源云平台或所述目的云平台中的主机将所述源虚拟机的磁盘文件拷贝操作至所述的虚拟机的磁盘存储库中,可以包括:选择源云平台的主机进行磁盘文件拷贝操作;向所述目的云平台发送消息,判断所述目的虚拟机是否存在已经拷贝过的共用节点;当所述共用节点正在拷贝时,所述源云平台的主机等待所述共用节点拷贝完成;当所述共用节点已经完成拷贝,所述源云平台的主机不再进行所述共用节点的拷贝操作,并进行下一磁盘文件节点的拷贝。
41.在本实施例中,在向所述目的云平台发送消息,判断所述目的虚拟机是否存在已经拷贝过的共用节点之后,还可以包括,当所述共用节点为第一次拷贝时,则向所述目的云平台的主机发送消息,以启动所述目的云平台的主机对所述共用节点进行网络拷贝。
42.通过上述步骤,在异地数据中心创建不带磁盘实体的目的虚拟机,打通异地云平台间消息组件的消息通道,基于管理网的网络拷贝方式以完全对称的方式拷贝磁盘文件链,解决了相关技术中数据中心内迁移无法完成异地迁移、导入导出全程需要人工干预、无法保持磁盘文件链结构的一致性的问题,达到了实现虚拟机跨云平台异地迁移、保持磁盘文件链结构一致的效果。
43.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
44.在本实施例中还提供了一种跨云平台的虚拟机迁移装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”、“单元”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
45.图2是根据本发明实施例的跨云平台的虚拟机迁移装置的结构框图,如图2所示,该装置包括创建模块10和迁移模块20。
46.所述创建模块10,用于在目的云平台创建迁移的目的虚拟机,其中,所述目的虚拟机的配置信息与源云平台的源虚拟机的配置信息一致,所述目的虚拟机的网络端口组配置为所述目的云平台的网络端口组,所述目的虚拟机的磁盘存储库配置为所述目的云平台的磁盘存储库;
47.所述迁移模块20,用于按照所述源云平台的所述源虚拟机的磁盘文件链结构通过网络拷贝方式逐一迁移文件节点至所述目的云平台的目的虚拟机的磁盘存储库中。
48.图3是根据本发明实施例的具有管理模块的跨云平台的虚拟机迁移装置的结构框图,如图3所示,该装置除包括图2所示的所有模块外,还可包括管理模块30和设置模块40。
49.所述管理模块30,用于在创建目的虚拟机之前,通过管理界面将需要迁移的所述源虚拟机加入迁移列表。
50.所述设置模块40,用于设置所述源虚拟机迁移开始时间,以便当所述迁移时间到达时,触发对所述源虚拟机的迁移操作。
51.图4是根据本发明实施例的具有执行单元的跨云平台的虚拟机迁移装置的结构框图,如图4所示,该装置除包括图2所示的所有模块外,所述迁移模块20还可包括列表构建单元21和执行单元22。
52.所述列表构建单元21,用于构建所述源虚拟机待迁移的磁盘列表,并针对每个磁盘构建待迁移的文件列表;
53.所述执行单元22,用于选择所述源云平台或所述目的云平台中的主机将所述源虚拟机的磁盘文件拷贝操作至所述的虚拟机的磁盘存储库中。
54.在本实施例中,所述执行单元22还可用于:选择源云平台的主机进行磁盘文件拷贝操作,向所述目的云平台发送消息,判断所述目的虚拟机是否存在已经拷贝过的共用节点,在所述共用节点正在拷贝的情况下,等待所述共用节点拷贝完成,在所述共用节点已经完成拷贝的情况下,不再进行所述共用节点的拷贝操作,并进行下一磁盘文件节点的拷贝。
55.在本实施例中,所述执行单元22,还可用于在所述共用节点为第一次拷贝的情况下,向所述目的云平台的主机发送消息,以启动所述目的云平台的主机对所述共用节点进行网络拷贝。
56.需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
57.本发明的实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
58.在一个示例性实施例中,上述计算机可读存储介质可以包括但不限于:u盘、只读存储器(read-only memory,简称为rom)、随机存取存储器(random access memory,简称为ram)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
59.本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
60.在一个示例性实施例中,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
61.本实施例中的具体示例可以参考上述实施例及示例性实施方式中所描述的示例,本实施例在此不再赘述。
62.为了便于对本发明所提供的技术方案的理解,下面将结合具体场景的实施例进行详细阐述。
63.本发明可选实施例提供一种针对跨云平台的虚拟机异地迁移方法。通过在异地数据中心创建不带磁盘实体的目的虚拟机,打通异地云平台间消息组件的消息通道,基于管理网的网络拷贝方式以完全对称的方式拷贝磁盘文件链,最终实现虚拟机跨云平台异地迁
移,同时进行了对于磁盘共用节点不重复拷贝的设计,提升异地迁移的效率。
64.本发明可选实施例的目标就是提供一种在异地使用云桌面的场景下基于网络拷贝方式的虚拟机异地整机迁移的方法。首先,该方案能够实现虚拟机整机从a数据中心云平台迁移到b数据中心云平台。其次,该方案能够设置迁移的开始和结束时间,可以在非工作时间进行迁移避免影响用户的正常使用。再者,该方案迁移失败也不会对源虚拟机造成影响,用户依旧能够正常使用云桌面。另外,该方案保持了虚拟机磁盘文件链的结构,目的虚拟机和源虚拟机的磁盘结构一致。最后,该方案对于拷贝过的虚拟机共用文件节点不重复拷贝,提升了迁移效率。
65.本发明可选实施例的核心内容就是通过打通不同云平台之间的消息组件,可以使管理平台互相通信获取虚拟机管理数据,基于网络拷贝方式完成虚拟机磁盘文件节点的逐以拷贝,拷贝过程完全对称化,确保了源虚拟机和目的虚拟机的磁盘结构的一致性,同时对于共用的磁盘文件节点不进行重复拷贝,从而完成达到在极端有限条件下虚拟机的异地整机迁移。
66.图5是根据相关技术的通过导出导入方式将虚拟机迁移到异地云平台方案的示意图,如图5所示,通过导出导入虚拟机的操作,将虚拟机从a地云平台迁移到异地。即,首先,将a地虚拟机导出至nfs存储中;其次,通过导入操作将nfs存储上的磁盘镜像文件以及虚拟机的配置信息导入到b地云平台中。
67.图6是根据本发明可选实施例的通过跨云平台迁移完成虚拟机整机迁移的示意图,如图6所示,首先,在b地云平台创建迁移的目的虚拟机,该虚拟机各种基本配置信息和源虚拟机保持一致,虚拟机不带磁盘实体文件,磁盘所在存储库为选择的b云平台中的存储库,虚拟机网卡配置为目的云平台中网络端口组;其次,按照磁盘文件链结构通过网络拷贝方式逐一迁移文件节点至b地云平台存储库中。
68.通过图5图6的的示意图对比,可以看到跨数据中心迁移的方案相对于导入导出方案的优势如下:第一,迁移过程完全自动化无须多次人为干预,操作流程方便;第二,保持了磁盘文件链结构,可以依旧保持文件节点的父子关系。
69.图7是根据本发明可选实施例的云平台内部整机迁移方案的示意图,图8是根据本发明可选实施例的云平台内部整机迁移方法的流程图,如图7和图8所示,该方法包括如下步骤:
70.步骤s801,构建虚拟机待迁移磁盘列表;
71.步骤s802,构建虚拟机每个磁盘待迁移文件列表;
72.步骤s803,针对每个磁盘文件节点选择平台内主机进行数据拷贝;
73.步骤s804,磁盘文件拷贝结束后虚拟机可运行于新的资源池以及新的存储库。
74.图9是根据本发明可选实施例的云平台内部迁移以及跨平台迁移所依赖的组网条件的对比示意图,如图9所示,在同一平台内,存储库之间可以与主机都相通,那么直接通过存储网选择单台主机就可以完成磁盘数据的拷贝迁移。跨数据中心的虚拟机迁移,两地的存储网络是隔离的,因此依赖于管理网通过两个云平台中的两台主机相互配合完成磁盘文件节点的迁移。因此跨云平台可以在不依赖存储网,在极端条件下完成虚拟机的整机迁移。
75.通过图5与图6的导入导出跨平台迁移方案以及图9的平台内虚拟机迁移和跨云平台的迁移对比。可以概括以下几点本方案的优势:
76.(1)操作流程完全自动化,只需要将需要迁移的虚拟机加入待迁移列表,同时设置好迁移的开始和结束时间,平台就能完成虚拟机的迁移操作;
77.(2)迁移不改变磁盘文件链的结构,从而能够保持差分特有的特性,比如虚拟机还原功能等;
78.(3)无须依赖存储网,在特定场景下就能完成虚拟机整机迁移。
79.下面结合附图对本可选实施例的技术方案的实施作进一步的详细描述:
80.本发明可选实施例应用场景为大型数据中心虚拟化云平台环境中;
81.图10是根据本发明可选实施例的跨云平台虚拟机异地迁移方法的流程图,如图10所示,该方法包括如下步骤:
82.s1001:通过管理界面将需要迁移的虚拟机加入迁移列表;
83.s1002:设置虚拟机迁移开始和结束的时间;
84.s1003:到达迁移时间后触发对于虚拟机的跨数据中心异地迁移操作;
85.s1004:发送消息至目的云平台创建目的虚拟机,目的虚拟机基本配置信息与源虚拟机一致。网卡端口组以及磁盘存储库使用目的云平台上的网络以及存储库;
86.s1005:构建待迁移的磁盘文件列表;
87.s1006:选择源云平台一个主机进行磁盘文件拷贝操作;
88.s1007:向选择的目的云平台发送消息,判断对端是否存在已经拷贝过的公用节点;
89.s1008:如果有共用节点正在拷贝,则等待拷贝完成;如果有共用节点已经拷贝完,则不需进行拷贝,进行下一文件节点拷贝;
90.s1009:如果是共用节点第一次拷贝,则向目的端主机发消息启动网络拷贝服务端;
91.s1010:源平台上的主机启动网络拷贝客户端;
92.s1011:完成文件节点拷贝,进行下磁盘文件节点的拷贝;
93.s1012:虚拟机磁盘均完成迁移,整机迁移结束。
94.本可选实施例可以针对大型的数据中心场景对业务虚拟机进行异地跨数据中心的整机迁移,通过打通消息组件单例模式,针对虚拟机磁盘进行完全对称化拷贝,基于网络拷贝方式完成虚拟机整机迁移。同时对于共用节点不进行重复拷贝,提升了迁移的效率。该方案能够完成方便完成虚拟机整机异地迁移,提升用户体验,降低运维成本,合理调度不通数据中心之间的资源。
95.以上内容是结合具体的实施方式对本系统和方法所作的进一步详细说明,不能认定本系统和方法的具体实施只局限于这些说明。对于本系统和方法所属技术领域的普通技术人员来说,在不脱离本实用信息构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本系统和方法的保护范围。
96.显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作
成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
97.以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。