当前位置: 首页 > 专利查询>浙江大学专利>正文

基于NUMA架构的虚拟机迁移方法及系统技术方案

技术编号:10582059 阅读:191 留言:0更新日期:2014-10-29 13:09
本发明专利技术公开了一种基于NUMA架构的虚拟机迁移方法及系统,该虚拟机迁移方法包括获取待迁移虚拟机的配置信息,并根据待迁移虚拟机已使用的内存页、虚拟机寄存器中的内容和I/O设备状态生成临时文件;关闭待迁移虚拟机;获取目标主机上所有物理节点的节点信息,并根据节点信息和迁移指令判断目标主机是否存在目标节点:若存在,则根据所述的临时文件和配置信息,将待迁移虚拟机迁移至目标节点;否则,发送错误报告。本发明专利技术在迁移的基础上保证了虚拟机的NUMA拓扑结构的虚拟节点与物理机的NUMA节点一一对应,使得虚拟机的性能下降较少,且根据目标主机的硬件情况对虚拟机的NUMA拓扑结构进行改变,使得虚拟机能够适应更加多样的硬件环境。

【技术实现步骤摘要】
基于NUMA架构的虚拟机迁移方法及系统
本专利技术涉及计算机
,特别涉及一种基于NUMA架构的虚拟机迁移方法及系统。
技术介绍
在计算机技术中,虚拟化技术是将物理的计算资源,诸如CPU、内存、网络和存储器等加以抽象,使得用户能够更合理地使用这些资源的一项技术。现已被广泛运用于互联网服务、云计算等一些场景。早期的计算机采用SMP结构(SymmetricMulti-Processing,对称多处理结构),即是所有的内存为所有的CPU共享,每个CPU都可以任意地访问内存的任意地址。然而,随着硬件的发展,特别是随着CPU核心数量的增多,现有的SMP结构容易带来访存冲突,也就是说,不同的CPU同时访问同一块内存导致总线冲突,访问请求被延迟这一现象越来明显。于是,在高性能计算中,多核心的计算机往往不采用SMP结构而采用NUMA架构(NonUniformMemoryAccessArchitecture,非统一内存访问):机器的CPU和存储器可被分为若干个节点,每个节点由若干个CPU和一块存储单元组成。CPU访问本地的存储器成为本地访存,访问远端的存储器成为远端访存,远端访存通过CPU和CPU直接的电路通信。这样,便避免了总线冲突带来的性能开销。然而,却带来了内存的访存速度不平衡的问题:远端访存的开销要远大于本地范存的开销。这也直接造成了在NUMA架构下常规的虚拟化技术的性能问题。由于虚拟机监视器需要把底层硬件为虚拟机隐藏,虚拟机得到的存储器通常只是一块连续的线性地址,并不了解其具体位于哪个节点。其得到的VCPU(虚拟CPU)也并没有标识当前运行在哪一个物理节点上。因此,物理机给虚拟机呈现的就是一个无差别的SMP体系结构。虽然虚拟机内部的运行的操作系统对NUMA体系结构有着一定的优化,但由于此类虚拟机对实际物理拓扑缺乏明确的认识,使得这些优化毫无用武之地。VNUMA(虚拟非统一内存访问)技术便是为了解决此类问题而诞生的一项技术。其在创建虚拟机之初通过更改虚拟机的APIC表中的SRAT表和SLIT表,从而创建一个可以呈现NUMA体系结构的虚拟机。正虚拟机由若干个虚拟节点构成,每一个虚拟节点都和一个物理节点严格绑定,即每一个虚拟节点的VCPU只允许运行在指定物理节点的CPU之上。每一个虚拟节点需要分配的内存只能向固定物理节点申请。这样,虚拟机的虚拟NUMA拓扑就严格与物理NUMA结构相一致。虚拟机上运行的操作系统只需根据呈现给它的虚拟NUMA拓扑结构就可以对远端访存问题进行优化。这项技术也会带来一些新问题:由于虚拟机的虚拟节点都与物理节点严格绑定。要改变虚拟机的虚拟机拓扑相当困难。然而,在一些应用场景,比如虚拟机节能,需要关闭一些物理CPU,乃至物理机。如果虚拟机的虚拟节点数大于节能策略计划使用的物理节点数,节能策略就不能很好的执行,因为强制把多出来的虚拟节点上的VCPU迁移到其它物理节点上就必然会破坏虚拟机原有的VNUMA拓扑结构。此时需要对虚拟机的VNUMA拓扑结构进行相应的更新。现有的VNUMA拓扑结构方法是通过动态改变虚拟机的SRAT表和SLIT表并对内存进行动态迁移来实现这一功能的。然而,这种方法也有着明显缺点:改变后的虚拟机只能和改变前的虚拟机处在同一台物理机上,如果用户策略要将其转移到另一台物理机上则无法通过这种技术解决。此外,现有的迁移技术是以节点为单位对虚拟机进行迁移,无法以页为单位根据当前负载灵活地对虚拟机内存进行放置,使得负载均衡的效果受到制约。
技术实现思路
针对现有技术的不足,本专利技术提出的一种基于NUMA架构的虚拟机迁移方法及系统。一种基于NUMA架构的虚拟机迁移方法,包括以下步骤:(1)获取待迁移虚拟机的配置信息,并根据待迁移虚拟机已使用的内存页、虚拟机寄存器中的内容和I/O设备状态生成临时文件;(2)关闭待迁移虚拟机;(3)获取目标主机上所有物理节点的节点信息,并根据所述的节点信息和迁移指令判断目标主机是否存在目标节点:若存在,则根据所述的临时文件和配置信息,将待迁移虚拟机迁移至目标节点;否则,发送错误报告。本专利技术中虚拟机的配置信息、临时文件以集中式或分布式的方法保存在网络的一个或多个节点中,通常为源主机(迁移前待迁移虚拟机所在的主机)和目标主机之外的临时或永久的存储设备上。所述的迁移指令应当包括待迁移虚拟机信息、目标主机、以及目标节点数等信息。接收到该指令后,保存待迁移虚拟机的相关信息(包括配置信号和临时文件),直接根据保存的相关信息在目标主机上回复得到相应的虚拟机,即完成了待迁移虚拟机的迁移。该虚拟机迁移方法中根据迁移指令和目标主机中各个物理节点的节点信息选定目标节点,重新构建VNUMA拓扑结构,充分考虑到了目标主机自身的状态和迁移指令匹配程度,使得迁移后的虚拟机能够适应更多样的硬件环境,同时在迁移的过程中不会违反虚拟机的虚拟NUMA节点与物理机(物理主机)的NUMA节点的一一对应原则。所述的配置信息包括待迁移虚拟机的总内存、VCPU的个数和I/O设备信息。配置信息是虚拟机的基础,根据以上信息可以初始化出一个虚拟机。所述步骤(1)中通过以下步骤生成临时文件:(1-1)将待迁移虚拟机已使用的内存页转存到临时文件,且在转存过程,标记新产生的脏页;(1-2)统计脏页的数量,并与设定的阈值进行比较:若脏页的数量小于设定阈值,则暂停待迁移虚拟机,并将待迁移虚拟机寄存器中的内容和I/O设备状态、所有脏页转存至临时文件中;否则,返回对标记为脏页继续执行步骤(1-1)。在转存过程中,虚拟机仍然在工作,即在转存时,仍然在访问内存页(包括读取和写入)。在转移过程中,由于写入操作的作用,待迁移虚拟机对应的内存页中的内容在不断更新,因此需要循环多次进行转存,满足一定的条件后停止。由于转存和写入操作并行,可能存在通过对某一个内存页执行写入和转存操作,此时为提高生成临时文件的效率,可以先暂停转存操作,待写入完成后再将该页转存至临时文件中。脏页指在转存过程中被修改的内存页。在每一次循环中,针对每一个内存页,若在对该页转存之后对该内存页执行过写入操作时,则将该页作为脏页,下一次循环以本次循环的脏页为对象进行转存。所述的阈值为待迁移虚拟机的总内存的页数的1%~10%。阈值的选取应与源主机(待迁移虚拟机当前所处的物理机)性能密切相关,其应当考虑与源主机的磁盘读写速率,以及内存访问速率,以防止在迁移的过程中频繁地迭代迁移脏页,影响系统整体效率。总内存的页数即为总内存对应的内存页的总数,内存页总数的1%~10%这一阈值能够适应大多数物理机的硬件条件。所述的节点信息包括物理节点的总内存大小和已使用的内存大小,以及该物理节点上物理CPU的个数和各个物理CPU在设定的时间段内的运行时间。该时间段内任意选取,时长为50ms~200ms。所述步骤(3)通过以下步骤确定目标主机是否存在目标节点:(3-1)根据以下公式计算目标主机上各个物理节点的负载均衡度Ld:其中,为设定时间段内该物理节点上第i个CPU的运行时间,ttotal为设定时间段的时长,n为该物理节点上的物理CPU个数,Mused为该物理节点已使用内存大小,Mtotal为该物理节点的总内存大小;(3-2)按照负载均衡度从小到大的顺序,依次判断各个物理节点的内存是否大于本文档来自技高网
...
基于NUMA架构的虚拟机迁移方法及系统

【技术保护点】
一种基于NUMA架构的虚拟机迁移方法,其特征在于,包括: (1)获取待迁移虚拟机的配置信息,并根据待迁移虚拟机已使用的内存页、虚拟机寄存器中的内容和I/O设备状态生成临时文件; (2)关闭待迁移虚拟机; (3)获取目标主机上所有物理节点的节点信息,并根据所述的节点信息和迁移指令判断目标主机是否存在目标节点: 若存在,则根据所述的临时文件和配置信息,将待迁移虚拟机迁移至目标节点; 否则,发送错误报告。

【技术特征摘要】
1.一种基于NUMA架构的虚拟机迁移方法,其特征在于,包括以下步骤:(1)获取待迁移虚拟机的配置信息,并根据待迁移虚拟机已使用的内存页、虚拟机寄存器中的内容和I/O设备状态生成临时文件;(2)关闭待迁移虚拟机;(3)获取目标主机上所有物理节点的节点信息,并根据所述的节点信息和迁移指令判断目标主机是否存在目标节点:若存在,则根据所述的临时文件和配置信息,将待迁移虚拟机迁移至目标节点;否则,发送错误报告;所述步骤(3)中通过以下步骤将待迁移虚拟机迁移至目标节点:(S1)根据配置信息在目标节点上构建虚拟机,恢复虚拟机的寄存器的内容、I/O设备状态和页表,并将页表中对应于已使用的内存页的页表项标记为缺页;(S2)启动构建的虚拟机,并根据临时文件中已使用的内存页恢复该虚拟机的内存,并取消对应页表项的缺页标记。2.如权利要求1所述的基于NUMA架构的虚拟机迁移方法,其特征在于,所述的配置信息包括待迁移虚拟机的总内存、VCPU的个数和I/O设备信息。3.如权利要求2所述的基于NUMA架构的虚拟机迁移方法,其特征在于,所述步骤(1)中通过以下步骤生成临时文件:(1-1)将待迁移虚拟机已使用的内存页转存到临时文件,且在转存过程,标记新产生的脏页;(1-2)统计脏页的数量,并与设定的阈值进行比较:若脏页的数量小于设定阈值,则暂停待迁移虚拟机,并将待迁移虚拟机寄存器中的内容和I/O设备状态、所有脏页转存至临时文件中;否则,返回对标记为脏页继续执行步骤(1-1)。4.如权利要求3所述的基于NUMA架构的虚拟机迁移方法,其特征在于,所述的阈值为待迁移虚拟机的总内存的页数的1%~10%。5.如权利要求4所述的基于NUMA架构的虚拟机迁移方法,其特征在于,所述的节点信息包括物理节点的总内存大小和已使用的内存大小,以及该物理节点上物理CPU的个数和各个物理CPU在设定的时间段内的运行时间。6.如权利要求5所述的基于NUMA架构的虚拟机迁移方法,其特征在于,所述步骤(3)通过以下步骤确定目标主机是否存在目标节点:(3-1)根据以下公式计算目标主机上各个物理节点的负载均衡度Ld:其中,为设定时间段内该物理节点上第i个CPU的运行时间,ttotal为设定时间段的时长,n为该物理节点上的物理CPU个数,Mused为该物理节点已使用内存大小,Mtotal为该物理节点的总内存大小;(3-2)按照负载均衡度从小到大的顺序,依次判断各个物理节点的内存是否大于或等于虚拟节点所需要的内存:若大于或等于虚拟节点所需要的内存,则将该物理节点作为候选节点,并继续判断下一个物理节点;否则,直接判断下一个物理节点;(3-3)直至候选节点的个数等于目标节点数或所有物理节点均判断完成时停止:(a)若停止后得到的候选节点的个数等于目标节点数,则比较所有候选节点的物理CPU的总个数与待迁移虚拟机的VCPU的总个数:若所有候选节点的物理CPU的总个数大于或等于待迁移虚拟机的VCPU的总个数,则认为存在目标节点,并以候选节点作为目标节点;否则,认...

【专利技术属性】
技术研发人员:左起同王备陈建海何钦铭黄步添
申请(专利权)人:浙江大学
类型:发明
国别省市:浙江;33

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

1