虚拟化多核环境下非一致性i/o访问虚拟机资源迁移方法

文档序号:10724709阅读:375来源:国知局
虚拟化多核环境下非一致性i/o访问虚拟机资源迁移方法
【专利摘要】本发明公开了一种基于虚拟化多核环境下的非一致性I/O访问虚拟机资源迁移方法,包括:通过VMM和宿主机内存访问检测获得各虚拟CPU线程的线程内存分布矩阵,并记录在监视模块;通过宿主各内存节点访问延迟数据收集获得线程访问各节点的访问延迟矩阵,并记录在监视模块;当发现某个节点的负载高于某个阈值时,触发本CPU上负载最高的线程标记为需要迁移状态;利用公式得到迁移的目的节点,并实施迁移;迁移结束后将反馈管理模块,取消线程标记,继续监控。本发明解决了在虚拟化多核环境下的非一致性I/O访问虚拟资源调度问题,使得高性能网络中的物理带宽利用率得到提升。
【专利说明】
虚拟化多核环境下非一致性I /〇访问虚拟机资源迁移方法
技术领域
[0001] 本发明涉及计算机虚拟化领域,尤其涉及一种虚拟化多核环境下非一致性I/O访 问虚拟机资源迀移方法。
【背景技术】
[0002] 虚拟化是云计算中的关键技术。虚拟化允许多个计算机系统运行在一个物理计算 机上,将物理机的硬件资源(CPU,内存,I/O设备等等)抽象成类似于电力的可按需使用的资 源,提供给客户使用。虚拟化技术的使用,极大的减少了小型企业对服务器购买的投入,同 时也极大的提高了空闲主机的使用效率,所以虚拟化技术广泛的存在于当今高性能服务器 里面,比较有代表性的虚拟化云计算实例有亚马逊的EC2和阿里巴巴的阿里云。
[0003] 虚拟化技术中一个关键组件就是虚拟机监视器(Virtual Machine Management, VMM)。虚拟机监视器负责将主机硬件资源抽象给虚拟机使用,同时还负责虚拟机的管理和 虚拟机之间的通信等等。传统的硬件资源包括CPU资源,内存资源和I/O资源等,在非一致性 内存访问(Non-Uniform Memory Access,NUMA)的架构下,虚拟化技术主要关注的是提升这 些硬件资源虚拟化过后的性能。
[0004] CPU虚拟化是虚拟化技术的基础之一。CPU的虚拟化技术是一种硬件方案,支持虚 拟话技术的CHJ使用经过特别优化过的指令集来控制虚拟过程,通过这些指令集,相比纯软 件的虚拟化技术,虚拟机的性能可以得到很大程度的提高。QEMU/KVM中提供了一套完整的 硬件系统环境,对于客户机看来其所拥有的CPU即VCPU。在KVM环境中,每个客户机都是一个 标准的Linux进程,而每个VCPU在宿主机中是QEMU进程派生的一个普通线程,所以对于虚拟 机VCPU的管理,实际上就是对于宿主机中特定的线程的管理。
[0005] 现有的主流多核处理器采用的架构是非一致性内存访问(Non-Uniform Memory Access,简称NUMA)架构。NUMA架构的特点是系统的相关硬件资源(如内存、CPU)被划分为多 个节点。在NUMA架构里,处理器访问本地节点的内存的速度要比访问远程节点的内存的速 度要快。如图2所示的是物理平台的具有4个NUMA节点的NUMA架构服务器的示意图。由于不 同位置的处理器(CPU)与各个内存之间的距离不同,且各个处理器之间的距离也不同,因此 不同处理器访问各个内存的时间也是不同的。
[0006] 在多核和高速1/0的情境下,现有的调优方法集中体现在非虚拟化情况下的NUMA 内存迀移,由于缺乏虚拟化环境下宿主机的相关信息,原有的调优策略在现有的NUMA和高 速1/0情境下会失效。
[0007] 因此,本领域的技术人员致力于开发一种虚拟化多核环境下非一致性1/0访问虚 拟机资源迀移方法,可以根据各虚拟机的运行状态和资源需求,动态分配虚拟机线程在物 理CPU上的分布和资源使用。

【发明内容】

[0008] 有鉴于现有技术的上述缺陷,本发明所要解决的技术问题是在虚拟化非一致性内 存访问架构下,当CPU负载过高时,I/O带宽并不能被完全使用,为了充分利用高性能网络中 的高带宽,使得宿主机中的虚拟机整体资源利用率达到最高,通过使用物理机节点信息和 虚拟机虚拟CPU信息相结合,利用访问延迟推导出最优部署,以提升虚拟机性能和总体带宽 利用。使得宿主机中的虚拟机整体资源,特别是I/O资源的利用率达到最高。
[0009] 为了实现上述目的,本发明提供了一种基于虚拟化多核环境下的非一致性I/O访 问虚拟机资源迀移方法,包括以下步骤:
[0010] (1 )、通过VMM和宿主机内存访问检测获得各虚拟CPU线程的线程内存分布TMT矩 阵,并记录在监视模块;
[0011] (2)、通过宿主机各内存节点访问延迟数据收集获得线程访问各节点的访问延迟 DT矩阵,并记录在监视模块;
[0012] (3)、当发现某个节点的负载高于阈值时,触发本CPU上负载最高的线程标记为需 要迀移的状态;
[0013] (4)、利用公式
[0015] 得到迀移的目的节点,并实施迀移;迀移结束后将反馈管理模块,取消线程标记, 回到步骤(1)继续监控。
[0016] 进一步地,所述阈值为物理CPU使用率高于90%。
[0017] 本方法与现有技术相比,至少具有以下有益的技术效果:
[0018] 1.通过对VCPU资源的合理调度,使得各线程的内存访问效率最大化,平均延迟时 间最少,从而使得I/O资源的带宽能够得到充分利用。
[0019] 2.线程动态迀移代价较小,根据公式1可以得到最优的调度结果。
[0020] 以下将结合附图对本发明的构思、具体结构及产生的技术效果作进一步说明,以 充分地了解本发明的目的、特征和效果。
【附图说明】
[0021] 图1为本发明的一个较佳实施例的结构示意图;
[0022] 图2为本发明的一个较佳实施例的内存节点结构示意图;
[0023] 图3为本发明的一个较佳实施例的执行流程示意图。
【具体实施方式】
[0024]下面结合附图对本发明的实施例作详细说明,本实施例在以本发明技术方案为前 提下进行实施,以下给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限 于下述的实施例。
[0025] 基于非一致性I/O访问虚拟机VCPU资源迀移方法包括包括以下步骤:
[0026] 步骤1、通过VMM和宿主机获得各线程(VCPU)信息。该信息主要包括:宿主机的处理 器结构和宿主机各虚拟机线程对应的在处理器节点的内存分布情况。该数据为动态数据, 需要动态获得。其数据如下表所示。所获得的数据即为公式1中TMT矩阵值。
[0028] 步骤2、通过宿主机获得处理器各节点间的访问延迟信息。该信息可由Inte 1 Memory Latency Checker获得,并形成以下数据如表2所示。所获得数据即为公式1中DT矩 阵。该数据为静态数据,一旦确定,除非物理硬件结构发生改变,不再修改。
[0030] 步骤3、当检测模块对于某个处理器节点的检测发现CPU利用率超过了阈值 (90%),则触发线程迀移模块进行线程迀移,找到该节点上负载最高的线程并将其pid进行 标记,识别为待迀移的线程。
[0031] 步骤4、将该内存节点CPU利用率最高的节点根据公式1的计算结果迀移到目的节 点。迀移的具体方式是利用libvirt库中相应的virDomainPinVcpuFlagsO函数进行。
[0033]公式 1
[0034]在迀移决策模块完成了对线程的迀移之后,对于的VCPU也就被迀移到了对应的节 点上,由此完成了对虚拟机虚拟处理器资源的调度。之后,回到步骤1继续进行监测。
[0035] 综上所述,本技术方案至少具有以下有益效果:通过对VCPU资源的合理调度,使得 各线程的内存访问效率最大化,平均延迟时间最少,从而使得I/O资源的带宽能够得到充分 利用。而且线程动态迀移代价较小,根据公式1可以得到最优的调度结果。进一步地,通过引 入两个信息矩阵通过计算可以使得虚拟环境下的资源优化调度成为可能。
[0036] 以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术无需创 造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员 依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术 方案,皆应在由权利要求书所确定的保护范围内。
【主权项】
1. 一种基于虚拟化多核环境下的非一致性I/O访问虚拟机资源迁移方法,其特征在于, 包括W下步骤: (1) 、通过和宿主机内存访问检测获得各虚拟CPU线程的线程内存分布TMT矩阵,并 记录在监视模块; (2) 、通过宿主机各内存节点访问延迟数据收集获得线程访问各节点的访问延迟DT矩 阵,并记录在监视模块; (3) 、当发现某个节点的负载高于阔值时,触发本CPU上负载最高的线程标记为需要迁 移的状态; (4) 、利用公式得到迁移的目的节点,并实施迁移;迁移结束后将反馈管理模块,取消线程标记,回到 步骤(1)继续监控。2. 如权利要求1所述的基于虚拟化多核环境下的非一致性I/O访问虚拟机资源迁移方, 其特征在于,所述阔值为物理CPU使用率高于90%。
【文档编号】G06F9/50GK106095576SQ201610415935
【公开日】2016年11月9日
【申请日】2016年6月14日 公开号201610415935.5, CN 106095576 A, CN 106095576A, CN 201610415935, CN-A-106095576, CN106095576 A, CN106095576A, CN201610415935, CN201610415935.5
【发明人】管海兵, 李阳德, 钱建民, 马汝辉, 李健
【申请人】上海交通大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1