CN103546556B - 一种在未来网络xia中虚拟机在线迁移方法 - Google Patents

一种在未来网络xia中虚拟机在线迁移方法 Download PDF

Info

Publication number
CN103546556B
CN103546556B CN201310496753.1A CN201310496753A CN103546556B CN 103546556 B CN103546556 B CN 103546556B CN 201310496753 A CN201310496753 A CN 201310496753A CN 103546556 B CN103546556 B CN 103546556B
Authority
CN
China
Prior art keywords
virtual machine
host
main frame
migration
xia
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.)
Expired - Fee Related
Application number
CN201310496753.1A
Other languages
English (en)
Other versions
CN103546556A (zh
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.)
Tongji University
Original Assignee
Tongji University
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 Tongji University filed Critical Tongji University
Priority to CN201310496753.1A priority Critical patent/CN103546556B/zh
Publication of CN103546556A publication Critical patent/CN103546556A/zh
Application granted granted Critical
Publication of CN103546556B publication Critical patent/CN103546556B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明涉及一种在未来网络XIA中虚拟机在线迁移方法,包括以下步骤:(1)虚拟机迁移发送过程,发送方主机将虚拟机的迁移数据写入到标准I/O流中,同时发送数据流和控制流;(2)虚拟机迁移接收过程,接收方主机接收发送方主机发送的数据流并写入到标准I/O流中,以此加载和运行虚拟机;(3)性能测试过程,在单个自治域和跨自治域的条件下,客户端主机通过XIA网络访问虚拟机中的服务,验证所进行的迁移过程是否为在线的;同时在迁移过程中还访问发送方主机提供的其它服务,验证发送方主机的服务性能是否受到影响。与现有技术相比,本发明具有实现虚拟机的在线无缝迁移,以及在迁移完成之后保证网络畅通的动态自适应运行机制等优点。

Description

一种在未来网络XIA中虚拟机在线迁移方法
技术领域
本发明涉及云计算技术领域和网络通信技术领域,尤其是涉及一种在未来网络XIA中虚拟机在线迁移方法。
背景技术
随着网络互联网的不断发展,IP网络体现出的问题日益为社会所关注。学术界和工业界都为研究未来网络的体系架构进行了大量的尝试,主要思路包括:(1)在原有的TCP/IP网络上进行修改和完善;(2)彻底抛弃现有的TCP/IP网络架构,建立全新的网络体系。而第二种clean slate的观点更是成为了研究的重中之重。
在NSF(National Science Foundation)资助的FIA(Future InternetArchitecture)项目中,XIA(eXpressive Internet Architecture)是较为典型并且目前较为完善的一个。一方面,在XIA体系中,网络中寻址不再使用IP,而是针对不同类型的principal,设置相应的XID(如针对主机的HID、针对内容的CID、针对服务的SID等),用户可以通过访问对应的XID进行相应的工作。XIA网络的寻址机制也更加灵活,所使用到的地址是以DAG的方式表示的,当目的节点不可达时,可以通过访问DAG中的fallback路径来完成。另一方面,由于内容和服务等的地址(分别为CID和HID)是通过Hash的方式得到的,这样的机制内在地实现了安全性能。
虚拟化技术是云计算中的关键技术之一,而在数据中心和集群中,通过虚拟机的迁移技术,可以有效地完成负载均衡、主机维护和电量管理等,因而在云计算和大数据时代虚拟机迁移技术的实用价值越来越明显。
虚拟机迁移主要分为离线迁移和在线迁移,其中离线迁移就是将虚拟机在关机状态下从一台主机迁移到另一台主机,在停机时间段内用户主机无法访问虚拟机的服务;在线迁移指的是在虚拟机迁移的同时,还要保证虚拟机上运行的服务不会中断,同时宿主机中运行的服务也不因虚拟机迁移而产生较大影响。因此虚拟机的在线迁移更适用于对虚拟机服务要求较高的场合中。
在线迁移又主要可以分为共享存储的迁移和块迁移。共享存储的方式,即迁移的源主机和目的主机上的VM共用一个可通过网络获取的存储器,如SAN或NAS,迁移时只需迁移虚拟机的CPU状态和内存信息即可;块迁移方式则需要将整个虚拟机进行完整的迁移,包括虚拟磁盘上的内容。
目前,对未来网络的研究往往是对体系的设计和基于某种架构的应用开发。然而,基于未来网络架构实现虚拟机的迁移却是一个研究上的空白。
发明内容
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种在未来网络XIA中虚拟机在线迁移方法。
本发明的目的可以通过以下技术方案来实现:
一种在未来网络XIA中虚拟机在线迁移方法,其特征在于,包括以下步骤:
(1)虚拟机迁移发送过程,发送方主机将虚拟机的迁移数据写入到标准I/O流中,同时发送数据流和控制流;
(2)虚拟机迁移接收过程,接收方主机接收发送方主机发送的数据流并写入到标准I/O流中,以此加载和运行虚拟机;
(3)性能测试过程,在单个自治域和跨自治域的条件下,客户端主机通过XIA网络访问虚拟机中的服务,验证所进行的迁移过程是否为在线的;同时在迁移过程中还访问发送方主机提供的其它服务,验证发送方主机的服务性能是否受到影响。
所述的发送方主机将虚拟机的迁移数据通过QEMU-KVM的exec方式写入到标准I/O流中,同时以CHUNK方式来发送数据流,以STREAM方式发送控制流;接收方主机通过从CHUNK块中读取数据流。
由于CHUNK方式传输的特殊过程,接收方主机需要根据发送方主机提供的CID(Content ID)向发送方主机提出数据请求;
在每轮请求中,接收方主机通过先将请求到的数据在本地缓存,在遇到有相同的CID时,不发送请求,而直接读取本地数据。可以有效地解决相同CID无法被请求的问题;同时,还能有效的减少请求次数,提高数据传输效率。
还包括迁移之后的虚拟机本地动态自适应的运行机制,具体为:
对于同一个AD域中,当迁移完成时,进行路由修改;
对于多个不同AD域中,迁移完成时,进行路由修改。
一方面虚拟机从发送方主机(以下称之为HOST_A)迁移到另一台接收方主机上(以下称之为HOST_B),虚拟机里面的运行状态和网络状态都会被保持,因此原来的到HOST_A的路由表项也被保留下来;另一方面HOST_A上到虚拟机VM的路由表项也因为没有收到任何修改的消息而被保持,这样迁移结束之后,HOST_A与VM之间无法互相xping通。在同一个AD中,当迁移完成时,需要同时删除掉HOST_A上到虚拟机VM的路由项以及VM中到HOST_A的路由项,就能够保证迁移结束之后接收方主机也能正常地访问虚拟机VM中的服务;而在多个AD中,除了上述的两项,虚拟机中的AD_DEFAULT和HID_DEFAULT项也需要修改,原来的AD_DEFAULT和HID_DEFAULT项的下一跳为原AD中路由器的HID(Host ID),此时需要修改为新AD中的路由器的HID。此外,还需要修改与迁移发送方相连的第一个路由器上目的地址为VM的路由项,因为原来该路由器上到VM的表项的下一跳地址为VM的HID,这样路由器会直接将数据包发给处于HOST_A上的虚拟机VM,如果迁移完成之后不加以修改,会使得发往VM的数据包在经过该路由器时转发出错而被丢弃。
对于同一个AD域中,当迁移完成时,进行路由修改具体如下:
1)在发送方主机HOST_A上的迁移数据发送完成之后,发送命令删除HOST_A中目的主机HID为虚拟机的路由项;
2)HOST_A首先将删除命令发送给接收方主机HOST_B,然后由HOST_B转发给虚拟机VM;
3)HOST_B在转发时,设置定时器,每次在转发命令之后等待接收来自虚拟机VM的应答,如果收到返回,则说明VM已经收到删除命令并成功删除到HOST_A的路由项,否则超时后再次转发该命令;
4)虚拟机VM在接收到删除命令时,发送一个应答包,告知HOST_B本虚拟机中目的地址为HOST_A的路由项已经被删除。
对于多个不同AD域中,迁移完成时,进行路由修改具体为:
1)在发送方主机HOST_A上的迁移数据发送完成之后,发送命令删除HOST_A中目的主机HID为虚拟机的路由项;
2)HOST_A首先将删除命令发送给接收方主机HOST_B,然后由HOST_B转发给虚拟机VM;
3)HOST_B在转发时,设置定时器,每次在转发命令之后等待接收来自虚拟机VM的应答,如果收到返回,则说明VM已经收到删除命令并成功删除到HOST_A的路由项,否则超时后再次转发该命令;若超过设定的次数限制还未能收到应答,则停止转发该命令,并作出错处理;
4)HOST_B上的虚拟机在经过downtime而继续运行后,一方面在接收到删除命令时,执行相应的删除操作,并发送一个应答包给HOST_B,告知本虚拟机中目的地址为HOST_A的路由项已经被删除;另一方面,由于XIA的特殊机制,会收到来自新AD的路由器的广播包,该数据包中包含了新AD的信息,VM通过比较,将自身的AD_DEFAULT和HID_DEFAULT项的下一跳修改为新AD中的路由器的HID;
5)HOST_A通过获取HOST_B所在的AD标识,并与自身的AD进行比较,若发现二者不同,则发送一条修改命令给本AD的路由器,该路由器收到此命令之后,读取路由表中到HOST_B所在AD的表项,用其下一跳地址以及接口更新目的地址为VM的路由表项。
还包括XIA网络的名字服务自适应地更新,具体为:
XIA网络的名字服务运行在迁移的发送方主机上,当虚拟机在发送方主机运行时,路由表中会动态地添加一项目的地址为HID_NAMESERVER的路由表项,然而虚拟机迁移到接收方主机上后,由于路由表的状态被保持,此项也未被更改,当虚拟机在接收方主机启动后,向名字服务器注册新的DAG信息,等待名字服务器的应答,并启动一个定时器,当定时器超时时,让程序继续运行。
然而此时的路由表中,到HID_NAMESERVER的路由项由于未被修改而变得有误,导致此注册信息无法送达,因此xhcp_client进程会因无法收到应答而阻塞。同时,所述的删除VM中到源主机路由项的命令也因为虚拟机的阻塞而无法被执行,这样就形成了死锁。一种可行的方法是,虚拟机在发送注册信息之后,启动一个定时器,而不是一直阻塞等待名字服务器应答,这样当定时器超时时,让程序继续运行,以避免死锁的产生。
所述的步骤(3)性能测试过程还包括客户端主机通过xping的方式检测网络性能并测量downtime时间,即客户端主机每100ms发送一个xping请求到虚拟机。
由于虚拟机是通过桥接的方式连接到网络中,同时XIA prototype中使用了软件路由器click进行数据包的处理和转发,该机制会导致发往虚拟机VM的数据包在经过桥接器时也会被宿主机的click处理,从而形成了重定向包。重定向的直接后果是每一个发往VM的xping包,都会收到4个应答。本发明中提出通过阻断重定向的功能,能够使得发往虚拟机VM的数据包能够被正确的接收和处理而不会产生重复。
与现有技术相比,本发明具有以下优点:
在未来网络架构XIA下,实现虚拟机的在线无缝迁移,以及在迁移完成之后保证网络畅通的动态自适应运行机制,同时对未来网络及云计算技术的发展都有一定的推动作用。
附图说明
图1为本发明所基于的在同AD下虚拟机迁移的实验平台及相应的硬件配置示意图;
图2为本发明所基于的在多个AD下虚拟机迁移的实验平台及相应的硬件配置示意图;
图3为在XIA下使用CHUNK方式进行迁移时虚拟机数据的流向图。
具体实施方式
下面结合附图和具体实施例对本发明进行详细说明。
实施例1
本发明在未来网络XIA中虚拟机在线迁移方法,其至少包括:
(1)虚拟机迁移发送模块。发送方主机将虚拟机的迁移数据通过QEMU-KVM的exec方式写入到标准I/O流中,同时迁移程序从流中读取数据,并以CHUNK数据块的方式将虚拟机完整地迁移到接收方主机,迁移过程中以STREAM方式传递控制信息;
(2)虚拟机迁移接收模块。接收方主机通过从CHUNK块中读取数据并写入到标准I/O流中,以此来加载和运行虚拟机;
(3)用户评测模块。在单个自治域和跨自治域的条件下,客户端主机通过XIA网络访问虚拟机中的服务,验证所进行的迁移是否是在线的(Live Migration);同时还访问迁移中宿主主机上提供的回显服务,验证宿主机的服务性能是否受到影响。另外,用户还通过xping的方式检测网络性能并测量downtime时间。
本迁移方法包括如下步骤:
步骤一:搭建实验所需的迁移平台,并配置相应的XIA网络(同AD或多个AD);
步骤二:在源宿主机上启动KVM虚拟机;
步骤三:在目的宿主主机上通过KVM的命令启动虚拟机镜像,等待加载迁移数据;
步骤四:在QEMU的终端中输入迁移命令,启动exec方式的块迁移,具体命令为:migrate-b exec:/xia_client_chunk_10,其中xia_client_chunk_10为迁移的发送程序;
步骤五:在VM中启动计算服务(例如CPU密集型的应用——对哥德巴赫猜想的验证,即将每一个偶数分解为两个素数之和),并输出到客户主机HOST_C上;
步骤六:在源宿主机上启动echo_server进程,将从客户端发来的随机字串进行简单处理并返还给客户端;
步骤七:在HOST_C上通过调整xping(XIA中的类似IP网络中ping的程序)的发包间隔为100毫秒,不断地xping虚拟机VM;
步骤八:迁移结束,迁移进程自动触发并完成网络动态自适应的运转机制,保证虚拟机在迁移之后正常与外界主机进行交互;
步骤九:检查HOST_C上请求VM中计算服务的程序是否停止,同时查看xping的丢包情况,估算downtime;
步骤十:以同样的方法,将HOST_B上正在运行的虚拟机再迁移回HOST_A。
上面所述的步骤一的详细实现过程还包括:
1)分别在进行迁移的源宿主主机和目的宿主主机上配置/etc/network/interfaces文件,在该文件中添加br0,并进行相应的桥接配置;
2)启动主机的XIA网络。HOST_A和HOST_C作为host模式启动XIA网络,具体命令为xianet-t-i hosta/hostc start,HOST_B则一方面作为host使用,另一方面提供nameservice服务,命令为xianet-t-n-i hostb start;
3)启动路由器的XIA网络。由于现有的路由器不支持XIA网络,因此XIA下的路由器需要通过多网卡的主机运行软件路由器click来实现。启动路由器的命令为xianet-r-n-irouter start。
在实现上述方法的过程中,本发明还解决了一些相关的技术问题,主要包括:
1)重定向包的问题。在配置网络之后,从HOST_C或HOST_B上xping到VM,会发现每发送一个xping的请求,会收到四个应答包;而HOST_A xping VM时,每次则会收到两个应答。通过在HOST_A的br0、eth0、tap0网卡分别同时开启wireshark抓包,分析每个数据包的流向,同时对照XIA的源码,发现由于XIA架构中使用了click软件路由器,使得host主机也具有了路由器重定向数据包的功能,而事实上,重定向的功能一般是由路由器提供的,作为终端主机不应该具有此功能。每一个发往VM的数据包,在通过桥接br0时,一方面桥接器转发给了tap0网卡,同时由于XIA是基于接口br0启动host模式的,所以click也会收到该数据包,此时HOST_A主机发现该数据包是发往VM的,就产生重定向,但同时也会将数据包转发给VM,于是VM就收到了两个序号相同的xping包,VM处理请求后就会发出对这两个包的应答,即有两个应答包。但是这两个应答包在经过br0时又被HOST_A收到,并产生了重定向,于是最终接收方会收到四个xping的应答。解决的方案为:在配置有桥接的主机上,把XIA的click程序中产生重定向包的地方阻断,即每次当运行到会产生数据包的重定向时,不再执行后续的程序而直接返回。这样就能有效地阻断重定向,使得xping以及其它数据包都能正常地到达虚拟机VM。
2)相同CID的问题。在迁移程序设计中,将每次从流中读取到的数据分成10个CHUNK进行传输,每个CHUNK的大小为10K。在执行迁移时,迁移过程经常会在发送了几个CHUNK之后就停止了,通过打印出接收方收到的每个CHUNK的CID,发现每次迁移停止时HOST_B收到的10个CHUNK的CID中,总会出现有相同的CID,究其原因是需要发送的数据块分成的10个CHUNK中有相同的CHUNK(如全0),而CID是通过Hash得到的,这样就会导致相同的CID产生。XIA在设计时没有考虑每次请求的信息中含有相同的CID,因此其处理方法是每次接收方(HOST_B)请求一个CID之后,发送方(HOST_A)就将该CID对应的内容从Hash Table中删除,这样就会导致当遇到相同的CID请求时,就会因找不到对应的CHUNK而出错。一种简单有效的方法即为接收方(HOST_B)每次请求收到数据之后,在写入到I/O流的同时,将CID和相应的CHUNK内容先缓存在本地,当发出下一个CID请求之前,先查看本地缓存,如果能找到相同的CID,就只从本地获取CHUNK内容即可,而无需向数据发送方再发出请求。
3)迁移之后网络状态动态自适应机制问题。虚拟机迁移的一个重要特征就是,迁移完成之后的虚拟机状态应当与在源宿主机上时的最后状态一致。这样,虚拟机从宿主主机HOST_A上迁移到另一台主机HOST_B上,虚拟机里面的所有状态都会被保持,包括原来的VM中到HOST_A的路由表项也被保留下来;同时,HOST_A上到虚拟机VM的路由表项也因为没有收到任何修改的消息而被保留下来,这样迁移结束之后,HOST_A与VM之间无法互相xping通。在迁移结束的时候,需要同时删除掉HOST_A上到虚拟机VM的路由项以及VM中到HOST_A的路由项,就能够保证迁移结束之后源宿主主机也能正常访问虚拟机VM中的服务。
4)如何有效删除3)中所述路由表项的问题。在HOST_A上的迁移程序发送数据完成之后,发送***命令删除HOST_A中目的主机HID为虚拟机的路由项即可。然而,在HOST_B上,由于虚拟机从迁移完成到完全启动会需要一定的时间,因此在接收方的接收迁移程序执行完之后不能够直接发送删除路由表的命令给虚拟机VM,否则该数据包会因为虚拟机没有启动而丢失。本方法中提出首先将删除命令发送给新宿主主机HOST_B(因为HOST_B的守护进程xhcp_client一直在监听和处理收到的数据包),然后由HOST_B转发给虚拟机VM;HOST_B在转发时,需要设置定时器,每次转发命令后如果收到应答包,则说明VM已经收到删除命令并成功删除到HOST_A的路由项,否则超时(0.5s)后再次转发该命令,当超时次数大于50次时,无论是否收到应答,都停止转发删除命令。
5)XIA网络的名字服务的自适应更新机制问题。在虚拟机迁移过程中,如果XIA网络的名字服务(nameservice)运行在迁移的源宿主主机上,当虚拟机在源宿主机运行时,路由表中会动态地添加一项目的地址为HID_NAMESERVER的路由表项,然而虚拟机迁移到目的主机上之后,由于路由表的状态被保持,此项也未被更改,当虚拟机在目的主机启动后,其xhcp_client进程会向名字服务注册新的DAG信息,并以阻塞的方式等待名字服务器的应答。然而此时的路由表中,到HID_NAMESERVER的路由表项由于未被修改而变得有误,导致此注册信息无法送达,因此xhcp_client进程会因无法收到应答而阻塞。同时,上所述的删除到源主机路由项的命令也因为虚拟机的阻塞而无法被执行,这样就形成了死锁。本发明提出的一种可行的方法是,虚拟机在发送注册信息之后,启动一个定时器,而不是一直阻塞等待名字服务器应答,这样当定时器超时时,让程序继续运行,以避免死锁的产生。
实施例2
本案例选取在XIA网络的单个AD中,虚拟机采用从源宿主主机HOST_A和目的宿主主机HOST_B,完成之后再迁回HOST_A的过程,同时HOST_C作为客户主机,访问虚拟机和宿主机中提供的服务。具体步骤如下:
1)按照图1所示的拓扑,搭建实验平台,其中HOST_A、HOST_B为两台笔记本,配置i3处理器,8GB内存,并分配8GB的swap分区,ROUTER为插有三张网卡的PC机,配置i3处理器,4GB内存及8GB的swap分区,HOST_C作为客户主机使用,同样配置i3处理器,4GB内存及8GB的swap分区;
2)配置HOST_A和HOST_B上的桥接,使虚拟机在迁移前后都能接入到网络中;
3)在HOST_A上运行KVM的命令及相关参数启动虚拟机,具体参数为:
/usr/local/kvm/bin/qemu-system-x86_64
-m640
-smp1
-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
4)配置XIA网络,具体为HOST_A、HOST_VM、HOST_C运行host模式(xianet-t-ihosta/hostvm/hostc start),HOST_B在运行host的同时还启动nameservice服务(xianet-t-n-i hostb start),使得所有的主机都能将自己的主机名和地址(以DAG表示)注册到nameserver上;ROUTER作为路由器使用,则在启动时运行router模式(xianet-r-n-irouter start);
5)在源主机HOST_A和目的主机HOST_B上配置文件/NAMEFILE中分别输入此次迁移的发送方和接收方的主机名(这里为hosta、hostb);
6)在HOST_B上运行KVM的命令启动虚拟机的镜像以等待加载迁移数据,具体参数为3)中参数添加
-incoming exec:/xia-core/applications/example/xia_server_chunk_10_3,其中xia_server_chunk_10_3为实现的虚拟机迁移的接收端程序;
7)在虚拟机窗口界面按下ctrl+alt+2,打开QEMU的控制台面板,输入启动迁移命令migrate-b exec:/xia-core/applications/example/xia_client_chunk_10_3以开始迁移过程,其中xia_client_chunk_10_3为实现的虚拟机在XIA下迁移的发送程序;
8)在虚拟机VM中启动一个CPU密集型的进程(如通过计算验证哥德巴赫猜想),并在客户主机HOST_C上打印出计算的输出结果;
9)在HOST_A上启动echo_server进程,在HOST_C上启动echo_client,其功能为server将client随机生成的512个字节的字符串经过简单处理后返还给client端;
10)在HOST_C上启动xping,以每100毫秒的时间间隔发送一个xping的请求包(通过在xping的源码中添加定时器机制实现),检测网络畅通情况,同时可以进行估算在虚拟机迁移的停机时间downtime,可以计算出总共的丢包数目为48,因此downtime时间为4.7s-4.9s之间。
11)等待迁移结束,检查迁移之后客户机上的xping连接状态和计算服务的访问情况,并检查路由表是否已修改,包括HOST_VM中目的HID为HOST_A的路由项和HOST_A中目的HID为HOST_VM的路由项。由于迁移程序中添加了迁移完成时即刻修改路由表项的程序,迁移完成之后,所有的主机之间(包括HOST_A、HOST_VM、HOST_B、HOST_C)之间都能xping通。
12)检查完毕之后,在配置文件中输入下一次迁移的源主机和目的主机名,这里由于是要迁回HOST_A,于是分别输入源主机和目的主机为:hostb、hosta。
13)关闭HOST_A上被挂起的虚拟机,重新按照6)中方法打开一个VM镜像等待接收迁移;
14)对于当前已运行在HOST_B上的虚拟机VM,按照7)中的方式输入迁移命令,将该虚拟机重新迁移回HOST_A主机,以模拟在实际应用中虚拟机需要来回地在多个宿主机之间迁移的过程。
15)迁移过程结束,所有主机之间都能保持畅通,虚拟机也能在HOST_A上继续运行,并正常对外进行通信。

Claims (7)

1.一种在未来网络XIA中虚拟机在线迁移方法,其特征在于,包括以下步骤:
(1)虚拟机迁移发送过程,发送方主机将虚拟机的迁移数据写入到标准I/O流中,同时发送数据流和控制流;
(2)虚拟机迁移接收过程,接收方主机接收发送方主机发送的数据流并写入到标准I/O流中,以此加载和运行虚拟机;
(3)性能测试过程,在单个自治域和跨自治域的条件下,客户端主机通过XIA网络访问虚拟机中的服务,验证所进行的迁移过程是否为在线的;同时在迁移过程中还访问发送方主机提供的其它服务,验证发送方主机的服务性能是否受到影响;
所述的发送方主机将虚拟机的迁移数据通过QEMU-KVM的exec方式写入到标准I/O流中,同时以CHUNK方式来发送数据流,以STREAM方式发送控制流;接收方主机通过从CHUNK块中读取数据流。
2.根据权利要求1所述的一种在未来网络XIA中虚拟机在线迁移方法,其特征在于,由于CHUNK方式传输的特殊过程,接收方主机需要根据发送方主机提供的CID向发送方主机提出数据请求;
在每轮请求中,接收方主机通过先将请求到的数据在本地缓存,在遇到有相同的CID时,不发送请求,而直接读取本地数据。
3.根据权利要求1所述的一种在未来网络XIA中虚拟机在线迁移方法,其特征在于,还包括迁移之后的虚拟机本地动态自适应的运行机制,具体为:
对于同一个AD域中,当迁移完成时,进行路由修改;
对于多个不同AD域中,迁移完成时,进行路由修改。
4.根据权利要求3所述的一种在未来网络XIA中虚拟机在线迁移方法,其特征在于,对于同一个AD域中,当迁移完成时,进行路由修改具体如下:
1)在发送方主机HOST_A上的迁移数据发送完成之后,发送命令删除HOST_A中目的主机HID为虚拟机的路由项;
2)HOST_A首先将删除命令发送给接收方主机HOST_B,然后由HOST_B转发给虚拟机VM;
3)HOST_B在转发时,设置定时器,每次在转发命令之后等待接收来自虚拟机VM的应答,如果收到返回,则说明VM已经收到删除命令并成功删除到HOST_A的路由项,否则超时后再次转发该命令;
4)虚拟机VM在接收到删除命令时,发送一个应答包,告知HOST_B本虚拟机中目的地址为HOST_A的路由项已经被删除。
5.根据权利要求3所述的一种在未来网络XIA中虚拟机在线迁移方法,其特征在于,对于多个不同AD域中,迁移完成时,进行路由修改具体为:
1)在发送方主机HOST_A上的迁移数据发送完成之后,发送命令删除HOST_A中目的主机HID为虚拟机的路由项;
2)HOST_A首先将删除命令发送给接收方主机HOST_B,然后由HOST_B转发给虚拟机VM;
3)HOST_B在转发时,设置定时器,每次在转发命令之后等待接收来自虚拟机VM的应答,如果收到返回,则说明VM已经收到删除命令并成功删除到HOST_A的路由项,否则超时后再次转发该命令;若超过设定的次数限制还未能收到应答,则停止转发该命令,并作出错处理;
4)HOST_B上的虚拟机在经过downtime而继续运行后,一方面在接收到删除命令时,执行相应的删除操作,并发送一个应答包给HOST_B,告知本虚拟机中目的地址为HOST_A的路由项已经被删除;另一方面,由于XIA的特殊机制,会收到来自新AD的路由器的广播包,该广播包中包含了新AD的信息,VM通过比较,将自身的AD_DEFAULT和HID_DEFAULT项的下一跳修改为新AD中的路由器的HID;
5)HOST_A通过获取HOST_B所在的AD标识,并与自身的AD进行比较,若发现二者不同,则发送一条修改命令给本AD的路由器,该路由器收到此命令之后,读取路由表中到HOST_B所在AD的表项,用其下一跳地址以及接口更新目的地址为VM的路由表项。
6.根据权利要求3所述的一种在未来网络XIA中虚拟机在线迁移方法,其特征在于,还包括XIA网络的名字服务自适应地更新,具体为:
XIA网络的名字服务运行在迁移的发送方主机上,当虚拟机在发送方主机运行时,路由表中会动态地添加一项目的地址为HID_NAMESERVER的路由表项,然而虚拟机迁移到接收方主机上后,由于路由表的状态被保持,此项也未被更改,当虚拟机在接收方主机启动后,向名字服务器注册新的DAG信息,等待名字服务器的应答,并启动一个定时器,当定时器超时时,让程序继续运行。
7.根据权利要求1所述的一种在未来网络XIA中虚拟机在线迁移方法,其特征在于,所述的步骤(3)性能测试过程还包括客户端主机通过xping的方式检测网络性能并测量downtime时间,即客户端主机每100ms发送一个xping请求到虚拟机。
CN201310496753.1A 2013-10-22 2013-10-22 一种在未来网络xia中虚拟机在线迁移方法 Expired - Fee Related CN103546556B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310496753.1A CN103546556B (zh) 2013-10-22 2013-10-22 一种在未来网络xia中虚拟机在线迁移方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310496753.1A CN103546556B (zh) 2013-10-22 2013-10-22 一种在未来网络xia中虚拟机在线迁移方法

Publications (2)

Publication Number Publication Date
CN103546556A CN103546556A (zh) 2014-01-29
CN103546556B true CN103546556B (zh) 2017-04-05

Family

ID=49969595

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310496753.1A Expired - Fee Related CN103546556B (zh) 2013-10-22 2013-10-22 一种在未来网络xia中虚拟机在线迁移方法

Country Status (1)

Country Link
CN (1) CN103546556B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104184803B (zh) * 2014-08-08 2017-12-15 同济大学 基于dag的自适应完成xia网络中虚拟机在线迁移的方法
CN104754033B (zh) * 2015-03-02 2018-04-17 同济大学 在ndn下基于双向管道方式实现虚拟机在线迁移的方法
WO2017069648A1 (en) * 2015-10-21 2017-04-27 Huawei Technologies Co., Ltd. Distributed cache live migration
CN106973014B (zh) * 2017-01-22 2021-07-30 创新先进技术有限公司 任播路由发布***、方法及电子设备
CN109639705B (zh) * 2018-12-27 2021-08-31 成都国信安信息产业基地有限公司 云平台安全检测方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101465812A (zh) * 2009-01-06 2009-06-24 北京航空航天大学 跨子网在线迁移时虚拟机网络连接重定向方法
CN101609419A (zh) * 2009-06-29 2009-12-23 北京航空航天大学 虚拟机持续在线迁移的数据备份方法及装置
CN102609361A (zh) * 2012-01-16 2012-07-25 北京邮电大学 虚拟机存储数据迁移方法和装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5446040B2 (ja) * 2009-09-28 2014-03-19 日本電気株式会社 コンピュータシステム、及び仮想マシンのマイグレーション方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101465812A (zh) * 2009-01-06 2009-06-24 北京航空航天大学 跨子网在线迁移时虚拟机网络连接重定向方法
CN101609419A (zh) * 2009-06-29 2009-12-23 北京航空航天大学 虚拟机持续在线迁移的数据备份方法及装置
CN102609361A (zh) * 2012-01-16 2012-07-25 北京邮电大学 虚拟机存储数据迁移方法和装置

Also Published As

Publication number Publication date
CN103546556A (zh) 2014-01-29

Similar Documents

Publication Publication Date Title
US10999145B2 (en) Dynamic service device integration
US8423639B2 (en) Switching API
US10341185B2 (en) Dynamic service insertion
JP2022521058A (ja) ゲストvmモビリティを使用したサービスの提供
WO2018228302A1 (zh) 用于虚拟网络链路检测的方法及装置
US20210328854A1 (en) Method and system for sharing state between network elements
JP2017518568A (ja) 仮想化ネットワークスタックをライブ移行するためのシステムおよび方法
CN103546556B (zh) 一种在未来网络xia中虚拟机在线迁移方法
EP2909780A1 (en) Providing a virtual security appliance architecture to a virtual cloud infrastructure
Nobach et al. Statelet-based efficient and seamless NFV state transfer
US11403319B2 (en) High-availability network device database synchronization
CN109587286A (zh) 一种设备接入控制方法及装置
CN113709220B (zh) 虚拟负载均衡器的高可用实现方法、***及电子设备
US11652717B2 (en) Simulation-based cross-cloud connectivity checks
US11252018B2 (en) Service chaining with service path monitoring
Casado et al. Ripcord: A modular platform for data center networking
CN115379018A (zh) 使用数据路径状态复制和中间设备映射进行服务分配的方法和***
US11121960B2 (en) Detecting and managing relocation of network communication endpoints in a distributed computing environment
JP6604336B2 (ja) 情報処理装置、情報処理方法、及び、プログラム
Costa et al. Why should we integrate services, servers, and networking in a data center?
CN106909322B (zh) 一种虚拟化***中支持存储灾备的路由方法及装置
WO2017052589A1 (en) Pre-processing of data packets with network switch application-specific integrated circuit
US11748131B2 (en) Network updates for virtual machine migration
Kohler et al. ZeroSDN: A highly flexible and modular architecture for full-range network control distribution
Guay Dynamic Reconfiguration in Interconnection Networks

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20170405

Termination date: 20191022

CF01 Termination of patent right due to non-payment of annual fee