一种IO请求处理方法及装置转让专利

申请号 : CN201711424109.8

文献号 : CN108153494B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 童俊

申请人 : 新华三技术有限公司

摘要 :

本发明提供一种IO请求处理方法及装置,应用于分布式存储系统中的存储服务器,该方法包括:当接收到第一IO请求时,若计算得到的第一IO请求的R标签大于当前时间片的IO请求处理时刻,则获取当前未达到上限值的业务的上限值和预留值的差值;从获取的差值中选择目标差值;根据目标差值以及第一IO请求所属业务的权重值,确定第一IO请求的P标签;在处理R标签大于IO请求处理时刻且L标签小于IO请求处理时刻的第二IO请求时,按照第二IO请求的P标签从小到大的顺序在到达第二IO请求的P标签对应时刻时,处理第二IO请求。通过本发明可实现分布式存储系统按照业务之间的权重比例处理IO请求。

权利要求 :

1.一种IO请求处理方法,应用于分布式存储系统中的存储服务器,其特征在于,所述方法包括:当接收到第一IO请求时,若计算得到的所述第一IO请求的R标签大于当前时间片的IO请求处理时刻,则获取当前未达到上限值的业务的上限值和预留值的差值,所述R标签为基于预留值为IO请求分配的时间标签;

从获取的差值中选择目标差值;

根据所述目标差值以及所述第一IO请求所属业务的权重值,确定所述第一IO请求的P标签,所述P标签为基于上限值、预留值以及权重值为IO请求分配的时间标签;

在处理R标签大于所述IO请求处理时刻且L标签小于所述IO请求处理时刻的第二IO请求时,按照所述第二IO请求的P标签从小到大的顺序在到达所述第二IO请求的P标签对应时刻时,处理所述第二IO请求,所述L标签为基于上限值为IO请求分配的时间标签。

2.如权利要求1所述的方法,其特征在于,所述获取当前未达到上限值的业务的上限值和预留值的差值,包括:获取所述存储系统中已接收到的业务的最近一次IO请求的L标签;

若所述最近一次IO请求的L标签小于所述IO请求处理时刻,则计算所述业务的上限值和预留值的差值。

3.如权利要求1所述的方法,其特征在于,所述从获取的差值中选择目标差值,包括:对所述获取的差值按照数值大小排序;

选择数值最大的差值作为所述目标差值。

4.如权利要求1所述的方法,其特征在于,所述根据所述目标差值以及所述第一IO请求所属业务的权重值,确定所述第一IO请求的P标签,包括:获取所述第一IO请求所属业务的上一IO请求的P标签;

获取所述目标差值与所述第一IO请求所属业务的权重值的乘积;

获取在接收所述第一IO请求和所述上一IO请求之间发往其它存储服务器请求基于P标签处理的IO请求的个数;

获取所述IO请求的个数与所述乘积的商;

将所述上一IO请求的P标签与所述商的和作为所述第一IO请求的P标签。

5.如权利要求1所述的方法,其特征在于,若计算得到的所述第一IO请求的R标签小于或等于所述IO请求处理时刻,则将所述IO请求处理时刻作为所述第一IO请求的P标签。

6.一种IO请求处理装置,应用于分布式存储系统中的存储服务器,其特征在于,所述装置包括:获取单元,用于当接收到第一IO请求时,若计算得到的所述第一IO请求的R标签大于当前时间片的IO请求处理时刻,则获取当前未达到上限值的业务的上限值和预留值的差值,所述R标签为基于预留值为IO请求分配的时间标签;

选择单元,用于从获取的差值中选择目标差值;

确定单元,用于根据所述目标差值以及所述第一IO请求所属业务的权重值,确定所述第一IO请求的P标签,所述P标签为基于上限值、预留值以及权重值为IO请求分配的时间标签;

处理单元,用于在处理R标签大于所述IO请求处理时刻且L标签小于所述IO请求处理时刻的第二IO请求时,按照所述第二IO请求的P标签从小到大的顺序在到达所述第二IO请求的P标签对应时刻时,处理所述第二IO请求,所述L标签为基于上限值为IO请求分配的时间标签。

7.如权利要求6所述的装置,其特征在于:

所述获取单元,具体用于获取所述存储系统中已接收到的业务的最近一次IO请求的L标签;若所述最近一次IO请求的L标签小于所述IO请求处理时刻,则计算所述业务的上限值和预留值的差值。

8.如权利要求6所述的装置,其特征在于:

所述选择单元,具体用于对所述获取的差值按照数值大小排序;选择数值最大的差值作为所述目标差值。

9.如权利要求6所述的装置,其特征在于:

所述确定单元,具体用于获取所述第一IO请求所属业务的上一IO请求的P标签;获取所述目标差值与所述第一IO请求所属业务的权重值的乘积;获取在接收所述第一IO请求和所述上一IO请求之间发往其它存储服务器请求基于P标签处理的IO请求的个数;获取所述IO请求的个数与所述乘积的商;将所述上一IO请求的P标签与所述商的和作为所述第一IO请求的P标签。

10.如权利要求6所述的装置,其特征在于:

所述确定单元,还用于若计算得到的所述第一IO请求的R标签小于或等于所述IO请求处理时刻,则将所述IO请求处理时刻作为所述第一IO请求的P标签。

说明书 :

一种IO请求处理方法及装置

技术领域

[0001] 本发明涉及网络通信技术领域,尤其涉及一种IO请求处理方法及装置。

背景技术

[0002] 在采用dmClock算法的分布式存储系统中,存储系统根据业务的预留、上限、权重为业务分配IO资源。当存储系统已满足所有业务的预留(超过预留但未达到上限)时,应按照不同业务的权重(业务的权重通常代表对应业务的重要程度)分配IO资源,即优先保证重要业务的IO资源需求。
[0003] 在基于业务权重分配IO资源时,分布式存储系统中的每一台存储服务器根据自身处理性能按照IO请求的P标签的大小顺序处理IO请求,其中,P标签是存储服务器基于IO请求所属业务的权重计算得到的。由于IO请求是随机分配到各个存储服务器,且各个存储服务器之间基于P标签独立处理各自接收的IO请求,因此,无法保证整个存储系统可以按照预设的业务之间的权重比例处理IO请求。

发明内容

[0004] 本发明的目的在于提供一种IO请求处理方法及装置,用以实现分布式存储系统按照预设的业务之间的权重比例处理IO请求。
[0005] 为实现上述发明目的,本发明提供了如下技术方案:
[0006] 一方面,本发明提供一种IO请求处理方法,应用于分布式存储系统中的存储服务器,所述方法包括:
[0007] 当接收到第一IO请求时,若计算得到的所述第一IO请求的R标签大于当前时间片的IO请求处理时刻,则获取当前未达到上限值的业务的上限值和预留值的差值;
[0008] 从获取的差值中选择目标差值;
[0009] 根据所述目标差值以及所述第一IO请求所属业务的权重值,确定所述第一IO请求的P标签;
[0010] 在处理R标签大于所述IO请求处理时刻且L标签小于所述IO请求处理时刻的第二IO请求时,按照所述第二IO请求的P标签从小到大的顺序在到达所述第二IO请求的P标签对应时刻时,处理所述第二IO请求。
[0011] 另一方面,本发明提供一种IO请求处理装置,应用于分布式存储系统中的存储服务器,所述装置包括:
[0012] 获取单元,用于当接收到第一IO请求时,若计算得到的所述第一IO请求的R标签大于当前时间片的IO请求处理时刻,则获取当前未达到上限值的业务的上限值和预留值的差值;
[0013] 选择单元,用于从获取的差值中选择目标差值;
[0014] 确定单元,用于根据所述目标差值以及所述第一IO请求所属业务的权重值,确定所述第一IO请求的P标签;
[0015] 处理单元,用于在处理R标签大于所述IO请求处理时刻且L标签小于所述IO请求处理时刻的第二IO请求时,按照所述第二IO请求的P标签从小到大的顺序在到达所述第二IO请求的P标签对应时刻时,处理所述第二IO请求。
[0016] 由以上描述可以看出,本发明利用与时间相关的上限值和预留值计算IO请求的P标签,使IO请求的P标签不但与权重相关还与时间关联,使所有业务的IO请求可基于P标签映射到同一时间轴上,当存储服务器基于P标签处理IO请求时,可按照P标签从小到大的顺序在到达P标签对应时刻时,处理该P标签对应的IO请求,使得在一段时间内分布式存储系统始终按照业务之间的权重比例处理IO请求。

附图说明

[0017] 为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0018] 图1是本发明实施例示出的一种IO请求处理方法流程图;
[0019] 图2是本发明实施例示出的存储服务器的结构示意图;
[0020] 图3是本发明实施例示出的一种IO请求处理装置的结构示意图。

具体实施方式

[0021] 这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
[0022] 在本发明使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
[0023] 应当理解,尽管在本发明可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本发明范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
[0024] 分布式存储系统包括至少两台存储服务器,存储服务器之间时间同步,每台存储服务器独立处理各自接收的IO请求。以下将介绍基于现有dmClock算法处理IO请求的过程:
[0025] 存储服务器在接收到IO请求时,为IO请求分配3个标签,分别为R标签、L标签以及P标签,其中,R标签为基于业务预先配置的预留值为业务的IO请求分配的时间标签;L标签为基于业务预先配置的上限值为业务的IO请求分配的时间标签;P标签为基于业务预先配置的权重值为业务的IO请求分配的权重标签。其中,预留值表示当业务的IO请求超过预留值时,存储系统可提供不低于该预留值的处理性能;上限值表示存储系统可为业务提供的最高处理性能;权重值表示存储系统在满足所有业务的预留的前提下,按照业务之间的权重比例处理未达到上限值的业务的IO请求。例如,以IOPS(Input/Output Operations Per Second,每秒进行读写操作的次数)为例,配置某业务的预留值为100IOPS,上限值为200IOPS,权重值为5(例如,权重范围1~5,数值越大代表对应业务的重要程度越高)。
[0026] 各标签的计算公式如下:
[0027]
[0028]
[0029]
[0030] 其中,i表示第i个业务;r表示存储服务器接收到的业务i的第r个IO请求;r-1表示存储服务器接收到的业务i的第r-1个IO请求;ri表示业务i的预留值;li表示业务i的上限值;pi表示业务i的权重值;ρi表示当前存储服务器接收到业务i的第r个IO请求和第r-1个IO请求之间,业务i发往其它存储服务器请求基于R标签处理的IO请求的个数;δi表示当前存储服务器接收到业务i的第r个IO请求和第r-1个IO请求之间,业务i发往其它存储服务器请求基于P标签处理的IO请求的个数;Currenttime表示接收到业务i的第r个IO请求的时刻;表示业务i的第r-1个IO请求的R标签; 表示业务i的第r-1个IO请求的L标签;
表示业务i的第r-1个IO请求的P标签; 表示业务i的第r个IO请求的R标签; 表示业务i的第r个IO请求的L标签; 表示业务i的第r个IO请求的P标签。
[0031] 从上述描述可以看出,R标签和L标签都是与时间有关的标签,其中,R标签是基于预留值(预留的平均处理速度)确定的IO请求应该被处理的时刻;L标签是基于上限值(允许的最高平均处理速度)确定的IO请求应该被处理的时刻,存储服务器通过为IO请求分配R标签和L标签,使存储系统的所有业务的IO请求投射到统一的时间轴上。当存储服务器的时间到达IO请求处理时刻时,首先处理R标签小于IO请求处理时刻的IO请求,即首先满足所有业务的预留需求;然后,处理R标签大于IO请求处理时刻但L标签小于IO请求处理时刻的IO请求,即处理超过预留但未达到上限的业务的IO请求,这部分IO请求按照P标签(与权重有关但与时间无关的标签)从小到大的顺序处理。
[0032] 但是,由于分布式存储系统中的IO请求是随机分配到各个存储服务器,而各个存储服务器是按照自身处理能力独立处理IO请求,即按照分配给自身处理的IO请求的P标签大小顺序依次处理IO请求,与时间无关,因此,无法保证整个存储系统在一定时间内按照预设的各业务之间的权重比例处理IO请求,也就失去了预设业务权重值的意义。
[0033] 针对上述存在的权重失效的问题,本发明实施例提出一种IO请求处理方法,该方法使IO请求的P标签不但与权重相关还与时间关联,使所有业务的IO请求可基于P标签映射到同一时间轴上,从而在基于P标签处理IO请求时,可实现分布式存储系统在一定时间内按照业务之间的权重比例处理IO请求。
[0034] 参见图1,为本发明IO请求处理方法的一个实施例流程图,该实施例从存储服务器侧对IO请求处理过程进行描述。
[0035] 步骤101,当接收到第一IO请求时,若计算得到的所述第一IO请求的R标签大于当前时间片的IO请求处理时刻,则获取当前未达到上限值的业务的上限值和预留值的差值。
[0036] 存储服务器在接收到IO请求(记为第一IO请求)时,首先为第一IO请求分配R标签、L标签以及P标签。其中,R标签和L标签可现有处理方式计算,具体参见前述公式(1)和公式(2),这里不再赘述。
[0037] 在计算P标签时,可分为以下两种情况处理:
[0038] 若计算得到的第一IO请求的R标签小于或等于当前时间片的IO请求处理时刻,则将当前时间片的IO请求处理时刻作为第一IO请求的P标签,可通过如下公式表示:
[0039] 当 时,
[0040] 其中,i表示第i个业务;r表示存储服务器接收到的业务i的第r个IO请求; 表示业务i的第r个IO请求的R标签;T为当前时间片的IO请求处理时刻; 表示业务i的第r个IO请求的P标签。
[0041] 例如,当前时间片的起始时刻为0s,终止时刻为1s,在1s时刻(IO请求处理时刻)处理IO请求,若当前接收的第一IO请求的R标签为0.5s,小于1s,则该第一IO请求的P标签为1s。
[0042] 若计算得到的第一IO请求的R标签大于当前时间片的IO请求处理时刻,则获取当前未达到上限值的业务的上限值和预留值的差值。具体为,获取存储系统中已接收到的业务的最近一次IO请求的L标签,这里需要说明的是,由于存储服务器之间可进行信息交互,因此,存储服务器可获取到其它存储服务器上该业务最近一次IO请求的L标签,对获取到的所有存储服务器上的该业务的最近一次IO请求的L标签进行比较,L标签值越大代表对应IO请求的接收时间越靠后,从而确定整个存储系统中该业务的最近一次IO请求的L标签;若存储系统中该业务的最近一次IO请求的L标签小于IO请求处理时刻,说明该业务未达到上限值;计算每一个未达到上限值的业务的上限值和预留值的差值。例如,以业务A为例,业务A的上限值400IOPS,预留值为100IOPS,若业务A的最近一次IO请求的L标签为0.25,未达到1s(当前时间片的IO请求处理时刻),则确定业务A未达到上限值,计算上限值和预留值的差值为400-100=300IOPS。
[0043] 步骤102,从获取的差值中选择目标差值。
[0044] 在一种可选的实施方式中,对通过步骤101计算得到的所有未达到上限值的业务的上限值与预留值的差值进行排序,选择数值最大的差值作为目标差值。例如,若业务A、业务B、业务C均未达到上限值,业务A对应差值为300IOPS,业务B对应差值为200IOPS,业务C对应差值为100IOPS,则选择业务A的差值300IOPS为目标差值。
[0045] 步骤103,根据所述目标差值以及所述第一IO请求所属业务的权重值,确定所述第一IO请求的P标签。
[0046] 具体为,获取第一IO请求所属业务的上一IO请求的P标签;获取目标差值与第一IO请求所属业务的权重值的乘积;获取在接收第一IO请求和属于同一业务的上一IO请求之间发往其它存储服务器请求基于P标签处理的IO请求的个数;获取IO请求的个数与前述乘积的商;将上一IO请求的P标签与商的和作为第一IO请求的P标签,具体可通过如下公式表示:
[0047] 当 时,
[0048] 其中,i表示第i个业务;r表示存储服务器接收到的业务i的第r个IO请求;r-1表示存储服务器接收到的业务i的第r-1个IO请求; 表示业务i的第r个IO请求的R标签;T为当前时间片的IO请求处理时刻;δi表示当前存储服务器接收到业务i的第r个IO请求和第r-1个IO请求之间,发往其它存储服务器请求基于P标签处理的业务i的IO请求的个数;pi表示业务i的权重值;Maxq表示目标差值; 表示业务i的第r-1个IO请求的P标签; 表示业务i的第r个IO请求的P标签。
[0049] 从公式(5)可以看出,对于整个存储系统来说,当第一IO请求的R标签 大于当前时间片的IO请求处理时刻T时,业务i的相邻IO请求之间的P标签的时间差为 例如,若目标差值Maxq为300IOPS,业务i的权重值pi为3,当前第一IO请求的R标签为1.1s,大于1s(IO请求处理时刻),则该第一IO请求的P标签相对于存储系统接收到的该业务i的上一个IO请求的P标签增加 即对于业务i来说,当IO请求的R标签大于当前时间片的IO请求处理时刻时,相邻两个IO请求被分配的P标签相差 可见,本发明可将IO请求基于P标签投射到时间轴上,该P标签与权重(pi)相关也与时间(Maxq)相关。
[0050] 步骤104,在处理R标签大于所述IO请求处理时刻且L标签小于所述IO请求处理时刻的第二IO请求时,按照所述第二IO请求的P标签从小到大的顺序在到达所述第二IO请求的P标签对应时刻时,处理所述第二IO请求。
[0051] 在经过步骤101~步骤103的标签分配过程后,IO请求被加入队列中,当到达当前时间片的IO请求处理时刻时,存储服务器首先处理队列中R标签小于等于IO请求处理时刻的IO请求,即满足所有业务的预留需求;然后,处理R标签大于IO请求处理时刻且L标签小于IO请求处理时刻的IO请求(记为第二IO请求),第二IO请求基于P标签处理,按照P标签从小到大的顺序,每到达一个P标签对应时刻,则处理该P标签对应的第二IO请求。
[0052] 由于同一业务的相邻IO请求的P标签在时间轴上相差 每一个业务基于自身的权重值可得到各自业务相邻IO请求的P标签在时间轴上的时间差。例如,若目标差值为300IOPS,业务A的权重值为1,业务B的权重值为3,业务C的权重值为5,则业务A的相邻IO请求的P标签在时间轴上的时间差为 业务B的相邻IO请求的P标签在时间轴上的时间差为 业务C的相邻IO请求的P标签在时间轴上的时间差为 因此,在基于P标签处理IO请求时,相当于每 处理一个业务A的IO请求,每 处理一个业务B的IO请求,每处理一个业务C的IO请求,因此,可实现在一定时间内按照业务之间的权重比例处理IO请求。
[0053] 从上述描述可以看出,本发明利用与时间相关的上限值和预留值计算IO请求的P标签,使IO请求的P标签不但与权重相关还与时间关联,使所有业务的IO请求基于P标签映射到同一时间轴上,当存储服务器基于P标签处理IO请求时,可按照P标签从小到大的顺序在到达P标签对应时刻时,处理该P标签对应的IO请求,使得在一段时间内分布式存储系统始终按照业务之间的权重比例处理IO请求。
[0054] 现以3个业务(业务A、业务B、业务C)、2台存储服务器(服务器S1、服务器S2)为例,介绍分布式存储系统处理IO请求的过程。
[0055] 在服务器S1和S2上预先配置业务的预留值、上限值以及权重值,如表1所示。
[0056]
[0057] 表1
[0058] 服务器S1和S2时间同步,当前时间片的起始时刻为0s,终止时刻为1s,服务器会在1s时刻处理IO请求。
[0059] 以服务器S1接收业务A的IO请求为例,服务器S1基于公式(1)计算IO请求的R标签,基于公式(2)计算IO请求的L标签,若R标签为0.5s,小于1s,说明当前未超过业务A的预留值,根据公式(4)得到该IO请求的P标签为1s;若R标签为1.5s,大于1s,说明当前已超过业务A的预留值,此时,计算当前未达到上限值的业务的上限值与预留值的差值,假设,当前业务A、业务B、业务C均未达到上限值,则由表1可知,业务A对应差值为400-100=300IOPS,业务B对应差值为300-100=200IOPS,业务C对应差值为200-100=100IOPS,选择差值最大的300IOPS作为目标差值Maxq,将Maxq=300IOPS以及业务A的权重值1代入公式(5),可得到业务A的当前IO请求的P值,该P值与业务A的上一IO请求的P标签的时间差值为 也就是说,存储系统在0s到1s的时间片上为业务A的IO请求分配P标签时,R标签≤1s的业务A的IO请求的P标签均为1s,R标签>1s的业务A的IO请求的P标签的值以 的时间间隔递增。
[0060] 同理,业务B和业务C的IO请求的标签分配方式相同,即,业务B的IO请求的R标签≤1s时,IO请求的P标签均为1s,业务B的IO请求的R标签>1s时,IO请求的P标签的值以 的时间间隔递增;业务C的IO请求的R标签≤1s时,IO请求的P标签均为1s,业务C的IO请求的R标签>1s时,IO请求的P标签的值以 的时间间隔递增。
[0061] 服务器S1和S2均在1s时刻开始处理自身接收到的IO请求,首先处理所有R标签小于等于1s的IO请求,即满足业务A、业务B、业务C的预留需求,然后,基于P标签处理R标签大于1s但L标签小于1s的IO请求,假设,此时,服务器S1的队列中R标签大于1s但L标签小于1s的IO请求如表2所示,服务器S2的队列中R标签大于1s但L标签小于1s的IO请求如表3所示。
[0062]
[0063] 表2
[0064]
[0065] 表3
[0066] 服务器S2在时间到达 时,处理业务C的IO请求Mc1;服务器S1在时间到达时,处理业务B的IO请求Mb1;服务器S2在时间到达 时,处理业务C的IO请求Mc2;服务器S2在时间到达 时,处理业务C的IO请求Mc3;服务器S2在时间到达时,处理业务B的IO请求Mb2;服务器S2在时间到达 时,处理业务C的IO请求Mc4;服务器S1在时间到达 时,处理业务A的IO请求Ma1以及业务B的IO请求Mb3;服务器S2在时间到达 (即 )时,处理业务C的IO请求Mc5。
[0067] 从上述描述可以看出,在1s到 这段时间,存储系统(包括服务器S1和服务器S2)处理了1个业务A的IO请求、3个业务B的IO请求以及5个业务C的IO请求,实现了分布式存储系统基于业务之间的权重比例(1:3:5)处理IO请求。
[0068] 与前述IO请求处理方法的实施例相对应,本发明还提供了IO请求处理装置的实施例。
[0069] 本发明IO请求处理装置的实施例可以应用在存储服务器上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器运行存储器中对应的计算机程序指令形成的。从硬件层面而言,如图2所示,为本发明IO请求处理装置所在设备的一种硬件结构图,除了图2所示的处理器以及非易失性存储器之外,实施例中装置所在的设备通常根据该设备的实际功能,还可以包括其他硬件,对此不再赘述。
[0070] 请参考图3,为本发明一个实施例中的IO请求处理装置的结构示意图。该IO请求处理装置包括获取单元301、选择单元302、确定单元303以及处理单元304,其中:
[0071] 获取单元301,用于当接收到第一IO请求时,若计算得到的所述第一IO请求的R标签大于当前时间片的IO请求处理时刻,则获取当前未达到上限值的业务的上限值和预留值的差值;
[0072] 选择单元302,用于从获取的差值中选择目标差值;
[0073] 确定单元303,用于根据所述目标差值以及所述第一IO请求所属业务的权重值,确定所述第一IO请求的P标签;
[0074] 处理单元304,用于在处理R标签大于所述IO请求处理时刻且L标签小于所述IO请求处理时刻的第二IO请求时,按照所述第二IO请求的P标签从小到大的顺序在到达所述第二IO请求的P标签对应时刻时,处理所述第二IO请求。
[0075] 进一步地,
[0076] 所述获取单元301,具体用于获取所述存储系统中已接收到的业务的最近一次IO请求的L标签;若所述最近一次IO请求的L标签小于所述IO请求处理时刻,则计算所述业务的上限值和预留值的差值。
[0077] 进一步地,
[0078] 所述选择单元302,具体用于对所述获取的差值按照数值大小排序;选择数值最大的差值作为所述目标差值。
[0079] 进一步地,
[0080] 所述确定单元303,具体用于获取所述第一IO请求所属业务的上一IO请求的P标签;获取所述目标差值与所述第一IO请求所属业务的权重值的乘积;获取在接收所述第一IO请求和所述上一IO请求之间发往其它存储服务器请求基于P标签处理的IO请求的个数;获取所述IO请求的个数与所述乘积的商;将所述上一IO请求的P标签与所述商的和作为所述第一IO请求的P标签。
[0081] 进一步地,
[0082] 所述确定单元303,还用于若计算得到的所述第一IO请求的R标签小于或等于所述IO请求处理时刻,则将所述IO请求处理时刻作为所述第一IO请求的P标签。
[0083] 上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
[0084] 对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
[0085] 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。