CN114465877A - 一种适合无线自组织网络环境的边缘云迁移方法和系统 - Google Patents
一种适合无线自组织网络环境的边缘云迁移方法和系统 Download PDFInfo
- Publication number
- CN114465877A CN114465877A CN202111516045.0A CN202111516045A CN114465877A CN 114465877 A CN114465877 A CN 114465877A CN 202111516045 A CN202111516045 A CN 202111516045A CN 114465877 A CN114465877 A CN 114465877A
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- file
- disk
- memory
- edge cloud
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
- H04L41/0663—Performing the actions predefined by failover planning, e.g. switching to standby network elements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0823—Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability
- H04L41/0836—Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability to enhance reliability, e.g. reduce downtime
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0889—Techniques to speed-up the configuration process
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W84/00—Network topologies
- H04W84/18—Self-organising networks, e.g. ad-hoc networks or sensor networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (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)或容器的边缘云架构,在这种架构下要实现云计算应用迁移和切换,需要在边缘云端简单快速的以比特级精度重建客户端镜像。传统数据中心云计算平台基于数据中心内部和数据中心之间的高速光纤网络,可以采用热备份和热迁移技术,不同主机间虚拟机镜像或容器的迁移通常采用在线实时备份,并通过高速光纤网络实时传输,从而提供可靠,低延时的云计算服务,如美国的亚马逊,国内的阿里云和华为云等。另一方面,5G移动通信中的移动边缘计算技术(MEC)通过在移动基站侧部署边缘云平台,属于另一类边缘云技术。这种情况下,基站本身不移动,边缘云平台之间的连接依然基于基站间的固定有线连接。
在一些情况下,带宽受限(通常小于100Mbps)的无线自组织网络环境中的设备终端也需要可靠、低延时云计算服务,例如应急处理、突发事件处理、军事行动等场景。在这种无线自组织网络中,边缘云平台之间是移动的,并且通过带宽受限的无线网络连接,连接并不稳定,给虚拟机镜像文件的传输带来了极大困难,因为通常情况下,比较精简的Linux客户机虚拟机镜像文件为400MB左右,而到基于Windows操作系统的镜像文件通常都大于2GB,这样的虚拟机镜像文件无法在无线环境中直接进行迁移;在无线自组织网络中运行的边缘云平台,又无法像传统云端那样保存大量自定义虚拟机镜像(快照);另一方面移动应用复杂多变,用户虚拟机状态的是时变的,静态方式不能保证服务。综上,现有的数据中心的云计算平台迁移技术,或5G的MEC技术,都没有考虑数据中心之间本身也是移动场景,其采用的数据处理技术一般不考虑高压缩率和网络的可靠性影响,因而难以适应连接不稳定,带宽受限的无线自组网络应用,更无法提供优质低延时的云服务。因此本发明旨在解决在带宽受限、连接不稳定下的无线自组织网络环境中实现快速边缘云迁移的问题。
目前无线自组织网络中的边缘云计算技术的专利较少,可以查到少量涉及本发明某一部分技术的相关专利,但应用的技术与本发明有明显差异,解决的也不是一类问题。例如,一些云计算平台的压缩和编码专利如下:
· 一种面向内存冗余的虚拟机迁移装置及其方法。【申请号】201010603168.3
· 一种基于多云统管系统的Linux虚拟机跨云迁移的方法。【申请号】201811494680.1
· 一种虚拟机磁盘在线迁移去冗余方法【申请号】202010397985.1 。
发明内容
为解决上述问题,本发明提供了一种边缘云迁移方法和系统,基于动态合成虚拟机的方式,能够显著提高传输效率,能够实现在无线自组织网络环境中快速在边缘云端创建终端设备的虚拟机镜像。
本发明公开如下技术方案:
一种适合无线自组织网络环境的边缘云迁移方法,包括,生成并传输虚拟机覆盖文件,所述虚拟机覆盖文件与预存的基本虚拟机镜像文件合成,生成启动虚拟机。所述虚拟机覆盖文件由终端设备传输到边缘云端。所述终端设备可只保存一个所述虚拟机覆盖文件,也可以保存多个所述虚拟机覆盖文件,通过与云端协商选择最适合的一个进行传输。
可选的,所述虚拟机覆盖文件保存在云端,根据所述终端设备发出的请求,所述虚拟机覆盖文件传输至边缘云端。
当需要时,生成所述启动虚拟机的变化数据,所述变化数据被发送回所述终端设备并合并到所述虚拟机覆盖文件中,用于后续的迁移对话。
在生成虚拟机覆盖文件时,识别并删除所述虚拟机覆盖文件的冗余重复数据。具体方法包括:识别在创建启动虚拟机的过程中发生修改的磁盘和内存数据块,查找其中独特的数据块并将其与所述基本虚拟机中相应的数据块进行比较得到增量块。所述数据块粒度设置为4KB。
在生成虚拟机覆盖文件过程中,识别并消除应用层的与虚拟机底层的语义差异对所述虚拟机覆盖文件大小的影响,具体方法为识别磁盘和内存的状态修改是否需要保留,并丢弃对所述用户终端没有实际作用的状态。
所述识别磁盘列新的状态修改是否需要保留的实现方法为:通过客户操作系统向主机传送磁盘块信息,或采用扫描虚拟磁盘上文件系统内容的方式搜集此类操作系统级别的信息,将来自所述终端设备操作系统的可用磁盘块信息通知所述主机,具体通过解释所述终端设备操作系统维护的内存布局数据结构获得可用内存页面的列表实现。
虚拟机覆盖文件采用流水线传输方式,即将所述虚拟机覆盖文件进行分段,每一个段独立依次进行传输、解压缩、与基本虚拟机合成的综合操作,每一个段的传输、解压缩、与基本虚拟机合成的综合操作与下一个段的传输、解压缩、与基本虚拟机合成的综合操作是错位并行进行的;一个段传输完成后立即开始解压缩,同时所述虚拟机覆盖文件下一个段进行传输;每一个段均完成传输、解压缩、与基本虚拟机合成的综合操作后,完成启动虚拟机的生成。
一种无线自组织网络环境中边缘云迁移系统,包括终端设备、边缘云端以及云端,其特征在于,终端设备具有虚拟机覆盖文件生成模块,根据基本虚拟机镜像和启动虚拟机镜像之间的压缩二进制数据的差异生成虚拟机覆盖文件,虚拟机覆盖文件无线传输至边缘云端;边缘云端具有虚拟机合成模块,利用预存的基本虚拟机和接收到的所述虚拟机覆盖文件创建启动虚拟机。
所述终端设备具有冗余重复数据删除模块,识别在创建启动虚拟机的过程中发生修改的磁盘和内存数据块,查找其中独特的数据块并将其与所述基本虚拟机中相应的数据块进行比较得到增量块;所述终端设备具有语义差异消除模块,识别磁盘和内存的状态修改是否需要保留,并丢弃对用户终端没有实际作用的状态。
具有并行传输合成模块,将所述虚拟机覆盖文件进行分段,每一个段独立依次进行传输、解压缩、与基本虚拟机合成,一个段传输完成后立即开始解压缩,同时所述虚拟机覆盖文件下一个段进行传输,每一个段的传输、解压缩、与基本虚拟机合成的综合操作与下一个段的传输、解压缩、与基本虚拟机合成的综合操作错位并行进行。
本发明的有益效果为:
在无线自组织网络中,带宽受限,连接不稳定,无法通过直接传输虚拟机文件的方式实现边缘云平台的迁移。本发明通过采用传输虚拟机覆盖文件并与基本虚拟机动态合成启动虚拟机的方式,解决了无线自组织网络中在边缘云端快速重建客户端镜像的可行性问题,并且迁移速度显著提高;此外,本发明还具有以下有益效果:
由于终端设备仅用作虚拟机覆盖的传输,云端和终端设备可以具有不同的硬件体系结构。
基本虚拟机的客户操作系统没有限制,使得上述同时适用于Linux和Windows,具有良好的兼容性。虚拟设备在传统操作系统的基础上生成,专门为特定移动应用程序提供服务,一旦启动虚拟机就不会出现停顿,在软实时移动应用程序(如增强现实)具有显著优势。
相比在虚拟机启动后直接安装应用软件或通过脚本安装应用软件,动态虚拟机合成的方式出错的风险更小,同时能保证良好用户体验。因为在软件包安装和配置过程中,需要对许多外部软件组件进行单独优化,其中一些可能是封闭来源的专有组件,这就增加了不可控因素;更重要的是,即使在编写脚本时,安装一系列程序包然后执行安装后配置也是一项脆弱而容易出错的任务,增加了云端重建用户映像的不确定性。而虚拟机合成方式则只在虚拟机覆盖生成时存在一定的错误风险,成功创建后,虚拟机合成的方式可确保在每个云使用情况下重新创建相同的映像。此外,这种安装软件的方式要求应用程序每次都重新启动。执行状态在后续使用不能够利用,在需要连接性的应用中造成糟糕的用户体验。
在此基础上,针对虚拟机覆盖文件中数据的特点,通过删除冗余重复数据、消除语义差异的方式可以进一步减小传输文件,即虚拟机覆盖文件的大小,使得边缘云迁移在带宽受限、连接不稳定的无线自组织网络中具有更强的适应性;另外,采用流水线传输虚拟机覆盖文件,数据压缩和传输效率更高,进一步降低了边缘云端的虚拟机启动延迟,提升了客户使用体验。本发明提出的边缘云迁移方法和系统具有很高的实用性,综合采用上述方式,能够显著压缩迁移过程的数据传输量,降低迁移延时,提高迁移的可靠性和成功率,同时支持实现计算的软状态的迁移和切换,实测效果良好,填补了针对带宽受限的无线自组网络环境中云计算应用的技术空白。
附图说明
图1示出了虚拟机动态合成的一个实施例。
图2示出了删除虚拟机覆盖文件重复冗余数据的具体过程。
图3示出了获取在创建启动虚拟机的过程中修改的磁盘和内存部分的过程。
图4示出了虚拟机覆盖文件流水线传输过程。
具体实施方式
应当参考附图来解读以下详细说明,其中相似的参考号表示相似的元件。这些附图不必是按比例的,其描绘了本发明的选择的实施例-其他可能的实施例对于受益于这些传授内容的本领域普通技术人员而言可以是很明显的。因此,在附图中示出的并在下文描述的这些实施例是提供用于说明的目的的、而并不旨在限制如所附权利要求书中所限定的本发明的范围。
如本文所使用的“基本虚拟机(BASE VM)”是通用的虚拟机镜像,例如新安装的Windows7客户端镜像;“启动虚拟机(START VM)”是用于进行迁移的虚拟机镜像,是通过将应用相关软件安装到基本虚拟机中创建的;“虚拟机覆盖(VM OVERLAY)”是基础虚拟机镜像和启动虚拟机镜像之间的压缩二进制数据的差异。
图1示出了本发明的合成动态虚拟机的一个实施例。用户终端设备1具有虚拟机覆盖文件生成模块,根据基本虚拟机镜像和启动虚拟机镜像之间的压缩二进制数据的差异生成虚拟机覆盖文件2,虚拟机覆盖文件2包括虚拟机磁盘和内存快照,虚拟机覆盖文件2通过宽带无线网3传输至边缘云端服务器4;边缘云端服务器4保存有基本虚拟机,因为通常镜像文件中主要部分是操作系统专用内容,如软件库和支持软件包,这些内容在使用中不会变化,因此可以将基本虚拟机保存在边缘云端。边缘云端服务器4的虚拟机合成模块利用基本虚拟机和接收到的虚拟机覆盖文件结合生成启动虚拟机,然后创建虚拟机实例;之后终端设备现在可以开始在这个实例上执行迁移操作。边缘云端服务器可返回计算结果5至用户终端设备1。该实例在会话结束时被销毁,但启动虚拟机映像可以保留在永久缓存中供将来的会话使用。
在本发明的一个实施例中,使用xdelta3二进制差分工具创建虚拟机覆盖,然后使用Lempel-Ziv-Markov算法(LZMA)对虚拟机覆盖文件进行压缩。这是考虑到xdelta3产生的覆盖率比KVM提供的本地虚拟机差异机制小,而LZMA算法针对高压缩比进行了优化,并以相对较慢的压缩速度进行了快速解压缩。此外,压缩只能在离线时完成,但是在每个虚拟机合成中会发生解压缩。
在另一些实施例中,虚拟机覆盖保存在云端,而终端设备通过请求,从云端发送到边缘云端,再在边缘云端生成启动虚拟机。这样用户终端与边缘云端不需要传送虚拟机覆盖,对带宽占用更少。
在一些实施例中,修改后的启动虚拟机被保存,以用于未来迁移使用。其中一个实现方法为,边缘云端服务器4生成启动虚拟机的变化数据并发送回用户终端设备1,将其合并到其覆盖层中,实现保存修改后的启动虚拟机。例如对典型机器学习的训练过程,启动虚拟机中,保存了经过训练的神经网络模型参数。每轮训练如果启动了虚拟机,训练过程将生成一个改进模型的训练数据,该数据需要合并到虚拟机覆盖镜像中,用于将来的任务迁移会话。
在一些实施例中,终端设备可以保存多个虚拟机覆盖文件,通过与云端协商选择最适合的虚拟机覆盖文件。这里的虚拟机是专门配置用作移动应用后端的虚拟设备。尽管这些虚拟设备是在传统操作系统(如Linux或Windows)的基础上生成,专门为特定移动应用程序提供服务。一旦启动,虚拟机就不会出现停顿。这对于软实时移动应用程序(如增强现实)非常有用。
在一个或多个实施例中,本文公开的动态虚拟机合成技术可以与传统虚拟机镜像创建技术结合使用,例如根据网络环境的判断对迁移方式进行切换。
尽管采用传输虚拟机覆盖文件的方式已经大大减小了传输数据尺寸,但虚拟机覆盖文件在创建时由于包含了大量冗余数据,将增加虚拟机覆盖文件的大小。在本发明的一些实施例中,对创建的覆盖文件删除冗余重复数据。虚拟机覆盖文件的冗余重复数据包括磁盘、内存镜像文件内部以及他们之间的重复,例如:(1)用户终端在虚拟机覆盖文件构建过程中,启动虚拟机暂停时,客户操作系统的I/O缓冲区高速缓存包含一些也存在于其虚拟磁盘中的数据;(2)来自虚拟磁盘上某些文件的数据可能已被应用程序后端在初始化过程中读取到其虚拟内存中;(3)某些应用程序在存储器和磁盘上都可能存在可变初始化数据的副本。这些重复数据占用网络资源,降低了虚拟机覆盖文件的传输效率。
请参阅图2,是本发明删除重复冗余数据的一种实现方式。终端设备设置冗余重复数据删除模块,首先选择比较数据块粒度,划分数据块。粒度太大或太小粒度都不合适,优选的,粒度选择4KB的块大小。经过研究测试,这样的粒度大小具有明显优势,首先与主流操作系统中广泛使用的页面大小一样,同时大多数操作系统采用DMA方式进行IO的直接内存访问,这时磁盘访问粒度大小与内存页面大小粒度相同。
请参阅图3,是本发明获取在创建启动虚拟机的过程中修改的磁盘和内存部分的示意图。为了发现在创建启动虚拟机的过程中修改的磁盘和内存部分,本发明使用FUSE库作为中间层。采用例如QEMU-KVM等VMM实现客户端操作系统的虚拟化;在每次写入虚拟磁盘或内存快照时,将写入重定向到相应的覆盖文件,并通过位图标记指示该块已经改变。当读操作时,根据这个位图来确定读操作是从原始基础文件还是从新的覆盖文件获得数据。实测数据表明,FUSE库对虚拟磁盘访问的影响很小,尽管它处于从虚拟机到磁盘的关键读写路径。但是,FUSE库对内存操作影响很大,因此不能在运行中使用FUSE库,而只在完成自定义虚拟机启动之后才捕获整个内存快照。然后将这个内存快照与基本内存进行比较以获得修改的内存块和相应的位图。
一旦获得发生修改后磁盘和内存块的列表,利用SHA算法对发生变化块进行计算得到散列值。相同散列值块有相同内容,这样便于快速搜索相同内容块。
最后,通过以下步骤获得一组有相同变化的数据块列表:
(1)与基本虚拟机磁盘块比较;
(2)与基本虚拟机内存块比较;
(3)与其自身内部的其他块进行比较(在修改的磁盘内或修改后的内存分别);
(4)与零填充块比较;
(5)与其它标记为发生变化的内存和磁盘镜像块比较。
接下来,对于每个独特的块,使用xdelta3工具,将其与基础虚拟机中相应的块(磁盘或内存中的相同位置)进行比较得到这个变化块的增量块。
理想情况下,在构建虚拟机覆盖文件时,只需要将对客户端有实际作用的状态保存在虚拟机覆盖文件中。然而实际在生成虚拟机覆盖文件时,由于虚拟机技术强制主机将每个客户端虚拟机视为一个黑盒子,造成实际磁盘和内存内容对上层应用不透明,无法用更高级别的抽象(如文件或应用程序级别的数据结构)来表示磁盘和内存中的内容,这样内存和磁盘的低级表示与高级抽象之间的语义差异会影响虚拟机覆盖文件大小。例如,假设客户端应用程序下载一个100MB文件,然后删除它。理想情况下,这个过程应该不会增加虚拟机覆盖文件的大小。但是,对于这个过程虚拟机软件将会记录最多200MB的修改(100MB磁盘状态和100MB内存状态更新),这是因为文件数据在到达磁盘之前通过客户端操作系统的内存中I/O缓冲区高速缓存,从而同时修改了内存状态和磁盘状态。当该文件被删除时,客户端操作系统会将磁盘块和相应的页面缓存条目标记为空闲,但它们(现在是垃圾)的内容仍然存在。事实上,在构建启动虚拟机时,用户或应用程序开发人员在基础虚拟机上安装后端应用程序,此安装过程通常涉及多个步骤,包括下载安装包,创建临时文件以及将可执行二进制文件移动到目标目录,在完成安装过程后,可能还会删除所有不需要的文件。由于虚拟机并不知道哪些内存和磁盘列新的状态修改是需要保留的,直接生成虚拟机覆盖文件将没有必要的内存状态和磁盘状态也记录下来,考虑到这种情况是不必要的增加虚拟机覆盖文件,本发明设置语义差异消除模块,对磁盘和内存数据进行检查识别,减少对文件大小的影响。
针对磁盘数据方面,在一些实施例中,在生成覆盖文件时将来自客户操作系统的可用磁盘块信息通知主机,识别出安装过程造成的块差异。采用的方法可以使从客户操作系统向主机传送此信息或者扫描虚拟磁盘上文件系统内容的方法搜集这此操作系统级别的信息;上述方法可以单独使用,可以一起使用并交叉检查结果。具体的,通过修改虚拟机(KVM/QEMU)以捕获TRIM事件并将它们通过管道传送到虚拟机覆盖生成代码;在生成覆盖图时通过合并有时间戳的日志对空闲扇区进行跟踪,以确定当虚拟机挂起时哪些块是空闲的;实现时,只需确保在客户端操作系统中启用TRIM支持。
针对内存数据方面,由于客户操作系统很难确定哪些内存页面被认为是空闲的,而虚拟机虽然可以检查页表,但由于未映射的页面不一定是空闲的,因而并不足以确定页面是否正在使用;另外,由于空闲页面通常包含随机数据并且不全为零,检查页面内容的方式也不够可行。
在本发明的一些实施例中,采用从客户操作系统向主机传送空闲页面信息(类似磁盘TRIM),或者解释客户操作系统维护的内存布局数据结构的方法。考虑到目前还没有与TRIM支持相对应的内存,本发明优选采用解释客户操作系统维护的内存布局数据结构的方法。具体的,首先在Linux客户机中引入一个小内核模块。该模块通过guest虚拟机中的/proc文件系统获得用于内存管理的两种数据结构的内存地址;然后暂停虚拟机,并将这些地址和内存快照提供给脱机扫描程序;此扫描程序将读取内存快照并解析指定地址处的内存管理数据结构以识别空闲页面;从而获得可用内存页面的列表。
请参阅图4,是虚拟机覆盖文件的流水线传输过程。在传输包括虚拟磁盘和虚拟内存的虚拟机覆盖文件时,将虚拟机覆盖文件分段,并将每个段独立进行传输、解压以及与基本虚拟机合成的综合操作,从而将虚拟机合成过程实现流水线化。分段后的覆盖文件的解压缩在其传输后立即开始,并与下一个分段的传输并行进行。同样,覆盖段到基本虚拟机的应用与下一段的解压并行进行。图4中,虚拟机覆盖文件内存分段1在传输完成后随即进入解压阶段,与此同时虚拟机覆盖文件磁盘分段1作为下一个段进行传输;内存分段1解压完成后进入综合步骤,即与基本虚拟机合成,另一方面磁盘分段1在传输完成后开始解压;每个段传输、解压、综合依次进行,而下一个段在前一段传输完成后,并行进行传输、解压、综合,这样每个段错位并行流水线操作,直至最后一个分段完成综合过程,则虚拟机合成过程结束,启动虚拟机生成,接下来可以创建虚拟机实例。当分段设置足够小时,那么生成启动虚拟机的总用时将接近系统瓶颈时间,即传输时间;迁移所需时长可以认为是系统瓶颈时间(通常为传输时间)加上其它任务时间(例如虚拟机实例创建和启动),大大提高了效率。并行传输合成模块负责上述运行上述流程,并且可根据需要设置在终端设备或者云端。
相比常规的序列化的数据传输过程,即,首先从终端将虚拟机覆盖文件发送给边缘云端;其次在边缘云端解压缩虚拟机覆盖文件,最后将解压缩的虚拟机覆盖文件与基本虚拟机一起合成,这种操作过程中上一步的输出作为下一步的输入,是前后依赖的序列化操作,本发明的流水线传输方式在前一个分段的步骤完全完成之前就开始进行后面分段的操作,显著缩短了合成时间,能够进一步降低边缘云端的虚拟机启动延迟,进行快速迁移,对于提供边缘云服务具有很强的现实意义。
本文公开了详细的实施例。然而,要理解,所公开的实施例仅旨在作为示例。因此,本文公开的具体结构和功能细节不被解释为限制,而是仅仅作为权利要求书的基础和作为教导本领域技术人员以各种方式在几乎任何合适的详细结构中采用本文的方面的代表性基础。另外,本文使用的术语和短语不旨在是限制,而是提供可能实现方式的可理解的描述。
Claims (20)
1.一种适合无线自组织网络环境的边缘云迁移方法和系统,其特征在于,生成虚拟机磁盘和内存快照的虚拟机覆盖文件,传输所述虚拟机覆盖文件,与边缘云端保存的基本虚拟机镜像文件合成,生成启动虚拟机。
2.根据权利要求1所述的一种适合无线自组织网络环境的边缘云迁移方法,其特征在于,所述虚拟机覆盖文件由终端设备传输到边缘云端。
3.根据权利要求2所述的一种适合无线自组织网络环境的边缘云迁移方法,其特征在于,所述终端设备保存多个所述虚拟机覆盖文件,通过与云端协商选择最适合的一个虚拟机覆盖文件进行传输。
4.根据权利要求2所述的一种适合无线自组织网络环境的边缘云迁移方法,其特征在于,生成所述启动虚拟机的变化数据文件,所述变化数据文件被发送回所述终端设备并合并到所述虚拟机覆盖文件中,用于后续的迁移对话。
5.根据权利要求1所述的一种适合无线自组织网络环境的边缘云迁移方法,其特征在于,所述虚拟机覆盖文件保存在云端,根据终端设备发出的请求,所述虚拟机覆盖文件传输至边缘云端。
6.根据权利要求1所述的一种适合无线自组织网络环境的边缘云迁移方法,其特征在于,识别并删除所述虚拟机覆盖文件的冗余重复数据。
7.根据权利要求6所述的一种适合无线自组织网络环境的边缘云迁移方法,其特征在于,所述冗余重复数据包括磁盘、内存镜像文件内部以及磁盘、内存镜像文件之间的重复。
8.根据权利要求6所述的一种适合无线自组织网络环境的边缘云迁移方法,其特征在于,所述识别并删除所述虚拟机覆盖文件的冗余重复数据的具体方法包括:识别在创建启动虚拟机的过程中发生修改的磁盘和内存数据块,查找其中独特的数据块并将其与所述基本虚拟机中相应的数据块进行比较得到增量块。
9.根据权利要求8所述的一种适合无线自组织网络环境的边缘云迁移方法,其特征在于,所述数据块粒度为4KB。
10.根据权利要求1或权利要求6所述的一种适合无线自组织网络环境的边缘云迁移方法,其特征在于,所述生成虚拟机覆盖文件包括,识别并消除应用层的与虚拟机底层的语义差异对所述虚拟机覆盖文件大小的影响。
11.根据权利要求10所述的一种适合无线自组织网络环境的边缘云迁移方法,所述识别并消除应用层的与虚拟机底层的语义差异对所述虚拟机覆盖文件大小的影响,具体方法为识别磁盘和内存的状态修改是否需要保留,并丢弃对用户终端没有实际作用的状态。
12.根据权利要求11所述的一种适合无线自组织网络环境的边缘云迁移方法,所述识别磁盘状态修改是否需要保留的实现方法为:通过终端设备操作系统向主机传送,或采用扫描虚拟磁盘上文件系统内容的方式,将来自所述终端设备操作系统的可用磁盘块信息通知所述主机。
13.根据权利要求11所述的一种适合无线自组织网络环境的边缘云迁移方法,所述识别内存的状态修改是否需要保留是通过解释终端设备操作系统维护的内存布局数据结构获得可用内存页面的列表实现的。
14.根据权利要求1所述的一种适合无线自组织网络环境的边缘云迁移方法,其特征在于,所述虚拟机覆盖文件进行分段且每一个段独立依次进行传输、解压缩、与基本虚拟机合成的综合操作。
15.根据权利要求14所述的一种适合无线自组织网络环境的边缘云迁移方法,其特征在于,所述每一个段的传输、解压缩、与基本虚拟机合成的综合操作与下一个段的传输、解压缩、与基本虚拟机合成的综合操作是错位并行进行的。
16.根据权利要求15所述的一种适合无线自组织网络环境的边缘云迁移方法,所述虚拟机覆盖文件一个段传输完成后立即开始解压缩,同时所述虚拟机覆盖文件下一个段进行传输。
17.根据权利要求16所述的一种适合无线自组织网络环境的边缘云迁移方法,所述虚拟机覆盖文件的每一个段完成传输、解压缩、与基本虚拟机合成的综合操作后,生成所述启动虚拟机。
18.一种无线自组织网络环境中边缘云迁移系统,包括终端设备、边缘云端以及云端,其特征在于,终端设备具有虚拟机覆盖文件生成模块,根据基本虚拟机镜像和启动虚拟机镜像之间的压缩二进制数据的差异生成虚拟机覆盖文件,虚拟机覆盖文件无线传输至边缘云端;边缘云端具有虚拟机合成模块,利用预存的基本虚拟机和接收到的所述虚拟机覆盖文件创建启动虚拟机。
19.根据权利要求18所述的一种无线自组织网络环境中边缘云迁移系统,其特征在于,所述终端设备具有冗余重复数据删除模块,识别在创建启动虚拟机的过程中发生修改的磁盘和内存数据块,查找其中独特的数据块并将其与所述基本虚拟机中相应的数据块进行比较得到增量块;所述终端设备具有语义差异消除模块,识别磁盘和内存的状态修改是否需要保留,并丢弃对用户终端没有实际作用的状态。
20.根据权利要求19所述的一种无线自组织网络环境中边缘云迁移系统,其特征在于,具有并行传输合成模块,将所述虚拟机覆盖文件进行分段,每一个段独立依次进行传输、解压缩、与基本虚拟机合成,一个段传输完成后立即开始解压缩,同时所述虚拟机覆盖文件下一个段进行传输,每一个段的传输、解压缩、与基本虚拟机合成的综合操作与下一个段的传输、解压缩、与基本虚拟机合成的综合操作错位并行进行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111516045.0A CN114465877A (zh) | 2021-12-13 | 2021-12-13 | 一种适合无线自组织网络环境的边缘云迁移方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111516045.0A CN114465877A (zh) | 2021-12-13 | 2021-12-13 | 一种适合无线自组织网络环境的边缘云迁移方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114465877A true CN114465877A (zh) | 2022-05-10 |
Family
ID=81406293
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111516045.0A Pending CN114465877A (zh) | 2021-12-13 | 2021-12-13 | 一种适合无线自组织网络环境的边缘云迁移方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114465877A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11689625B1 (en) * | 2022-04-25 | 2023-06-27 | Rovi Guides, Inc. | Systems and methods for fast start of applications in a cloud computing environment |
CN116595384A (zh) * | 2023-07-14 | 2023-08-15 | 支付宝(杭州)信息技术有限公司 | 模型训练方法及装置 |
-
2021
- 2021-12-13 CN CN202111516045.0A patent/CN114465877A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11689625B1 (en) * | 2022-04-25 | 2023-06-27 | Rovi Guides, Inc. | Systems and methods for fast start of applications in a cloud computing environment |
CN116595384A (zh) * | 2023-07-14 | 2023-08-15 | 支付宝(杭州)信息技术有限公司 | 模型训练方法及装置 |
CN116595384B (zh) * | 2023-07-14 | 2023-11-24 | 支付宝(杭州)信息技术有限公司 | 模型训练方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Ma et al. | Efficient live migration of edge services leveraging container layered storage | |
US11327799B2 (en) | Dynamic allocation of worker nodes for distributed replication | |
US20190243702A1 (en) | Tracking status and restarting distributed replication | |
US8527990B1 (en) | Systems and methods for migrating virtual machines | |
US11093148B1 (en) | Accelerated volumes | |
JP5657121B2 (ja) | 仮想マシンのオンデマンド型イメージ・ストリーミング | |
US8671256B2 (en) | Migrating contents of a memory on a virtual machine | |
US8694990B2 (en) | Utilizing system configuration information to determine a data migration order | |
WO2019173098A1 (en) | Live migration of virtual machines in distributed computing systems | |
US8661211B2 (en) | Method for migrating contents of a memory on a virtual machine | |
US9720719B2 (en) | Method and system for optimizing virtual disk provisioning | |
US20100138827A1 (en) | Hashing storage images of a virtual machine | |
CN114465877A (zh) | 一种适合无线自组织网络环境的边缘云迁移方法和系统 | |
US8082411B1 (en) | Method and system for logical unit substitution | |
US10628070B2 (en) | Selecting and compressing target files to obtain additional free data storage space to perform an operation in a virtual machine | |
CN112363795B (zh) | 一种网络安全实训平台虚拟机快速启动方法与系统 | |
CN107368358A (zh) | 实现客户端所在虚拟机在不同主机间迁移的装置和方法 | |
CN102255866A (zh) | 一种数据下载方法及装置 | |
US11599385B2 (en) | System and method for distribution of dependent builds across orchestration job scheduler slaves | |
WO2021169397A1 (zh) | 镜像存储、下载方法、设备以及系统 | |
CN111124286A (zh) | 一种基于Libcloud的多云管理实现方法 | |
US9804878B2 (en) | Using a status indicator for a merge operation for writing data associated with a virtual machine | |
CN114461334A (zh) | 一种适合无线自组网中的边缘云迁移数据处理方法 | |
CN111898122B (zh) | 容器内应用的日志采集方法、装置、介质及电子设备 | |
US20090063752A1 (en) | Utilizing data access patterns to determine a data migration order |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |