基于Serval的广域网下虚拟机在线迁移系统
2016-03-22同济大学电子与信息工程学院周德江
同济大学电子与信息工程学院 周德江
基于Serval的广域网下虚拟机在线迁移系统
同济大学电子与信息工程学院周德江
【摘要】随着互联网的不断发展,TCP/IP网络架构暴露出越来越多的问题,优化TCP/IP网络的研究逐渐引起了学术界的关注。普林斯顿大学(Princeton University)提出的Serval网络架构在网络层之上添加一个新的服务控制层来解耦服务层的控制平面和数据平面。在Serval的基础之上,本文提出了一种虚拟机在线迁移通信恢复的方法,保证虚拟机在迁移结束之前已经建立的通信能够正常工作。相对于传统的虚拟机在线迁移通信恢复的方法,该方法更加的简单,方便,并且不会产生额外的开销。
【关键词】网络;Serval架构;虚拟机在线迁移
0 引言
TCP/IP网络奠定了今天Internet的基础,但随着互联网的普及和计算机的大范围的使用,现有的TCP/IP网络架构逐渐暴露出越来越多的缺点。为了改变目前的困境,学术界主要有两条思路,一是,完全摒弃现有的TCP/IP架构,研究并部署全新的网络体系,比如卡耐基梅隆大学主导研究的XIA[1]和加利福尼亚大学洛杉矶分校主导研究的命名数据网络NDN[2]。这一类的研究旨在研发出全新的网络架构,并取代现有的TCP/IP架构。二是改良和完善现有的TCP/IP架构。相对于第一条思路,第二条思路的优势在于能够较为快速的完成实验室到实际应用的转换,并能够迅速的接受到实际的检验,并根据反馈进行进一步的优化。普林斯顿大学提出的Serval架构正是在现有的TCP/IP的基础上的一次改进。
高效合理地对云上资源的分配和管理是云计算技术中必须要解决的一个问题。虚拟机在线迁移正是一种能够高效管理虚拟化的资源的技术,具有很大的研究价值。通过虚拟机在线迁移,可以进行负载均衡,能量管理[3],灾难恢复[4]等。在TCP/IP网络中,局域网下的虚拟机在线迁移,迁移之后通信可以自动地恢复,但是,在广域网下,因为原有的IP地址无法在新的网络中使用,所以通信无法进行自动地恢复。现有的方案包括创建一个隧道[5],ARP代理[6],移动IP等方案。这些方案要么比较复杂,需要新的配置或者节点机器。要么产生额外的流量,比如移动IP的三角路由。
1 系统设计
1.1通信恢复原理
Serval通过在TCP/IP的传输层和网络层之间添加一个新的层SAL(Service Access Layer)构建一个以服务为中心的网络[7]。服务访问层包含两个重要的表,流表和服务表。
流表中记录了连接的源流标识符,目的流标识符,源IP地址,目的IP地址以及下一跳的网卡。当IP地址发生变化之后,只需要修改Serval中的流表即可以恢复通信。在Serval中具有迁移流的功能,即将流从一张网卡迁移到另外一张网卡中。迁移流将修改通信双方的流表中的源IP地址和目的IP地址。为了实现虚拟机在线迁移通信的自动恢复,迁移完成之后,首先需要给虚拟机一个新的IP地址,然后采用Serval中迁移流的功能,特殊点在于迁移前后流的网卡是同一张,但是会触发修改修改流表的操作,从而达到修改流表中虚拟机IP地址的目的。哲学角度来说,IP地址修改之后的网卡与IP地址修改之前的网卡并不是同一张网卡,迁移流将流从修改IP前的网卡迁移到修改IP后的网卡上。
1.2系统模块
1.2.1数据传输模块
实验采用的虚拟机是QEMU-KVM,通过分析QEMU-KVM的源程序可知,KVM虚拟机提供TCP、EXEC、UNIX和FD四种虚拟机迁移的方式,其中,TCP方式,通过在两台主机间建立TCP连接进行迁移数据的传输;EXEC方式,源主机上将迁移数据作为一个输入流发送给本地迁移发送进程,目的主机的迁移发送进程接收到迁移数据之后将其作为一个输出流发送给KVM,迁移发送进程和迁移接收进程可以由用户自定义。因为Serval采用的是新的通信模式,所以EXEC方式可以用于Serval网络虚拟机在线迁移。
1.2.2自适应目的主机网络环境模块
虚拟机进入到一个新的网络环境中,原有的IP地址以及网关信息已经无法使用,必须要进行更新。在原始套接字的基础上,定义了一个新的网络状态更新协议和以太网报文,用于保证虚拟机能够适应新的网络环境。更新协议及其报文格式将在1.3节介绍。恢复运行之后,虚拟机根据接收到的更新网络状态的报文,虚拟机更新自己的网络状态,采用新的IP地址和网关。
1.2.3流状态更新模块
遍历虚拟机中的流表,根据每一条流的源流标识符,使用serval中迁移流的功能,将流迁移到拥有了新网络地址的网卡上。
1.2.4性能测试模块
该模块用于验证虚拟机在线迁移是否是无缝的。
1.3网络状态更新协议及其报文
图1 虚拟机网络状态更新报文
迁移数据接收完成之后,迁移接受进程推出之前发送一个消息给本地的一个守护进程P,该守护进程P接收到这个消息之后周期性地发送虚拟机恢复运行探测报文,该报文在虚拟机恢复运行之后会得到一个确认消息,守护进程P接收到确认消息之后构造虚拟机网络状态更新报文,该报文包含了虚拟机新的网络地址以及新的网关地址,报文格式如图2所示。虚拟机完成了状态更新之后发送确认消息给宿主主机的守护进程P,守护进程P接收到确认数据包之后退出。如果守护进程P超过一定时间仍未接收到确认,再次发送网络状态更新报文,尝试三次之后,报告失败信息。图2中,协议字段包含两种情况,0x0001表示宿主主机发送的网络状态更新报文,0x0002表示虚拟机发送给宿主主机的确认报文。
1.4停机时间测量方案及其误差分析
总迁移时间(Total migration time)和停机时间(Downtime)是虚拟机在线迁移中两种重要的性能评价参数[8]。停机时间是指虚拟机在源宿主主机挂起之后到在目的主机通信恢复之后的一段时间间隔。相对于停机时间,总迁移时间容易测量,本文不做讨论。
在TCP/IP网络中,ping通常是作为一个网络连通性检测的工具。Serval中也可以实现类型ping的应用,根据Serval的套接口,本文实现了Serval-ping,利用Servalping工具也可以用来估算虚拟机在线迁移的停机时间。在虚拟机停机期间不断发送Serval-ping包给虚拟机,记录下丢失的Serval-ping的个数。例如,如果Serval-ping在虚拟机迁移的停机时间内有n个未收到回应,且Serval-ping的时间间隔为△t,那么即可估算出停机时间约为n*△t。
2 性能分析
实验测试床如图2所示。其中HOST_A和HOST_B分别指定SR1和SR2作为其默认的服务路由器。虚拟机从HOST_A迁移到HOST_B。HOST_VM上也安装了Serval网络环境,其中,HOST_VM的服务路由器设置成SR1。
图2 基于Serval的广域网下虚拟机在线迁移实验测试床
一方面通过Serval下的Serval-ping应用测试迁移结束之后是否可以得到Serval-ping应答以及测量停机时间,另一方面通过运行两种不同类型的负载,CPU密集型和I/O密集型,比较不同的负载下迁移性能的差别。其实验结果如表1所示,Serval的确可以很方便的实现虚拟机在线迁移中通信的恢复。此外,对比可以发现,I/O密集型的负载,迁移的总时间和停机时间都比较长。这是由于在迁移过程中,I/O密集型的负载会影响宿主主机的数据传输。虚拟机在线迁移数据传输过程相对于宿主主机而言是一种I/O密集性负载,会与虚拟机的I/O操作形成资源的竞争,因此迁移总时间和停机时间更长。
表1 基于Serval的广域网下虚拟机在线迁移实验结果
3 结论
本文提出了一种基于Serval的广域网下虚拟机在线迁移通信恢复方案。主要创新点在于提出了一种网络状态更新及其报文格式;通过迁移流的方法完成Serval的流表中IP地址的更新;通过一种类似于ping的应用Serval-ping进行停机时间的测量,针对不同负载带来的性能差异进行了分析。
参考文献
[1]Han D,Anand A,Dogar F R,et al.XIA:Efficient Support for Evolvable Internetworking.9th USENIX conference on Networked Systems Design and Implementation,2012,Vol.12:309-322.
[2]Zhang and D.Estrin and J.Burke.Named data networking(ndn)project.Technical report,PARC;2010.
[3]C.Clark,K.Fraser,S.Hand,J.G.Hansen,E.Jul,C.Limpach,et al.Live migration of virtual machines.Symposium on Networked Systems Design & Implementation;2005:273-286.
[4]Comer D.A future Internet architecture that supports Cloud Computing[C].In:Proceedings of the 6th International Conference on Future Internet Technologies.ACM;2011:79-83.
[5]R.Bradford,E.Kotsovinos,A.Feldmann and H.Schioberg. Live Wide-Area Migration of Virtual Machines Including Local Persistent State.VEE;2007:169-179.
[6]E.Silvera,G.Sharaby,D.Lorenz and I.Shapira.IP Mobility to Support Live Migration of Virtual Machines across Subnets.SYSTOR;2009.
[7]Nordström E,Shue D,Gopalan P,et al.Serval:An End-Host Stack for Service-Centric Networking[J].Proc Usenix Nsdi,2012.
[8]Zhang J,Ren F,Lin C.Delay Guaranteed Live Migration of Virtual Machines.INFOCOMM’2014.IEEE.2014:574-582.
周德江(1991—),江苏盐城人,研究生,现就读于同济大学。
作者简介: