CN113342471A - 虚拟机迁移方法、系统及电子设备 - Google Patents

虚拟机迁移方法、系统及电子设备 Download PDF

Info

Publication number
CN113342471A
CN113342471A CN202110715998.3A CN202110715998A CN113342471A CN 113342471 A CN113342471 A CN 113342471A CN 202110715998 A CN202110715998 A CN 202110715998A CN 113342471 A CN113342471 A CN 113342471A
Authority
CN
China
Prior art keywords
file
message
copied
sending
receiving end
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.)
Pending
Application number
CN202110715998.3A
Other languages
English (en)
Inventor
孟亮
何继文
潘宗辉
金博玉
黄学军
刘蜀东
穆森
朱玥
刘辉军
邱桂苹
杨硕
俞坚华
董全
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Casicloud-Tech Co ltd
Original Assignee
Casicloud-Tech Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Casicloud-Tech Co ltd filed Critical Casicloud-Tech Co ltd
Priority to CN202110715998.3A priority Critical patent/CN113342471A/zh
Publication of CN113342471A publication Critical patent/CN113342471A/zh
Priority to PCT/CN2021/143173 priority patent/WO2022267427A1/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing

Abstract

本发明提供了一种虚拟机迁移方法、系统及电子设备,涉及虚拟机技术领域,该方法首先与接收端建立连接并向接收端发送第一报文;其中,第一报文包含待拷贝文件的属性信息;然后确定待拷贝文件的空洞区域及其位置信息;其中,空洞区域为待拷贝文件中连续存储二进制数值为0的存储块;再根据空洞区域及其位置信息确定待拷贝文件的非空洞区域及其偏移量;待非空洞区域及其偏移量传输完毕后向接收端发送第二报文并对待拷贝文件完整性进行校验的校验信息。该方法在报文中可使用文件空洞块的偏移量数据来代替文件空洞块的传输,进而提高迁移速度;并通过直写磁盘方式降低页缓存的占有率,提高了读写效率,有利于提升超大磁盘文件的传输速率。

Description

虚拟机迁移方法、系统及电子设备
技术领域
本发明涉及虚拟机技术领域,尤其是涉及一种虚拟机迁移方法、系统及电子设备。
背景技术
现有虚拟机在迁移过程中,在静态迁移时会在源宿主机中首先创建系统的磁盘镜像文件(简称磁盘文件),然后将磁盘文件拷贝至目的宿主机上。具体的说,在源宿主机上的拷贝过程为:(1)打开待迁移的磁盘文件;(2)读取文件内容到缓存;(3)通过TCP/UCP将读取的文件内容发送到新的宿主机;(4)循环(2)-(3)直至文件发送完毕。在目的宿主上的拷贝过程为:(1)创建新文件并打开;(2)读取对端通过TCP/UDP传输过来的磁盘内容;(3)将读取的内容写入至(1)中创建的文件;(4)循环(2)-(3)直至文件接收完毕。
由于虚拟机运行产生的磁盘文件与普通文件不同,通常会存在较多的“空洞”数据。“空洞”数据是连续存储二进制为0的文件部分,一般来说虚拟机中的空洞占据磁盘总体空间的三分之一左右。不同格式的磁盘随着使用,其空洞变化也是不同的。以qcow2和raw格式的磁盘为例,一般来说,raw格式的磁盘中的空洞占比会随着使用而减少;qcow2格式的磁盘中的空洞占比会随着使用而增多。在虚拟机迁移过程中,这些空洞数据的传输会浪费带宽,降低传输效率。
同时,使用缓存I/O在虚拟机迁移过程中最大的问题是对页缓存的消耗。在虚拟机迁移过程中,涉及大量、频繁的文件读写操作,数据从应用程序的地址空间和页缓存之间,页缓存和磁盘之间进行大量的数据拷贝操作,这些数据拷贝操作所带来的CPU及内存开销是非常大的。若迁移的磁盘文件较大,或同时存在多个虚拟机文件进行迁移的时候,迁移效率会变低。
综上所述,目前的虚拟机迁移方案中存在着“空洞”数据造成浪费传输带宽的问题;并在读写文件过程中占用页缓存,导致读写效率低,且不利于超大磁盘文件的传输。
发明内容
有鉴于此,本发明的目的在于提供一种虚拟机迁移方法、系统及电子设备,在报文中可使用文件空洞块的偏移量数据来代替文件空洞块的传输,进而提高迁移速度;并通过直写磁盘方式降低页缓存的占有率,提高了读写效率,有利于提升超大磁盘文件的传输速率。
第一方面,本发明实施例提供了一种虚拟机迁移方法,该方法应用于发送端,包括:
与接收端建立连接,并向接收端发送第一报文;其中,第一报文包含待拷贝文件的属性信息;
确定待拷贝文件的空洞区域及其位置信息;其中,空洞区域为待拷贝文件中连续存储二进制数值为0的存储块;
根据空洞区域及其位置信息,确定待拷贝文件的非空洞区域及其偏移量,并将非空洞区域及其偏移量依次从发送端的地址空间传输至接收端的磁盘中;
待非空洞区域及其偏移量传输完毕后向接收端发送第二报文;其中,第二报文包含对待拷贝文件完整性进行校验的校验信息。
在一些实施方式中,与接收端建立连接,并向接收端发送第一报文的步骤,包括:
发送端与接收端建立长连接,并初始化第一报文中的请求报文以及头消息报文;其中,请求报文用于通知接收端执行拷贝过程;头消息报文用于向接收端告知待拷贝文件的属性信息;
向接收端发送请求报文;
当接收到请求报文的响应报文后,向接收端发送头消息报文。
在一些实施方式中,确定待拷贝文件的空洞区域及其位置信息的步骤,包括:
按照预设的分片策略对待拷贝文件进行扫描,判断拷贝文件的分片是否为连续二进制数值为0的存储块;
如果是,则获取空洞区域所在拷贝文件的位置信息,并将存储块确定为空洞区域。
在一些实施方式中,将非空洞区域及其偏移量依次从发送端的地址空间传输至接收端的磁盘中,包括:
获取非空洞区域的数据流,将数据流从发送端的地址空间传输至应用缓冲区;
控制应用缓冲区的数据流,绕过虚拟机的系统内核缓冲区,直接传输至接收端的磁盘中。
第二方面,本发明实施例提供了一种虚拟机迁移方法,该方法应用于接收端,包括:
接收发送端建立连接后,接收发送端发来的第一报文;其中,第一报文包含待拷贝文件的属性信息;
根据第一报文中包含的待拷贝文件的属性信息,在接收端的磁盘中建立与待拷贝文件相映射的临时文件;
接收来自发送端的数据流及其偏移量,根据偏移量数据将数据流保存至临时文件中;
待数据流保存完毕时,接收来自发送端的第二报文,并利用第二报文中包含的校验信息对临时文件的完整性进行校验。
在一些实施方式中,根据第一报文中包含的待拷贝文件的属性信息,在接收端的磁盘中建立与待拷贝文件相映射的临时文件,包括:
接收来自发送端的请求报文;其中,请求报文用于通知接收端执行拷贝过程;
接收端响应请求报文,并将响应报文传输至发送端;
接收来自发送端的头消息报文;其中,头消息报文用于获取待拷贝文件的属性信息;
根据头消息报文中包含的待拷贝文件的属性信息,建立与拷贝文件相映射的临时文件。
第三方面,本发明实施例提供了一种虚拟机迁移系统,该系统应用于发送端,包括:
第一报文发送模块,用于与接收端建立连接,并向接收端发送第一报文;其中,第一报文包含待拷贝文件的属性信息;
空洞区域确定模块,用于确定待拷贝文件的空洞区域及其位置信息;其中,空洞区域为待拷贝文件中连续存储二进制数值为0的存储块;
数据发送模块,用于根据空洞区域及其位置信息,确定待拷贝文件的非空洞区域及其偏移量,并将非空洞区域及其偏移量依次从发送端的地址空间传输至接收端的磁盘中;
第二报文发送模块,用于待非空洞区域及其偏移量传输完毕后向接收端发送第二报文;其中,第二报文包含对待拷贝文件完整性进行校验的校验信息。
第四方面,本发明实施例提供了一种虚拟机迁移系统,该系统应用于接收端,包括:
第一报文接收模块,用于接收发送端建立连接后,接收发送端发来的第一报文;其中,第一报文包含待拷贝文件的属性信息;
临时文件生成模块,用于根据第一报文中包含的待拷贝文件的属性信息,在接收端的磁盘中建立与待拷贝文件相映射的临时文件;
数据接收模块,用于接收来自发送端的数据流及其偏移量,根据偏移量数据将数据流保存至临时文件中;
数据校验模块,用于待数据流保存完毕时,接收来自发送端的第二报文,并利用第二报文中包含的校验信息对临时文件的完整性进行校验。
第五方面,本发明实施例还提供一种电子设备,包括存储器、处理器,存储器中存储有可在处理器上运行的计算机程序,其中,处理器执行计算机程序时实现上述第一方面和第二方面提到的虚拟机迁移方法的步骤。
第六方面,本发明实施例还提供一种具有处理器可执行的非易失的程序代码的计算机可读介质,其中,程序代码使处理器执行上述第一方面和第二方面提到的虚拟机迁移方法的步骤。
本发明实施例带来了至少以下有益效果:
本发明提供了一种虚拟机迁移方法、系统及电子设备,该方法在发送端首先与接收端建立连接,并向接收端发送第一报文;其中,第一报文包含待拷贝文件的属性信息;然后确定待拷贝文件的空洞区域及其位置信息;其中,空洞区域为待拷贝文件中连续存储二进制数值为0的存储块;再根据空洞区域及其位置信息,确定待拷贝文件的非空洞区域及其偏移量,并将非空洞区域及其偏移量依次从发送端的地址空间传输至接收端的磁盘中;待非空洞区域及其偏移量传输完毕后向接收端发送第二报文;其中,第二报文包含对待拷贝文件完整性进行校验的校验信息;而在接收端,该方法首先接收发送端建立连接后,接收发送端发来的第一报文;然后根据第一报文中包含的待拷贝文件的属性信息,在接收端的磁盘中建立与待拷贝文件相映射的临时文件,并接收来自发送端的数据流及其偏移量,根据偏移量数据将数据流保存至临时文件中;待数据流保存完毕时,接收来自发送端的第二报文,并利用第二报文中包含的校验信息对临时文件的完整性进行校验。该方法在报文中可使用offset字段的值来代替文件中空洞块的传输,进而提高迁移速度;并通过直写磁盘方式降低页缓存的占有率,提高了读写效率,有利于提升超大磁盘文件的传输速率。
本发明的其他特征和优点将在随后的说明书中阐述,或者,部分特征和优点可以从说明书推知或毫无疑义的确定,或者通过实施本发明的上述技术即可得知。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施方式,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种应用于发送端的虚拟机迁移方法的流程图;
图2为本发明实施例提供的一种应用于发送端的虚拟机迁移方法中步骤S101的流程图;
图3为本发明实施例提供的一种应用于发送端的虚拟机迁移方法中步骤S102的流程图;
图4为本发明实施例提供的一种应用于发送端的虚拟机迁移方法中,将非空洞区域及其偏移量依次从发送端的地址空间传输至接收端的磁盘的流程图;
图5为本发明实施例提供的一种应用于发送端的虚拟机迁移方法中绕过页缓存进行数据读写的流程对比图;
图6为本发明实施例提供的一种应用于接收端的虚拟机迁移方法的流程图;
图7为本发明实施例提供的一种应用于接收端的虚拟机迁移方法中步骤S603的流程图;
图8为本发明实施例提供的一种虚拟机迁移方法的信令图;
图9为本发明实施例提供的另一种虚拟机迁移方法的信令图;
图10为传统静态迁移时cache占用图;
图11为采用本虚拟机迁移方法中静态迁移时的cache占用图;
图12为本发明实施例提供的一种应用于发送端的虚拟机迁移系统的结构示意图;
图13为本发明实施例提供的一种应用于接收端的虚拟机迁移系统的结构示意图;
图14为本发明实施例提供的一种电子设备的结构示意图。
图标:
1210-第一报文发送模块;1220-空洞区域确定模块;1230-数据发送模块;1240-第二报文发送模块;1310-第一报文接收模块;1320-临时文件生成模块;1330-数据校验模块;101-处理器;102-存储器;103-总线;104-通信接口。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
系统虚拟化是指将一台物理计算机系统虚拟化为一台或多台虚拟计算机系统,每个虚拟计算机系统(简称为虚拟机)都拥有自己的虚拟硬件(如CPU、内存和设备等),来提供一个独立的虚拟机执行环境。通过虚拟机监控器(Virtual Machine Monitor,VMM)的模拟,虚拟机中的操作系统任务仍然是独占一个系统在运行。每个虚拟机中的操作系统可以完全不同,并且他们的执行环境是完全独立的。虚拟监控器运行的环境,也就是真实的物理平台,称之为宿主机(host machine),虚拟出来的平台,也就是虚拟机,也被称为客户机(guest machine)。
虚拟化技术指的是软件层面的实现虚拟化的技术,整体上分为开源虚拟化和商业虚拟化两大阵营。典型的代表有:Xen、KVM、VMware、Hyper-V等。其中,VMware和Hyper-V是收费的商业化软件,Xen已经被Linux的官方内核去除对它的支持。目前主流的开源虚拟化技术为KVM。
比起直接使用物理平台,虚拟化在资源的有效利用、动态调配和高可靠性方面有着巨大的优势。利用虚拟化,企业不必抛弃现有的基础架构即可以构建全新的信息基础架构,从而更加充分地利用原有的IT投资。虚拟机的优秀封装性使得虚拟机更容易保存,从而在灾难恢复中发挥更大的作用。虚拟机快照和克隆使得部署各种软件运行环境更容易,从而使软件开发的测试和调试更为快捷方便。在一个计算机上运行多个虚拟机可以使得资源的调度更为优化。尽管不使用虚拟化也可以对不同的工作负载进行整合,但是虚拟机所具有的隔离性可以使得每个应用程序在自己的操作系统环境中独立地运行,而不会影响到其他系统中的工作负载。
虚拟机迁移的主要目的是将客户机从一台宿主机迁移到另外一台宿主机上,并保证其各个服务都能正常使用。主要操作是将客户机上的所有软件(包括操作系统)完全复制到另外一台物理硬件机器之上。虚拟化去掉了硬件的相关性,从而可以实现不同硬件上平台上的虚拟机的迁移。
虚拟机迁移可以分为静态迁移(static migration)和动态迁移(livemigration)。两者区别在于迁移过程中虚拟机是否需要停机。虚拟机关机或暂停的情况下进行的迁移为静态迁移,虚拟机保持运行状态进行的迁移为动态迁移。虚拟机在运行状态需要迁移的内容包括虚拟机的磁盘文件、配置文件、状态和内存,而在暂停状态下只需要迁移前三项,在关机的情况下则只需要迁移前两项。静态迁移方式简单易行,适用于对服务可用性要求不严格的场合,而动态迁移过程中仅有非常短暂不易察觉的停机时间,用户体验更好。
现有虚拟机在迁移过程中,常有两种常用的数据传输方式:一种是基于VMM的传输机制,即通过宿主机之间连接来进行数据传输;另一种是基于libvirtd的传输机制,即两个libvirtd进程之间的数据传输。基于VMM的数据传输这种传输方式传输的是裸数据,即直接传输文件的内容,不做任何的处理,并且不支持数据的加密和完整性校验;而基于libvirtd的数据传输这种传输方式支持加密,是通过libvirtd内建的RPC协议来进行数据的传输的。
无论是基于哪种方式的虚拟机迁移方案,在静态迁移时会在源宿主机中首先创建系统的磁盘镜像文件(简称磁盘文件),然后将磁盘文件拷贝至目的宿主机上。
具体的说,在源宿主机上的拷贝过程为:
(1)打开待迁移的磁盘文件;
(2)读取文件内容到缓存;
(3)通过TCP/UCP将读取的文件内容发送到新的宿主机;
(4)循环(2)-(3)直至文件发送完毕。
在目的宿主上的拷贝过程为:
(1)创建新文件并打开;
(2)读取对端通过TCP/UDP传输过来的磁盘内容;
(3)将读取的内容写入至(1)中创建的文件;
(4)循环(2)-(3)直至文件接收完毕。
由于虚拟机运行产生的磁盘文件与普通文件不同,通常会存在较多的“空洞”数据。“空洞”数据是连续存储二进制为0的文件部分,一般来说虚拟机中的空洞占据磁盘总体空间的三分之一左右。不同格式的磁盘随着使用,其空洞变化也是不同的。以qcow2和raw格式的磁盘为例,一般来说,raw格式的磁盘中的空洞占比会随着使用而减少;qcow2格式的磁盘中的空洞占比会随着使用而增多。在虚拟机迁移过程中,这些空洞数据的传输会浪费带宽,降低传输效率。
同时,使用缓存I/O在虚拟机迁移过程中最大的问题是对页缓存的消耗。缓存I/O又被称作标准I/O,是大多数文件系统的默认I/O操作方式。在Linux的缓存I/O机制中,操作系统会将I/O的数据缓存在文件系统的页缓存(page cache)中。也就是说在读取磁盘文件时,数据会先被拷贝到操作系统内核的缓冲区中,然后才会从操作系统内核的缓冲区拷贝到应用程序的地址空间。缓存I/O具有如下优点:缓存I/O使用了操作系统的内核缓冲区,在一定程度上分离了应用程序空间和实际物理设备空间;缓存I/O可以减少读盘次数,从而提高性能。当应用程序去读取某块数据的时候,如果这块数据已经在页缓存中,那么这块数据可以立即返回给应用程序,而不需经过实际的物理读盘操作。由于页缓存的读取速度远大于磁盘的读取速度,并且数据的访问通常具有连续性,因此通过缓存方式可以大大提高数据获取速度。对应写操作来说,应用程序也会先将数据写到页缓存中,数据是否被立即写到磁盘上取决于应用程序所采用的写机制:但是无论应用采用同步写(synchronouswrites),延迟写机制(deferred writes)还是异步写(asynchronous writes)都会经过页缓存再写入到真正的物理磁盘当中。
在虚拟机迁移过程中,涉及大量、频繁的文件读写操作,数据从应用程序的地址空间和页缓存之间,页缓存和磁盘之间进行大量的数据拷贝操作,这些数据拷贝操作所带来的CPU及内存开销是非常大的。若迁移的磁盘文件较大,或同时存在多个虚拟机文件进行迁移的时候,迁移效率会变低。
综上所述,目前的虚拟机迁移方案中存在着“空洞”数据造成浪费传输带宽的问题;并在读写文件过程中占用页缓存,导致读写效率低,且不利于超大磁盘文件的传输。
基于此,本发明实施例提供的一种虚拟机迁移方法、系统及电子设备,可在报文中使用文件空洞块的偏移量数据来代替文件空洞块的传输,进而提高迁移速度;并通过直写磁盘方式降低页缓存的占有率,提高了读写效率,有利于提升超大磁盘文件的传输速率。
为便于对本实施例进行理解,首先对本发明实施例所公开的一种虚拟机迁移方法进行详细介绍。
参见图1所示的一种虚拟机迁移方法的流程图,该方法应用于发送端,包括:
步骤S101,与接收端建立连接,并向接收端发送第一报文;其中,第一报文包含待拷贝文件的属性信息。
该步骤为初始化步骤,由于虚拟机迁移的过程需消耗较大的资源及时间,因此发送端与接收端需要建立可靠稳定的连接,通常使用长连接的方式进行互联。为保证传输可靠性,可选择使用TCP连接,且该连接协议支持文件的双向传输。
与接收端连接成功后向其发送第一报文执行迁移,第一报文中包含待拷贝文件的属性信息。第一报文中可包含request报文以及head消息报文,告知接收端将要拷贝文件。
在数据发送过程中,会涉及相关head文件及报文,通过head消息告知接收端文件的基本信息,如文件名、文件大小等。例如:
1.Base Head,基础消息头。用于确定不同的消息类型,并包含消息报文的基础信息,如包含以下参数:Total Size:整个报文长度;HEAD:“HEAD”标记;Version:软件版本号;HeadSize:报文头长度;PacketType:消息类型;PathSize:传输的文件路径长度;CRCCode:前面所有内容的CRC校验码;FilePath:传输的文件路径。
2.Head类型消息。具体如下:Total Size:整个报文长度;HEAD:“HEAD”标记;Version:软件版本号;HeadSize:报文头长度;PacketType=1;表示head类型报文;PathSize:传输的文件路径长度;CRCCode:前面所有内容的CRC校验码;FilePath:传输的文件路径;FileSize:文件大小。
3.Data类型报文。具体如下:Total Size:整个报文长度;HEAD:“HEAD”标记;Version:软件版本号;HeadSize:报文头长度;PacketType=2;表示data类型报文;PathSize:传输的文件路径长度;CRCCode:前面所有内容的CRC校验码;FilePath:传输的文件路径;Offset:内容在磁盘上的偏移,用来解决空洞片未能传输导致的数据不一致的问题;Data:文件内容。
4.End类型报文。具体如下:Total Size:整个报文长度;HEAD:“HEAD”标记;Version:软件版本号;HeadSize:报文头长度;PacketType=3;表示end类型报文;PathSize:传输的文件路径长度;CRCCode:前面所有内容的CRC校验码;FilePath:传输的文件路径;MD5Code:整个文件的MD5值。
5.Request类型报文。具体如下:Total Size:整个报文长度;HEAD:“HEAD”标记;Version:软件版本号;HeadSize:报文头长度;PacketType=4;表示request类型报文;PathSize:传输的文件路径长度;CRCCode:前面所有内容的CRC校验码;FilePath:传输的文件路径;Operation:操作(发送文件/接收文件);EnableVerify:是否进行校验。
6.Response类型报文。具体如下:Total Size:整个报文长度;HEAD:“HEAD”标记;Version:软件版本号;HeadSize:报文头长度;PacketType=5;表示response类型报文;PathSize:传输的文件路径长度;CRCCode:前面所有内容的CRC校验码;FilePath:传输的文件路径;Response Type:回复消息类型;Error Code:错误码。
步骤S102,确定待拷贝文件的空洞区域及其位置信息;其中,空洞区域为待拷贝文件中连续存储二进制数值为0的存储块。
空洞区域为待拷贝文件中连续存储二进制数值为0的存储块,通过扫描待拷贝文件并判断其是否包含空洞区域,如果包含则记录空洞区域的位置。与此同时,扫描过程中在获得空洞区域的位置后,可同时获取非空洞区域的位置信息。
步骤S103,根据空洞区域及其位置信息,确定待拷贝文件的非空洞区域及其偏移量,并将非空洞区域及其偏移量依次从发送端的地址空间传输至接收端的磁盘中。
在获得非空洞区域后,即可得到待拷贝文件的非空洞区域,即需要传输的数据。根据非空洞区域的位置信息以及空洞区域的位置信息即可获得非空洞区域的偏移量。这个偏移量作为拷贝参数,与非空洞区域的数据一起传输至接收端的磁盘中,这个过程并不会拷贝非空洞区域,从而节省了传输带宽。
步骤S104,待非空洞区域及其偏移量传输完毕后向接收端发送第二报文;其中,第二报文包含对待拷贝文件完整性进行校验的校验信息。
传输结束后,发送端向接收端发送第二报文,告知接收端完成传输。同时通过第二报文中包含的校验信息来对已完成传输的待传输文件的完整性进行校验。
通过上述实施例中提供的虚拟机迁移方法可知,该方法可以实现有“空洞”的文件的传输速度优化;通过对报文分片后校验其内容,对全“空洞”报文片不进行发送,进而减少文件网络传输的报文数量,缩短文件传输整体时间,提高其传输效率。
在一些实施方式中,与接收端建立连接,并向接收端发送第一报文的步骤S101,如图2所示,包括:
步骤S201,发送端与接收端建立长连接,并初始化第一报文中的请求报文以及头消息报文;其中,请求报文用于通知接收端执行拷贝过程;头消息报文用于向接收端告知待拷贝文件的属性信息。
具体的说,Request报文的格式可参照前述Request类型报文的格式,具体如下:
Total Size:整个报文长度;
HEAD:“HEAD”标记;
Version:软件版本号;
HeadSize:报文头长度;
PacketType=4;表示request类型报文;
PathSize:传输的文件路径长度;
CRCCode:前面所有内容的CRC校验码;
FilePath:传输的文件路径;
Operation:操作(发送文件/接收文件);
EnableVerify:是否进行校验。
头消息报文的格式可参考前述Head类型消息,具体如下:
Total Size:整个报文长度;
HEAD:“HEAD”标记;
Version:软件版本号;
HeadSize:报文头长度;
PacketType=1;表示head类型报文;
PathSize:传输的文件路径长度;
CRCCode:前面所有内容的CRC校验码;
FilePath:传输的文件路径;
FileSize:文件大小。
步骤S202,向接收端发送请求报文。
在与接收端建立长连接后,首先向接收端发送request报文通知接收端将要拷贝文件。该步骤可作为接收端的告知步骤,需要待接收端对该请求报文进行响应后再进行后续头消息报文的传输。
步骤S203,当接收到请求报文的响应报文后,向接收端发送头消息报文。
当发送端接收到来自接收端的响应报文后,通过head消息告知接收端文件基本信息,包括文件名(路径),文件大小。
在一些实施方式中,确定待拷贝文件的空洞区域及其位置信息的步骤S102,如图3所示,包括:
步骤S301,按照预设的分片策略对待拷贝文件进行扫描,判断拷贝文件的分片是否为连续二进制数值为0的存储块。
对于待拷贝文件需要对其进行扫描,检测其存储信息进行读取;具体的说可按照预设分片策略来实现。如在待拷贝文件中,每次读取指定大小的存储区,判断这些分片是否为连续为0的存储块。
步骤S302,如果是,则获取空洞区域所在拷贝文件的位置信息,并将存储块确定为空洞区域。
在获得空洞区域后,确定这些空洞区域的位置,如起始编号、结束编号,空洞区域长度等。这些位置信息可用于计算非空洞区域的偏移量,最终在拷贝过程中进行数据偏移。
非空洞区域作为真实传输的数据,而空洞区域不进行实际传输;故在实际操作过程中,需要将非空洞区域中相关存储块中文件内容、偏移量来进行传输,例如可使用offset字段的值来代替文件中空洞块的传输。对于虚拟机迁移这种场景,读取到页缓存中的文件,只需要根据需要发送到对端,其实并不存在二次读取的可能;写到页缓存中的数据,也不涉及再次修改,需要延迟写的需要。基于以上考虑,常规使用缓存I/O方式带来的读写效率提升在进行虚拟机的迁移过程中并不能起到作用,反而会降低效率。因此在一些实施方式中,将非空洞区域及其偏移量依次从发送端的地址空间传输至接收端的磁盘中,如图4所示,包括:
步骤S401,获取非空洞区域的数据流,将数据流从发送端的地址空间传输至应用缓冲区。
在Linux的缓存I/O机制中,操作系统会将I/O的数据缓存在文件系统的页缓存(page cache)中。也就是说在读取磁盘文件时,数据会先被拷贝到操作系统内核的缓冲区中,然后才会从操作系统内核的缓冲区拷贝到应用程序的地址空间。缓存I/O具有如下优点:缓存I/O使用了操作系统的内核缓冲区,在一定程度上分离了应用程序空间和实际物理设备空间;缓存I/O可以减少读盘次数,从而提高性能。当应用程序去读取某块数据的时候,如果这块数据已经在页缓存中,那么这块数据可以立即返回给应用程序,而不需经过实际的物理读盘操作。由于页缓存的读取速度远大于磁盘的读取速度,并且数据的访问通常具有连续性,因此通过缓存方式可以大大提高数据获取速度。
步骤S402,控制应用缓冲区的数据流,绕过虚拟机的系统内核缓冲区,直接传输至接收端的磁盘中。
针对缓存I/O在虚拟机迁移中带来的内存开销和多次拷贝效率问题,通过绕过页缓存,由应用程序直接读写磁盘的方式来进行数据传输。传统方式的数据流需要从Application buffer(应用缓冲区)通过Clib buffer(Clib缓冲区)传输至Page cache(页缓存),再由页缓存传输至设备层的Disk cache(磁盘缓存)并最终传输至磁盘中。对于虚拟机迁移这种场景,读取到页缓存中的文件,只需要根据需要发送到对端,其实并不存在二次读取的可能;写到页缓存中的数据,也不涉及再次修改,需要延迟写的需要。基于以上考虑,常规使用缓存I/O方式带来的读写效率提升在进行虚拟机的迁移过程中并不能起到作用,反而会降低效率。
因此,在步骤S402中,通过绕过页缓存而直接读写磁盘的方式来进行数据读写操作,可在内存较小或被其他应用程序占用较多的情况下,同样可以传输超大的磁盘文件。上述过程的对比图如图5所示,在此不再赘述。
本发明实施例提供了一种虚拟机迁移方法,该方法应用于接收端,如图6所示,包括:
步骤S601,接收发送端建立连接后,接收发送端发来的第一报文;其中,第一报文包含待拷贝文件的属性信息。
发送端将第一报文发送至接收端后,告知接收端准备接受文件。例如,发送端将request消息发送至接收端,接收端接收到该消息后,向发送端发送该request消息的响应报文。
步骤S602,根据第一报文中包含的待拷贝文件的属性信息,在接收端的磁盘中建立与待拷贝文件相映射的临时文件。
第一报文中包含相关head消息,在head消息中包含待拷贝文件的相关属性信息,如文件名称、路径、文件大小等。接收端根据head消息的内容,在接收端本地磁盘中创建待拷贝文件。创建过程中,需要建立与待拷贝文件的文件名称一一对应的临时文件,这些临时文件的文件名与待拷贝文件中包含的文件一一对应,但文件内容暂时为空,需要后续通过每个文件的数据流来进行填充。
步骤S603,接收来自发送端的数据流及其偏移量,根据偏移量数据将数据流保存至临时文件中。
接收到数据流的数据后,按照其偏移量进行数据复制。由于从发送端传输来的数据量以及去除了空洞数据,因此该数据量的实际大小远小于传统包含空洞数据的数据量。这些数据流根据自己的偏移量,依次保存至临时文件中。
步骤S604,待数据流保存完毕时,接收来自发送端的第二报文,并利用第二报文中包含的校验信息对临时文件的完整性进行校验。
数据流保存完毕时,发送端会向接收端发送第二报文。此时接收端获取第二报文后来对临时文件的完整性进行校验。当临时文件与待拷贝文件一致时表明拷贝过程正常,同时可将校验结果发送至发送端。
在一些实施方式中,根据第一报文中包含的待拷贝文件的属性信息,在接收端的磁盘中建立与待拷贝文件相映射的临时文件的步骤S603,如图7所示,包括:
步骤S701,接收来自发送端的请求报文;其中,请求报文用于通知接收端执行拷贝过程。
该步骤中的请求报文为request消息,该消息为发送端发送至接收端的,用于通知接收端执行拷贝文件。
步骤S702,接收端响应请求报文,并将响应报文传输至发送端。
接收端响应该request消息,并将响应报文发送至发送端,告知发送端可以执行拷贝文件。
步骤S703,接收来自发送端的头消息报文;其中,头消息报文用于获取待拷贝文件的属性信息。
发送端接收到来自接收端发送的响应报文后,将head消息发送至接收端,告知接收端需要拷贝的文件属性信息,包括文件名、文件路径以及文件大小等。
步骤S704,根据头消息报文中包含的待拷贝文件的属性信息,建立与拷贝文件相映射的临时文件。
头消息报文中包含的待拷文件的属性信息,如上述实施例中提到的Head类型消息、Data类型报文、End类型报文、Request类型报文、Response类型报文等多个类型的报文,按照这些头消息报文中包含的消息内容,在接收端磁盘中建立相应的临时文件。
下面结合具体实施例来对上述虚拟机迁移方法中包含发送端和接收端的数据迁移过程进行整体描述。
以发送端作为操作发起端,将本地文件传输到接收端为例:
1.发送端发起连接,先发送request报文通知接收端将要拷贝文件;
2.通过head消息告知接收端需要拷贝的文件的基本信息,包括文件名(路径),文件大小;
3.依次扫描待拷贝文件,每次读取指定大小(协议分片大小),并判断其是否为“空洞”片。所有“空洞”片,不进行传输;非空洞片携带信息要包括:该片在磁盘中的偏移和文件片内容,用偏移量来解决空洞片未能传输导致的数据不一致的问题。
4.传输结束后,发送端发end消息给接收端,end消息用以通知接收端文件传输结束,并携带校验信息供接收端进行传输文件的完整性校验;
接收端依次接收发送端发送过来的消息并进行对应的处理。
1.接收到request消息后,准备接收文件;
2.接收到head消息后,按照消息内容在本地的指定位置创建指定名称文件;
3.接收到data消息后,按照偏移,进行数据复制;
4.接收end消息后,计算校验内容完整性;并返回校验结果给发送端。
上述过程可通过如图8所述的一种虚拟机迁移方法的信令图来描述,该图中的Host1可理解为发送端;Host2为接收端。
1.Host1向Host2发送Requset报文,通知Host2将要拷贝文件;
2.Host2响应Requset报文,并向Host1发送Response报文;
3.Host1将head消息发送至Host2,告知Host2需要拷贝的文件的基本消息;
4.Host2响应head消息,并向Host1发送Response报文;
5.Host1通过data报文向Host2传输文件,传输过程至传输不包含空洞区域的数据及其偏移量。再循环N次后完成数据传输,此时的N+1次传输向Host2发送end报文,告知Host2完成文件传输,并通过end报文中的校验数据来对Host2中的数据进行校验。
图9所述的另一种虚拟机迁移方法的信令图,该图中的Host1请求Host2向Host1进行迁移。以迁移数据的位置来分类的话,Host2为发送端;Host1为接收端。具体的,上述虚拟机迁移过程如下:
1.Host2向Host1发送Requset报文,通知Hos1将要拷贝文件;
2.Host1响应Requset报文,并向Host2发送Response报文;
3.Host2将head消息发送至Host1,告知Host1需要拷贝的文件的基本消息;
4.Host1响应head消息,并向Host2发送Response报文;
5.Host2通过data报文向Host1传输文件,传输过程至传输不包含空洞区域的数据及其偏移量。再循环N次后完成数据传输,此时的N+1次传输向Host1发送end报文,告知Host1完成文件传输,并通过end报文中的校验数据来对Host1中的数据进行校验。
通过上述实施例中提到的虚拟机迁移方法可知,可以实现有“空洞”的文件的传输速度优化;通过对报文分片后校验其内容,对全“空洞”报文片不进行发送,进而减少文件网络传输的报文数量,缩短文件传输整体时间,提高其传输效率。通过直接读写磁盘的方式进行虚拟机迁移,可以减小cache占用,迁移超大文件。图10为传统静态迁移时cache占用图,图11为采用本虚拟机迁移方法中静态迁移时的cache占用图,图中的横轴为时间(单位s),纵轴为cache的使用情况(单位M),宿主机的cache总大小为3500M。可以看到普通的静态迁移过程中,cache被迅速占满,而直写磁盘方式的虚拟机迁移过程中,cache几乎没有增长。可见,该方法提高了读写效率,有利于提升超大磁盘文件的传输速率。
对应于上述方法实施例,本发明实施例提供了一种虚拟机迁移系统,如图12所示,该系统应用于发送端,包括:
第一报文发送模块1210,用于与接收端建立连接,并向接收端发送第一报文;其中,第一报文包含待拷贝文件的属性信息;
空洞区域确定模块1220,用于确定待拷贝文件的空洞区域及其位置信息;其中,空洞区域为待拷贝文件中连续存储二进制数值为0的存储块;
数据发送模块1230,用于根据空洞区域及其位置信息,确定待拷贝文件的非空洞区域及其偏移量,并将非空洞区域及其偏移量依次从发送端的地址空间传输至接收端的磁盘中;
第二报文发送模块1240,用于待非空洞区域及其偏移量传输完毕后向接收端发送第二报文;其中,第二报文包含对待拷贝文件完整性进行校验的校验信息。
对应于上述方法实施例,本发明实施例提供了一种虚拟机迁移系统,如图13所示,该系统应用于接收端,包括:
第一报文接收模块1310,用于接收发送端建立连接后,接收发送端发来的第一报文;其中,第一报文包含待拷贝文件的属性信息;
临时文件生成模块1320,用于根据第一报文中包含的待拷贝文件的属性信息,在接收端的磁盘中建立与待拷贝文件相映射的临时文件;
数据接收模块,用于接收来自发送端的数据流及其偏移量,根据偏移量数据将数据流保存至临时文件中;
数据校验模块1330,用于待数据流保存完毕时,接收来自发送端的第二报文,并利用第二报文中包含的校验信息对临时文件的完整性进行校验。
本发明实施例提供的虚拟机迁移系统,与上述实施例提供的虚拟机迁移方法具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。为简要描述,实施例部分未提及之处,可参考前述虚拟机迁移方法实施例中相应内容。
本实施例还提供一种电子设备,为该电子设备的结构示意图如图14所示,该设备包括处理器101和存储器102;其中,存储器102用于存储一条或多条计算机指令,一条或多条计算机指令被处理器执行,以实现上述虚拟机迁移方法。
图14所示的电子设备还包括总线103和通信接口104,处理器101、通信接口104和存储器102通过总线103连接。
其中,存储器102可能包含高速随机存取存储器(RAM,Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。总线103可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图14中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
通信接口104用于通过网络接口与至少一个用户终端及其它网络单元连接,将封装好的IPv4报文或IPv4报文通过网络接口发送至用户终端。
处理器101可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器101中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器101可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DigitalSignal Processor,简称DSP)、专用集成电路(Application Specific IntegratedCircuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本公开实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本公开实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器102,处理器101读取存储器102中的信息,结合其硬件完成前述实施例的方法的步骤。
本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行前述实施例的方法的步骤。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、设备和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,设备或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以用软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

Claims (10)

1.一种虚拟机迁移方法,其特征在于,所述方法应用于发送端,包括:
与接收端建立连接,并向所述接收端发送第一报文;其中,所述第一报文包含待拷贝文件的属性信息;
确定所述待拷贝文件的空洞区域及其位置信息;其中,所述空洞区域为所述待拷贝文件中连续存储二进制数值为0的存储块;
根据所述空洞区域及其位置信息,确定所述待拷贝文件的非空洞区域及其偏移量,并将所述非空洞区域及其偏移量依次从所述发送端的地址空间传输至所述接收端的磁盘中;
待所述非空洞区域及其偏移量传输完毕后向所述接收端发送第二报文;其中,所述第二报文包含对所述待拷贝文件完整性进行校验的校验信息。
2.根据权利要求1所述的虚拟机迁移方法,其特征在于,与接收端建立连接,并向所述接收端发送第一报文的步骤,包括:
所述发送端与所述接收端建立长连接,并初始化所述第一报文中的请求报文以及头消息报文;其中,所述请求报文用于通知所述接收端执行拷贝过程;所述头消息报文用于向所述接收端告知所述待拷贝文件的属性信息;
向所述接收端发送所述请求报文;
当接收到所述请求报文的响应报文后,向所述接收端发送所述头消息报文。
3.根据权利要求1所述的虚拟机迁移方法,其特征在于,确定所述待拷贝文件的空洞区域及其位置信息的步骤,包括:
按照预设的分片策略对所述待拷贝文件进行扫描,判断所述拷贝文件的分片是否为连续二进制数值为0的存储块;
如果是,则获取所述空洞区域所在所述拷贝文件的位置信息,并将所述存储块确定为所述空洞区域。
4.根据权利要求1所述的虚拟机迁移方法,其特征在于,将所述非空洞区域及其偏移量依次从所述发送端的地址空间传输至所述接收端的磁盘中,包括:
获取所述非空洞区域的数据流,将所述数据流从所述发送端的地址空间传输至应用缓冲区;
控制所述应用缓冲区的所述数据流,绕过所述虚拟机的系统内核缓冲区,直接传输至所述接收端的磁盘中。
5.一种虚拟机迁移方法,其特征在于,所述方法应用于接收端,包括:
接收发送端建立连接后,接收所述发送端发来的第一报文;其中,所述第一报文包含待拷贝文件的属性信息;
根据所述第一报文中包含的所述待拷贝文件的属性信息,在所述接收端的磁盘中建立与所述待拷贝文件相映射的临时文件;
接收来自所述发送端的数据流及其偏移量,根据所述偏移量数据将所述数据流保存至所述临时文件中;
待所述数据流保存完毕时,接收来自所述发送端的第二报文,并利用所述第二报文中包含的校验信息对所述临时文件的完整性进行校验。
6.根据权利要求5所述的虚拟机迁移方法,其特征在于,根据所述第一报文中包含的所述待拷贝文件的属性信息,在所述接收端的磁盘中建立与所述待拷贝文件相映射的临时文件,包括:
接收来自所述发送端的请求报文;其中,所述请求报文用于通知所述接收端执行拷贝过程;
所述接收端响应所述请求报文,并将响应报文传输至所述发送端;
接收来自所述发送端的头消息报文;其中,所述头消息报文用于获取所述待拷贝文件的属性信息;
根据所述头消息报文中包含的所述待拷贝文件的属性信息,建立与所述拷贝文件相映射的临时文件。
7.一种虚拟机迁移系统,其特征在于,所述系统应用于发送端,包括:
第一报文发送模块,用于与接收端建立连接,并向所述接收端发送第一报文;其中,所述第一报文包含待拷贝文件的属性信息;
空洞区域确定模块,用于确定所述待拷贝文件的空洞区域及其位置信息;其中,所述空洞区域为所述待拷贝文件中连续存储二进制数值为0的存储块;
数据发送模块,用于根据所述空洞区域及其位置信息,确定所述待拷贝文件的非空洞区域及其偏移量,并将所述非空洞区域及其偏移量依次从所述发送端的地址空间传输至所述接收端的磁盘中;
第二报文发送模块,用于待所述非空洞区域及其偏移量传输完毕后向所述接收端发送第二报文;其中,所述第二报文包含对所述待拷贝文件完整性进行校验的校验信息。
8.一种虚拟机迁移系统,其特征在于,所述系统应用于接收端,包括:
第一报文接收模块,用于接收发送端建立连接后,接收所述发送端发来的第一报文;其中,所述第一报文包含待拷贝文件的属性信息;
临时文件生成模块,用于根据所述第一报文中包含的所述待拷贝文件的属性信息,在所述接收端的磁盘中建立与所述待拷贝文件相映射的临时文件;
数据接收模块,用于接收来自所述发送端的数据流及其偏移量,根据所述偏移量数据将所述数据流保存至所述临时文件中;
数据校验模块,用于待所述数据流保存完毕时,接收来自所述发送端的第二报文,并利用所述第二报文中包含的校验信息对所述临时文件的完整性进行校验。
9.一种电子设备,其特征在于,包括:处理器和存储装置;所述存储装置上存储有计算机程序,所述计算机程序在被所述处理器运行时实现如权利要求1至6任一项所述的虚拟机迁移方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理器运行时实现上述权利要求1至6任一项所述的虚拟机迁移方法的步骤。
CN202110715998.3A 2021-06-25 2021-06-25 虚拟机迁移方法、系统及电子设备 Pending CN113342471A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202110715998.3A CN113342471A (zh) 2021-06-25 2021-06-25 虚拟机迁移方法、系统及电子设备
PCT/CN2021/143173 WO2022267427A1 (zh) 2021-06-25 2021-12-30 虚拟机迁移方法、系统及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110715998.3A CN113342471A (zh) 2021-06-25 2021-06-25 虚拟机迁移方法、系统及电子设备

Publications (1)

Publication Number Publication Date
CN113342471A true CN113342471A (zh) 2021-09-03

Family

ID=77478975

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110715998.3A Pending CN113342471A (zh) 2021-06-25 2021-06-25 虚拟机迁移方法、系统及电子设备

Country Status (2)

Country Link
CN (1) CN113342471A (zh)
WO (1) WO2022267427A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113485874A (zh) * 2021-09-07 2021-10-08 联想凌拓科技有限公司 数据处理方法及分布式存储系统
WO2022267427A1 (zh) * 2021-06-25 2022-12-29 航天云网科技发展有限责任公司 虚拟机迁移方法、系统及电子设备

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115826885B (zh) * 2023-02-21 2023-05-09 浪潮电子信息产业股份有限公司 一种数据迁移方法、装置及电子设备和存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101464812A (zh) * 2009-01-06 2009-06-24 北京航空航天大学 一种虚拟机迁移方法
CN106469085A (zh) * 2016-08-31 2017-03-01 北京航空航天大学 虚拟机在线迁移方法、装置及系统
WO2019196705A1 (zh) * 2018-04-08 2019-10-17 中兴通讯股份有限公司 物理机到虚拟机迁移方法、装置及存储介质
CN110888843A (zh) * 2019-10-31 2020-03-17 北京浪潮数据技术有限公司 一种跨主机的稀疏文件拷贝方法、装置、设备及存储介质
CN111506386A (zh) * 2020-02-27 2020-08-07 平安科技(深圳)有限公司 虚拟机在线迁移方法、装置、设备及计算机可读存储介质
CN112148430A (zh) * 2020-09-28 2020-12-29 中电积至(海南)信息技术有限公司 一种虚拟网络功能的虚拟机在线安全迁移的方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105487984B (zh) * 2014-09-17 2020-04-03 中兴通讯股份有限公司 一种主机系统对虚拟机磁盘数据的动态压缩方法及装置
CN109522088A (zh) * 2018-09-30 2019-03-26 华为技术有限公司 一种虚拟机迁移方法及装置
CN112486918B (zh) * 2019-09-11 2022-09-06 浙江宇视科技有限公司 文件处理方法、装置、设备及介质
CN113342471A (zh) * 2021-06-25 2021-09-03 航天云网科技发展有限责任公司 虚拟机迁移方法、系统及电子设备

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101464812A (zh) * 2009-01-06 2009-06-24 北京航空航天大学 一种虚拟机迁移方法
CN106469085A (zh) * 2016-08-31 2017-03-01 北京航空航天大学 虚拟机在线迁移方法、装置及系统
WO2019196705A1 (zh) * 2018-04-08 2019-10-17 中兴通讯股份有限公司 物理机到虚拟机迁移方法、装置及存储介质
CN110888843A (zh) * 2019-10-31 2020-03-17 北京浪潮数据技术有限公司 一种跨主机的稀疏文件拷贝方法、装置、设备及存储介质
CN111506386A (zh) * 2020-02-27 2020-08-07 平安科技(深圳)有限公司 虚拟机在线迁移方法、装置、设备及计算机可读存储介质
CN112148430A (zh) * 2020-09-28 2020-12-29 中电积至(海南)信息技术有限公司 一种虚拟网络功能的虚拟机在线安全迁移的方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022267427A1 (zh) * 2021-06-25 2022-12-29 航天云网科技发展有限责任公司 虚拟机迁移方法、系统及电子设备
CN113485874A (zh) * 2021-09-07 2021-10-08 联想凌拓科技有限公司 数据处理方法及分布式存储系统
CN113485874B (zh) * 2021-09-07 2021-11-23 联想凌拓科技有限公司 数据处理方法及分布式存储系统

Also Published As

Publication number Publication date
WO2022267427A1 (zh) 2022-12-29

Similar Documents

Publication Publication Date Title
CN113342471A (zh) 虚拟机迁移方法、系统及电子设备
US10198377B2 (en) Virtual machine state replication using DMA write records
US9417996B2 (en) Shared physical memory protocol
WO2017008675A1 (zh) 一种用于虚拟化环境下传输数据的方法与设备
WO2015196931A1 (zh) 基于磁盘io的虚拟资源分配方法及装置
US8356149B2 (en) Memory migration
US20130086200A1 (en) Live Logical Partition Migration with Stateful Offload Connections Using Context Extraction and Insertion
US9395973B2 (en) Virtual machine deployment method, recording medium, and information processing apparatus
US20180027074A1 (en) System and method for storage access input/output operations in a virtualized environment
US9164856B2 (en) Persistent messaging mechanism
US11036535B2 (en) Data storage method and apparatus
CN110704161B (zh) 虚拟机创建方法、装置及计算机设备
CN108733311B (zh) 用于管理存储系统的方法和设备
CN114371811A (zh) 用于存储管理的方法、电子设备和计算机程序产品
CN112328365A (zh) 一种虚拟机迁移方法、装置、设备及存储介质
US9965311B2 (en) Application of a pattern to inactive pages in guest memory
CN113687779B (zh) 数据迁移方法、装置、电子设备及可读存储介质
US9158550B2 (en) Caching based operating system installation
US11579911B1 (en) Emulated edge locations in cloud-based networks for testing and migrating virtualized resources
CN107168774A (zh) 一种基于本地存储的虚拟机迁移方法及系统
US9342419B2 (en) Persistent messaging mechanism
CN114489930A (zh) 一种虚拟机热迁移方法、装置及系统
CN111435323A (zh) 信息的传输方法、装置、终端、服务器及存储介质
CN110908602A (zh) 分布式存储系统的数据写入方法、装置、设备及存储介质
CN116700904B (zh) 内存快照生成方法、装置、计算机设备及存储介质

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