虚拟机的输入输出io请求处理方法及装置的制造方法

文档序号:8430585阅读:407来源:国知局
虚拟机的输入输出io请求处理方法及装置的制造方法
【技术领域】
[0001]本发明实施例涉及存储技术,尤其涉及一种虚拟机的输入输出1请求处理方法及装置。
【背景技术】
[0002]按照存储介质的不同,存储器可分为半导体存储器、磁存储器等。在对存储器进行数据读写操作时,需要有一定的读写调度方法。
[0003]目前,传统的计算机系统由于受制于存储系统的容量空间与端口数量,单个存储同时服务的主机往往仅有数个,但在虚拟机环境下,虽然接入的物理主机的数量增加不多,但物理机上的虚拟机数量则大大的增加,这样访问单个存储系统的虚拟机可能达到数百个,各虚拟机的输入输出(Input/Output,简称10)请求均放置到系统队列中进行依次调度,然而,这种方法可能导致部分虚拟机1时延超长,从而影响存储服务质量。

【发明内容】

[0004]本发明提供了一种虚拟机的输入输出1请求处理方法及装置,可以实现存储设备获取系统内所有虚拟机的1请求并依次进行调度处理,使系统在执行当前处理周期内的1请求时,对其中每个虚拟机的1请求都能进行处理,减少了单个虚拟机的1时延。
[0005]第一方面,本发明提供一种虚拟机的输入输出1请求处理方法,该方法应用于存储系统中,包括:
[0006]接收N个虚拟机发送的1请求,其中,N为不小于2的自然数;
[0007]对每个虚拟机发送的1请求建立一个1队列,以获得N个1队列;
[0008]分别从N个1队列中选择预定数量的1请求进行处理。
[0009]结合第一方面,在第一种实施方式中,分别从N个1队列中选择预定数量的1请求进行处理包括:分别从N个1队列中选择预定数量的1请求;根据选择的1请求建立系统1队列,其中,在系统1队列中,读1请求的优先级高于写1请求的优先级;对系统1队列中的1请求按优先级从高到低的顺序进行处理。
[0010]结合第一方面或第一种实施方式,在第二种实施方式中,接收N个虚拟机发送的1请求之后还包括:分别根据接收的1请求中携带的虚拟机的配置信息识别1请求所属的虚拟机。
[0011]结合第一种实施方式,在第三种实施方式中,根据选择的1请求建立系统1队列,具体包括:将N个1队列中的每个队列的预定数量的1请求中的读1请求加入系统1队列的首部,写1请求加入系统1队列的尾部。
[0012]结合第一方面至前三种实施方式中的任意一种,在第四种实施方式中,所述分别从所述N个1队列中选择预定数量的1请求进行处理,具体包括:若1请求为读1请求,则根据读1请求中携带的地址信息从存储系统中存储介质中对应的地址读取数据;或者若1请求为写1请求,则根据写1请求中携带的地址信息将写1请求中携带的数据写入存储介质中对应的地址。
[0013]第二方面,本发明提供一种虚拟机的输入输出1请求处理装置,该装置应用于存储系统中,包括:
[0014]接收模块,用于接收N个虚拟机发送的1请求,其中,N为不小于2的自然数;
[0015]队列模块,用于对每个虚拟机发送的1请求建立一个1队列,以获得N个1队列;
[0016]处理模块,用于分别从N个1队列中选择预定数量的1请求进行处理。
[0017]结合第二方面,在第一种实施方式中,处理模块用于分别从N个1队列中选择预定数量的1请求进行处理,具体包括:
[0018]分别从N个1队列中选择预定数量的1请求;
[0019]根据选择的1请求建立系统1队列,其中,在系统1队列中,读1请求的优先级高于写1请求的优先级;
[0020]对系统1队列中的1请求按优先级从高到低的顺序进行处理。
[0021]结合第二方面或第一种实施方式,在第二种实施方式中,接收模块还用于:分别根据接收的1请求中携带的虚拟机的配置信息识别1请求所属的虚拟机。
[0022]结合第一种实施方式,在第三种实施方式中,处理模块具体用于:将N个1队列中的每个队列的预定数量的1请求中的读1请求加入系统1队列的首部,写1请求加入系统1队列的尾部。
[0023]结合第二方面至前三种实施方式中的任意一种,在第四种实施方式中,处理模块具体用于:若1请求为读1请求,则根据读1请求中携带的地址信息从存储系统中存储介质中对应的地址读取数据;或者若1请求为写1请求,则根据写1请求中携带的地址信息将写1请求中携带的数据写入存储介质中对应的地址。
[0024]本发明实施例提供的虚拟机的输入输出1请求处理方法及装置应用于存储系统中,首先接收N个虚拟机发送的1请求,再对每个虚拟机发送的1请求建立一个1队列,以获得N个1队列,最后分别从N个1队列中选择预定数量的1请求进行处理。这样实现了系统在执行当前处理周期内的1请求时,对其中每个虚拟机的1请求都能进行处理,减少了单个虚拟机的1时延。
【附图说明】
[0025]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0026]图1是本发明实施例一提供的虚拟机的输入输出1请求处理方法流程示意图;
[0027]图2是本发明实施例一提供的分别从N个1队列中选择预定数量的1请求进行处理的流程示意图;
[0028]图3是本发明实施例二提供的虚拟机的输入输出1请求处理方法流程示意图;
[0029]图4是本发明实施例二提供的对于系统中的多个虚拟机分别选择预定数量的1请求的示意图;
[0030]图5是本发明实施例二提供的分别从N个1队列中选择预定数量的1请求进行处理的流程示意图;
[0031]图6是本发明实施例三提供的一种虚拟机的输入输出1请求处理装置结构示意图;
[0032]图7是本发明实施例四提供的一种虚拟机的输入输出1请求处理装置结构示意图。
【具体实施方式】
[0033]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0034]图1是本发明实施例一提供的虚拟机的输入输出1请求处理方法流程示意图。如图1所示,本实施例以下步骤的执行主体可以是存储设备,存储设备可以利用内置的控制芯片控制1请求的处理过程。本发明实施例一提供的虚拟机的输入输出1请求处理方法包括:
[0035]SlOl、接收N个虚拟机发送的1请求,其中,N为不小于2的自然数;
[0036]在一个物理服务器系统内,可以设有一个虚拟机,也可设置两个或两个以上虚拟机。当服务器系统内的虚拟机数量为多个时,此时系统对应的存储系统可以同时为该多个虚拟机提供服务。此时存储系统可以接收N个虚拟机发送的1请求,其中N为不小于2的自然数。
[0037]具体的,存储系统在接收N个虚拟机发送的1请求之后,还可以分别根据接收的1请求中携带的虚拟机的配置信息识别1请求所属的虚拟机。存储系统的存储介质可以为固态硬盘(Solid State Disk,简称SSD)或者传统的磁介质硬盘。存储系统可以为独立外置,也可以和服务器系统融合在一个架构之下。独立外置存储系统在提供服务时,可以从虚拟机的配置信息中读取虚拟机的信息,例如从Hyper-V虚拟机的配置信息中读取虚拟机及其虚拟硬盘空间信息,该信息用来识别系统下发的1请求归属于哪一个虚拟机,存储系统可根据该信息获得下发1请求与虚拟机之间的对应关系。
[0038]S102、对每个虚拟机发送的1请求建立一个1队列,以获得N个1队列;
[0039]每个虚拟机向存储系统发送的1请求都可按照1请求的时序建立一个独立的1队列。存储系统在处理来自虚拟机的1请求时,可以按照该1队列中1请求排列的顺序依次对这些1请求进行处理。因为服务器内可以有N个虚拟机,所以对应的可以获得N个独立的1队列,每个1队列都对应一个虚拟机。
[0040]S103、分别从N个队列中选择预定数量的1请求进行处理。
[0041]具体的,如图2所示,分别从N个1队列中选择预定数量的1请求进行处理时,可以包括以下几个步骤:
[0042]S201、从N个1队列中选择预定数量的1请求;
[0043]N个不同1队列中,各自选择1请求的预定数量可以相同,也可以不同。例如有两个虚拟机时,存储系统可以分别从所对应的两个1队列中
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1