基于numa架构的虚拟机迁移方法及系统的制作方法

文档序号:6549154阅读:267来源:国知局
基于numa架构的虚拟机迁移方法及系统的制作方法
【专利摘要】本发明公开了一种基于NUMA架构的虚拟机迁移方法及系统,该虚拟机迁移方法包括获取待迁移虚拟机的配置信息,并根据待迁移虚拟机已使用的内存页、虚拟机寄存器中的内容和I/O设备状态生成临时文件;关闭待迁移虚拟机;获取目标主机上所有物理节点的节点信息,并根据节点信息和迁移指令判断目标主机是否存在目标节点:若存在,则根据所述的临时文件和配置信息,将待迁移虚拟机迁移至目标节点;否则,发送错误报告。本发明在迁移的基础上保证了虚拟机的NUMA拓扑结构的虚拟节点与物理机的NUMA节点一一对应,使得虚拟机的性能下降较少,且根据目标主机的硬件情况对虚拟机的NUMA拓扑结构进行改变,使得虚拟机能够适应更加多样的硬件环境。
【专利说明】基于NUMA架构的虚拟机迁移方法及系统

【技术领域】
[0001] 本发明涉及计算机【技术领域】,特别涉及一种基于NUMA架构的虚拟机迁移方法及 系统。

【背景技术】
[0002] 在计算机技术中,虚拟化技术是将物理的计算资源,诸如CPU、内存、网络和存储器 等加以抽象,使得用户能够更合理地使用这些资源的一项技术。现已被广泛运用于互联网 服务、云计算等一些场景。
[0003] 早期的计算机采用SMP结构(Symmetric Multi-Processing,对称多处理结构), 即是所有的内存为所有的CPU共享,每个CPU都可以任意地访问内存的任意地址。然而, 随着硬件的发展,特别是随着CPU核心数量的增多,现有的SMP结构容易带来访存冲突,也 就是说,不同的CPU同时访问同一块内存导致总线冲突,访问请求被延迟这一现象越来明 显。于是,在高性能计算中,多核心的计算机往往不采用SMP结构而采用NUMA架构(Non Uniform Memory Access Architecture,非统一内存访问):机器的CPU和存储器可被分为 若干个节点,每个节点由若干个CPU和一块存储单元组成。CPU访问本地的存储器成为本地 访存,访问远端的存储器成为远端访存,远端访存通过CPU和CPU直接的电路通信。这样, 便避免了总线冲突带来的性能开销。然而,却带来了内存的访存速度不平衡的问题:远端访 存的开销要远大于本地范存的开销。这也直接造成了在NUMA架构下常规的虚拟化技术的 性能问题。
[0004] 由于虚拟机监视器需要把底层硬件为虚拟机隐藏,虚拟机得到的存储器通常只是 一块连续的线性地址,并不了解其具体位于哪个节点。其得到的VCPU(虚拟CPU)也并没有 标识当前运行在哪一个物理节点上。因此,物理机给虚拟机呈现的就是一个无差别的SMP 体系结构。虽然虚拟机内部的运行的操作系统对NUMA体系结构有着一定的优化,但由于此 类虚拟机对实际物理拓扑缺乏明确的认识,使得这些优化毫无用武之地。
[0005] VNUMA(虚拟非统一内存访问)技术便是为了解决此类问题而诞生的一项技术。其 在创建虚拟机之初通过更改虚拟机的APIC表中的SRAT表和SLIT表,从而创建一个可以呈 现NUMA体系结构的虚拟机。正虚拟机由若干个虚拟节点构成,每一个虚拟节点都和一个物 理节点严格绑定,即每一个虚拟节点的VCPU只允许运行在指定物理节点的CPU之上。每一 个虚拟节点需要分配的内存只能向固定物理节点申请。这样,虚拟机的虚拟NUMA拓扑就严 格与物理NUMA结构相一致。虚拟机上运行的操作系统只需根据呈现给它的虚拟NUMA拓扑 结构就可以对远端访存问题进行优化。
[0006] 这项技术也会带来一些新问题:由于虚拟机的虚拟节点都与物理节点严格绑定。 要改变虚拟机的虚拟机拓扑相当困难。然而,在一些应用场景,比如虚拟机节能,需要关闭 一些物理CPU,乃至物理机。如果虚拟机的虚拟节点数大于节能策略计划使用的物理节点 数,节能策略就不能很好的执行,因为强制把多出来的虚拟节点上的VCPU迁移到其它物理 节点上就必然会破坏虚拟机原有的VNUMA拓扑结构。此时需要对虚拟机的VNUMA拓扑结构 进行相应的更新。现有的VNUMA拓扑结构方法是通过动态改变虚拟机的SRAT表和SLIT表 并对内存进行动态迁移来实现这一功能的。然而,这种方法也有着明显缺点:改变后的虚 拟机只能和改变前的虚拟机处在同一台物理机上,如果用户策略要将其转移到另一台物理 机上则无法通过这种技术解决。此外,现有的迁移技术是以节点为单位对虚拟机进行迁移, 无法以页为单位根据当前负载灵活地对虚拟机内存进行放置,使得负载均衡的效果受到制 约。


【发明内容】

[0007] 针对现有技术的不足,本发明提出的一种基于NUMA架构的虚拟机迁移方法及系 统。
[0008] -种基于NUMA架构的虚拟机迁移方法,包括:
[0009] (1)获取待迁移虚拟机的配置信息,并根据待迁移虚拟机已使用的内存页、虚拟机 寄存器中的内容和I/O设备状态生成临时文件;
[0010] ⑵关闭待迁移虚拟机;
[0011] (3)获取目标主机上所有物理节点的节点信息,并根据所述的节点信息和迁移指 令判断目标主机是否存在目标节点 :
[0012] 若存在,则根据所述的临时文件和配置信息,将待迁移虚拟机迁移至目标节点;
[0013] 否则,发送错误报告。
[0014] 本发明中虚拟机的配置信息、临时文件以集中式或分布式的方法保存在网络的一 个或多个节点中,通常为源主机(迁移前待迁移虚拟机所在的主机)和目标主机之外的临 时或永久的存储设备上。
[0015] 所述的迁移指令应当包括待迁移虚拟机信息、目标主机、以及目标节点数等信息。 接收到该指令后,保存待迁移虚拟机的相关信息(包括配置信号和临时文件),直接根据保 存的相关信息在目标主机上回复得到相应的虚拟机,即完成了待迁移虚拟机的迁移。该虚 拟机迁移方法中根据迁移指令和目标主机中各个物理节点的节点信息选定目标节点,重新 构建VNUMA拓扑结构,充分考虑到了目标主机自身的状态和迁移指令匹配程度,使得迁移 后的虚拟机能够适应更多样的硬件环境,同时在迁移的过程中不会违反虚拟机的虚拟NUMA 节点与物理机(物理主机)的NUMA节点的--对应原则。
[0016] 所述的配置信息包括待迁移虚拟机的总内存、VCPU的个数和I/O设备信息。配置 信息是虚拟机的基础,根据以上信息可以初始化出一个虚拟机。
[0017] 所述步骤⑴中通过以下步骤生成临时文件:
[0018] (1-1)将待迁移虚拟机已使用的内存页转存到临时文件,且在转存过程,标记新产 生的脏页;
[0019] (1-2)统计脏页的数量,并与设定的阈值进行比较:
[0020] 若脏页的数量小于设定阈值,则暂停待迁移虚拟机,并将待迁移虚拟机寄存器中 的内容和I/O设备状态、所有脏页转存至临时文件中;
[0021] 否则,返回对标记为脏页继续执行步骤(1-1)。
[0022] 在转存过程中,虚拟机仍然在工作,即在转存时,仍然在访问内存页(包括读取和 写入)。在转移过程中,由于写入操作的作用,待迁移虚拟机对应的内存页中的内容在不断 更新,因此需要循环多次进行转存,满足一定的条件后停止。由于转存和写入操作并行,可 能存在通过对某一个内存页执行写入和转存操作,此时为提高生成临时文件的效率,可以 先暂停转存操作,待写入完成后再将该页转存至临时文件中。
[0023] 脏页指在转存过程中被修改的内存页。在每一次循环中,针对每一个内存页,若 在对该页转存之后对该内存页执行过写入操作时,则将该页作为脏页,下一次循环以本次 循环的脏页为对象进行转存。
[0024] 所述的阈值为待迁移虚拟机的总内存的页数的1%?10%。
[0025] 阈值的选取应与源主机(待迁移虚拟机当前所处的物理机)性能密切相关,其应 当考虑与源主机的磁盘读写速率,以及内存访问速率,以防止在迁移的过程中频繁地迭代 迁移脏页,影响系统整体效率。总内存的页数即为总内存对应的内存页的总数,内存页总数 的1 %?10%这一阈值能够适应大多数物理机的硬件条件。
[0026] 所述的节点信息包括物理节点的总内存大小和已使用的内存大小,以及该物理节 点上物理CPU的个数和各个物理CPU在设定的时间段内的运行时间。
[0027] 该时间段内任意选取,时长为50ms?200ms。
[0028] 所述步骤(3)通过以下步骤确定目标主机是否存在目标节点:
[0029] (3-1)根据以下公式计算目标主机上各个物理节点的负载均衡度Ld :
[0030]

【权利要求】
1. 一种基于NUMA架构的虚拟机迁移方法,其特征在于,包括: (1) 获取待迁移虚拟机的配置信息,并根据待迁移虚拟机已使用的内存页、虚拟机寄存 器中的内容和I/O设备状态生成临时文件; (2) 关闭待迁移虚拟机; (3) 获取目标主机上所有物理节点的节点信息,并根据所述的节点信息和迁移指令判 断目标主机是否存在目标节点: 若存在,则根据所述的临时文件和配置信息,将待迁移虚拟机迁移至目标节点; 否则,发送错误报告。
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为设定时间段的 时长,η为该物理节点上的物理CPU个数,Mused为该物理节点已使用内存大小,Mtotal为该物 理节点的总内存大小; (3-2)按照负载均衡度从小到大的顺序,依次判断各个物理节点的内存是否大于或等 于虚拟节点所需要的内存: 若大于或等于虚拟节点所需要的内存,则将该物理节点作为候选节点,并继续判断下 一个物理节点; 否则,直接判断下一个物理节点; (3-3)直至候选节点的个数等于目标节点数或所有物理节点均判断完成时停止: (a) 若停止后得到的候选节点的个数等于目标节点数,则比较所有候选节点的物理 (PU的总个数与待迁移虚拟机的VCPU的总个数: 若所有候选节点的物理CPU的总个数大于或等于待迁移虚拟机的VCPU的总个数,则认 为存在目标节点,并以候选节点作为目标节点; 否则,认为不存在目标节点; (b) 若停止后得到的候选节点的个数小于目标节点数,则认为不存在目标节点; 所述目标节点数等于迁移指令设定的目标节点的个数。
7. 如权利要求5所述的基于NUMA架构的虚拟机迁移方法,其特征在于,所述步骤(3) 通过以下步骤确定目标主机是否存在目标节点: (S3-1)根据以下公式计算目标主机上各个物理节点的负载均衡度Ld :
其中,匕,力设定时间段内该物理节点上第i个CPU的运行时间,ttotal为设定时间段的 时长,η为该物理节点上的物理CPU个数,Mused为该物理节点已使用内存大小,Mtotal为该物 理节点的总内存大小; (S3-2)按照负载均衡度从小到大的顺序,依次判断各个物理节点的内存是否大于或 等于虚拟节点所需要的内存: 若大于或等于虚拟节点所需要的内存,则将该物理节点作为候选节点,并继续判断下 一个物理节点; 否则,直接判断下一个物理节点; (S3-3)直至候选节点的个数等于目标节点数或所有物理节点均判断完成时停止: (a) 若停止后得到的候选节点的个数等于目标节点数,则比较所有候选节点的物理 CPU的总个数与待迁移虚拟机的VCPU的总个数: 若所有候选节点的物理(PU的总个数大于或等于待迁移虚拟机的VCPU的总个数,则判 断存在目标节点,并以候选节点作为目标节点; 否则,将目标节点加数1返回执行步骤(3-1),直至目标节点数大于目标主机的物理节 点的总数时停止,并判断不存在目标节点; (b) 若停止后得到的候选节点的个数小于目标节点数,将目标节点加1返回执行步骤 (3-1),直至目标节点数大于目标主机的物理节点的总数时停止,并判断不存在目标节点; 所述的目标节点数的初始值为迁移指令设定的目标节点的个数。
8. 如权利要求6或7所述的基于NUMA架构的虚拟机迁移方法,其特征在于,所述的虚 拟节点所需要的内存为待迁移虚拟机的总内存除以目标节点数。
9. 如权利要求1所述的基于NUMA架构的虚拟机迁移方法,其特征在于,所述步骤(3) 中通过以下步骤将待迁移虚拟机迁移至目标节点: (51) 根据配置信息在目标节点上构建虚拟机,恢复虚拟机的寄存器的内容、I/O设备 状态和页表,并将页表中对应于已使用的内存页的页表项标记为缺页; (52) 启动构建的虚拟机,并根据临时文件中已使用的内存页恢复该虚拟机的内存,并 取消对应页表项的缺页标记。
10. -种基于NUMA架构的虚拟机迁移系统,其特征在于,包括: 虚拟机监视器,用于接收迁移指令,获取待迁移虚拟机的配置信息,所述的配置信息包 括虚拟机的内存信息、VCPU的个数、和I/O设备信息等; 临时文件生成器,用于根据待迁移虚拟机的配置信息和已使用的内存页,以及待迁移 虚拟机寄存器中的内容和I/O设备状态生成临时文件,并在生产临时文件后关闭待迁移虚 拟机; 节点信息采集器,用于获取目标主机上所有物理节点的节点信息; 目标节点匹配器,用于根据所述的节点信息和迁移指令判断目标主机是否存在目标节 占. 虚拟机恢复器,用于根据目标节点匹配器的判断结果进行如下操作: 若判断存在目标节点,则根据临时文件和待迁移虚拟机的配置信息将虚拟机迁移至目 标节点; 若判断不存在目标节点,则发送错误报告。
【文档编号】G06F9/50GK104123171SQ201410256198
【公开日】2014年10月29日 申请日期:2014年6月10日 优先权日:2014年6月10日
【发明者】左起同, 王备, 陈建海, 何钦铭, 黄步添 申请人:浙江大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1