一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种虚拟机迁移方法、装置、设备及存储介质与流程

2022-02-19 11:31:24 来源:中国专利 TAG:


1.本发明涉及计算机技术领域,特别涉及一种虚拟机迁移方法、装置、设备及存储介质。


背景技术:

2.随着计算机技术和云计算技术的兴起,在高度自动化、技术驱动的经济环境下,服务器虚拟化技术展现出了巨大的资源整合优势。虚拟化是云计算的基石,虚拟化无处不在。虚拟化技术将服务器物理资源抽象成逻辑资源,让一台服务器变成几台甚至上百台相互隔离的虚拟机,由此可以不再受限于物理上的界限,而是让cpu(central processing unit,中央处理器)、内存、磁盘、i/o(input/output,输入/输出)等硬件变成可以动态管理的“资源池”,从而提高资源的利用率,简化系统管理,让互联网技术对业务的变化更具适应力。随着云计算技术的成熟,越来越多的关键应用开始迁移到云上,云中可存储大量用户核心数据。这些虚拟机一般都是运行在固定的物理机上,但很多时候比如宿主机出现资源限制、虚拟机所处存储池故障等原因,需要将虚拟机迁移到其他物理主机其他存储池上面,所以虚拟机要支持离线和在线迁移功能。
3.现有的虚拟化超融合系统,分为计算模块、存储模块、网络模块,其中计算节点上运行虚拟机,存储模块为虚拟机磁盘提供存储池、lun等,网络模块提供给虚拟机像外界通信。虚拟机的磁盘文件常见的有qcow2和raw两种格式,raw格式磁盘即未格式化磁盘,目前虚拟化超融合系统已经支持对不同磁盘格式的虚拟机进行迁移。qcow2格式是比较常见的,通常是kvm(kernel

based virtual machine)使用,相比裸格式,它使用稀疏文件呈现方式,镜像尺寸更小,qcow2镜像通常比裸格式镜像还小,更小的文件意味着上传更快,qcow2格式磁盘的虚拟机迁移效率也高。raw格式磁盘也比较简单,并且是被kvm和xen原生支持的格式,裸格式镜像的文件和二进制文件相当,拷贝起来也快,但缺点在于,ls命令看起来很大,在安全复制的时候,这会消耗很多的网络i/o。对于raw格式磁盘文件,只要磁盘文件包含数据,在迁移时,就会直接读取磁盘并迁移,降低了虚拟机迁移效率。


技术实现要素:

4.有鉴于此,本发明的目的在于提供一种虚拟机迁移方法、装置、设备及介质,能够提高虚拟机迁移效率。其具体方案如下:
5.第一方面,本技术公开了一种虚拟机迁移方法,包括:
6.检测虚拟机所在的源存储端的raw格式磁盘内raw磁盘文件是否存在文件空洞;
7.若所述raw磁盘文件存在文件空洞,则在目的存储端创建与所述文件空洞对应的零数据文件;
8.通过数据迁移,将所述raw磁盘文件内除所述文件空洞外的数据安全拷贝到所述目的存储端,以实现对所述虚拟机的迁移。
9.可选的,所述检测虚拟机所在的源存储端的raw格式磁盘内raw磁盘文件是否存在
文件空洞之前,还包括:
10.通过源存储端判断所述源存储端的raw格式磁盘内每层raw磁盘文件是否分配指定地址的数据;
11.若分配有指定地址的数据,则执行所述检测源存储端的raw格式磁盘内raw磁盘文件是否存在文件空洞的步骤。
12.可选的,所述通过源存储端判断所述源存储端的raw格式磁盘内每层raw磁盘文件是否分配指定地址的数据之后,还包括:
13.若所述raw磁盘文件没有分配指定地址的数据,则不执行所述检测源存储端的raw格式磁盘内raw磁盘文件是否存在文件空洞的步骤。
14.可选的,所述通过数据迁移,将所述raw磁盘文件内除所述文件空洞外的数据安全拷贝到所述目的存储端,包括:
15.利用引用连接,将所述raw磁盘文件内除所述文件空洞外的数据安全拷贝到所述目的存储端,以实现对所述虚拟机的存储迁移。
16.可选的,所述检测虚拟机所在的源存储端的raw格式磁盘内raw磁盘文件是否存在文件空洞,包括:
17.通过调用ioctl命令,读取所述源存储端的raw格式磁盘内raw磁盘文件的目标参数信息;
18.根据所述目标参数信息判断所述raw磁盘文件是否存在文件空洞。
19.可选的,所述在目的存储端创建与所述文件空洞对应的零数据文件,包括:
20.根据所述目标参数信息生成零数据文件创建规则;所述目标参数信息包括文件格式和空洞数量;
21.利用所述零数据文件创建规则,在所述目的存储端创建符合所述文件格式和所述空洞数量的零数据文件。
22.第二方面,本技术公开了一种虚拟机迁移装置,包括:
23.文件空洞检测模块,用于检测虚拟机所在的源存储端的raw格式磁盘内raw磁盘文件是否存在文件空洞;
24.零数据文件创建模块,用于若所述raw磁盘文件存在文件空洞,则在目的存储端创建与所述文件空洞对应的零数据文件;
25.数据迁移模块,用于通过数据迁移,将所述raw磁盘文件内除所述文件空洞外的数据安全拷贝到所述目的存储端,以实现对所述虚拟机的迁移。
26.可选的,所述文件空洞检测模块,包括:
27.参数信息读取单元,用于通过调用ioctl命令,读取所述源存储端的raw格式磁盘内raw磁盘文件的目标参数信息;
28.文件空洞判断单元,用于根据所述目标参数信息判断所述raw磁盘文件是否存在文件空洞。
29.第三方面,本技术公开了一种电子设备,包括:
30.存储器,用于保存计算机程序;
31.处理器,用于执行所述计算机程序,以实现前述的虚拟机迁移方法。
32.第四方面,本技术公开了一种计算机可读存储介质,用于存储计算机程序;其中计
算机程序被处理器执行时实现前述的虚拟机迁移方法。
33.本技术中,检测虚拟机所在的源存储端的raw格式磁盘内raw磁盘文件是否存在文件空洞;若所述raw磁盘文件存在文件空洞,则在目的存储端创建与所述文件空洞对应的零数据文件;通过数据迁移,将所述raw磁盘文件内除所述文件空洞外的数据安全拷贝到所述目的存储端,以实现对所述虚拟机的迁移。由上可见,在对虚拟机进行迁移之前,先检测虚拟机所在的源存储端的raw格式磁盘内raw磁盘文件是否存在文件空洞,若存在文件空洞,则针对文件空洞部分,不进行数据迁移,而是在虚拟机要迁移到的目的存储端内创建与上述文件空洞对应的零数据文件,而针对raw磁盘文件内除文件空洞外的数据部分正常进行数据迁移,最终实现虚拟机的存储迁移。由此相比于对raw磁盘文件的数据和空洞部分都直接进行迁移,节约了虚拟机迁移时间,提高了虚拟机跨主机跨存储迁移效率,解决了存在有空数据的raw格式磁盘的虚拟机迁移耗时慢的问题。
附图说明
34.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
35.图1为本技术提供的一种虚拟机迁移方法流程图;
36.图2为本技术提供的一种虚拟机迁移系统结构示意图;
37.图3为本技术提供的一种具体的虚拟机迁移方法流程图;
38.图4为本技术提供的一种虚拟机迁移装置结构示意图;
39.图5为本技术提供的一种电子设备结构图。
具体实施方式
40.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
41.现有技术中,利用虚拟化超融合系统对不同磁盘格式的虚拟机进行迁移,对于raw格式磁盘文件,只要磁盘文件包含数据,在迁移时,就会直接读取磁盘并迁移,降低了虚拟机迁移效率。
42.本技术实施例公开了一种虚拟机迁移方法,参见图1所示,该方法可以包括以下步骤:
43.步骤s11:检测虚拟机所在的源存储端的raw格式磁盘内raw磁盘文件是否存在文件空洞。
44.例如图2所示为虚拟机迁移系统结构示意图,即虚拟机迁移过程包括计算迁移和存储迁移,本实施例中针对虚拟机内raw格式磁盘的存储迁移提出以下方法。本实施例中,通过检测需要进行迁移的虚拟机所在的源存储端的raw格式磁盘内raw磁盘文件是否存在文件空洞。文件空洞即文件存储数据是,从原来的数据结尾到新写入数据间的这段空间被
成为文件空洞,文件空洞占用磁盘空间且没有存储真实有用的数据,一个文件中可能同时包含空洞部分和数据部分,且可能存在一个或多个空洞。
45.本实施例中,所述检测虚拟机所在的源存储端的raw格式磁盘内raw磁盘文件是否存在文件空洞,可以包括:通过调用ioctl命令,读取所述源存储端的raw格式磁盘内raw磁盘文件的目标参数信息;根据所述目标参数信息判断所述raw磁盘文件是否存在文件空洞。即针对含有raw格式磁盘的虚拟机,在迁移前增加检查数据空洞机制,具体可以通过ioctl命令对磁盘文件读写数据,可以理解的是,这些数据不能用read/write读写,称为带外数据(out

of

band data)。也就是说,read/write读写的数据是带内数据(in

band data),是i/o操作的主体,ioctl命令传送的只是控制信息,其中的数据是辅助数据,通过ioctl命令返回检查数据结果。
46.本实施例中,所述检测虚拟机所在的源存储端的raw格式磁盘内raw磁盘文件是否存在文件空洞之前,还可以包括:通过源存储端判断所述源存储端的raw格式磁盘内每层raw磁盘文件是否分配指定地址的数据;若分配有指定地址的数据,则执行所述检测源存储端的raw格式磁盘内raw磁盘文件是否存在文件空洞的步骤。可以理解的是,在检测文件空洞之前,可以先通过源存储端判断源存储端的raw格式磁盘内每层raw磁盘文件是否分配指定地址的数据,若分配有指定地址的数据,则表明该磁盘被使用过磁盘内存在数据,则启动执行上述检测源存储端的raw格式磁盘内raw磁盘文件是否存在文件空洞的步骤。
47.本实施例中,所述通过源存储端判断所述源存储端的raw格式磁盘内每层raw磁盘文件是否分配指定地址的数据之后,还可以包括:若所述raw磁盘文件没有分配指定地址的数据,则不执行所述检测源存储端的raw格式磁盘内raw磁盘文件是否存在文件空洞的步骤。即若判断出没有分配有指定地址的数据,则表名该磁盘没有被使用过,磁盘内没有存储数据,则不用执行对该raw格式磁盘的迁移。
48.步骤s12:若所述raw磁盘文件存在文件空洞,则在目的存储端创建与所述文件空洞对应的零数据文件。
49.本实施例中,若检测出上述raw磁盘文件存在文件空洞,则在目的存储端创建与上述文件空洞对应的零数据文件。即例如图3所示,如果raw格式文件存在空洞,则针对空洞部分不读取数据、不执行迁移,而是在目的存储端提前创建相同格式的零数据文件,即没有存储数据的文件。相比于现有技术中,将整个raw磁盘文件通过数据传输迁移到目的存储端,本实施例可以极大的减少raw磁盘格式的虚拟机迁移耗时的时长,节省时间成本。通过实际测试用一台虚拟机,挂载一块大小为50g的raw格式磁盘,里面不写入数据,执行在线迁移需要耗时30分钟,可见raw格式磁盘的虚拟机迁移耗时很久,效率很低,给客户的使用带来了严重影响。
50.本实施例中,所述在目的存储端创建与所述文件空洞对应的零数据文件,可以包括:根据所述目标参数信息生成零数据文件创建规则;所述目标参数信息包括文件格式和空洞数量;利用所述零数据文件创建规则,在所述目的存储端创建符合所述文件格式和所述空洞数量的零数据文件。可以理解的是,由于raw磁盘文件中可能存有一个或多个空洞,且上述raw磁盘文件为raw格式,因此需要在目的存储端创建符合上述文件格式和上述空洞数量的零数据文件。
51.步骤s13:通过数据迁移,将所述raw磁盘文件内除所述文件空洞外的数据安全拷
贝到所述目的存储端,以实现对所述虚拟机的迁移。
52.本实施例中,通过数据迁移,将raw磁盘文件内除文件空洞外的数据安全拷贝到目的存储端,以实现对虚拟机的迁移。也就是说将真实有效的数据通过数据迁移从源存储端拷贝到目的存储端。另外,若检测出raw磁盘文件不存在文件空洞,则直接通过数据迁移将raw磁盘文件内的数据安全拷贝到目的存储端,以实现对上述虚拟机的迁移。
53.本实施例中,所述通过数据迁移,将所述raw磁盘文件内除所述文件空洞外的数据安全拷贝到所述目的存储端,可以包括:利用引用连接,将所述raw磁盘文件内除所述文件空洞外的数据安全拷贝到所述目的存储端,以实现对所述虚拟机的存储迁移。可以理解的是,数据迁移过程具体可以通过利用引用连接(reflink),将raw磁盘文件内的数据安全拷贝到目的存储端。
54.由上可见,本实施例中检测虚拟机所在的源存储端的raw格式磁盘内raw磁盘文件是否存在文件空洞;若所述raw磁盘文件存在文件空洞,则在目的存储端创建与所述文件空洞对应的零数据文件;通过数据迁移,将所述raw磁盘文件内除所述文件空洞外的数据安全拷贝到所述目的存储端,以实现对所述虚拟机的迁移。由此,在对虚拟机进行迁移之前,先检测虚拟机所在的源存储端的raw格式磁盘内raw磁盘文件是否存在文件空洞,若存在文件空洞,则针对文件空洞部分,不进行数据迁移,而是在虚拟机要迁移到的目的存储端内创建与上述文件空洞对应的零数据文件,而针对raw磁盘文件内除文件空洞外的数据部分正常进行数据迁移,最终实现虚拟机的存储迁移。由此相比于对raw磁盘文件的数据和空洞部分都直接进行迁移,节约了虚拟机迁移时间,提高了虚拟机跨主机跨存储迁移效率,解决了存在有空数据的raw格式磁盘的虚拟机迁移耗时慢的问题。
55.相应的,本技术实施例还公开了一种虚拟机迁移装置,参见图4所示,该装置包括:
56.文件空洞检测模块11,用于检测虚拟机所在的源存储端的raw格式磁盘内raw磁盘文件是否存在文件空洞;
57.零数据文件创建模块12,用于若所述raw磁盘文件存在文件空洞,则在目的存储端创建与所述文件空洞对应的零数据文件;
58.数据迁移模块13,用于通过数据迁移,将所述raw磁盘文件内除所述文件空洞外的数据安全拷贝到所述目的存储端,以实现对所述虚拟机的迁移。
59.由上可见,本实施例中检测虚拟机所在的源存储端的raw格式磁盘内raw磁盘文件是否存在文件空洞;若所述raw磁盘文件存在文件空洞,则在目的存储端创建与所述文件空洞对应的零数据文件;通过数据迁移,将所述raw磁盘文件内除所述文件空洞外的数据安全拷贝到所述目的存储端,以实现对所述虚拟机的迁移。由此,在对虚拟机进行迁移之前,先检测虚拟机所在的源存储端的raw格式磁盘内raw磁盘文件是否存在文件空洞,若存在文件空洞,则针对文件空洞部分,不进行数据迁移,而是在虚拟机要迁移到的目的存储端内创建与上述文件空洞对应的零数据文件,而针对raw磁盘文件内除文件空洞外的数据部分正常进行数据迁移,最终实现虚拟机的存储迁移。由此相比于对raw磁盘文件的数据和空洞部分都直接进行迁移,节约了虚拟机迁移时间,提高了虚拟机跨主机跨存储迁移效率,解决了存在有空数据的raw格式磁盘的虚拟机迁移耗时慢的问题。
60.在一些具体实施例中,所述文件空洞检测模块11具体可以包括:
61.参数信息读取单元,用于通过调用ioctl命令,读取所述源存储端的raw格式磁盘
内raw磁盘文件的目标参数信息;
62.文件空洞判断单元,用于根据所述目标参数信息判断所述raw磁盘文件是否存在文件空洞。
63.在一些具体实施例中,所述虚拟机迁移装置具体可以包括:
64.指定地址数据检测单元,用于通过源存储端判断所述源存储端的raw格式磁盘内每层raw磁盘文件是否分配指定地址的数据;
65.文件空洞检测执行单元,用于若分配有指定地址的数据,则执行所述检测源存储端的raw格式磁盘内raw磁盘文件是否存在文件空洞的步骤。
66.在一些具体实施例中,所述虚拟机迁移装置具体还用于若所述raw磁盘文件没有分配指定地址的数据,则不执行所述检测源存储端的raw格式磁盘内raw磁盘文件是否存在文件空洞的步骤。
67.在一些具体实施例中,所述数据迁移模块13具体还用于利用引用连接,将所述raw磁盘文件内除所述文件空洞外的数据安全拷贝到所述目的存储端,以实现对所述虚拟机的存储迁移。
68.在一些具体实施例中,所述零数据文件创建模块12具体可以包括:
69.零数据文件创建规则生成单元,用于根据所述目标参数信息生成零数据文件创建规则;所述目标参数信息包括文件格式和空洞数量;
70.零数据文件创建单元,用于利用所述零数据文件创建规则,在所述目的存储端创建符合所述文件格式和所述空洞数量的零数据文件。
71.进一步的,本技术实施例还公开了一种电子设备,参见图5所示,图中的内容不能被认为是对本技术的使用范围的任何限制。
72.图5为本技术实施例提供的一种电子设备20的结构示意图。该电子设备20,具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的虚拟机迁移方法中的相关步骤。
73.本实施例中,电源23用于为电子设备20上的各硬件设备提供工作电压;通信接口24能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本技术技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
74.另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源包括操作系统221、计算机程序222及包括raw磁盘文件在内的数据223等,存储方式可以是短暂存储或者永久存储。
75.其中,操作系统221用于管理与控制电子设备20上的各硬件设备以及计算机程序222,以实现处理器21对存储器22中海量数据223的运算与处理,其可以是windows server、netware、unix、linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的虚拟机迁移方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。
76.进一步的,本技术实施例还公开了一种计算机存储介质,所述计算机存储介质中
存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现前述任一实施例公开的虚拟机迁移方法步骤。
77.本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
78.结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd

rom、或技术领域内所公知的任意其它形式的存储介质中。
79.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
80.以上对本发明所提供的一种虚拟机迁移方法、装置、设备及介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献