一种基于XEN的虚拟机实时迁移技术制造技术

技术编号:9033906 阅读:124 留言:0更新日期:2013-08-15 00:46
本发明专利技术公开了一种基于XEN的虚拟机实时迁移技术,在保持虚拟机运行的同时,把它从一个主机迁移到另一个计算机,并在目的计算机回复运行的技术。利用实时迁移技术,可以实现服务器的在线维护、在线升级和动态负载均衡,在网络计算和分布式计算这种具有自治性特点的领域,实时迁移也有巨大的应用空间和前景。

【技术实现步骤摘要】

本专利技术涉及计算机应用领域,特别是涉及一种基于XEN的虚拟机动态迁移的方法与实现。
技术介绍
随着计算机和网络技术的不断发展,虚拟化技术应用越来越广泛,如服务整合、资源整合、系统安全和分布式安全等方面。虚拟化技术能为人们带来安全、稳定、高效、便于管理的计算和信息服务环境。XEN是目前 流行的一个基于X86平台的虚拟机软件,使用XEN实现的虚拟机具有近似原生系统的高性能,但需要对操作系统内核进行修改。实时迁移是XEN带来的一个重要功能,这种技术对于服务器领域非常有应用价值,可以简单方便的实现服务器的动态负载均衡、在线升级、灾难备份等,在具有自治特性的分布式计算领域,实时迁移也有广阔的应用空间。本专利技术通过结合源代码深入分析XEN的迁移原理、流程和关键技术。
技术实现思路
本专利技术所要解决的技术问题是提供一种基于XEN的虚拟机实时迁移技术,以增强虚拟机的安全性和高可用性。为实现上述专利技术目的,本专利技术提供实时迁移的具体实现方法,包括内存迁移、网络设备迁移、存储迁移。所述内存迁移,用于:保持VM运行的同时传输内存的映像,在第一轮迭代时会把所有的内存页拷贝到目的机器上,而之后每轮都只拷贝在前一轮拷贝过程中又变脏的那些页。第二个阶段是停机拷贝阶段,这时停止VM的运行并把所有不一致的页以及没有传过的页拷贝过去。所述网络设备迁移,用于:把虚拟机的虚拟网卡上的信息从物理主机A迁移到物理主机B。本专利技术还提供,包括:代码整合结构。首先,用户通过输入xm migrate命令向VMM发出迁移请求,收到请求之后,调用XendDomain 类的 domain_miegate O 准备迁移。domain_migrate O 先调用 XendDomainInfo类testMigrateDevices O通知块设备即将开始迁移。然后调用XendDomainInfo类的checkLiveMigrateMemoryO检查内存是否够用,若不够,先释放部分内存,以保证有足够的内存进行迁移。接着,domain_migrateO与日的训算机建立socket连接,请求迁移,当收到日的训算机的响应之后,调用saveO函数正式开始迁移。迁移分设备的迁移和内存的迁移两部分完成。内存的迁移是通过相关的Python到C的接口调用Libxe中的C程序Xc_save.c,然后继续调用Xc_linux_save O来完成的,这个函数通过预拷贝和停机拷贝完成内存的迁移,在预拷贝阶段,内存页以迭代的方式通过前面建立的socket连接传输给日的计算机,当满足一定条件时,迁移的VM被暂停,进入停机拷贝阶段,设备的迁移也在这时开始。设备的迁移由XendDomainlnfo类的migrateDevices O 函数完成,然后回到 domain_migrateO 继续执行,调用 XendDomainlnfo类testDeviceCompleteO确认设备是否已经迁移完毕,最后关闭socket连接,迁移结束。优选的有,上述方法中,还包括:影子页表与脏页图根据Xen的内存迁移原理能够推知,实现预拷贝的关键点在于捕捉并记录脏页,因为后一轮总是拷贝前一轮迭代过程中的修改过的页。r而首先分析Xen是如何捕获到脏负的。脏负的捕捉需要借助影子负表米完成。其中,硬什页表由Guest OS负责分酣和管理,这样做可以减少Xen对页表的操作次数,确保了虚拟机之间的安全性和隔离性。影了页表丰要用来实时拷贝Guest OS的页表,由Xen负责维护,。炙际上相当于对原有页表的一个备份。影子页表剥Guestos限制为只读,所以对页表的任何更新都要经过Hypercall传给Xen。定位脏页的原理如下:.Guest OS的页表均以只读的方式映射到影子页表.Guest OS对内存页的修改会触发页错误(Page Fault),从而陷入到Xen中.Xen检查Guest OS的PTE的访问权,如果是可写的,那么影子页表相应PTE也会改为可写权限,并在脏页位图中作出记录。这样,XEN就能捕捉到脏页的发生。如果在位图中加以标记,那么就能得到一个脏页位图。实际上,Xen的影子表的API函数xc_shadow_control O ,并传递flag标志Xen_D0MCTL_SHAD0W_0P_ENABLE_logdirty将这个功能开启。在迁移完成之后,再调用xc_shadow_control O,放入 XEN_D0MCTL_SHAD0W_0P_0FF,将脏页位图关闭。Xc_shadow_control O 定义在 tools/libxc/Xc_domain.c 中。由上述方案可以看出,本专利技术中从内存迁移、网络设备迁移、存储设备迁移三个方面详细分析了 Xen的实时迁移技术原理。给出了迁移流程。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术预拷贝阶段流程图;图2为本专利技术迁移代码整体结构;图3为本专利技术预拷贝阶段中的代码。具体实施例方式为使本专利技术的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本专利技术作进一步详细的说明。显然,所描述的实施例仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。实施例一 ,参见图1本专利技术提供一种基于XEN的虚拟机实时迁移技术,包括预拷贝阶段所述预拷贝阶段,本文会从完成内存迁移的函数Xc_l inux_save.c入手,具体分析Xen是如何实现内存迁移的。内存迁移函数的整体流稃见图1。首先,从预拷贝阶段开始:1、进入while(l)循环,进行变量的初始化;预拷贝阶段是由有限次的迭代,也就是循环组成的,不妨先看一下这个循环的入Π:权利要求1.一种基于XEN的虚拟机实时迁移,其特征在于,包括预迁移、预定资源、预拷贝、停机拷贝、提交、启动六个流程; 所述预迁移,指主机A打算迁移其上的一个虚拟机VM,首先选择一个目的计算机作为VM的新主机;所述预定资源,指主机A向主机B发起迁移请求,先确认B是否有必须的资源,若有,则预订这些资源;若没有,VM仍在主机A中运行,可以继续选择其他计算机作为目的计算机;所述预拷贝,指在这一阶段VM仍然运行,主机A以迭代的方式将VM的内存页拷贝到主机B上;在第一轮迭代中,所有的页都要从A传送到B,以后的迭代只拷贝前一轮传送过程中被修改过的页面; 所述停机拷贝,指停止主机A上的VM,把它的网络连接重定向到B,CPU状态和前一轮传送过程中修改过的页都在这个步骤传送,最后,主机A和主机B上有一致的VM映像;所述的提交,指主机B通知A已经成功收到了 VM的映像,主机A对这个消息进行确认,然后主机A可以抛弃或销毁其上的VM ; 所述的启动,指启动迁移到B上的W,迁移后使用目的计算机的设备驱动,广播新的IP地 址。全文摘要本专利技术公开了一种基于XEN的虚拟机实时迁移技术,在保持虚拟机运行的同时,把它从一个主机迁移到另一个计算机,并在目的计算机回复本文档来自技高网...

【技术保护点】
一种基于XEN的虚拟机实时迁移,其特征在于,包括预迁移、预定资源、预拷贝、停机拷贝、提交、启动六个流程;所述预迁移,指主机A打算迁移其上的一个虚拟机VM,首先选择一个目的计算机作为VM的新主机;所述预定资源,指主机A向主机B发起迁移请求,先确认B是否有必须的资源,若有,则预订这些资源;若没有,VM仍在主机A中运行,可以继续选择其他计算机作为目的计算机;所述预拷贝,指在这一阶段VM仍然运行,主机A以迭代的方式将VM的内存页拷贝到主机B上;在第一轮迭代中,所有的页都要从A传送到B,以后的迭代只拷贝前一轮传送过程中被修改过的页面;所述停机拷贝,指停止主机A上的VM,把它的网络连接重定向到B,CPU状态和前一轮传送过程中修改过的页都在这个步骤传送,最后,主机A和主机B上有一致的VM映像;所述的提交,指主机B通知A已经成功收到了VM的映像,主机A对这个消息进行确认,然后主机A可以抛弃或销毁其上的VM;所述的启动,指启动迁移到B上的VM,迁移后使用目的计算机的设备驱动,广播新的IP地址。

【技术特征摘要】

【专利技术属性】
技术研发人员:张进飞李善明赵刚
申请(专利权)人:佳都新太科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1