首页> 中国专利> 在NDN下基于双向管道方式实现虚拟机在线迁移的方法

在NDN下基于双向管道方式实现虚拟机在线迁移的方法

摘要

本发明涉及一种在NDN下基于双向管道方式实现虚拟机在线迁移的方法,包括以下步骤:(1)NDN中名字空间设计步骤:定义用于命名数据包的三个名字空间;(2)双向管道通信步骤:数据请求方和数据发送方之间通过双向管道通信数据包;双向管道通信步骤包括逆序和丢包处理:设置用于保存因逆序提前到达或者提前产生的Data的缓存区,同时采用超时重传机制来重新获取Data,当超时多次,则采用分包的方式重新请求;(3)性能测试步骤。与现有技术相比,本发明实现了在NDN网络下的局域网和广域网的虚拟机在线迁移,使虚拟机上的应用在虚拟机迁移的过程中保持不断,实现虚拟机的无缝迁移,并通过动态自适应机制保证迁移完成之后网络畅通。

著录项

  • 公开/公告号CN104754033A

    专利类型发明专利

  • 公开/公告日2015-07-01

    原文格式PDF

  • 申请/专利权人 同济大学;

    申请/专利号CN201510093108.4

  • 发明设计人 张大陆;周德江;金翔;

    申请日2015-03-02

  • 分类号

  • 代理机构上海科盛知识产权代理有限公司;

  • 代理人叶敏华

  • 地址 200092 上海市杨浦区四平路1239号

  • 入库时间 2023-12-18 09:43:13

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-04-17

    授权

    授权

  • 2015-07-29

    实质审查的生效 IPC(主分类):H04L29/08 申请日:20150302

    实质审查的生效

  • 2015-07-01

    公开

    公开

说明书

技术领域

本发明涉及网络通信技术领域和云计算技术领域,尤其是涉及一种在NDN (Named Data Networking,命名数据网络)下基于双向管道(pipeline)方式实现虚拟 机在线迁移的方法。

背景技术

随着网络的发展,TCP/IP结构出现了越来越多的限制,包括可扩展性、稳定 性、安全性和移动性。这些缺点导致了学术界开始了对未来网络的研究。FIA-NP 目前主要有三个项目MobilityFirst-NP、Named Data Networking-NP、eXpressive  Internet Architecture(XIA)。其中,NDN的核心理念在于网络关注的不是位置 (Where),而是数据(What),这种转变不仅极大地提高了网络的灵活性、可扩展 性和移动性,而且内置的安全性策略也提高了网络及其应用的安全性。

作为面向数据网络的代表,NDN现已在全球范围内展开了研究并进行了测试 平台的部署。目前NDN的研究已进入下一阶段,主要致力于NDN应用的设计、 安全性、路由和转发策略、可伸缩的转发、库和工具的开发、社会和经济影响等方 面。NDN只包含两种数据包Interest和Data,是以接收方驱动的网络,称NDN中 数据请求方为consumer,称数据发送方为producer,因此,NDN是一种通过consumer 发送Interest向producer请求Data进行通信的网络架构。为了接收数据时,一个 consumer发出一个Interest报文,该Interest报文携带一个名字,由名字标识期望 的数据。NDN节点接受到该Interest报文后,会记录Interest报文进入节点的接口, 然后通过基于命名的路由转发协议将其转发。一旦Interest报文达到拥有被请求数 据的一个节点,则发回一条Data报文,它携带数据的名字和内容,还有生产者密 钥的一个签名。这条Data报文经Interest报文所产生的反向路径到达consumer。

随着计算机技术的飞速发展,云计算顺应时代要求登上了历史舞台。虚拟机 迁移是云计算技术中虚拟化和高效分配资源的重要技术之一。虚拟机迁移分为在线 迁移和离线迁移,在线迁移因为其能够保证迁移过程中不中断而成为虚拟机迁移的 主要研究点。未来网络中虚拟机也是必须的,因为虚拟机不仅有利于主机资源的高 效利用,而且对于用户的隔离也有着重要的作用。而虚拟机迁移有利于负载均衡、 灾难备份以及用户就近等方面的网络性能优化策略。因此,虚拟机在线迁移也是必 需的。

在未来网络方面,虚拟机在线迁移也已经有了一些研究,但是仍然存在一些 问题,比如迁移总时间和停机时间比较长。

发明内容

本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种在NDN下 基于双向管道方式实现虚拟机在线迁移的方法,对于NDN通信模型的研究以及对 于虚拟机在线迁移在未来网络中的研究都有着重要的推动作用。

本发明的目的可以通过以下技术方案来实现:

一种在NDN下基于双向管道方式实现虚拟机在线迁移的方法,包括以下步骤:

(1)NDN中名字空间设计步骤:构建NDN进行数据迁移,NDN中数据包 分为Interest和Data,定义用于命名数据包的三个名字空间:

第一名字空间,用于标识迁移过程中的数据包;

第二名字空间,用于标识迁移结束的最后一个数据包;

第三名字空间,数据迁移过程中因数据包过大而丢包时,将该数据包分成若 干个后,用第三名字空间进行标识;

(2)双向管道通信步骤:数据请求方和数据发送方之间通过双向管道通信数 据包,具体为:数据请求方以管道的方式向数据发送方发送Interest,数据发送方 接收后产生对应的Data,并以管道的方式向数据请求方发送Data,数据请求方接 收到返回的Data后产生新的Interest,数据迁移过程中的数据包以第一名字空间进 行命名,当以第二名字空间命名的数据包传输结束后,数据迁移结束;

双向管道通信步骤包括逆序和丢包处理,逆序的处理为在数据请求方和数据 发送方分别设置一个用于保存因逆序提前到达或者提前产生的Data的缓存区,丢 包的处理为采用超时重传机制来重新获取Data,当超时Q次后,采用分包的方式 将Interest分成若干个小数据块的Interest来请求该Data,分包后的数据包以第三 名字空间命名,Q为超时次数阈值;

(3)性能测试步骤:在虚拟机中运行以与位置无关的名字为前缀的应用,通 过访问该应用验证虚拟机迁移的在线性,同时使用NDN的ping程序测量虚拟机的 停机时间。

所述第一名字空间的格式为/ndn/location/vm/migration/live/version/data /sequence,其中,/ndn为NDN中名字空间所共有的root组件,/location表示数据 发送方所在的设备或者网关的名字,/vm表明该名字属于与虚拟机相关的名字, /migration表明该名字是迁移应用所使用的名字,/live表明该名字是在线迁移, /version表明该在线迁移名字空间的版本号,/data表明该名字是标识迁移数据的名 字,/sequence表明迁移数据的序号,用于唯一标识不同的虚拟机在线迁移的数据 块。

所述第二名字空间的格式为/ndn/location/vm/migration/live/version/data/end/last, 其中,/end表明迁移数据已经结束,/last标识迁移数据块的最后一个序号,且 sequence的数值不大于last的数值。

所述第三名字空间的格式为/ndn/location/vm/migration/live/version/data /sequence/frag/nums/seq,其中,/frag表明该名字是一个分包的名字,/nums的组件表明 一个数据包被分成了几个,/seq表明该名字分包的序号。

所述双向管道通信数据包包括两个阶段:启动阶段和稳定阶段;

启动阶段:数据请求方初始发送2N个Interest,数据发送方产生并返回N个 data;

稳定阶段:数据请求方接收一个Data同时产生一个新的Interest;

启动阶段后进入稳定阶段,稳定阶段时,Data和Interest的传输构成两条相反 的管道,形成一个数据流环,其中,N=BD/L,N为网络中正在传输的Data的最大 个数,B是网络带宽,D是网络延迟,L是Data的长度。

所述缓冲区中缓存数组的长度Len由网络中正在传输的Data的最大个数N、 超时次数阈值Q、超时时间T以及网络延迟D决定。

所述逆序的处理具体为:数据请求方中设置第一Data缓冲区,用于保存提前 到达的Data,数据发送方中设置第二Data缓冲区,用于保存提前产生的Data,数 据请求方将收到的正确序号的Data连同其后缓存的提前到达的Data同时写入到虚 拟机。

性能测试步骤中,使用NDN的ping程序每隔Pms发送Interest向虚拟机请求 Data响应,根据停机过程中ping程序中丢包数M,获得虚拟机在线迁移的停机时 间,停机时间的数值范围为[(M-1)×P,(M+1)×P]ms,误差范围为±Pms,其中,P≥300。

与现有技术相比,本发明提出了NDN名字的设计、双向管道的通信模型、以 及对逆序和丢包的处理方法,具有以下优点:

1)NDN中名字的设计是一个关键的问题,本发明基于NDN的构架,针对名 字空间进行设计,提出了三种情况下的名字空间,分别用于标识迁移数据过程中、 迁移的结束时和丢包过多时的数据包,保证虚拟机在线迁移在NDN下的可行性, 具有NDN网络通信的安全性、方便性。

2)建立双向管道的通信模型,将网络看成一个缓冲区,Interest和Data构成 一个环,保证在consumer和producer中一直有数据包处理。与现有的NDN下虚 拟机在线迁移研究相比,提高了在线迁移的速率,减少在线迁移的迁移总时间。

3)针对实际在线迁移过程中存在的逆序和丢包问题,设置用于保存因逆序提 前到达或者提前产生的Data的缓存区,从而解决逆序,同时丢包次数较少时采用 超时重传机制,但是若多次超时重传仍然丢包时,则将一个请求大数据块的Interest 分成若干个请求小数据块的Interest,从减小数据块大小的角度,解决丢包过多时 的问题,保证在线迁移的稳定性、数据传输的可靠性。

4)提出评价本发明虚拟机在线迁移方法性能的方法,在虚拟机中运行以与位 置无关的名字为前缀的应用,其中与位置无关的名字具有很好的通用性,从不同的 测试端均可以访问到虚拟机的该应用,便于通过访问该应用验证虚拟机迁移的在线 性,同时使用NDN的ping程序测量虚拟机的停机时间,可以用于在实验中进行对 比实验验证等,在实验室理想环境和真实网络环境下对NDN与TCP/IP下的虚拟 机在线迁移的性能比较,可以证实TCP/IP下无法内在地支持虚拟机的在线迁移, 但是NDN可以内在的支持虚拟机的在线迁移。同时,NDN的total time小于TCP/IP 的total time,表明NDN下的迁移程序就丢包、延迟、逆序等方面的处理上性能要 好于TCP/IP。

5)采用本发明方法在局域网和广域网中都可以实现虚拟机的在线迁移,适用 范围广,使虚拟机上的应用在虚拟机迁移的过程中保持不断,实现虚拟机的无缝迁 移,并通过动态自适应机制保证迁移完成之后网络畅通。

附图说明

图1为本发明双向管道的通信模型示意图;

图2为理想环境下的虚拟机在线迁移实验测试床示意图;

图3为真实环境下的虚拟机在线迁移实验测试床示意图。

图中:HOST_A为源宿主主机,HOST_B为目的宿主主机,HOST_VM为待 迁移的虚拟机。

具体实施方式

下面结合附图和具体实施例对本发明进行详细说明。本实施例以本发明技术 方案为前提进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护 范围不限于下述的实施例。

一种在NDN下基于双向管道方式实现虚拟机在线迁移的方法包括以下步骤:

(1)NDN中名字空间设计步骤:构建NDN进行数据迁移,NDN中数据包 分为Interest和Data,而NDN中名字是独立于NDN转发程序(NFD)但却相当重 要的组成部分,因此虚拟机在线迁移过程中,定义用于命名数据包的三个名字空间:

第一名字空间,用于标识迁移过程中的数据包;

第二名字空间,用于标识迁移结束的最后一个数据包;

第三名字空间,数据迁移过程中因数据包过大而丢包时,将该数据包分成若 干个后,用第三名字空间进行标识;具体每个名字空间中组件的设置如下:

第一名字空间的格式为/ndn/location/vm/migration/live/version/data/sequence, 其中,/ndn为NDN中名字空间所共有的root组件,/location表示数据发送方所在 的设备或者网关的名字,/vm表明该名字属于与虚拟机相关的名字,/migration表 明该名字是迁移应用所使用的名字,/live表明该名字是在线迁移,/version表明该 在线迁移名字空间的版本号,/data表明该名字是标识迁移数据的名字,/sequence 表明迁移数据的序号,用于唯一标识不同的虚拟机在线迁移的数据块。

第二名字空间的格式为/ndn/location/vm/migration/live/version/data/end/last,其 中,/end表明迁移数据已经结束,/last标识迁移数据块的最后一个序号,且sequence 的数值不大于last的数值。

第三名字空间的格式为/ndn/location/vm/migration/live/version/data/sequence /frag/nums/seq,其中,/frag表明该名字是一个分包的名字,/nums的组件表明一个数据 包被分成了几个,/seq表明该名字分包的序号。

(2)双向管道通信步骤:数据请求方(consumer)和数据发送方(producer) 之间通过双向管道通信数据包,双向管道通信是指:数据请求方以管道的方式连续 向数据发送方发送Interest,数据发送方接收后产生对应的Data,并以管道的方式 连续向数据请求方发送Data,数据请求方接收到返回的Data后产生新的Interest, 在双向管道通信时,数据迁移过程中的数据包以第一名字空间进行命名,当以第二 名字空间命名的数据包传输结束后,数据迁移结束。

双向管道通信数据包包括两个阶段:启动阶段和稳定阶段;

启动阶段:数据请求方初始发送2N个Interest,数据发送方产生并返回N个 data;

稳定阶段:数据请求方接收一个Data同时产生一个新的Interest,当且仅当 Consumer不断地发送Interest,producer不断地产生Data,虚拟机在线迁移才能以 一个较快的速度进行传输。

迁移开始后由启动阶段后进入稳定阶段,稳定阶段时,Data和Interest的传输 构成两条相反的管道,形成一个数据流环,则这种双向的管道模型使得迁移数据能 够不断地从producer发送到consumer。其中,N=BD/L,N为网络中正在传输的 Data的最大个数,B是网络带宽,D是网络延迟,L是Data的长度。双向管道的 通信模型如图1所示,虚线表示当前正在进行的步骤,实线表示已完成的步骤,可 分为以下步骤:

步骤S1:consumer初始发送2N个Interest;

步骤S2:producer接收Interest后连续产生x个Data,x<N;

步骤S3:producer产生并返回N个Data,consumer接收Data并产生新的Interest;

步骤S4:重复步骤S2、S3,由启动阶段过渡到稳定阶段,consumer接收一个 Data同时产生一个新的Interest,X表示producer当前处理结束的Data的序号。

双向管道通信步骤包括逆序和丢包处理,逆序的处理为在数据请求方和数据 发送方分别设置一个用于保存因逆序提前到达或者提前产生的Data的缓存区。具 体为:数据请求方中设置第一Data缓冲区,用于保存因逆序而提前到达的Data, 数据发送方中设置第二Data缓冲区,用于保存因逆序而提前产生的Data,数据请 求方将收到的正确序号的Data连同其后缓存的提前到达的Data同时写入到虚拟机。

丢包的处理为采用超时重传机制来重新获取Data,当超时Q次后,采用分包 的方式将Interest分成若干个小数据块的Interest来请求该Data,则对应Data会相 应的被分成若干个小数据块的Data进行返回,分包后的数据包以第三名字空间命 名,Q为超时次数阈值。

缓冲区中缓存数组的长度Len由网络中正在传输的Data的最大个数N、超时 次数阈值Q、超时时间T(超时重传机制的预设值)以及网络延迟D决定。极限 情况下,当序号为X的Data一直没有收到,但是序号X之后的Data总是能够收 到,此时必须等待超时Q次之后,X对应的Data被分成若干个小的Data进行传输, consumer才能够取回Data。因此,Len必须大于,即。

(3)性能测试步骤:NDN使用名字作为标识符,与位置无关,因此,当虚 拟机迁移到新的位置的时候,使用以与位置无关的名字为前缀可以保证迁移结束后 通信可以自然地恢复。在虚拟机中运行以与位置无关的名字为前缀(例如采用广播 名字前缀作为一种通用的名字前缀)的应用,通过访问该应用验证虚拟机迁移的在 线性,同时使用NDN的ping程序每隔Pms发送Interest向虚拟机请求Data响应, 根据停机过程中ping程序中丢包数M,获得虚拟机在线迁移的停机时间,停机时 间的数值范围为[(M-1)×P,(M+1)×P]ms,误差范围为±Pms,其中,P≥300,实验 测试中,分别对P=200ms、250ms、300ms的三种情况进行测试,发现P=200ms、 250ms时,因发包速率太快而不能测出M,而P=300ms时,测出的M能够较准确 地反应丢包情况,一般情况下P越小越好,但是考虑到实际测试结果,所以P可 选取大于等于300,同时P=300ms时为最优选择。

本发明实验分成两个部分:理想环境(局域网)下的虚拟机在线迁移和真实网 络环境(广域网)下的虚拟机在线迁移,图2为理想环境下的虚拟机在线迁移实验 测试床,图3为真实环境下的虚拟机在线迁移实验测试床。

第一部分理想环境的具体实施过程如下所示:

步骤一:运行源宿主主机HOST_A和目的宿主主机HOST_B的NDN转发例 程NFD。具体命令为:nfd-start。在HOST_B注册FIB表项,具体命令为:nfdc register /ndn/cn/edu/tongji/vm udp4://10.0.2.1;

步骤二:在源宿主主机HOST_A上启动虚拟机HOST_VM,启动参数为:-m 640 -smp 1-drive file=/var/lib/libvirt/images/ubuntu.img,if=virtio,format=raw-net  nic,vlan=0,macaddr=52:54:00:6d:82:f9-net tap,vlan=0,ifname=tap0,script=no,其中, /var/lib/libvirt/images/ubuntu.img的大小是4G;

步骤三:在HOST_VM中启动虚拟机中的响应回显请求的服务ndnpingserver, 具体命令为:ndnpingserver/ndn/broadcast/tongji/hostVM。在HOST_A上启动NDN 的ping客户端,具体命令为:ndnping–i 300/ndn/broadcast/tongji/hostVM。

步骤四:在目的主机HOST_B上启动虚拟机HOST_VM在线迁移的接收进程, 启动方式为在步骤二中源宿主主机HOST_A启动虚拟机的启动参数后增加 QEMU-KVM的exec方式接收迁移数据的进程:-incoming testconsumer,其中 testconsumer为迁移数据接收进程。

步骤五:在源宿主主机HOST_A的QEMU的控制窗口中输入迁移的启动命令, 命令为:migrate–b exec:testproducer,其中参数表明迁移方式为块迁移, testproducer为迁移数据发送进程名。

步骤六:迁移结束之后,查看源宿主主机HOST_A的用于性能测试的Ping客 户端是否仍然可以继续运行,并且查看在停机过程中接收到的响应包和发送的请求 包的时间差。

第二部分真实环境的具体实施过程除了步骤一与上述理想环境不同,其余步骤 都相同,真实环境中以同济大学(Tongji University)与美国韦恩州立大学(Wayne  State University,WSU)之间虚拟机在线迁移为例,真实环境的具体实施过程的步 骤一如下:

步骤一:运行源宿主主机HOST_A和目的宿主主机HOST_B的NDN转发例 程NFD。具体命令为:nfd-start。在HOST_A注册FIB表项,具体命令为:nfdc register /ndn udp4://10.0.2.2。在HOST_B注册FIB表项,具体命令为:nfdc register/ndn  udp4://192.168.0.1。在Tongji testbed node上注册FIB表项,具体命令为:nfdc register /ndn/cn/edu/tongji/vm/migration udp4://10.0.2.1。在WSU gateway上注册FIB表项, 具体命令为:nfdc register/ndn/cn/edu/tongji udp4://202.120.188.176。

同时对在实验室理想环境和真实网络环境下(与上述本发明方法的实验环境相 同)TCP/IP下的虚拟机在线迁移的性能进行测试,其中实验室理想环境TCP/IP下 的虚拟机在线迁移采用UDP通信技术,真实网络环境TCP/IP下的虚拟机在线迁移 采用TCP通信技术,最后得到理想环境下和真实环境下NDN与TCP/IP下的虚拟 机在线迁移的总时间Total time和停机时间Downtime数值对比表格,如表1、表2。 表1理想环境下NDN与TCP/IP下的虚拟机在线迁移的Total time和Downtime

网络架构 Total time Downtime NDN 6min34sec 0.9sec

TCP/IP 6min24sec 0.9sec

表2真实环境下NDN与TCP/IP下的虚拟机在线迁移的Total time和Downtime

网络架构 Total time Downtime NDN 7min21sec 1.5sec TCP/IP 10min10sec NP

注:NP表示无测量结果。

表1可以发现,NDN下的虚拟机在线迁移的总时间接近于TCP/IP下的迁移的 总时间,两者停机时间相同。表2可以发现,在TCP/IP下无法内在地支持虚拟机 的在线迁移,但是NDN可以内在地支持虚拟机的在线迁移。同时,NDN的total time 小于TCP/IP的total time。通过实验表明NDN下的迁移程序就丢包、延迟、逆序 等方面的处理上性能要好于TCP/IP。综上,本发明完成了在未来网络架构NDN下 的虚拟机在线迁移及其性能的测量,并通过对比实验验证了本发明的可行性和优点, 是面向数据网络中在线迁移的一次重要探索。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号