CN104750547A - 虚拟机的输入输出io请求处理方法及装置 - Google Patents
虚拟机的输入输出io请求处理方法及装置 Download PDFInfo
- Publication number
- CN104750547A CN104750547A CN201310754241.0A CN201310754241A CN104750547A CN 104750547 A CN104750547 A CN 104750547A CN 201310754241 A CN201310754241 A CN 201310754241A CN 104750547 A CN104750547 A CN 104750547A
- Authority
- CN
- China
- Prior art keywords
- request
- queue
- virtual machine
- predetermined quantity
- writing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
- Multi Processors (AREA)
Abstract
本发明提供一种虚拟机输入输出IO请求处理方法及装置。该虚拟机输入输出IO请求处理方法应用于存储系统中,包括:接收N个虚拟机发送的IO请求,其中,N为不小于2的自然数;根据每个虚拟机发送的IO请求建立一个IO队列,以获得N个IO队列;分别从所述N个IO队列中选择预定数量的IO请求进行处理。本发明实施例可以实现系统在执行当前处理周期内的IO请求时,对其中每个虚拟机的IO请求都能进行处理,减少了单个虚拟机的IO时延。
Description
技术领域
本发明实施例涉及存储技术,尤其涉及一种虚拟机的输入输出IO请求处理方法及装置。
背景技术
按照存储介质的不同,存储器可分为半导体存储器、磁存储器等。在对存储器进行数据读写操作时,需要有一定的读写调度方法。
目前,传统的计算机系统由于受制于存储系统的容量空间与端口数量,单个存储同时服务的主机往往仅有数个,但在虚拟机环境下,虽然接入的物理主机的数量增加不多,但物理机上的虚拟机数量则大大的增加,这样访问单个存储系统的虚拟机可能达到数百个,各虚拟机的输入输出(Input/Output,简称IO)请求均放置到系统队列中进行依次调度,然而,这种方法可能导致部分虚拟机IO时延超长,从而影响存储服务质量。
发明内容
本发明提供了一种虚拟机的输入输出IO请求处理方法及装置,可以实现存储设备获取系统内所有虚拟机的IO请求并依次进行调度处理,使系统在执行当前处理周期内的IO请求时,对其中每个虚拟机的IO请求都能进行处理,减少了单个虚拟机的IO时延。
第一方面,本发明提供一种虚拟机的输入输出IO请求处理方法,该方法应用于存储系统中,包括:
接收N个虚拟机发送的IO请求,其中,N为不小于2的自然数;
对每个虚拟机发送的IO请求建立一个IO队列,以获得N个IO队列;
分别从N个IO队列中选择预定数量的IO请求进行处理。
结合第一方面,在第一种实施方式中,分别从N个IO队列中选择预定数量的IO请求进行处理包括:分别从N个IO队列中选择预定数量的IO请求;根据选择的IO请求建立系统IO队列,其中,在系统IO队列中,读IO请求的优先级高于写IO请求的优先级;对系统IO队列中的IO请求按优先级从高到低的顺序进行处理。
结合第一方面或第一种实施方式,在第二种实施方式中,接收N个虚拟机发送的IO请求之后还包括:分别根据接收的IO请求中携带的虚拟机的配置信息识别IO请求所属的虚拟机。
结合第一种实施方式,在第三种实施方式中,根据选择的IO请求建立系统IO队列,具体包括:将N个IO队列中的每个队列的预定数量的IO请求中的读IO请求加入系统IO队列的首部,写IO请求加入系统IO队列的尾部。
结合第一方面至前三种实施方式中的任意一种,在第四种实施方式中,所述分别从所述N个IO队列中选择预定数量的IO请求进行处理,具体包括:若IO请求为读IO请求,则根据读IO请求中携带的地址信息从存储系统中存储介质中对应的地址读取数据;或者若IO请求为写IO请求,则根据写IO请求中携带的地址信息将写IO请求中携带的数据写入存储介质中对应的地址。
第二方面,本发明提供一种虚拟机的输入输出IO请求处理装置,该装置应用于存储系统中,包括:
接收模块,用于接收N个虚拟机发送的IO请求,其中,N为不小于2的自然数;
队列模块,用于对每个虚拟机发送的IO请求建立一个IO队列,以获得N个IO队列;
处理模块,用于分别从N个IO队列中选择预定数量的IO请求进行处理。
结合第二方面,在第一种实施方式中,处理模块用于分别从N个IO队列中选择预定数量的IO请求进行处理,具体包括:
分别从N个IO队列中选择预定数量的IO请求;
根据选择的IO请求建立系统IO队列,其中,在系统IO队列中,读IO请求的优先级高于写IO请求的优先级;
对系统IO队列中的IO请求按优先级从高到低的顺序进行处理。
结合第二方面或第一种实施方式,在第二种实施方式中,接收模块还用于:分别根据接收的IO请求中携带的虚拟机的配置信息识别IO请求所属的虚拟机。
结合第一种实施方式,在第三种实施方式中,处理模块具体用于:将N个IO队列中的每个队列的预定数量的IO请求中的读IO请求加入系统IO队列的首部,写IO请求加入系统IO队列的尾部。
结合第二方面至前三种实施方式中的任意一种,在第四种实施方式中,处理模块具体用于:若IO请求为读IO请求,则根据读IO请求中携带的地址信息从存储系统中存储介质中对应的地址读取数据;或者若IO请求为写IO请求,则根据写IO请求中携带的地址信息将写IO请求中携带的数据写入存储介质中对应的地址。
本发明实施例提供的虚拟机的输入输出IO请求处理方法及装置应用于存储系统中,首先接收N个虚拟机发送的IO请求,再对每个虚拟机发送的IO请求建立一个IO队列,以获得N个IO队列,最后分别从N个IO队列中选择预定数量的IO请求进行处理。这样实现了系统在执行当前处理周期内的IO请求时,对其中每个虚拟机的IO请求都能进行处理,减少了单个虚拟机的IO时延。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例一提供的虚拟机的输入输出IO请求处理方法流程示意图;
图2是本发明实施例一提供的分别从N个IO队列中选择预定数量的IO请求进行处理的流程示意图;
图3是本发明实施例二提供的虚拟机的输入输出IO请求处理方法流程示意图;
图4是本发明实施例二提供的对于系统中的多个虚拟机分别选择预定数量的IO请求的示意图;
图5是本发明实施例二提供的分别从N个IO队列中选择预定数量的IO请求进行处理的流程示意图;
图6是本发明实施例三提供的一种虚拟机的输入输出IO请求处理装置结构示意图;
图7是本发明实施例四提供的一种虚拟机的输入输出IO请求处理装置结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1是本发明实施例一提供的虚拟机的输入输出IO请求处理方法流程示意图。如图1所示,本实施例以下步骤的执行主体可以是存储设备,存储设备可以利用内置的控制芯片控制IO请求的处理过程。本发明实施例一提供的虚拟机的输入输出IO请求处理方法包括:
S101、接收N个虚拟机发送的IO请求,其中,N为不小于2的自然数;
在一个物理服务器系统内,可以设有一个虚拟机,也可设置两个或两个以上虚拟机。当服务器系统内的虚拟机数量为多个时,此时系统对应的存储系统可以同时为该多个虚拟机提供服务。此时存储系统可以接收N个虚拟机发送的IO请求,其中N为不小于2的自然数。
具体的,存储系统在接收N个虚拟机发送的IO请求之后,还可以分别根据接收的IO请求中携带的虚拟机的配置信息识别IO请求所属的虚拟机。存储系统的存储介质可以为固态硬盘(Solid State Disk,简称SSD)或者传统的磁介质硬盘。存储系统可以为独立外置,也可以和服务器系统融合在一个架构之下。独立外置存储系统在提供服务时,可以从虚拟机的配置信息中读取虚拟机的信息,例如从Hyper-V虚拟机的配置信息中读取虚拟机及其虚拟硬盘空间信息,该信息用来识别系统下发的IO请求归属于哪一个虚拟机,存储系统可根据该信息获得下发IO请求与虚拟机之间的对应关系。
S102、对每个虚拟机发送的IO请求建立一个IO队列,以获得N个IO队列;
每个虚拟机向存储系统发送的IO请求都可按照IO请求的时序建立一个独立的IO队列。存储系统在处理来自虚拟机的IO请求时,可以按照该IO队列中IO请求排列的顺序依次对这些IO请求进行处理。因为服务器内可以有N个虚拟机,所以对应的可以获得N个独立的IO队列,每个IO队列都对应一个虚拟机。
S103、分别从N个队列中选择预定数量的IO请求进行处理。
具体的,如图2所示,分别从N个IO队列中选择预定数量的IO请求进行处理时,可以包括以下几个步骤:
S201、从N个IO队列中选择预定数量的IO请求;
N个不同IO队列中,各自选择IO请求的预定数量可以相同,也可以不同。例如有两个虚拟机时,存储系统可以分别从所对应的两个IO队列中分别选择4个IO请求;可以从第一个IO队列中选择4个IO请求,从第二个IO队列中选择3个IO请求。IO请求的预定数量具体可以根据虚拟机IO读写的实际情况而定。
S202、根据选择的IO请求建立系统IO队列,其中,在系统IO队列中,读IO请求的优先级高于写IO请求的优先级;
系统IO队列可以是系统内设置一个总的队列,在分别从N个虚拟机所对应的IO队列中调度预定数量的IO请求之后,还可以根据选择的IO请求建立系统IO队列,即分别将各IO队列的预定数量的IO请求加入该系统IO队列中,以便进行统一处理。
建立系统IO队列时,读IO请求的优先级高于写IO请求的优先级。具体可以将N个IO队列中每个队列的预定数量的IO请求中的读IO请求加入系统IO队列的首部,写IO请求加入系统IO队列的尾部。因为执行读IO请求时,需要将读取的数据存入系统的读缓存中,并将该读IO请求返回给上层的虚拟机,该读IO才能完成;而执行写IO请求时,存储设备将与该写IO请求写入写缓存中即可以向虚拟机返回写IO成功,后续将写缓存中的数据存入存储介质中时,不影响该IO向虚拟机呈现的写时延。因此队列中按照读IO在写IO之前的顺序,可提高读IO的响应时间,保证系统读取操作的时延较小。
S203、对系统IO队列中的IO请求按优先级从高到低的顺序进行处理。
具体的:若IO请求为读IO请求,则根据读IO请求中携带的地址信息从存储系统中存储介质中对应的地址读取数据;若IO请求为写IO请求,则根据写IO请求中携带的地址信息将写IO请求中携带的数据写入存储介质中对应的地址。
对系统IO队列中的IO请求按优先级从高到低的顺序进行处理时,根据存储介质对读请求与写请求的具体执行过程不同,还可以依据先执行读IO请求,再执行写IO请求的优先级顺序进行处理。
其中,读请求的处理过程具体包括:根据读请求的指示,将要读取的数据存入系统的读缓存中,并将该读IO请求返回给上层的虚拟机,该读IO完成;
写请求的处理过程具体包括:存储设备将数据存入写缓存,并向上层虚拟机返回写IO,该写IO完成。
需要说明的是,当前处理周期内所有被调度的IO请求均处理完成后,可以进行下一周期的IO请求处理操作,即仍然执行S101—S103的操作。
本实施例中,存储系统接收N个虚拟机发送的IO请求,再对每个虚拟机发送的IO请求建立一个IO队列,以获得N个IO队列,最后分别从N个IO队列中选择预定数量的IO请求进行处理。这样实现了系统在执行当前处理周期内的IO请求时,对其中每个虚拟机的IO请求都能进行处理,减少了单个虚拟机的IO时延。
图3是本发明实施例二提供的虚拟机的输入输出IO请求处理方法流程示意图。如图3所示,本发明涉及的两个典型的应用场景包括有存储设备与主机分离设置和存储设备和主机融合在一个系统之中,以下以存储介质为SSD硬盘,且存储设备与主机分离设置的应用场景为例进行详细说明。本实施例以下步骤的执行主体可以是独立外置的存储设备,该存储设备可以利用内置的控制芯片控制IO请求的处理过程。本实施例提供的虚拟机的输入输出IO请求处理方法具体包括:
S301、接收N个虚拟机发送的IO请求,其中,N为不小于2的自然数;
具体的,存储系统在接收N个虚拟机发送的IO请求之后,还可以分别根据接收的IO请求中携带的虚拟机的配置信息识别IO请求所属的虚拟机。以Hyper-V虚拟机为例,存储系统先从虚拟机的配置信息中读取虚拟机的信息,例如从Hyper-V虚拟机的配置信息中读取虚拟机及其硬盘映像信息,并对系统同一处理周期内的IO请求进行识别,确定系统中IO请求归属于哪个虚拟机。在确定IO请求的归属时,可根据系统中IO请求的地址信息,确定该IO请求归属于哪一个虚拟机。
因为本实施例中存储介质为SSD硬盘,SSD硬盘一般由多个FLASH闪存颗粒组成,每个闪存颗粒内部包括有一至两个访问通道,而IO请求在访问通道中的传输是串行操作方式,即同一个访问通道在同一个时刻只能执行一个IO请求。因此基于SSD硬盘的存储系统和磁介质硬盘类似,需要对IO请求执行IO排队,构成独立的IO队列进行IO存取操作。本实施例中,每个虚拟机可对应一个IO队列,因此对虚拟机的IO请求进行操作即对每个虚拟机对应的IO队列中的IO请求进行操作。如图4所示,假设系统内有3个虚拟机,则对应分别有3个IO队列,IO队列内分别有读IO和写IO两种IO请求。
S302、对每个虚拟机发送的IO请求建立一个IO队列,以获得N个IO队列;
每个虚拟机向存储系统发送的IO请求都可按照IO请求的时序建立一个独立的IO队列。存储系统在处理来自虚拟机的IO请求时,可以按照该IO队列中IO请求排列的顺序依次对这些IO请求进行处理。因为服务器内可以有N个虚拟机,所以对应的可以获得N个独立的IO队列,每个IO队列都对应一个虚拟机。
S303、分别从N个IO队列中选择预定数量的IO请求进行处理。
具体的,如图5所示,分别从N个IO队列中选择预定数量的IO请求进行处理时,可以包括以下几个步骤:
S401、从N个IO队列中选择预定数量的IO请求;
N个不同IO队列中,各自选择IO请求的预定数量可以相同,也可以不同。IO请求的预定数量具体可以根据虚拟机IO读写的实际情况,如系统内虚拟机的个数、存储系统的性能等由用户进行确定。在图4所示的例子中,设定两个IO队列中选择IO请求的预定数量都为3,即每次从每个虚拟机中调度3个IO请求。
S402、根据选择的IO请求建立系统IO队列,其中,在系统IO队列中,读IO请求的优先级高于写IO请求的优先级;
系统IO队列可以是系统内设置一个总的队列,在分别从N个虚拟机所对应的IO队列中调度预定数量的IO请求之后,还可以根据选择的IO请求建立总体的系统IO队列,分别将各IO队列的预定数量的IO请求加入该系统IO队列中,以便进行统一处理。
建立系统IO队列时,读IO请求的优先级高于写IO请求的优先级。具体可以将N个IO队列中每个队列的预定数量的IO请求中的读IO请求加入系统IO队列的首部,写IO请求加入系统IO队列的尾部。因为执行读IO请求时,需要将读取的数据存入系统的读缓存中,并将该读IO请求返回给上层的虚拟机,该读IO才能完成;而执行写IO请求时,存储设备将与该写IO请求写入写缓存中即可以向虚拟机返回写IO成功,后续将写缓存中的数据存入存储介质中时,不影响该IO向虚拟机呈现的写时延。因此队列中按照读IO在写IO之前的顺序,可提高读IO的响应时间,保证系统读取操作的时延较小。
还是图4为例,每个虚拟机一次调度的3个IO请求中,分别有读IO和写IO两种,系统的虚拟机在N个虚拟机所对应的IO队列中选择预定数量的IO请求并建立统一的系统IO队列中时,要先将读IO加入系统IO队列的首部,将写IO加入系统IO队列的尾部。因为执行读IO请求时,需要将读取的数据存入系统的读缓存中,并将该读IO请求返回给上层的虚拟机,该读IO才能完成;而执行写IO请求时,存储设备将与该写IO请求对应的写缓存中的数据标记为已写盘即可,虚拟机不参加执行。因此队列中按照读IO在写IO之前的顺序,可提高读IO的优先级,保证系统读取操作的时延较小。
S403、对系统IO队列中的IO请求按优先级从高到低的顺序进行处理。
具体的:若IO请求为读IO请求,则根据读IO请求中携带的地址信息从存储系统中存储介质中对应的地址读取数据;若IO请求为写IO请求,则根据写IO请求中携带的地址信息将写IO请求中携带的数据写入存储介质中对应的地址。
对系统IO队列中的IO请求按优先级从高到低的顺序进行处理时,根据存储介质对读请求与写请求的具体执行过程不同,还可以依据先执行读IO请求,再执行写IO请求的优先级顺序进行处理。
其中,读请求的处理过程具体包括:根据读请求的指示,将要读取的数据存入系统的读缓存中,并将该读IO请求返回给上层的虚拟机,该读IO完成;
写请求的处理过程具体包括:存储设备将数据存入写缓存,并向上层虚拟机返回写IO,该写IO完成。
需要说明的是,当前处理后期内所有被调度的IO请求均处理完成后,可以进行下一周期的IO请求处理操作,即仍然执行S301—S303操作。
本实施例中,在外部存储设备与主机分离设置且存储介质为SSD硬盘的实施场景下,存储系统接收N个虚拟机发送的IO请求,再对每个虚拟机发送的IO请求建立一个IO队列,以获得N个IO队列,最后分别从N个IO队列中选择预定数量的IO请求进行处理。这样实现了系统在执行当前处理周期内的IO请求时,对其中每个虚拟机的IO请求都能进行处理,减少单个虚拟机的IO时延。
图6是本发明实施例三提供的一种虚拟机的输入输出IO请求处理装置结构示意图。如图6所示,本发明实施例提供的虚拟机的IO请求处理装置61,包括:
接收模块601,用于接收N个虚拟机发送的IO请求,其中,N为不小于2的自然数;
队列模块602,用于对每个虚拟机发送的IO请求建立一个IO队列,以获得N个IO队列;
处理模块603,用于分别从N个IO队列中选择预定数量的IO请求进行处理。
具体的,处理模块603可以用于分别从N个IO队列中选择预定数量的IO请求进行处理,具体包括:
分别从N个IO队列中选择预定数量的IO请求;
根据选择的IO请求建立系统IO队列,其中,在系统IO队列中,读IO请求的优先级高于写IO请求的优先级;
对系统IO队列中的IO请求按优先级从高到低的顺序进行处理。
具体的,接收模块601还可以用于分别根据接收的IO请求中携带的虚拟机的配置信息识别IO请求所属的虚拟机。
具体的,处理模块603用于将N个IO队列中的每个队列的预定数量的IO请求中的读IO请求加入系统IO队列的首部,写IO请求加入系统IO队列的尾部。
具体的,处理模块603用于当IO请求为读IO请求时,则根据读IO请求中携带的地址信息从存储系统中存储介质中对应的地址读取数据;或者当IO请求为写IO请求时,则根据写IO请求中携带的地址信息将写IO请求中携带的数据写入存储介质中对应的地址。
本实施例中,虚拟机的输入输出IO请求处理装置的接收模块601用于接收N个虚拟机发送的IO请求;队列模块602用于对每个虚拟机发送的IO请求建立一个IO队列,以获得N个IO队列;处理模块603,用于分别从N个IO队列中选择预定数量的IO请求进行处理。这样实现了系统在执行当前处理周期内的IO请求时,对其中每个虚拟机的IO请求都能进行处理,减少单个虚拟机的IO时延。
图7是本发明实施例四提供的一种虚拟机的输入输出IO请求处理装置结构示意图。如图7所示,本发明实施例提供的虚拟机的输入输出IO请求处理装置71,包括:
接收器701,用于接收N个虚拟机发送的IO请求,其中,N为不小于2的自然数;
处理器702,用于对每个虚拟机发送的IO请求建立一个IO队列,以获得N个IO队列;
分别从N个IO队列中选择预定数量的IO请求进行处理。
具体的,处理模块702可以用于分别从N个IO队列中选择预定数量的IO请求进行处理,具体包括:
分别从N个IO队列中选择预定数量的IO请求;
根据选择的IO请求建立系统IO队列,其中,在系统IO队列中,读IO请求的优先级高于写IO请求的优先级;
对系统IO队列中的IO请求按优先级从高到低的顺序进行处理。
具体的,接收模块701还可以用于分别根据接收的IO请求中携带的虚拟机的配置信息识别IO请求所属的虚拟机。
具体的,处理模块702还可以用于将N个IO队列中的每个队列的预定数量的IO请求中的读IO请求加入系统IO队列的首部,写IO请求加入系统IO队列的尾部。
具体的,处理模块702还可以用于当IO请求为读IO请求时,则根据读IO请求中携带的地址信息从存储系统中存储介质中对应的地址读取数据;或者当IO请求为写IO请求时,则根据写IO请求中携带的地址信息将写IO请求中携带的数据写入存储介质中对应的地址。
本实施例中,虚拟机的IO请求处理装置的接收器701用于接收N个虚拟机发送的IO请求;处理器702用于对每个虚拟机发送的IO请求建立一个IO队列,以获得N个IO队列,并分别从N个IO队列中选择预定数量的IO请求进行处理。这样实现了系统在执行当前处理周期内的IO请求时,对其中每个虚拟机的IO请求都能进行处理,减少单个虚拟机的IO时延。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (10)
1.一种虚拟机的输入输出IO请求处理方法,所述方法应用于存储系统中,其特征在于,包括:
接收N个虚拟机发送的IO请求,其中,N为不小于2的自然数;
对每个虚拟机发送的IO请求建立一个IO队列,以获得N个IO队列;
分别从所述N个IO队列中选择预定数量的IO请求进行处理。
2.根据权利要求1所述的方法,其特征在于,所述分别从所述N个IO队列中选择预定数量的IO请求进行处理包括:
分别从所述N个IO队列中选择预定数量的IO请求;
根据选择的IO请求建立系统IO队列,其中,在所述系统IO队列中,读IO请求的优先级高于写IO请求的优先级;
对所述系统IO队列中的IO请求按优先级从高到低的顺序进行处理。
3.根据权利要求1或2所述的方法,其特征在于,所述接收N个虚拟机发送的IO请求之后,还包括:
分别根据接收的IO请求中携带的虚拟机的配置信息识别IO请求所属的虚拟机。
4.根据权利要求2所述的方法,其特征在于,所述根据选择的IO请求建立系统IO队列,具体包括:
将所述N个IO队列中的每个队列的预定数量的IO请求中的读IO请求加入所述系统IO队列的首部,写IO请求加入所述系统IO队列的尾部。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述分别从所述N个IO队列中选择预定数量的IO请求进行处理,具体包括:
若所述IO请求为读IO请求,则根据所述读IO请求中携带的地址信息从所述存储系统中存储介质中对应的地址读取数据;或者,
若所述IO请求为写IO请求,则根据所述写IO请求中携带的地址信息将所述写IO请求中携带的数据写入所述存储介质中对应的地址。
6.一种虚拟机的输入输出IO请求处理装置,所述装置应用于存储系统中,其特征在于,包括:
接收模块,用于接收N个虚拟机发送的IO请求,其中,N为不小于2的自然数;
队列模块,用于对每个虚拟机发送的IO请求建立一个IO队列,以获得N个IO队列;
处理模块,用于分别从所述N个IO队列中选择预定数量的IO请求进行处理。
7.根据权利要求6所述的装置,其特征在于,所述处理模块用于分别从所述N个IO队列中选择预定数量的IO请求进行处理,具体包括:
分别从所述N个IO队列中选择预定数量的IO请求;
根据选择的IO请求建立系统IO队列,其中,在所述系统IO队列中,读IO请求的优先级高于写IO请求的优先级;
对所述系统IO队列中的IO请求按优先级从高到低的顺序进行处理。
8.根据权利要求6或7所述的装置,其特征在于,所述接收模块还用于:
分别根据接收的IO请求中携带的虚拟机的配置信息识别IO请求所属的虚拟机。
9.根据权利要求7所述的装置,其特征在于,所述处理模块具体用于:
将所述N个IO队列中的每个队列的预定数量的IO请求中的读IO请求加入所述系统IO队列的首部,写IO请求加入所述系统IO队列的尾部。
10.根据权利要求6-9任一项所述的装置,其特征在于,所述处理模块具体用于:
若所述IO请求为读IO请求,则根据所述读IO请求中携带的地址信息从所述存储系统中存储介质中对应的地址读取数据;或者
若所述IO请求为写IO请求,则根据所述写IO请求中携带的地址信息将所述写IO请求中携带的数据写入所述存储介质中对应的地址。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310754241.0A CN104750547B (zh) | 2013-12-31 | 2013-12-31 | 虚拟机的输入输出io请求处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310754241.0A CN104750547B (zh) | 2013-12-31 | 2013-12-31 | 虚拟机的输入输出io请求处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104750547A true CN104750547A (zh) | 2015-07-01 |
CN104750547B CN104750547B (zh) | 2018-05-18 |
Family
ID=53590290
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310754241.0A Active CN104750547B (zh) | 2013-12-31 | 2013-12-31 | 虚拟机的输入输出io请求处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104750547B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106648832A (zh) * | 2016-12-09 | 2017-05-10 | 武汉烽火信息集成技术有限公司 | 提高虚拟机资源利用率的装置及方法 |
CN111258705A (zh) * | 2018-11-30 | 2020-06-09 | 华为技术有限公司 | 用于检测云硬盘输入输出io邻位干扰的方法和装置 |
CN111831397A (zh) * | 2020-07-17 | 2020-10-27 | 杭州海康威视系统技术有限公司 | 处理io请求的方法、装置、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1326567A (zh) * | 1998-11-16 | 2001-12-12 | 艾利森电话股份有限公司 | 处理系统调度 |
CN101458635A (zh) * | 2007-12-14 | 2009-06-17 | 韩国电子通信研究院 | 服务器虚拟环境的磁盘输入/输出调度器及其调度方法 |
US7761875B2 (en) * | 2005-06-10 | 2010-07-20 | Hewlett-Packard Development Company, L.P. | Weighted proportional-share scheduler that maintains fairness in allocating shares of a resource to competing consumers when weights assigned to the consumers change |
-
2013
- 2013-12-31 CN CN201310754241.0A patent/CN104750547B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1326567A (zh) * | 1998-11-16 | 2001-12-12 | 艾利森电话股份有限公司 | 处理系统调度 |
US7761875B2 (en) * | 2005-06-10 | 2010-07-20 | Hewlett-Packard Development Company, L.P. | Weighted proportional-share scheduler that maintains fairness in allocating shares of a resource to competing consumers when weights assigned to the consumers change |
CN101458635A (zh) * | 2007-12-14 | 2009-06-17 | 韩国电子通信研究院 | 服务器虚拟环境的磁盘输入/输出调度器及其调度方法 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106648832A (zh) * | 2016-12-09 | 2017-05-10 | 武汉烽火信息集成技术有限公司 | 提高虚拟机资源利用率的装置及方法 |
CN106648832B (zh) * | 2016-12-09 | 2020-01-14 | 武汉烽火信息集成技术有限公司 | 提高虚拟机资源利用率的装置及方法 |
CN111258705A (zh) * | 2018-11-30 | 2020-06-09 | 华为技术有限公司 | 用于检测云硬盘输入输出io邻位干扰的方法和装置 |
CN111258705B (zh) * | 2018-11-30 | 2023-12-08 | 华为技术有限公司 | 用于检测云硬盘输入输出io邻位干扰的方法和装置 |
CN111831397A (zh) * | 2020-07-17 | 2020-10-27 | 杭州海康威视系统技术有限公司 | 处理io请求的方法、装置、设备及存储介质 |
CN111831397B (zh) * | 2020-07-17 | 2024-02-20 | 杭州海康威视系统技术有限公司 | 处理io请求的方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN104750547B (zh) | 2018-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10019181B2 (en) | Method of managing input/output(I/O) queues by non-volatile memory express(NVME) controller | |
US9021178B2 (en) | High performance path for command processing | |
US10156994B2 (en) | Methods and systems to reduce SSD IO latency | |
CN102428451A (zh) | 用于数据存储装置的命令及中断分组 | |
CN103064795B (zh) | 一种存储设备的控制方法及相关装置 | |
CN103282887A (zh) | 用于进行后台操作的控制器和方法 | |
CN103631624A (zh) | 读写请求的处理方法和装置 | |
US10534563B2 (en) | Method and system for handling an asynchronous event request command in a solid-state drive | |
CN105190539A (zh) | 使用动态端口重映射避免指令调度期间死锁的方法和装置 | |
CN107870866B (zh) | Io命令调度方法与nvm接口控制器 | |
CN104252422A (zh) | 内存访问方法和内存控制器 | |
CN104750547A (zh) | 虚拟机的输入输出io请求处理方法及装置 | |
CN103970714B (zh) | 用于共享功能逻辑的设备和方法及其可重配置处理器 | |
US10996860B2 (en) | Method to improve mixed workload performance on storage devices that use cached operations | |
CN104216834A (zh) | 一种内存访问的方法、缓冲调度器和内存模块 | |
US20150278299A1 (en) | External merge sort method and device, and distributed processing device for external merge sort | |
CN103699444A (zh) | 中央处理器热插拔的实现方法及装置 | |
CN111562883B (zh) | 固态硬盘的缓存管理系统、方法、装置 | |
US20140331021A1 (en) | Memory control apparatus and method | |
US9678752B2 (en) | Scheduling apparatus and method of dynamically setting the size of a rotating register | |
US11360702B2 (en) | Controller event queues | |
US8627031B2 (en) | Semiconductor memory device and method of reading data from and writing data into a plurality of storage units | |
CN101639692B (zh) | 多可编程逻辑器件的控制方法、设备和系统 | |
CN105353982B (zh) | 一种基于循环数组的数据访问处理方法及装置 | |
CN104123261A (zh) | 一种电子设备及信息传送方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |