调度虚拟机输入输出资源的方法及装置制造方法及图纸

技术编号:14290739 阅读:60 留言:0更新日期:2016-12-25 21:24
本申请提供了一种调度虚拟机IO资源的方法及装置,该方法应用于所述虚拟机所在的物理机上,所述方法包括:响应于当前触发的多个IO请求,确定所述多个IO请求分别指向的、所述虚拟机中的多个目标虚拟磁盘;将所述多个IO请求分别分配至与所述多个目标虚拟磁盘一一对应的多个IO队列中;依据预先设置的各个虚拟磁盘对应的IO资源调度参数,对所述多个IO请求所占用的IO资源进行调度,所述IO资源调度参数包括:各个虚拟磁盘的IO资源配比。在本申请实施例中,可以使得IO资源在各个虚拟磁盘之间起到均衡合理分配的效果,提高虚拟机的服务质量(Qos)。

【技术实现步骤摘要】

本申请涉及云计算
,特别涉及一种调度虚拟机输入输出IO资源的方法及装置。
技术介绍
在计算机中,虚拟化(Virtualization)是一种资源管理技术,是将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间的不可切割的障碍,使用户可以比原本的组态更好的方式来应用这些资源。这些资源的新虚拟部份是不受现有物理资源的架设方式、地域或物理组态所限制。虚拟机(Virtual Machine)就是指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。而云计算(cloud computing)是基于互联网的相关服务的增加、使用和交付模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源。存储性能在云计算与虚拟化中有着至关重要的作用,在KVM(Kernel-based Virtual Machine,基于内核的虚拟机)的存储虚拟化中,可以采用多个虚拟磁盘共享一个IO(输入输出,Input/Output)线程,例如,虚拟机对应的物理机的CPU创建了IO线程1来执行对虚拟磁盘1和2的IO操作,而创建了IO线程2来执行对虚拟磁盘3和4的IO操作,等等。
技术实现思路
但是专利技术人在研究过程中发现,现有技术中这种多个虚拟磁盘共享一个IO线程的方式,会导致多个虚拟磁盘也同属于该一个IO线程对应的一个IO队列,因此,当某一个虚拟磁盘需要占用较大的IO资源的时候,与该虚拟磁盘共享同一个IO线程的其他虚拟磁盘的IO资源就会相对较
小,从而使得各个虚拟磁盘之间的IO资源的使用并不均衡。进一步的,当该虚拟磁盘的IO操作是用户发出的交互操作时,更会影响用户的体验。基于上述原因,本申请实施例所要解决的技术问题是提供一种调度虚拟机IO资源的方法,用以尽量避免现有技术中。本申请还提供了一种调度虚拟机IO资源的装置,用以保证上述方法在实际中的实现及应用。为了解决上述问题,本申请公开了一种调度虚拟机IO资源的方法,该方法应用于所述虚拟机所在的物理机上,包括:响应于当前触发的多个IO请求,确定所述多个IO请求分别指向的、所述虚拟机中的多个目标虚拟磁盘;将所述多个IO请求分别分配至与所述多个目标虚拟磁盘一一对应的多个IO队列中;依据预先设置的各个虚拟磁盘对应的IO资源调度参数,对所述多个IO请求所占用的IO资源进行调度,所述IO资源调度参数包括:各个虚拟磁盘的IO资源配比。本申请公开了一种调度虚拟机IO资源的装置,所述装置集成于所述虚拟机所在的物理机上,包括:确定模块,用于响应于当前触发的多个IO请求,确定所述多个IO请求分别指向的、所述虚拟机中的多个目标虚拟磁盘;分配模块,用于将所述多个IO请求分别分配至与所述多个目标虚拟磁盘一一对应的多个IO队列中;调度模块,用于依据预先设置的各个虚拟磁盘对应的IO资源调度参数,对所述多个IO请求所占用的IO资源进行调度,所述IO资源调度参数包括:各个虚拟磁盘的IO资源配比。与现有技术相比,本申请包括以下优点:当虚拟机中有IO请求时,该IO请求最终会通过虚拟机和物理机之间的通道传递给物理机。在本申请实施例中,物理机中存储有为IO请求预先创建的IO队列,该IO队列是与虚拟机中的虚拟磁盘一一对应的,IO请求涉及到对哪个虚拟磁盘的读写,该IO请求就会被分配到该虚拟磁盘
对应的IO队列中,继而再根据各个虚拟磁盘,也即各个IO队列对应的IO资源配比进行IO资源调度,从而可以使得IO资源在各个虚拟磁盘之间起到均衡合理分配的效果,提高虚拟机的服务质量(Qos)。进一步的,还能为不同的虚拟机磁盘配置不同的IO优先级,从而结合IO优先级和IO资源配比实现对IO资源的调度,从而实现虚拟机内部多个虚拟磁盘互相隔离并进行QOS控制的目的。当然,实施本申请的任一产品并不一定需要同时达到以上所述的所有优点。附图说明为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1是本申请的调度虚拟机IO资源的方法实施例的流程图;图2是本申请的方法实施例中创建IO队列的结构示意图;图3是本申请的调度虚拟机IO资源的装置实施例的结构框图。具体实施方式下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。本申请可用于众多通用或专用的计算装置环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器装置、包括以上任何装置或设备的分布式计算环境等等。本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布
式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。参考图1,示出了本申请一种调度虚拟机IO资源的方法实施例的流程图,该方法应用于所述虚拟机对应的物理机上,本实施例可以包括以下步骤:步骤101:响应于当前触发的多个IO请求,确定所述多个IO请求分别指向的、所述虚拟机中的多个目标虚拟磁盘。在本申请实施例中,可以以虚拟机安装Linux系统为例进行说明。在Linux系统中,如果用户触发了相应的操作,例如读取硬盘中的数据,或者提交验证信息请求服务器进行验证,物理机就会响应用户当前触发的IO请求,来触发对该虚拟机的某一个虚拟磁盘的IO操作。因此本步骤中,物理机首先需要确定用户当前触发的多个IO请求,分别指向了虚拟机中的哪些虚拟磁盘。具体的,在本实施例中,步骤102具体可以包括:步骤A1:响应于当前触发的多个IO请求,获取各个IO请求预先设置的IO特征,所述IO特征包括虚拟磁盘标识,所述虚拟磁盘的标识用于表示所述IO请求待访问的虚拟磁盘。在本实施例中,可以预先设置IO特征,IO特征可以包括虚拟磁盘标识,如果设置的IO特征中包括了某个虚拟磁盘标识,则表示用户比较关注对该虚拟磁盘的读写操作。在实际应用中,虚拟机中的虚拟磁盘可能对应了物理机中的一个文件,那么虚拟磁盘标识就是文件描述符;当然,如果采用物理机中的其他形式来对应生成虚拟磁盘,虚拟磁盘标识也可以是其他标志。如果用户预先设置了IO特征,即,虚拟磁盘标识,则表示用户比较关注对该虚拟磁盘的读写操作。因此,在本步骤中,如果用户预先设置了IO特征,比如虚拟磁盘标识A,则IO请求在下发过程中,根据该IO请求涉及的读写操作是否涉及虚拟磁盘标识A来对其进行标记,那么就可以根据各个IO请求对应的
IO特征来确定各个IO请求需要针对哪一个虚拟磁盘进行读写操作。步骤A3:将各个虚拟磁盘标识对应的虚拟磁盘确定为各个IO请求待访问的目标虚拟磁盘。再根本文档来自技高网
...
<a href="http://www.xjishu.com/zhuanli/55/201510197899.html" title="调度虚拟机输入输出资源的方法及装置原文来自X技术">调度虚拟机输入输出资源的方法及装置</a>

【技术保护点】
一种调度虚拟机IO资源的方法,其特征在于,该方法应用于所述虚拟机所在的物理机上,包括:响应于当前触发的多个IO请求,确定所述多个IO请求分别指向的、所述虚拟机中的多个目标虚拟磁盘;将所述多个IO请求分别分配至与所述多个目标虚拟磁盘一一对应的多个IO队列中;依据预先设置的各个虚拟磁盘对应的IO资源调度参数,对所述多个IO请求所占用的IO资源进行调度,所述IO资源调度参数包括:各个虚拟磁盘的IO资源配比。

【技术特征摘要】
1.一种调度虚拟机IO资源的方法,其特征在于,该方法应用于所述虚拟机所在的物理机上,包括:响应于当前触发的多个IO请求,确定所述多个IO请求分别指向的、所述虚拟机中的多个目标虚拟磁盘;将所述多个IO请求分别分配至与所述多个目标虚拟磁盘一一对应的多个IO队列中;依据预先设置的各个虚拟磁盘对应的IO资源调度参数,对所述多个IO请求所占用的IO资源进行调度,所述IO资源调度参数包括:各个虚拟磁盘的IO资源配比。2.根据权利要求1所述的方法,其特征在于,所述响应于当前触发的多个IO请求,确定所述多个IO请求分别指向的、所述虚拟机中的多个目标虚拟磁盘,包括:响应于当前触发的多个IO请求,获取各个IO请求预先设置的IO特征,所述IO特征包括虚拟磁盘标识,所述虚拟磁盘的标识用于表示所述IO请求待访问的虚拟磁盘;将各个虚拟磁盘标识对应的虚拟磁盘确定为各个IO请求待访问的目标虚拟磁盘。3.根据权利要求2所述的方法,其特征在于,所述IO特征还包括进程标识,所述进程标识用于表示所述IO请求的触发源是虚拟机还是物理机;则所述响应于当前触发的多个IO请求,获取各个IO请求预先设置的IO特征,还包括:判断所述IO请求的进程标识是否表示所述IO请求的触发源是虚拟机,如果是,则执行将各个虚拟磁盘标识对应的虚拟磁盘确定为各个IO请求待访问的目标虚拟磁盘的步骤。4.根据权利要求2或3所述的方法,其特征在于,所述方法还包括:在所述物理机的内核中预先为所述虚拟机的各个虚拟磁盘分别创建唯一对应的IO队列;则,所述将所述多个IO请求分别分配至与所述多个目标虚拟磁盘一
\t一对应的多个IO队列中,包括:获取预先创建的IO队列与虚拟磁盘之间的对应关系;依据所述对应关系和IO特征确定各个IO请求对应的目标IO队列;将多个IO请求分别分配至对应的目标IO队列中。5.根据权利要求1所述的方法,其特征在于,依据预先设置的各个虚拟磁盘对应的IO资源调度参数,对所述多个IO请求所占用的IO资源进行调度,包括:获取预先配置好的各个虚拟磁盘对应的IO资源调度参数,所述IO资源调度参数包括IO资源配比,所述IO资源配比用于表示所述各个虚拟磁盘相对于共享IO资源的百分比;按照所述IO资源配比表示的百分比,从共享IO资源中为所述多个IP请求分配各自占用的IO资源。6.根据权利要求5所述的方法,其特征在于,所述IO资源调度参数还包括各个虚拟磁盘的优先级,则所述对所述多个IO请求所占用的IO资源进行调度,还包括:针对所述多个目标虚拟磁盘,判断IO资源配比大于预设的资源配比阈值的那些虚拟磁盘当前是否空闲,如果是,则更新目标虚拟磁盘的IO资源配比,并按照更新后的IO资源配比表示的百分比,从共享IO资源中为所述多个IP请求分配各自占用的IO资源;其中,所述更新目标虚拟磁盘的IO资源配比包括:减小空闲的目标虚拟磁盘的IO资源配比,并将减小的IO资源配比分配至非空闲的其他虚拟磁盘;如果否,则直接执行按照所述IO资源配比表示的百分比,从共享IO资源中为所述多个IP请求分配各...

【专利技术属性】
技术研发人员:张超
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛;KY

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

1