虚拟化平台下I/O通道的调整方法和调整装置.pdf

上传人:t**** 文档编号:1566303 上传时间:2018-06-25 格式:PDF 页数:21 大小:2.73MB
返回 下载 相关 举报
摘要
申请专利号:

CN201310027312.7

申请日:

2013.01.24

公开号:

CN103116517A

公开日:

2013.05.22

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 9/455申请日:20130124|||公开

IPC分类号:

G06F9/455; G06F13/20

主分类号:

G06F9/455

申请人:

华为技术有限公司

发明人:

张洁; 金鑫

地址:

518129 广东省深圳市龙岗区坂田华为总部办公楼

优先权:

专利代理机构:

代理人:

PDF下载: PDF下载
内容摘要

本发明提供了虚拟化平台下I/O通道的调整方法和调整装置,应用于虚拟化技术领域,I/O通道的调整方法包括:宿主机HOS统计运行在该HOST上的多个虚拟机VM当前时刻的平均I/O吞吐量;该HOST根据当前时刻的平均I/O吞吐量在该多个VM的前端设备和后端设备之间增加或减少用于处理VM的工作线程;该HOST调整该多个VM的前端设备和后端设备中的队列与用于处理VM的工作线程的对应关系。应用本发明,根据运行在HOST上多个VM的I/O吞吐量动态调整该多个VM的前端设备和后端设备之间的I/O通道所占用的I/O通道资源,在I/O吞吐量下降时,释放空闲的I/O通道资源,避免I/O通道资源浪费;在I/O吞吐量增加时,增加I/O通道资源,提高I/O通道的数据传输能力。

权利要求书

权利要求书一种虚拟化平台下I/O通道的调整方法,其特征在于,包括:
宿主机HOST统计运行在所述HOST上的多个虚拟机VM当前时刻的平均I/O吞吐量;
在当前时刻的平均I/O吞吐量大于第一阈值时,所述HOST在所述多个VM的前端设备和后端设备之间增加用于处理VM的工作线程,以使得增加工作线程后的所述多个VM的平均I/O吞吐量小于第一阈值;或者,在当前时刻的平均I/O吞吐量小于第二阈值时,所述HOST在所述多个VM的前端设备和后端设备之间减少用于处理VM的工作线程,以使得减少工作线程后的所述多个VM的平均I/O吞吐量大于第二阈值;其中,所述第一阈值大于所述第二阈值;
所述HOST根据增加或减少后的用于处理VM的工作线程,分别调整所述多个VM的前端设备中的队列与用于处理VM的工作线程的对应关系,和所述多个VM的后端设备中的队列与用于处理VM的工作线程的对应关系,以便于在所述多个VM的前端设备和所述多个VM的后端设备之间形成多个数据传输通道。
如权利要求1所述的方法,其特征在于,如果当前时刻的平均I/O吞吐量大于第一阈值,所述HOST在所述多个VM的前端设备和后端设备之间增加用于处理VM的工作线程的步骤之前,进一步包括:
所述HOST将在所述多个VM的前端设备和后端设备之间增加用于处理VM的工作线程所带来的CPU利用率的增长和所带来的I/O吞吐量的增长进行比较;
如果所述I/O吞吐量的增长大于CPU利用率的增长,则执行所述HOST在所述多个VM的前端设备和后端设备之间增加用于处理VM的工作线程的步骤。
如权利要求1所述的方法,其特征在于,如果当前时刻的平均I/O吞吐量小于第二阈值,所述HOST在所述多个VM的前端设备和后端设备之间减少用于处理VM的工作线程的步骤之前,进一步包括:
所述HOST判断在所述多个VM的前端设备和后端设备之间减少用于处理VM的工作线程所带来的CPU利用率的减少是否导致无法响应所述多个VM的吞吐量;
如果在所述多个VM的前端设备和后端设备之间减少用于处理VM的工作线程所带来的CPU利用率的减少不会导致无法响应所述多个VM的吞吐量,则执行所述HOST在所述多个VM的前端设备和后端设备之间减少用于处理VM的工作线程的步骤。
如权利要求1‑3任一项所述的方法,其特征在于,所述HOST根据增加或减少后的用于处理VM的工作线程,分别调整所述多个VM的前端设备中的队列与用于处理VM的工作线程的对应关系,和所述多个VM的后端设备中的队列与用于处理VM的工作线程的对应关系,包括:
在增加或减少后的用于处理VM的工作线程的数量小于运行在所述HOST上VM的数量时,所述HOST将所述每个工作线程分别对应每个VM的前端设备中一个队列和每个VM的后端设备中一个队列;或者,
在增加或减少后的用于处理VM的工作线程的数量大于或等于运行在所述HOST上VM的数量时,所述HOST将独占工作线程对应一个VM的前端设备和后端设备中一个队列、以及将共享工作线程对应至少两个VM的前端设备和后端设备中没有被所述独占工作线程对应的队列,所述用于处理VM的工作线程包括所述独占工作线程和所述共享工作线程。
如权利要求1‑4任一项所述的方法,其特征在于,所述HOST根据增加或减少后的用于处理VM的工作线程,分别调整所述多个VM的前端设备中的队列与用于处理VM的工作线程的对应关系,和所述多个VM的后端设备中的队列与用于处理VM的工作线程的对应关系之后,所述方法还包括:
所述HOST调整所述多个VM的后端设备中的队列和所述HOST中本地设备Native Device中的队列的对应关系,以便于在所述多个VM的后端设备和所述Native Device之间形成多个数据传输通道。
一种虚拟化平台下I/O通道的调整装置,其特征在于,包括:
统计模块,用于统计运行在宿主机HOST上的多个虚拟机VM当前时刻的平均I/O吞吐量;
处理模块,与所述统计模块连接,用于在所述统计模块统计的当前时刻的平均I/O吞吐量大于第一阈值时,在所述多个VM的前端设备和后端设备之间增加用于处理VM的工作线程,以使得增加工作线程后的所述多个VM的平均I/O吞吐量小于第一阈值;或者,用于在所述统计模块统计的当前时刻的平均I/O吞吐量小于第二阈值时,在所述多个VM的前端设备和后端设备之间减少用于处理VM的工作线程,以使得减少工作线程后的所述多个VM的平均I/O吞吐量大于第二阈值;其中,所述第一阈值大于所述第二阈值;
第一调整模块,与所述处理模块连接,用于根据所述处理模块增加或减少后的用于处理VM的工作线程,分别调整所述多个VM的前端设备中的队列与用于处理VM的工作线程的对应关系,和所述多个VM的后端设备中的队列与用于处理VM的工作线程的对应关系,以便于在所述多个VM的前端设备和所述多个VM的后端设备之间形成多个数据传输通道。
如权利要求6所述的调整装置,其特征在于,所述调整装置还包括:
判断模块,用于在所述统计模块统计的当前时刻的平均I/O吞吐量大于第一阈值时,将在所述多个VM的前端设备和后端设备之间增加用于处理VM的工作线程所带来的CPU利用率的增长和所带来的I/O吞吐量的增长进行比较;
所述处理模块,还用于如果所述I/O吞吐量的增长大于CPU利用率的增长,在所述多个VM的前端设备和后端设备之间增加用于处理VM的工作线程,以使得增加工作线程后的所述多个VM的平均I/O吞吐量小于第一阈值。
如权利要求6所述的调整装置,其特征在于,所述调整装置还包括:
判断模块,用于在所述统计模块统计的当前时刻的平均I/O吞吐量小于第二阈值时,判断在所述多个VM的前端设备和后端设备之间减少用于处理VM的工作线程所带来的CPU利用率的减少是否导致无法响应所述多个VM的吞吐量;
所述处理模块,还用于如果在所述多个VM的前端设备和后端设备之间减少用于处理VM的工作线程所带来的CPU利用率的减少不会导致无法响应所述多个VM的吞吐量,在所述多个VM的前端设备和后端设备之间减少用于处理VM的工作线程,以使得减少工作线程后的所述多个VM的平均I/O吞吐量大于第二阈值。
如权利要求6‑8任一所述的调整装置,其特征在于,所述第一调整模块具体用于:
在增加或减少后的用于处理VM的工作线程的数量小于运行在所述HOST上VM的数量时,将所述每个工作线程分别对应每个VM的前端设备中一个队列和每个VM的后端设备中一个队列;或者,
在增加或减少后的用于处理VM的工作线程的数量大于或等于运行在所述HOST上VM的数量时,将独占工作线程对应一个VM的前端设备和后端设备中一个队列、以及将共享工作线程对应至少两个VM的前端设备和后端设备中没有被所述独占工作线程对应的队列,所述用于处理VM的工作线程包括所述独占工作线程和所述共享工作线程。
如权利要求6‑9任一所述的调整装置,其特征在于,所述调整装置还包括:
第二调整模块,用于调整所述多个VM的后端设备中的队列和所述HOST中本地设备Native Device中的队列的对应关系,以便于在所述多个VM的后端设备和所述Native Device之间形成多个数据传输通道。
一种宿主机HOST,其特征在于,所述HOST包括:本地设备NativeDevice,运行在所述Native Device之上的多个虚拟机VM的前端设备和后端设备,位于所述多个VM的前端设备和后端设备之间的数据处理模块,以及位于所述多个VM的后端设备和所述Native Device之间的网桥Bridge,其中:
所述数据处理模块用于:
统计所述多个VM当前时刻的平均I/O吞吐量;
在当前时刻的平均I/O吞吐量大于第一阈值时,在所述多个VM的前端设备和后端设备之间增加用于处理VM的工作线程,以使得增加工作线程后的所述多个VM的平均I/O吞吐量小于第一阈值;或者,在当前时刻的平均I/O吞吐量小于第二阈值时,HOST在所述多个VM的前端设备和后端设备之间减少用于处理VM的工作线程,以使得减少工作线程后的所述多个VM的平均I/O吞吐量大于第二阈值;其中,所述第一阈值大于所述第二阈值;
根据增加或减少后的用于处理VM的工作线程,分别调整所述多个VM的前端设备中的队列与用于处理VM的工作线程的对应关系,和所述多个VM的后端设备中的队列与用于处理VM的工作线程的对应关系,以便于在所述多个VM的前端设备和所述多个VM的后端设备之间形成多个数据传输通道。
如权利要求11所述的HOST,其特征在于,所述数据处理模块还用于:
将在所述多个VM的前端设备和后端设备之间增加用于处理VM的工作线程所带来的CPU利用率的增长和所带来的I/O吞吐量的增长进行比较;
如果所述I/O吞吐量的增长大于CPU利用率的增长,在所述多个VM的前端设备和后端设备之间增加用于处理VM的工作线程,以使得增加工作线程后的所述多个VM的平均I/O吞吐量小于第一阈值。
如权利要求11所述的HOST,其特征在于,所述数据处理模块还用于:
判断在所述多个VM的前端设备和后端设备之间减少用于处理VM的工作线程所带来的CPU利用率的减少是否导致无法响应所述多个VM的吞吐量;
如果在所述多个VM的前端设备和后端设备之间减少用于处理VM的工作线程所带来的CPU利用率的减少不会导致无法响应所述多个VM的吞吐量,在所述多个VM的前端设备和后端设备之间减少用于处理VM的工作线程,以使得减少工作线程后的所述多个VM的平均I/O吞吐量大于第二阈值。

说明书

说明书虚拟化平台下I/O通道的调整方法和调整装置
技术领域
本发明涉及虚拟化技术领域,尤其涉及虚拟化平台下I/O通道的调整方法和调整装置。
背景技术
虚拟化是将计算机物理资源如服务器、网络、内存及存储等予以抽象、转换后呈现出来,使用户可以比原本的组态更好的方式来应用这些资源。这些资源的新虚拟部分是不受现有资源的架设方式,地域或物理组态所限制。物理存在的宿主机HOST运行多个虚拟机(Virtual Machine,简称为VM),HOST管理所有的物理硬件设备及资源,将一个独占设备虚拟成多个虚拟设备,供多个用户线程同时使用,每个用户能够看到的设备就是虚拟设备,物理硬件设备对用户透明。
虚拟化环境下,VM并不能直接访问硬件设备,HOST为VM提供连通硬件设备的数据通路,即I/O通道。本发明中,通道包括VM的前端设备Front Device和VM的后端设备Back Device之间的数据通道、以及VM的后端设备和HOST的本地设备Native Device之间的数据通道;其中,VM的前端设备是虚拟机中看到的设备,实际是HOST为VM模拟的设备;VM的后端设备是HOST操作系统中与VM的前端设备相对接的软件模拟设备;HOST的本地设备Native Device是HOST的物理设备。
图1描述了现有技术中一种虚拟化平台下简单多I/O通道技术,图1中以两个虚拟机VM1和VM2为例,VM的前端设备和后端设备之间有多个I/O通道(图1中以两个I/O通道为例),数据处理模块是VM的前端设备和后端设备之间的桥梁,用于数据拷贝、数据过滤或是其他数据处理业务,包括多个工作线程(图1中以两个工作线程为例),工作线程的个数和VM的前端设备和后端设备之间I/O通道的个数相同,且其中每个I/O通道对应一个工作线程,VM的后端设备与网桥Bridge之间以及网桥Bridge与本地设备Native Device之间是单通道,VM的后端设备通过该单通道实现与本地设备Native Device之间的数据传输。
发明人发现上述现有技术至少存在如下技术问题:VM的前端设备和后端设备之间的I/O通道个数是在创建VM的时候确定,VM整个生命周期中该I/O通道个数不能改变,因此VM的前端设备和后端设备之间的I/O通道所占用的通道资源也不能改变,当VM的前端设备和后端设备之间的I/O吞吐量发生变化时,无法调整I/O通道资源,在I/O吞吐量下降时,无法释放空闲的I/O通道资源,造成I/O通道资源浪费;在I/O吞吐量增加时,无法增加I/O通道资源,I/O通道数据传输能力无法提高,系统性能下降。
发明内容
本发明实施例提供虚拟化平台下I/O通道的调整方法和HOST调整装置,以实现动态地调整多个VM的前端设备和后端设备之间I/O通道资源的分配,从而提高系统性能。
第一方面,本发明提供了一种虚拟化平台下I/O通道的调整方法,包括:
宿主机HOST统计运行在所述HOST上的多个虚拟机VM当前时刻的平均I/O吞吐量;在当前时刻的平均I/O吞吐量大于第一阈值时,所述HOST在所述多个VM的前端设备和后端设备之间增加用于处理VM的工作线程,以使得增加工作线程后的所述多个VM的平均I/O吞吐量小于第一阈值;或者,在当前时刻的平均I/O吞吐量小于第二阈值时,所述HOST在所述多个VM的前端设备和后端设备之间减少用于处理VM的工作线程,以使得减少工作线程后的所述多个VM的平均I/O吞吐量大于第二阈值;其中,所述第一阈值大于所述第二阈值;所述HOST根据增加或减少后的用于处理VM的工作线程,分别调整所述多个VM的前端设备中的队列与用于处理VM的工作线程的对应关系,和所述多个VM的后端设备中的队列与用于处理VM的工作线程的对应关系,以便于在所述多个VM的前端设备和所述多个VM的后端设备之间形成多个数据传输通道。
在第一种可能的实现方式中,结合第一方面,如果当前时刻的平均I/O吞吐量大于第一阈值,所述HOST在所述多个VM的前端设备和后端设备之间增加用于处理VM的工作线程的步骤之前,进一步包括:
所述HOST将在所述多个VM的前端设备和后端设备之间增加用于处理VM的工作线程所带来的CPU利用率的增长和所带来的I/O吞吐量的增长进行比较;如果所述I/O吞吐量的增长大于CPU利用率的增长,则执行所述HOST在所述多个VM的前端设备和后端设备之间增加用于处理VM的工作线程的步骤。
在第二种可能的实现方式中,结合第一方面,如果当前时刻的平均I/O吞吐量小于第二阈值,所述HOST在所述多个VM的前端设备和后端设备之间减少用于处理VM的工作线程的步骤之前,进一步包括:
所述HOST判断在所述多个VM的前端设备和后端设备之间减少用于处理VM的工作线程所带来的CPU利用率的减少是否导致无法响应所述多个VM的吞吐量;如果在所述多个VM的前端设备和后端设备之间减少用于处理VM的工作线程所带来的CPU利用率的减少不会导致无法响应所述多个VM的吞吐量,则执行所述HOST在所述多个VM的前端设备和后端设备之间减少用于处理VM的工作线程的步骤。
在第三种可能的实现方式中,结合第一方面或第一方面的第一种或第二种可能的实现方式,所述HOST根据增加或减少后的用于处理VM的工作线程,分别调整所述多个VM的前端设备中的队列与用于处理VM的工作线程的对应关系,和所述多个VM的后端设备中的队列与用于处理VM的工作线程的对应关系,包括:
在增加或减少后的用于处理VM的工作线程的数量小于运行在所述HOST上VM的数量时,所述HOST将所述每个工作线程分别对应每个VM的前端设备中一个队列和每个VM的后端设备中一个队列;或者,在增加或减少后的用于处理VM的工作线程的数量大于或等于运行在所述HOST上VM的数量时,所述HOST将独占工作线程对应一个VM的前端设备和后端设备中一个队列、以及将共享工作线程对应至少两个VM的前端设备和后端设备中没有被所述独占工作线程对应的队列,所述用于处理VM的工作线程包括所述独占工作线程和所述共享工作线程。
在第四种可能的实现方式中,结合第一方面或第一方面的第一种或第二种或第三种可能的实现方式,所述HOST根据增加或减少后的用于处理VM的工作线程,分别调整所述多个VM的前端设备中的队列与用于处理VM的工作线程的对应关系,和所述多个VM的后端设备中的队列与用于处理VM的工作线程的对应关系之后,所述方法还包括:
所述HOST调整所述多个VM的后端设备中的队列和所述HOST中本地设备Native Device中的队列的对应关系,以便于在所述多个VM的后端设备和所述Native Device之间形成多个数据传输通道。
第二方面,本发明提供了一种虚拟化平台下I/O通道的调整装置HOST,HOST包括:
统计模块,用于统计运行在宿主机HOST上的多个虚拟机VM当前时刻的平均I/O吞吐量;处理模块,与所述统计模块连接,用于在所述统计模块统计的当前时刻的平均I/O吞吐量大于第一阈值时,在所述多个VM的前端设备和后端设备之间增加用于处理VM的工作线程,以使得增加工作线程后的所述多个VM的平均I/O吞吐量小于第一阈值;或者,用于在所述统计模块统计的当前时刻的平均I/O吞吐量小于第二阈值时,在所述多个VM的前端设备和后端设备之间减少用于处理VM的工作线程,以使得减少工作线程后的所述多个VM的平均I/O吞吐量大于第二阈值;其中,所述第一阈值大于所述第二阈值;第一调整模块,与所述处理模块连接,用于根据所述处理模块增加或减少后的用于处理VM的工作线程,分别调整所述多个VM的前端设备中的队列与用于处理VM的工作线程的对应关系,和所述多个VM的后端设备中的队列与用于处理VM的工作线程的对应关系,以便于在所述多个VM的前端设备和所述多个VM的后端设备之间形成多个数据传输通道。
在第一种可能的实现方式中,结合第一方面,所述调整装置还包括:
判断模块,用于在所述统计模块统计的当前时刻的平均I/O吞吐量大于第一阈值时,将在所述多个VM的前端设备和后端设备之间增加用于处理VM的工作线程所带来的CPU利用率的增长和所带来的I/O吞吐量的增长进行比较;所述处理模块,还用于如果所述I/O吞吐量的增长大于CPU利用率的增长,在所述多个VM的前端设备和后端设备之间增加用于处理VM的工作线程,以使得增加工作线程后的所述多个VM的平均I/O吞吐量小于第一阈值。
在第二种可能的实现方式中,结合第一方面,所述调整装置还包括:
判断模块,用于在所述统计模块统计的当前时刻的平均I/O吞吐量小于第二阈值时,判断在所述多个VM的前端设备和后端设备之间减少用于处理VM的工作线程所带来的CPU利用率的减少是否导致无法响应所述多个VM的吞吐量;所述处理模块,还用于如果在所述多个VM的前端设备和后端设备之间减少用于处理VM的工作线程所带来的CPU利用率的减少不会导致无法响应所述多个VM的吞吐量,在所述多个VM的前端设备和后端设备之间减少用于处理VM的工作线程,以使得减少工作线程后的所述多个VM的平均I/O吞吐量大于第二阈值。
在第三种可能的实现方式中,结合第一方面或第一方面的第一种或第二种可能的实现方式,所述第一调整模块具体用于:
在增加或减少后的用于处理VM的工作线程的数量小于运行在所述HOST上VM的数量时,将所述每个工作线程分别对应每个VM的前端设备中一个队列和每个VM的后端设备中一个队列;或者,在增加或减少后的用于处理VM的工作线程的数量大于或等于运行在所述HOST上VM的数量时,将独占工作线程对应一个VM的前端设备和后端设备中一个队列、以及将共享工作线程对应至少两个VM的前端设备和后端设备中没有被所述独占工作线程对应的队列,所述用于处理VM的工作线程包括所述独占工作线程和所述共享工作线程。
在第四种可能的实现方式中,结合第一方面或第一方面的第一种或第二种或第三种可能的实现方式,所述调整装置还包括:
第二调整模块,用于调整所述多个VM的后端设备中的队列和所述HOST中本地设备Native Device中的队列的对应关系,以便于在所述多个VM的后端设备和所述Native Device之间形成多个数据传输通道。
第三方面,本发明提供了一种宿主机HOST,其特征在于,所述HOST包括:本地设备Native Device,运行在所述Native Device之上的多个虚拟机VM的前端设备和后端设备,以及位于所述多个VM的前端设备和后端设备之间的数据处理模块,其中:
所述数据处理模块用于:
统计所述多个VM当前时刻的平均I/O吞吐量;在当前时刻的平均I/O吞吐量大于第一阈值时,在所述多个VM的前端设备和后端设备之间增加用于处理VM的工作线程,以使得增加工作线程后的所述多个VM的平均I/O吞吐量小于第一阈值;或者,在当前时刻的平均I/O吞吐量小于第二阈值时,所述HOST在所述多个VM的前端设备和后端设备之间减少用于处理VM的工作线程,以使得减少工作线程后的所述多个VM的平均I/O吞吐量大于第二阈值;其中,所述第一阈值大于所述第二阈值;根据增加或减少后的用于处理VM的工作线程,分别调整所述多个VM的前端设备中的队列与用于处理VM的工作线程的对应关系,和所述多个VM的后端设备中的队列与用于处理VM的工作线程的对应关系,以便于在所述多个VM的前端设备和所述多个VM的后端设备之间形成多个数据传输通道。
在第一种可能的实现方式中,结合第三方面,所述数据处理模块还用于:
将在所述多个VM的前端设备和后端设备之间增加用于处理VM的工作线程所带来的CPU利用率的增长和所带来的I/O吞吐量的增长进行比较;如果所述I/O吞吐量的增长大于CPU利用率的增长,在所述多个VM的前端设备和后端设备之间增加用于处理VM的工作线程,以使得增加工作线程后的所述多个VM的平均I/O吞吐量小于第一阈值。
在第二种可能的实现方式中,结合第三方面,所述数据处理模块还用于:
判断在所述多个VM的前端设备和后端设备之间减少用于处理VM的工作线程所带来的CPU利用率的减少是否导致无法响应所述多个VM的吞吐量;如果在所述多个VM的前端设备和后端设备之间减少用于处理VM的工作线程所带来的CPU利用率的减少不会导致无法响应所述多个VM的吞吐量,在所述多个VM的前端设备和后端设备之间减少用于处理VM的工作线程,以使得减少工作线程后的所述多个VM的平均I/O吞吐量大于第二阈值。
可见,在本发明的实施例中,根据当前时刻多个VM的平均I/O吞吐量判断是否在该多个VM的前端设备和后端设备之间增加或减少用于处理VM的工作线程,在当前时刻多个VM的平均I/O吞吐量大于第一阈值时,增加用于处理VM的工作线程,即增加I/O通道资源,提高I/O通道的数据传输能力;在当前时刻多个VM的平均I/O吞吐量小于第二阈值时,减少用于处理VM的工作线程,即减少I/O通道资源,避免I/O通道资源浪费。
进一步,HOST通过调整多个VM的后端设备中的队列和宿主机HOST中本地设备Native Device中队列的对应关系,在多个VM的后端设备和该本地设备Native Device之间形成多个数据传输通道,从而实现了多个VM的前端设备和该HOST中本地设备Native Device之间的多条I/O通道,提高了该多个VM的前端设备和该HOST中本地设备Native Device之间的数据传输能力。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术中一种虚拟化平台下简单多I/O通道技术的架构图;
图2为本发明一个实施例提供的虚拟化平台下I/O通道的调整方法流程图;
图3为本发明提供的虚拟化平台下多个VM的前端设备和后端设备之间I/O工作模式为共享模式的架构图;
图4为本发明提供的虚拟化平台下多个VM的前端设备和后端设备之间I/O工作模式为混合模式的架构图;
图5为本发明一个实施例提供的虚拟化平台下I/O通道的调整装置的结构示意图;
图6为本发明另一个实施例提供的虚拟化平台下I/O通道的调整装置的结构示意图。
图7为本发明一个实施例提供的宿主机HOST的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了方便理解本发明实施例,首先在此介绍本发明实施例描述中会引入的几个要素。
宿主机HOST:作为管理层,用以完成硬件资源的管理、分配;为虚拟机呈现虚拟硬件平台;其中,虚拟硬件平台对其上运行的各个虚拟机提供各种硬件资源,如提供虚拟处理器(如VCPU)、虚拟内存、虚拟磁盘、虚拟网卡等等。其中,该虚拟磁盘可对应HOST的一个文件或者一个逻辑块设备。虚拟机运行在HOST为其准备的虚拟硬件平台上,HOST上运行一个或多个虚拟机。
虚拟机VM:通过虚拟机软件可以在一台物理计算机上模拟出一台或者多台虚拟的计算机,而这些虚拟机就像真正的计算机那样进行工作,虚拟机上可以安装操作系统和应用程序,虚拟机还可访问网络资源。对于在虚拟机中运行的应用程序而言,虚拟机就像是在真正的计算机中进行工作。
数据处理模块:本发明中,在VM的前端设备和后端设备之间引入了数据处理模块,数据处理模块用于处理VM的前端设备和后端设备之间的数据传输,通过工作线程来处理VM的前端设备和后端设备中队列的数据。数据处理模块一般是通过软件实现,即通过处理器读取特殊功能的软件代码指令来实现。
本地设备Native Device:虚拟化环境运行的硬件平台。其中,该Native Device可包括多种硬件,例如某计算节点的Native Device可包括处理器(如CPU)和内存,还可以包括网卡、存储器等等高速/低速输入/输出(I/O,Input/Output)设备。
网桥Bridge:位于VM的后端设备和宿主机HOST的本地设备Native Device之间的网络设备或软件,实现VM的后端设备和宿主机HOST的本地设备Native Device之间的网络互连,对数据帧进行转发。
图2描述了本发明实施例提供的虚拟化平台下I/O通道的调整方法的流程,具体包括:
S201、宿主机HOST统计运行在该HOST上的多个虚拟机VM当前时刻的平均I/O吞吐量。
具体的,HOST可以通过先统计运行在该HOST上的多个VM当前时刻的总的I/O吞吐量,再除以运行在该HOST上的虚拟机的数量,得到当前时刻该多个VM的平均I/O吞吐量。
S202、在当前时刻的平均I/O吞吐量大于第一阈值时,该HOST在该多个VM的前端设备和后端设备之间增加用于处理VM的工作线程;或者,在当前时刻的平均I/O吞吐量小于第二阈值时,该HOST在该多个VM的前端设备和后端设备之间减少用于处理VM的工作线程。
其中,在该多个VM的前端设备和后端设备之间增加用于处理VM的工作线程,以使得增加工作线程后的该多个VM的平均I/O吞吐量大于第一阈值;在该多个VM的前端设备和后端设备之间减少用于处理VM的工作线程,以使得减少工作线程后的该多个VM的平均I/O吞吐量大于第二阈值。第一阈值大于第二阈值,第一阈值用于指示该多个VM的平均I/O吞吐量的上限值,第二阈值用于指示该多个VM的平均I/O吞吐量的下限值,即第一阈值反映的是单个VM最多所能承受的I/O吞吐量的上限,第二阈值反映的是单个VM最少应该承受的I/O吞吐量的下限。
进一步,如果当前时刻的平均I/O吞吐量大于第一阈值,该HOST在该多个VM的前端设备和后端设备之间增加用于处理VM的工作线程的步骤之前,还包括:
改HOST将在该多个VM的前端设备和后端设备之间增加用于处理VM的工作线程所带来的CPU利用率的增长和所带来的I/O吞吐量的增长进行比较;如果I/O吞吐量的增长大于CPU利用率的增长,则执行该HOST在该多个VM的前端设备和后端设备之间增加用于处理VM的工作线程的步骤。
其中,所带来的CPU利用率的增长是指增加用于处理VM的工作线程相对于没有增加用于处理VM的工作线程所增加的CPU利用率,可以用CPU利用率的增长量和/或CPU利用率的增长率来表示;所带来的I/O吞吐量的增长是指增加用于处理VM的工作线程相对于没有增加用于处理VM的工作线程所增加处理的I/O吞吐量,可以用I/O吞吐量的增长量和/或I/O吞吐量的增长率来表示。需要说明的是,本发明对于具体如何比较CPU利用率的增长和I/O吞吐量的增长不做限定,这里示例性的给出两种衡量办法,如果I/O吞吐量的增长量大于CPU利用率的增长量,或者I/O吞吐量的增长率大于CPU利用率的增长率,则确定增加用于处理VM的工作线程。
进一步,如果当前时刻的平均I/O吞吐量小于第二阈值,该HOST在该多个VM的前端设备和后端设备之间减少用于处理VM的工作线程的步骤之前,还包括:
改HOST判断在该多个VM的前端设备和后端设备之间减少用于处理VM的工作线程所带来的CPU利用率的减少是否导致无法响应该多个VM的吞吐量;如果在该多个VM的前端设备和后端设备之间减少用于处理VM的工作线程所带来的CPU利用率的减少不会导致无法响应该多个VM的吞吐量,则执行该HOST在该多个VM的前端设备和后端设备之间减少用于处理VM的工作线程的步骤。即,如果所带来的CPU利用率的减少会导致无法响应该多个VM的吞吐量,则不减少工作线程。
可选地,还可以为该多个VM设置优先级,使得享有高优先级的VM保持对工作线程的独占,享有专有I/O通道,无论宿主机HOST整体I/O负载如何,高优先级的VM独占的I/O通道资源不受影响;对于优先级级别相同的VM,则按照上述增加或减少工作线程的方法进行处理。
需要说明的是,在本发明中,I/O通道资源包括用于处理VM的工作线程,以及VM的前端设备和后端设备中的队列。
S203、该HOST根据增加或减少后的用于处理VM的工作线程,分别调整该多个VM的前端设备和后端设备中的队列与用于处理VM的工作线程的对应关系。
其中,上述对应关系包括:该多个VM的前端设备中的队列与用于处理VM的工作线程的对应关系,和该多个VM的后端设备中的队列与用于处理VM的工作线程的对应关系,该HOST分别调整该对应关系以便于在该多个VM的前端设备和该多个VM的后端设备之间形成多个数据传输通道。
具体的,该HOST根据增加或减少后的用于处理VM的工作线程,分别调整该多个VM的前端设备中的队列与用于处理VM的工作线程的对应关系,和该多个VM的后端设备中的队列与用于处理VM的工作线程的对应关系,包括:
在增加或减少后的用于处理VM的工作线程的数量小于运行在HOST上VM的数量时,该HOST将每个工作线程分别对应每个VM的前端设备中一个队列和每个VM的后端设备中一个队列;或者,在增加或减少后的用于处理VM的工作线程的数量大于或等于运行在HOST上VM的数量时,该HOST将独占工作线程对应一个VM的前端设备和后端设备中一个队列、以及将共享工作线程对应至少两个VM的前端设备和后端设备中没有被独占工作线程对应的队列;其中,用于处理VM的工作线程包括独占工作线程和共享工作线程。需要说明的是,上述两种调整模式分别对应共享模式和混合模式,关于共享模式和混合模式具体可见图3和图4所示的描述。
进一步,在HOST根据增加或减少后的用于处理VM的工作线程,分别调整所述多个VM的前端设备中的队列与用于处理VM的工作线程的对应关系,和所述多个VM的后端设备中的队列与用于处理VM的工作线程的对应关系之后,该虚拟化平台下I/O通道的调整方法还包括:
该HOST调整该多个VM的后端设备中的队列和HOST中本地设备Native Device中的队列的对应关系,以便于在该多个VM的后端设备和该Native Device之间形成多个数据传输通道。
具体的,现有技术中,Native Device可以具有多个队列,VM的后端设备中的数据在进入该Native Device时会进行队列的选择,以通过不同的队列实现数据传输,该技术可以由该Native Device中的硬件驱动实现。考虑到本发明中,由于VM的后端设备中也具有多个队列,因此该Native Device在通过网桥Bridge向VM的后端设备中发送数据时,也可以选择VM的后端设备中的多个队列,以实现在VM的后端设备和该Native Device之间形成多个数据传输通道。因此调整该多个VM的后端设备中的队列和HOST中本地设备Native Device中的队列的对应关系实际上是,Native Device在通过网桥Bridge向VM的后端设备中发送数据时,如何选择VM的后端设备中的队列。
针对如何选择VM的后端设备中的队列,可以根据该Native Device中队列接收VM的后端设备中队列发送数据时队列之间的对应关系,反向选择VM的后端设备中的队列,以保持VM的后端设备中队列和Native Device中队列之间互相传输数据的通道的一致性;或者,该Native Device重新根据数据流的属性(如来自同一源端或其他)选择VM的后端设备中不同的队列。本发明通过上述选择方式以实现调整该多个VM的后端设备中的队列和HOST中本地设备Native Device中的队列的对应关系。
由于在该多个VM的后端设备和该HOST中本地设备Native Device之间通过调整队列的对应关系,在该多个VM的后端设备和本地设备Native Device之间形成多个数据传输通道,实现了该多个VM的前端设备和该HOST中本地设备Native Device之间的多条I/O通道,可以提高该多个VM和该HOST本地设备Native Device之间的数据传输能力。
在上述实施例可知,HOST根据当前时刻多个VM的平均I/O吞吐量判断是否在该多个VM的前端设备和后端设备之间增加或减少用于处理VM的工作线程,在当前时刻多个VM的平均I/O吞吐量大于第一阈值时,增加用于处理VM的工作线程,即增加I/O通道资源,提高I/O通道的数据传输能力;在当前时刻多个VM的平均I/O吞吐量小于第二阈值时,减少用于处理VM的工作线程,即减少I/O通道资源,避免I/O通道资源浪费。
考虑到根据当前时刻的平均I/O吞吐量增加或减少后的I/O通道资源的有限性,特别是I/O通道资源中工作线程的有限性,根据I/O通道资源中工作线程的数量和运行在宿主机HOST中VM的数量,本发明在上述多个VM的前端设备和后端设备之间设置了两种I/O工作模式,包括共享模式和混合模式,并且该两种I/O工作模式是可以互相切换,当满足一定条件时,可以由一种工作模式切换到另一种工作模式。
针对共享模式,在用于处理VM的工作线程的数量小于运行在该HOST上VM的数量时,HOST将多个VM的前端设备和后端设备之间I/O工作模式调整为共享模式,即数据处理模块上的工作线程采取共享模式来处理该多个VM的前端设备和后端设备中队列的数据,具体的,数据处理模块上的工作线程分别对应运行在HOST上每个VM的前端设备中一个队列和每个VM后端设备中一个队列。
图3为VM的前端设备和后端设备之间I/O工作模式为共享模式的示意图,由图可知,运行在宿主机HOST上的VM分别为VM1、VM2和VM3,数据处理模块上的工作线程分别为工作线程1和工作线程2,其中,工作线程1分别处理VM1、VM2和VM3中前端设备和后端设备中的队列1,工作线程2分别处理VM1、VM2和VM3中前端设备和后端设备中的队列2。
针对混合模式,在用于处理VM的工作线程的数量大于或等于运行在该HOST上VM的数量时,HOST将该多个VM的前端设备和后端设备之间I/O工作模式调整为混合模式,即数据处理模块上的工作线程采取混合模式来处理VM的前端设备和后端设备中队列的数据,具体的,可以将数据处理模块上的工作线程分为独占工作线程和共享工作线程两种,其中,独占工作线程用于单独处理一个VM的前端设备和后端设备中一个队列的数据,共享工作线程用于共享处理至少两个VM的前端设备和后端设备中没有被独占工作线程处理的队列的数据。
图4为VM的前端设备和后端设备之间I/O工作模式为混合模式的示意图,由图可知,运行在宿主机HOST上的VM分别为VM1、VM2和VM3,数据处理模块上的工作线程有4个,包括独占工作线程1、独占工作线程2、独占工作线程3和共享工作线程1,其中,独占工作线程1单独处理VM1中前端设备和后端设备中队列1的数据,独占工作线程2单独处理VM2中前端设备和后端设备中队列1的数据,独占工作线程3单独处理VM3中前端设备和后端设备中队列1的数据,共享工作线程共享处理VM1、VM2和VM3中每个VM的前端设备和后端设备中队列2的数据。图4仅示意了共享工作线程处理至少两个VM中每个VM的前端设备和后端设备中一个队列的数据的情形,共享工作线程还可以处理其他情形下多个队列的数据,本发明对比不做限制。
进一步,由图3和图4可知,除了上述在多个VM的前端设备和后端设备之间形成多个I/O通道,宿主机HOST还通过调整该多个VM的后端设备中的队列和该HOST中本地设备Native Device中队列的对应关系,在该多个VM的后端设备和该本地设备Native Device之间形成多个数据传输通道,从而实现了多个VM的前端设备和该HOST中本地设备Native Device之间的多条I/O通道,提高了该多个VM的前端设备和该HOST中本地设备Native Device之间的数据传输能力。
针对上述虚拟化平台下I/O通道的调整方法,本发明下述实施例提供了虚拟化平台下I/O通道的调整装置的结构。
图5描述了本发明实施例提供的虚拟化平台下I/O通道的调整装置500的结构,该调整装置500具体包括:
统计模块501,用于统计运行在宿主机HOST上的多个虚拟机VM当前时刻的平均I/O吞吐量。
处理模块502,与统计模块5001连接,用于在统计模块501统计的当前时刻的平均I/O吞吐量大于第一阈值时,在该多个VM的前端设备和后端设备之间增加用于处理VM的工作线程,以使得增加工作线程后的该多个VM的平均I/O吞吐量小于第一阈值;或者,用于在统计模块501统计的当前时刻的平均I/O吞吐量小于第二阈值时,在该多个VM的前端设备和后端设备之间减少用于处理VM的工作线程,以使得减少工作线程后的该多个VM的平均I/O吞吐量大于第二阈值;其中,第一阈值大于第二阈值。
第一调整模块503,与处理模块502连接,用于根据处理模块502增加或减少后的用于处理VM的工作线程,分别调整该多个VM的前端设备中的队列与用于处理VM的工作线程的对应关系,和该多个VM的后端设备中的队列与用于处理VM的工作线程的对应关系,以便于在该多个VM的前端设备和该多个VM的后端设备之间形成多个数据传输通道。
可选的,该调整装置500还包括:
判断模块504,用于在统计模块501统计的当前时刻的平均I/O吞吐量大于第一阈值时,将在该多个VM的前端设备和后端设备之间增加用于处理VM的工作线程所带来的CPU利用率的增长和所带来的I/O吞吐量的增长进行比较;
处理模块502,还用于在判断模块504判断如果所述I/O吞吐量的增长大于CPU利用率的增长,在该多个VM的前端设备和后端设备之间增加用于处理VM的工作线程,以使得增加工作线程后的该多个VM的平均I/O吞吐量小于第一阈值。
可选的,该调整装置500还包括:
判断模块504,用于在统计模块501统计的当前时刻的平均I/O吞吐量小于第二阈值时,判断在该多个VM的前端设备和后端设备之间减少用于处理VM的工作线程所带来的CPU利用率的减少是否导致无法响应该多个VM的吞吐量;
处理模块502,还用于在判断模块504判断如果在该多个VM的前端设备和后端设备之间减少用于处理VM的工作线程所带来的CPU利用率的减少不会导致无法响应该多个VM的吞吐量,在该多个VM的前端设备和后端设备之间减少用于处理VM的工作线程,以使得减少工作线程后的该多个VM的平均I/O吞吐量大于第二阈值。
进一步,第一调整模块503具体用于:
在增加或减少后的用于处理VM的工作线程的数量小于运行在该HOST上VM的数量时,将每个工作线程分别对应每个VM的前端设备中一个队列和每个VM的后端设备中一个队列;或者,在增加或减少后的用于处理VM的工作线程的数量大于或等于运行在该HOST上VM的数量时,将独占工作线程对应一个VM的前端设备和后端设备中一个队列、以及将共享工作线程对应至少两个VM的前端设备和后端设备中没有被独占工作线程对应的队列,其中,用于处理VM的工作线程包括独占工作线程和共享工作线程。
进一步,调整装置500还包括第二调整模块505,用于调整该多个VM的后端设备中的队列和HOST中本地设备Native Device中的队列的对应关系,以便于在该多个VM的后端设备和该Native Device之间形成多个数据传输通道。
由于第二调整模块505在该多个VM的后端设备和宿主机HOST中本地设备Native Device之间形成了多个数据通道,实现了该多个VM的前端设备和HOST中本地设备Native Device之间的多条I/O通道,提高该多个VM和HOST本地设备Native Device之间的数据传输能力。
由上述实施例可知,该虚拟化平台下I/O通道的调整装置根据当前时刻多个VM的平均I/O吞吐量判断是否在该多个VM的前端设备和后端设备之间增加或减少用于处理VM的工作线程,在当前时刻多个VM的平均I/O吞吐量大于第一阈值时,增加用于处理VM的工作线程,即增加I/O通道资源,提高I/O通道的数据传输能力;在当前时刻多个VM的平均I/O吞吐量小于第二阈值时,减少用于处理VM的工作线程,即减少I/O通道资源,避免I/O通道资源浪费。
图6描述了本发明另一个实施例提供的虚拟化平台下I/O通道的调整装置600的结构,该调整装置600包括:至少一个处理器601,例如CPU,至少一个网络接口604或者其他用户接口603,存储器605,至少一个通信总线602。通信总线602用于实现这些组件之间的连接通信。该HOST600可选的包含用户接口603,包括显示器,键盘或者点击设备(例如,鼠标,轨迹球(trackball),触感板或者触感显示屏)。存储器605可能包含高速RAM存储器,也可能还包括非不稳定的存储器(non‑volatile memory),例如至少一个磁盘存储器。存储器605可选的可以包含至少一个位于远离前述处理器601的存储装置。在一些实施方式中,存储器605还可以包括操作系统606,包含各种程序,用于实现各种基础业务以及处理基于硬件的任务。
具体地,处理器601用于:
统计运行在宿主机HOST上的多个虚拟机VM当前时刻的平均I/O吞吐量;
在当前时刻的平均I/O吞吐量大于第一阈值时,在该多个VM的前端设备和后端设备之间增加用于处理VM的工作线程,以使得增加工作线程后的该多个VM的平均I/O吞吐量小于第一阈值;或者,在当前时刻的平均I/O吞吐量小于第二阈值时,在该多个VM的前端设备和后端设备之间减少用于处理VM的工作线程,以使得减少工作线程后的该多个VM的平均I/O吞吐量大于第二阈值;其中,第一阈值大于第二阈值;
根据增加或减少后的用于处理VM的工作线程,分别调整该多个VM的前端设备中的队列与用于处理VM的工作线程的对应关系,和该多个VM的后端设备中的队列与用于处理VM的工作线程的对应关系,以便于在该多个VM的前端设备和该多个VM的后端设备之间形成多个数据传输通道。
进一步,如果当前时刻的平均I/O吞吐量大于第一阈值,处理器601在该多个VM的前端设备和后端设备之间增加用于处理VM的工作线程的步骤之前,还包括:将在该多个VM的前端设备和后端设备之间增加用于处理VM的工作线程所带来的CPU利用率的增长和所带来的I/O吞吐量的增长进行比较;如果I/O吞吐量的增长大于CPU利用率的增长,则执行在该多个VM的前端设备和后端设备之间增加用于处理VM的工作线程的步骤。
如果当前时刻的平均I/O吞吐量小于第二阈值,处理器601在该多个VM的前端设备和后端设备之间减少用于处理VM的工作线程的步骤之前,还包括:判断在该多个VM的前端设备和后端设备之间减少用于处理VM的工作线程所带来的CPU利用率的减少是否导致无法响应该多个VM的吞吐量;如果在该多个VM的前端设备和后端设备之间减少用于处理VM的工作线程所带来的CPU利用率的减少不会导致无法响应该多个VM的吞吐量,则执行在该多个VM的前端设备和后端设备之间减少用于处理VM的工作线程的步骤。
进一步,处理器601用于根据增加或减少后的用于处理VM的工作线程,分别调整该多个VM的前端设备中的队列与用于处理VM的工作线程的对应关系,和该多个VM的后端设备中的队列与用于处理VM的工作线程的对应关系,包括:
在增加或减少后的用于处理VM的工作线程的数量小于运行在HOST上VM的数量时,将每个工作线程分别对应每个VM的前端设备中一个队列和每个VM的后端设备中一个队列;或者,在增加或减少后的用于处理VM的工作线程的数量大于或等于运行在HOST上VM的数量时,将独占工作线程对应一个VM的前端设备和后端设备中一个队列、以及将共享工作线程对应至少两个VM的前端设备和后端设备中没有被独占工作线程对应的队列;其中,用于处理VM的工作线程包括独占工作线程和共享工作线程。
进一步,处理器601,还用于调整该多个VM的后端设备中的队列和HOST中本地设备Native Device中的队列的对应关系,以便于在该多个VM的后端设备和该Native Device之间形成多个数据传输通道。
由上述实施例可知,该虚拟化平台下I/O通道的调整装置根据当前时刻多个VM的平均I/O吞吐量判断是否在该多个VM的前端设备和后端设备之间增加或减少用于处理VM的工作线程,在当前时刻多个VM的平均I/O吞吐量大于第一阈值时,增加用于处理VM的工作线程,即增加I/O通道资源,提高I/O通道的数据传输能力;在当前时刻多个VM的平均I/O吞吐量小于第二阈值时,减少用于处理VM的工作线程,即减少I/O通道资源,避免I/O通道资源浪费。
需要说明的是,上述本发明实施例揭示的方法可以应用于处理器601中,或者说由处理器601实现。处理器601可能是一种集成电路芯片,具有指令和数据的执行能力,以及信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器601中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器(CPU)、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器605,处理器读取存储器605中的信息,结合其硬件完成上述方法的步骤。
图7描述了本发明一个实施例提供的宿主机HOST700的结构,该HOST包括本地设备Native Device705,运行在该Native Device705之上的多个虚拟机VM的前端设备和后端设备,位于该多个VM的前端设备和后端设备之间的数据处理模块702,以及位于该多个VM的后端设备和该Native Device705之间的网桥Bridge704。
其中,多个VM的前端设备,包括VM1前端设备7011和VM2前端设备7012;多个VM的后端设备,包括VM1后端设备7031和VM2后端设备7032;网桥Bridge704位于VM的后端设备和宿主机HOST的本地设备NativeDevice之间的网络设备或软件,实现VM的后端设备和宿主机HOST的本地设备Native Device之间的网络互连,对数据帧进行转发;本地设备Native Device705为虚拟化环境运行的硬件平台,该Native Device可包括多种硬件,例如某计算节点的Native Device可包括处理器(如CPU)和内存,还可以包括网卡、存储器等等高速/低速输入/输出(I/O,Input/Output)设备。
数据处理模块702用于:
统计该多个VM当前时刻的平均I/O吞吐量;
在当前时刻的平均I/O吞吐量大于第一阈值时,在该多个VM的前端设备和后端设备之间增加用于处理VM的工作线程,以使得增加工作线程后的该多个VM的平均I/O吞吐量小于第一阈值;或者,在当前时刻的平均I/O吞吐量小于第二阈值时,在该多个VM的前端设备和后端设备之间减少用于处理VM的工作线程,以使得减少工作线程后的该多个VM的平均I/O吞吐量大于第二阈值;其中,第一阈值大于第二阈值;
根据增加或减少后的用于处理VM的工作线程,分别调整该多个VM的前端设备中的队列与用于处理VM的工作线程的对应关系,和该多个VM的后端设备中的队列与用于处理VM的工作线程的对应关系,以便于在该多个VM的前端设备和该多个VM的后端设备之间形成多个数据传输通道。
可选的,数据处理模块702还用于:
将在该多个VM的前端设备和后端设备之间增加用于处理VM的工作线程所带来的CPU利用率的增长和所带来的I/O吞吐量的增长进行比较;如果I/O吞吐量的增长大于CPU利用率的增长,在该多个VM的前端设备和后端设备之间增加用于处理VM的工作线程,以使得增加工作线程后的该多个VM的平均I/O吞吐量小于第一阈值。
可选的,数据处理模块702还用于:
判断在该多个VM的前端设备和后端设备之间减少用于处理VM的工作线程所带来的CPU利用率的减少是否导致无法响应该多个VM的吞吐量;如果在该多个VM的前端设备和后端设备之间减少用于处理VM的工作线程所带来的CPU利用率的减少不会导致无法响应该多个VM的吞吐量,在该多个VM的前端设备和后端设备之间减少用于处理VM的工作线程,以使得减少工作线程后的该多个VM的平均I/O吞吐量大于第二阈值。
需要说明的是,数据处理模块702可以执行实施例一中揭示的方法,本发明在此不予赘述,不能理解成是对本实施例一中揭示的方法的限制;并且,数据处理模块702一般是软件实现,即通过处理器读取特殊功能的软件代码指令来实现,数据处理单元702用软件方法实现只是本发明的一个较佳的实现方案,本领域技术人员同样可以用处理器(如CPU、DSP)之类的硬件逻辑来实现数据处理单元702的软件方法,本发明对此不做限制。
由上述实施例可知,宿主机HOST根据当前时刻多个VM的平均I/O吞吐量判断是否在该多个VM的前端设备和后端设备之间增加或减少用于处理VM的工作线程,在当前时刻多个VM的平均I/O吞吐量大于第一阈值时,增加用于处理VM的工作线程,即增加I/O通道资源,提高I/O通道的数据传输能力;在当前时刻多个VM的平均I/O吞吐量小于第二阈值时,减少用于处理VM的工作线程,即减少I/O通道资源,避免I/O通道资源浪费。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

虚拟化平台下I/O通道的调整方法和调整装置.pdf_第1页
第1页 / 共21页
虚拟化平台下I/O通道的调整方法和调整装置.pdf_第2页
第2页 / 共21页
虚拟化平台下I/O通道的调整方法和调整装置.pdf_第3页
第3页 / 共21页
点击查看更多>>
资源描述

《虚拟化平台下I/O通道的调整方法和调整装置.pdf》由会员分享,可在线阅读,更多相关《虚拟化平台下I/O通道的调整方法和调整装置.pdf(21页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 CN 103116517 A(43)申请公布日 2013.05.22CN103116517A*CN103116517A*(21)申请号 201310027312.7(22)申请日 2013.01.24G06F 9/455(2006.01)G06F 13/20(2006.01)(71)申请人华为技术有限公司地址 518129 广东省深圳市龙岗区坂田华为总部办公楼(72)发明人张洁 金鑫(54) 发明名称虚拟化平台下I/O通道的调整方法和调整装置(57) 摘要本发明提供了虚拟化平台下I/O通道的调整方法和调整装置,应用于虚拟化技术领域,I/O通道的调整方法包括:宿主机HOS统计。

2、运行在该HOST上的多个虚拟机VM当前时刻的平均I/O吞吐量;该HOST根据当前时刻的平均I/O吞吐量在该多个VM的前端设备和后端设备之间增加或减少用于处理VM的工作线程;该HOST调整该多个VM的前端设备和后端设备中的队列与用于处理VM的工作线程的对应关系。应用本发明,根据运行在HOST上多个VM的I/O吞吐量动态调整该多个VM的前端设备和后端设备之间的I/O通道所占用的I/O通道资源,在I/O吞吐量下降时,释放空闲的I/O通道资源,避免I/O通道资源浪费;在I/O吞吐量增加时,增加I/O通道资源,提高I/O通道的数据传输能力。(51)Int.Cl.权利要求书3页 说明书13页 附图4页(1。

3、9)中华人民共和国国家知识产权局(12)发明专利申请权利要求书3页 说明书13页 附图4页(10)申请公布号 CN 103116517 ACN 103116517 A1/3页21.一种虚拟化平台下I/O通道的调整方法,其特征在于,包括:宿主机HOST统计运行在所述HOST上的多个虚拟机VM当前时刻的平均I/O吞吐量;在当前时刻的平均I/O吞吐量大于第一阈值时,所述HOST在所述多个VM的前端设备和后端设备之间增加用于处理VM的工作线程,以使得增加工作线程后的所述多个VM的平均I/O吞吐量小于第一阈值;或者,在当前时刻的平均I/O吞吐量小于第二阈值时,所述HOST在所述多个VM的前端设备和后端设。

4、备之间减少用于处理VM的工作线程,以使得减少工作线程后的所述多个VM的平均I/O吞吐量大于第二阈值;其中,所述第一阈值大于所述第二阈值;所述HOST根据增加或减少后的用于处理VM的工作线程,分别调整所述多个VM的前端设备中的队列与用于处理VM的工作线程的对应关系,和所述多个VM的后端设备中的队列与用于处理VM的工作线程的对应关系,以便于在所述多个VM的前端设备和所述多个VM的后端设备之间形成多个数据传输通道。2.如权利要求1所述的方法,其特征在于,如果当前时刻的平均I/O吞吐量大于第一阈值,所述HOST在所述多个VM的前端设备和后端设备之间增加用于处理VM的工作线程的步骤之前,进一步包括:所述。

5、HOST将在所述多个VM的前端设备和后端设备之间增加用于处理VM的工作线程所带来的CPU利用率的增长和所带来的I/O吞吐量的增长进行比较;如果所述I/O吞吐量的增长大于CPU利用率的增长,则执行所述HOST在所述多个VM的前端设备和后端设备之间增加用于处理VM的工作线程的步骤。3.如权利要求1所述的方法,其特征在于,如果当前时刻的平均I/O吞吐量小于第二阈值,所述HOST在所述多个VM的前端设备和后端设备之间减少用于处理VM的工作线程的步骤之前,进一步包括:所述HOST判断在所述多个VM的前端设备和后端设备之间减少用于处理VM的工作线程所带来的CPU利用率的减少是否导致无法响应所述多个VM的吞。

6、吐量;如果在所述多个VM的前端设备和后端设备之间减少用于处理VM的工作线程所带来的CPU利用率的减少不会导致无法响应所述多个VM的吞吐量,则执行所述HOST在所述多个VM的前端设备和后端设备之间减少用于处理VM的工作线程的步骤。4.如权利要求1-3任一项所述的方法,其特征在于,所述HOST根据增加或减少后的用于处理VM的工作线程,分别调整所述多个VM的前端设备中的队列与用于处理VM的工作线程的对应关系,和所述多个VM的后端设备中的队列与用于处理VM的工作线程的对应关系,包括:在增加或减少后的用于处理VM的工作线程的数量小于运行在所述HOST上VM的数量时,所述HOST将所述每个工作线程分别对应。

7、每个VM的前端设备中一个队列和每个VM的后端设备中一个队列;或者,在增加或减少后的用于处理VM的工作线程的数量大于或等于运行在所述HOST上VM的数量时,所述HOST将独占工作线程对应一个VM的前端设备和后端设备中一个队列、以及将共享工作线程对应至少两个VM的前端设备和后端设备中没有被所述独占工作线程对应的队列,所述用于处理VM的工作线程包括所述独占工作线程和所述共享工作线程。5.如权利要求1-4任一项所述的方法,其特征在于,所述HOST根据增加或减少后的用权 利 要 求 书CN 103116517 A2/3页3于处理VM的工作线程,分别调整所述多个VM的前端设备中的队列与用于处理VM的工作线。

8、程的对应关系,和所述多个VM的后端设备中的队列与用于处理VM的工作线程的对应关系之后,所述方法还包括:所述HOST调整所述多个VM的后端设备中的队列和所述HOST中本地设备Native Device中的队列的对应关系,以便于在所述多个VM的后端设备和所述Native Device之间形成多个数据传输通道。6.一种虚拟化平台下I/O通道的调整装置,其特征在于,包括:统计模块,用于统计运行在宿主机HOST上的多个虚拟机VM当前时刻的平均I/O吞吐量;处理模块,与所述统计模块连接,用于在所述统计模块统计的当前时刻的平均I/O吞吐量大于第一阈值时,在所述多个VM的前端设备和后端设备之间增加用于处理VM。

9、的工作线程,以使得增加工作线程后的所述多个VM的平均I/O吞吐量小于第一阈值;或者,用于在所述统计模块统计的当前时刻的平均I/O吞吐量小于第二阈值时,在所述多个VM的前端设备和后端设备之间减少用于处理VM的工作线程,以使得减少工作线程后的所述多个VM的平均I/O吞吐量大于第二阈值;其中,所述第一阈值大于所述第二阈值;第一调整模块,与所述处理模块连接,用于根据所述处理模块增加或减少后的用于处理VM的工作线程,分别调整所述多个VM的前端设备中的队列与用于处理VM的工作线程的对应关系,和所述多个VM的后端设备中的队列与用于处理VM的工作线程的对应关系,以便于在所述多个VM的前端设备和所述多个VM的后。

10、端设备之间形成多个数据传输通道。7.如权利要求6所述的调整装置,其特征在于,所述调整装置还包括:判断模块,用于在所述统计模块统计的当前时刻的平均I/O吞吐量大于第一阈值时,将在所述多个VM的前端设备和后端设备之间增加用于处理VM的工作线程所带来的CPU利用率的增长和所带来的I/O吞吐量的增长进行比较;所述处理模块,还用于如果所述I/O吞吐量的增长大于CPU利用率的增长,在所述多个VM的前端设备和后端设备之间增加用于处理VM的工作线程,以使得增加工作线程后的所述多个VM的平均I/O吞吐量小于第一阈值。8.如权利要求6所述的调整装置,其特征在于,所述调整装置还包括:判断模块,用于在所述统计模块统计。

11、的当前时刻的平均I/O吞吐量小于第二阈值时,判断在所述多个VM的前端设备和后端设备之间减少用于处理VM的工作线程所带来的CPU利用率的减少是否导致无法响应所述多个VM的吞吐量;所述处理模块,还用于如果在所述多个VM的前端设备和后端设备之间减少用于处理VM的工作线程所带来的CPU利用率的减少不会导致无法响应所述多个VM的吞吐量,在所述多个VM的前端设备和后端设备之间减少用于处理VM的工作线程,以使得减少工作线程后的所述多个VM的平均I/O吞吐量大于第二阈值。9.如权利要求6-8任一所述的调整装置,其特征在于,所述第一调整模块具体用于:在增加或减少后的用于处理VM的工作线程的数量小于运行在所述HO。

12、ST上VM的数量时,将所述每个工作线程分别对应每个VM的前端设备中一个队列和每个VM的后端设备中一个队列;或者,在增加或减少后的用于处理VM的工作线程的数量大于或等于运行在所述HOST上VM权 利 要 求 书CN 103116517 A3/3页4的数量时,将独占工作线程对应一个VM的前端设备和后端设备中一个队列、以及将共享工作线程对应至少两个VM的前端设备和后端设备中没有被所述独占工作线程对应的队列,所述用于处理VM的工作线程包括所述独占工作线程和所述共享工作线程。10.如权利要求6-9任一所述的调整装置,其特征在于,所述调整装置还包括:第二调整模块,用于调整所述多个VM的后端设备中的队列和所。

13、述HOST中本地设备Native Device中的队列的对应关系,以便于在所述多个VM的后端设备和所述Native Device之间形成多个数据传输通道。11.一种宿主机HOST,其特征在于,所述HOST包括:本地设备NativeDevice,运行在所述Native Device之上的多个虚拟机VM的前端设备和后端设备,位于所述多个VM的前端设备和后端设备之间的数据处理模块,以及位于所述多个VM的后端设备和所述Native Device之间的网桥Bridge,其中:所述数据处理模块用于:统计所述多个VM当前时刻的平均I/O吞吐量;在当前时刻的平均I/O吞吐量大于第一阈值时,在所述多个VM的前端。

14、设备和后端设备之间增加用于处理VM的工作线程,以使得增加工作线程后的所述多个VM的平均I/O吞吐量小于第一阈值;或者,在当前时刻的平均I/O吞吐量小于第二阈值时,HOST在所述多个VM的前端设备和后端设备之间减少用于处理VM的工作线程,以使得减少工作线程后的所述多个VM的平均I/O吞吐量大于第二阈值;其中,所述第一阈值大于所述第二阈值;根据增加或减少后的用于处理VM的工作线程,分别调整所述多个VM的前端设备中的队列与用于处理VM的工作线程的对应关系,和所述多个VM的后端设备中的队列与用于处理VM的工作线程的对应关系,以便于在所述多个VM的前端设备和所述多个VM的后端设备之间形成多个数据传输通道。

15、。12.如权利要求11所述的HOST,其特征在于,所述数据处理模块还用于:将在所述多个VM的前端设备和后端设备之间增加用于处理VM的工作线程所带来的CPU利用率的增长和所带来的I/O吞吐量的增长进行比较;如果所述I/O吞吐量的增长大于CPU利用率的增长,在所述多个VM的前端设备和后端设备之间增加用于处理VM的工作线程,以使得增加工作线程后的所述多个VM的平均I/O吞吐量小于第一阈值。13.如权利要求11所述的HOST,其特征在于,所述数据处理模块还用于:判断在所述多个VM的前端设备和后端设备之间减少用于处理VM的工作线程所带来的CPU利用率的减少是否导致无法响应所述多个VM的吞吐量;如果在所述。

16、多个VM的前端设备和后端设备之间减少用于处理VM的工作线程所带来的CPU利用率的减少不会导致无法响应所述多个VM的吞吐量,在所述多个VM的前端设备和后端设备之间减少用于处理VM的工作线程,以使得减少工作线程后的所述多个VM的平均I/O吞吐量大于第二阈值。权 利 要 求 书CN 103116517 A1/13页5虚拟化平台下 I/O 通道的调整方法和调整装置技术领域0001 本发明涉及虚拟化技术领域,尤其涉及虚拟化平台下I/O通道的调整方法和调整装置。背景技术0002 虚拟化是将计算机物理资源如服务器、网络、内存及存储等予以抽象、转换后呈现出来,使用户可以比原本的组态更好的方式来应用这些资源。这。

17、些资源的新虚拟部分是不受现有资源的架设方式,地域或物理组态所限制。物理存在的宿主机HOST运行多个虚拟机(Virtual Machine,简称为VM),HOST管理所有的物理硬件设备及资源,将一个独占设备虚拟成多个虚拟设备,供多个用户线程同时使用,每个用户能够看到的设备就是虚拟设备,物理硬件设备对用户透明。0003 虚拟化环境下,VM并不能直接访问硬件设备,HOST为VM提供连通硬件设备的数据通路,即I/O通道。本发明中,通道包括VM的前端设备Front Device和VM的后端设备Back Device之间的数据通道、以及VM的后端设备和HOST的本地设备Native Device之间的数据。

18、通道;其中,VM的前端设备是虚拟机中看到的设备,实际是HOST为VM模拟的设备;VM的后端设备是HOST操作系统中与VM的前端设备相对接的软件模拟设备;HOST的本地设备Native Device是HOST的物理设备。0004 图1描述了现有技术中一种虚拟化平台下简单多I/O通道技术,图1中以两个虚拟机VM1和VM2为例,VM的前端设备和后端设备之间有多个I/O通道(图1中以两个I/O通道为例),数据处理模块是VM的前端设备和后端设备之间的桥梁,用于数据拷贝、数据过滤或是其他数据处理业务,包括多个工作线程(图1中以两个工作线程为例),工作线程的个数和VM的前端设备和后端设备之间I/O通道的个数。

19、相同,且其中每个I/O通道对应一个工作线程,VM的后端设备与网桥Bridge之间以及网桥Bridge与本地设备Native Device之间是单通道,VM的后端设备通过该单通道实现与本地设备Native Device之间的数据传输。0005 发明人发现上述现有技术至少存在如下技术问题:VM的前端设备和后端设备之间的I/O通道个数是在创建VM的时候确定,VM整个生命周期中该I/O通道个数不能改变,因此VM的前端设备和后端设备之间的I/O通道所占用的通道资源也不能改变,当VM的前端设备和后端设备之间的I/O吞吐量发生变化时,无法调整I/O通道资源,在I/O吞吐量下降时,无法释放空闲的I/O通道资源。

20、,造成I/O通道资源浪费;在I/O吞吐量增加时,无法增加I/O通道资源,I/O通道数据传输能力无法提高,系统性能下降。发明内容0006 本发明实施例提供虚拟化平台下I/O通道的调整方法和HOST调整装置,以实现动态地调整多个VM的前端设备和后端设备之间I/O通道资源的分配,从而提高系统性能。0007 第一方面,本发明提供了一种虚拟化平台下I/O通道的调整方法,包括:说 明 书CN 103116517 A2/13页60008 宿主机HOST统计运行在所述HOST上的多个虚拟机VM当前时刻的平均I/O吞吐量;在当前时刻的平均I/O吞吐量大于第一阈值时,所述HOST在所述多个VM的前端设备和后端设备。

21、之间增加用于处理VM的工作线程,以使得增加工作线程后的所述多个VM的平均I/O吞吐量小于第一阈值;或者,在当前时刻的平均I/O吞吐量小于第二阈值时,所述HOST在所述多个VM的前端设备和后端设备之间减少用于处理VM的工作线程,以使得减少工作线程后的所述多个VM的平均I/O吞吐量大于第二阈值;其中,所述第一阈值大于所述第二阈值;所述HOST根据增加或减少后的用于处理VM的工作线程,分别调整所述多个VM的前端设备中的队列与用于处理VM的工作线程的对应关系,和所述多个VM的后端设备中的队列与用于处理VM的工作线程的对应关系,以便于在所述多个VM的前端设备和所述多个VM的后端设备之间形成多个数据传输通。

22、道。0009 在第一种可能的实现方式中,结合第一方面,如果当前时刻的平均I/O吞吐量大于第一阈值,所述HOST在所述多个VM的前端设备和后端设备之间增加用于处理VM的工作线程的步骤之前,进一步包括:0010 所述HOST将在所述多个VM的前端设备和后端设备之间增加用于处理VM的工作线程所带来的CPU利用率的增长和所带来的I/O吞吐量的增长进行比较;如果所述I/O吞吐量的增长大于CPU利用率的增长,则执行所述HOST在所述多个VM的前端设备和后端设备之间增加用于处理VM的工作线程的步骤。0011 在第二种可能的实现方式中,结合第一方面,如果当前时刻的平均I/O吞吐量小于第二阈值,所述HOST在所。

23、述多个VM的前端设备和后端设备之间减少用于处理VM的工作线程的步骤之前,进一步包括:0012 所述HOST判断在所述多个VM的前端设备和后端设备之间减少用于处理VM的工作线程所带来的CPU利用率的减少是否导致无法响应所述多个VM的吞吐量;如果在所述多个VM的前端设备和后端设备之间减少用于处理VM的工作线程所带来的CPU利用率的减少不会导致无法响应所述多个VM的吞吐量,则执行所述HOST在所述多个VM的前端设备和后端设备之间减少用于处理VM的工作线程的步骤。0013 在第三种可能的实现方式中,结合第一方面或第一方面的第一种或第二种可能的实现方式,所述HOST根据增加或减少后的用于处理VM的工作线。

24、程,分别调整所述多个VM的前端设备中的队列与用于处理VM的工作线程的对应关系,和所述多个VM的后端设备中的队列与用于处理VM的工作线程的对应关系,包括:0014 在增加或减少后的用于处理VM的工作线程的数量小于运行在所述HOST上VM的数量时,所述HOST将所述每个工作线程分别对应每个VM的前端设备中一个队列和每个VM的后端设备中一个队列;或者,在增加或减少后的用于处理VM的工作线程的数量大于或等于运行在所述HOST上VM的数量时,所述HOST将独占工作线程对应一个VM的前端设备和后端设备中一个队列、以及将共享工作线程对应至少两个VM的前端设备和后端设备中没有被所述独占工作线程对应的队列,所述。

25、用于处理VM的工作线程包括所述独占工作线程和所述共享工作线程。0015 在第四种可能的实现方式中,结合第一方面或第一方面的第一种或第二种或第三种可能的实现方式,所述HOST根据增加或减少后的用于处理VM的工作线程,分别调整所述多个VM的前端设备中的队列与用于处理VM的工作线程的对应关系,和所述多个VM的后端说 明 书CN 103116517 A3/13页7设备中的队列与用于处理VM的工作线程的对应关系之后,所述方法还包括:0016 所述HOST调整所述多个VM的后端设备中的队列和所述HOST中本地设备Native Device中的队列的对应关系,以便于在所述多个VM的后端设备和所述Native。

26、 Device之间形成多个数据传输通道。0017 第二方面,本发明提供了一种虚拟化平台下I/O通道的调整装置HOST,HOST包括:0018 统计模块,用于统计运行在宿主机HOST上的多个虚拟机VM当前时刻的平均I/O吞吐量;处理模块,与所述统计模块连接,用于在所述统计模块统计的当前时刻的平均I/O吞吐量大于第一阈值时,在所述多个VM的前端设备和后端设备之间增加用于处理VM的工作线程,以使得增加工作线程后的所述多个VM的平均I/O吞吐量小于第一阈值;或者,用于在所述统计模块统计的当前时刻的平均I/O吞吐量小于第二阈值时,在所述多个VM的前端设备和后端设备之间减少用于处理VM的工作线程,以使得减。

27、少工作线程后的所述多个VM的平均I/O吞吐量大于第二阈值;其中,所述第一阈值大于所述第二阈值;第一调整模块,与所述处理模块连接,用于根据所述处理模块增加或减少后的用于处理VM的工作线程,分别调整所述多个VM的前端设备中的队列与用于处理VM的工作线程的对应关系,和所述多个VM的后端设备中的队列与用于处理VM的工作线程的对应关系,以便于在所述多个VM的前端设备和所述多个VM的后端设备之间形成多个数据传输通道。0019 在第一种可能的实现方式中,结合第一方面,所述调整装置还包括:0020 判断模块,用于在所述统计模块统计的当前时刻的平均I/O吞吐量大于第一阈值时,将在所述多个VM的前端设备和后端设备。

28、之间增加用于处理VM的工作线程所带来的CPU利用率的增长和所带来的I/O吞吐量的增长进行比较;所述处理模块,还用于如果所述I/O吞吐量的增长大于CPU利用率的增长,在所述多个VM的前端设备和后端设备之间增加用于处理VM的工作线程,以使得增加工作线程后的所述多个VM的平均I/O吞吐量小于第一阈值。0021 在第二种可能的实现方式中,结合第一方面,所述调整装置还包括:0022 判断模块,用于在所述统计模块统计的当前时刻的平均I/O吞吐量小于第二阈值时,判断在所述多个VM的前端设备和后端设备之间减少用于处理VM的工作线程所带来的CPU利用率的减少是否导致无法响应所述多个VM的吞吐量;所述处理模块,还。

29、用于如果在所述多个VM的前端设备和后端设备之间减少用于处理VM的工作线程所带来的CPU利用率的减少不会导致无法响应所述多个VM的吞吐量,在所述多个VM的前端设备和后端设备之间减少用于处理VM的工作线程,以使得减少工作线程后的所述多个VM的平均I/O吞吐量大于第二阈值。0023 在第三种可能的实现方式中,结合第一方面或第一方面的第一种或第二种可能的实现方式,所述第一调整模块具体用于:0024 在增加或减少后的用于处理VM的工作线程的数量小于运行在所述HOST上VM的数量时,将所述每个工作线程分别对应每个VM的前端设备中一个队列和每个VM的后端设备中一个队列;或者,在增加或减少后的用于处理VM的工。

30、作线程的数量大于或等于运行在所述HOST上VM的数量时,将独占工作线程对应一个VM的前端设备和后端设备中一个队列、以及将共享工作线程对应至少两个VM的前端设备和后端设备中没有被所述独占工作说 明 书CN 103116517 A4/13页8线程对应的队列,所述用于处理VM的工作线程包括所述独占工作线程和所述共享工作线程。0025 在第四种可能的实现方式中,结合第一方面或第一方面的第一种或第二种或第三种可能的实现方式,所述调整装置还包括:0026 第二调整模块,用于调整所述多个VM的后端设备中的队列和所述HOST中本地设备Native Device中的队列的对应关系,以便于在所述多个VM的后端设备。

31、和所述Native Device之间形成多个数据传输通道。0027 第三方面,本发明提供了一种宿主机HOST,其特征在于,所述HOST包括:本地设备Native Device,运行在所述Native Device之上的多个虚拟机VM的前端设备和后端设备,以及位于所述多个VM的前端设备和后端设备之间的数据处理模块,其中:0028 所述数据处理模块用于:0029 统计所述多个VM当前时刻的平均I/O吞吐量;在当前时刻的平均I/O吞吐量大于第一阈值时,在所述多个VM的前端设备和后端设备之间增加用于处理VM的工作线程,以使得增加工作线程后的所述多个VM的平均I/O吞吐量小于第一阈值;或者,在当前时刻的。

32、平均I/O吞吐量小于第二阈值时,所述HOST在所述多个VM的前端设备和后端设备之间减少用于处理VM的工作线程,以使得减少工作线程后的所述多个VM的平均I/O吞吐量大于第二阈值;其中,所述第一阈值大于所述第二阈值;根据增加或减少后的用于处理VM的工作线程,分别调整所述多个VM的前端设备中的队列与用于处理VM的工作线程的对应关系,和所述多个VM的后端设备中的队列与用于处理VM的工作线程的对应关系,以便于在所述多个VM的前端设备和所述多个VM的后端设备之间形成多个数据传输通道。0030 在第一种可能的实现方式中,结合第三方面,所述数据处理模块还用于:0031 将在所述多个VM的前端设备和后端设备之间。

33、增加用于处理VM的工作线程所带来的CPU利用率的增长和所带来的I/O吞吐量的增长进行比较;如果所述I/O吞吐量的增长大于CPU利用率的增长,在所述多个VM的前端设备和后端设备之间增加用于处理VM的工作线程,以使得增加工作线程后的所述多个VM的平均I/O吞吐量小于第一阈值。0032 在第二种可能的实现方式中,结合第三方面,所述数据处理模块还用于:0033 判断在所述多个VM的前端设备和后端设备之间减少用于处理VM的工作线程所带来的CPU利用率的减少是否导致无法响应所述多个VM的吞吐量;如果在所述多个VM的前端设备和后端设备之间减少用于处理VM的工作线程所带来的CPU利用率的减少不会导致无法响应所。

34、述多个VM的吞吐量,在所述多个VM的前端设备和后端设备之间减少用于处理VM的工作线程,以使得减少工作线程后的所述多个VM的平均I/O吞吐量大于第二阈值。0034 可见,在本发明的实施例中,根据当前时刻多个VM的平均I/O吞吐量判断是否在该多个VM的前端设备和后端设备之间增加或减少用于处理VM的工作线程,在当前时刻多个VM的平均I/O吞吐量大于第一阈值时,增加用于处理VM的工作线程,即增加I/O通道资源,提高I/O通道的数据传输能力;在当前时刻多个VM的平均I/O吞吐量小于第二阈值时,减少用于处理VM的工作线程,即减少I/O通道资源,避免I/O通道资源浪费。0035 进一步,HOST通过调整多个。

35、VM的后端设备中的队列和宿主机HOST中本地设备Native Device中队列的对应关系,在多个VM的后端设备和该本地设备Native Device之间形成多个数据传输通道,从而实现了多个VM的前端设备和该HOST中本地设备Native 说 明 书CN 103116517 A5/13页9Device之间的多条I/O通道,提高了该多个VM的前端设备和该HOST中本地设备Native Device之间的数据传输能力。附图说明0036 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,。

36、对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。0037 图1为现有技术中一种虚拟化平台下简单多I/O通道技术的架构图;0038 图2为本发明一个实施例提供的虚拟化平台下I/O通道的调整方法流程图;0039 图3为本发明提供的虚拟化平台下多个VM的前端设备和后端设备之间I/O工作模式为共享模式的架构图;0040 图4为本发明提供的虚拟化平台下多个VM的前端设备和后端设备之间I/O工作模式为混合模式的架构图;0041 图5为本发明一个实施例提供的虚拟化平台下I/O通道的调整装置的结构示意图;0042 图6为本发明另一个实施例提供的虚拟化平台下I/O通道的。

37、调整装置的结构示意图。0043 图7为本发明一个实施例提供的宿主机HOST的结构示意图。具体实施方式0044 为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。0045 为了方便理解本发明实施例,首先在此介绍本发明实施例描述中会引入的几个要素。0046 宿主机HOST:作为管理层,用以完成硬件资源的管理、分配;为虚拟机呈现虚拟硬件平台;其中,虚拟硬。

38、件平台对其上运行的各个虚拟机提供各种硬件资源,如提供虚拟处理器(如VCPU)、虚拟内存、虚拟磁盘、虚拟网卡等等。其中,该虚拟磁盘可对应HOST的一个文件或者一个逻辑块设备。虚拟机运行在HOST为其准备的虚拟硬件平台上,HOST上运行一个或多个虚拟机。0047 虚拟机VM:通过虚拟机软件可以在一台物理计算机上模拟出一台或者多台虚拟的计算机,而这些虚拟机就像真正的计算机那样进行工作,虚拟机上可以安装操作系统和应用程序,虚拟机还可访问网络资源。对于在虚拟机中运行的应用程序而言,虚拟机就像是在真正的计算机中进行工作。0048 数据处理模块:本发明中,在VM的前端设备和后端设备之间引入了数据处理模块,数。

39、据处理模块用于处理VM的前端设备和后端设备之间的数据传输,通过工作线程来处理VM的前端设备和后端设备中队列的数据。数据处理模块一般是通过软件实现,即通过处说 明 书CN 103116517 A6/13页10理器读取特殊功能的软件代码指令来实现。0049 本地设备Native Device:虚拟化环境运行的硬件平台。其中,该Native Device可包括多种硬件,例如某计算节点的Native Device可包括处理器(如CPU)和内存,还可以包括网卡、存储器等等高速/低速输入/输出(I/O,Input/Output)设备。0050 网桥Bridge:位于VM的后端设备和宿主机HOST的本地设备。

40、Native Device之间的网络设备或软件,实现VM的后端设备和宿主机HOST的本地设备Native Device之间的网络互连,对数据帧进行转发。0051 图2描述了本发明实施例提供的虚拟化平台下I/O通道的调整方法的流程,具体包括:0052 S201、宿主机HOST统计运行在该HOST上的多个虚拟机VM当前时刻的平均I/O吞吐量。0053 具体的,HOST可以通过先统计运行在该HOST上的多个VM当前时刻的总的I/O吞吐量,再除以运行在该HOST上的虚拟机的数量,得到当前时刻该多个VM的平均I/O吞吐量。0054 S202、在当前时刻的平均I/O吞吐量大于第一阈值时,该HOST在该多个。

41、VM的前端设备和后端设备之间增加用于处理VM的工作线程;或者,在当前时刻的平均I/O吞吐量小于第二阈值时,该HOST在该多个VM的前端设备和后端设备之间减少用于处理VM的工作线程。0055 其中,在该多个VM的前端设备和后端设备之间增加用于处理VM的工作线程,以使得增加工作线程后的该多个VM的平均I/O吞吐量大于第一阈值;在该多个VM的前端设备和后端设备之间减少用于处理VM的工作线程,以使得减少工作线程后的该多个VM的平均I/O吞吐量大于第二阈值。第一阈值大于第二阈值,第一阈值用于指示该多个VM的平均I/O吞吐量的上限值,第二阈值用于指示该多个VM的平均I/O吞吐量的下限值,即第一阈值反映的是。

42、单个VM最多所能承受的I/O吞吐量的上限,第二阈值反映的是单个VM最少应该承受的I/O吞吐量的下限。0056 进一步,如果当前时刻的平均I/O吞吐量大于第一阈值,该HOST在该多个VM的前端设备和后端设备之间增加用于处理VM的工作线程的步骤之前,还包括:0057 改HOST将在该多个VM的前端设备和后端设备之间增加用于处理VM的工作线程所带来的CPU利用率的增长和所带来的I/O吞吐量的增长进行比较;如果I/O吞吐量的增长大于CPU利用率的增长,则执行该HOST在该多个VM的前端设备和后端设备之间增加用于处理VM的工作线程的步骤。0058 其中,所带来的CPU利用率的增长是指增加用于处理VM的工作线程相对于没有增加用于处理VM的工作线程所增加的CPU利用率,可以用CPU利用率的增长量和/或CPU利用率的增长率来表示;所带来的I/O吞吐量的增长是指增加用于处理VM的工作线程相对于没有增加用于处理VM的工作线程所增加处理的I/O吞吐量,可以用I/O吞吐量的增长量和/或I/O吞吐量的增长率来表示。需要说明的是,本发明对于具体如何比较CPU利用率的增长和I/O吞吐量的增长不做限定,这里示例性的给出两种衡量办法,如果I/O吞吐量的增长量大于CPU利用率的增长量,或者I/O吞吐量的增长率大于CPU利用率的增长率,则确定增加用于处理VM的工作线程。说 明 书CN 103116517 A10。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1