一种磁盘io资源分配方法和装置制造方法

文档序号:6511857阅读:197来源:国知局
一种磁盘io资源分配方法和装置制造方法
【专利摘要】本发明实施例公开了一种磁盘IO资源分配方法和装置,所述方法包括:预先设置至少一个策略组,所述策略组包括至少一个磁盘分区;首先,为各个策略组分别分配令牌个数和策略模式;其次,接收任一磁盘IO请求,所述磁盘IO请求包括磁盘分区标识;获取所述磁盘分区标识对应的策略组;最后,判断所述策略组的令牌个数是否大于零,如果是,为所述磁盘IO请求分配所述策略组的资源,并根据所述策略组的策略模式减少所述策略组的令牌个数;如果否,则当满足新一轮令牌发放条件时,执行新一轮令牌发放。本发明采用新的令牌分配方式,避免了资源分配过程中磁盘IO资源的浪费,同时,由于采用策略分组方式,减少了磁盘IO请求的拥堵,提高了磁盘IO资源的利用率。
【专利说明】一种磁盘IO资源分配方法和装置
【技术领域】
[0001]本发明涉及数据处理【技术领域】,具体涉及一种磁盘IO资源分配方法和装置。
【背景技术】
[0002]近些年,随着物理机单机的性能不断提升和虚拟化技术的不断成熟,用户可以在一台物理机上面部署多台虚拟机,启用多个类型的应用。系统将资源平均分配给各个虚拟机,而无法根据应用服务的实际资源需求为虚拟机进行合理有效的资源分配。实际应用中,对于磁盘IO资源的分配就是采用上述平均分配的方式。
[0003]通常,系统接收到磁盘IO请求后,根据磁盘IO请求,确定该IO请求所需求的磁盘分区后,直接将该磁盘分区的资源分配给该IO请求。可见,该资源方法是以磁盘分区为控制对象,当该需求磁盘分区不存在可用资源时,该磁盘IO请求即得不到响应。
[0004]所以,上述资源分配方法会造成磁盘IO请求的拥堵,同时不能有效的利用资源。

【发明内容】

[0005]为了充分利用空闲资源,从而提高资源利用率,本发明提供了一种基于IaaS平台的资源调度方法和装置。
[0006]本发明提供了一种磁盘IO资源分配方法,所述方法包括:
[0007]预先设置至少一个策略组,所述策略组包括至少一个磁盘分区;
[0008]为各个策略组分别分配令牌个数和策略模式;
[0009]接收任一磁盘IO请求,所述磁盘IO请求包括磁盘分区标识,所述磁盘分区标识用于唯一标识磁盘分区;
[0010]获取所述磁盘分区标识对应的策略组;
[0011]判断所述策略组的令牌个数是否大于零,如果是,则为所述磁盘IO请求分配所述策略组的资源,并根据所述策略组的策略模式减少所述策略组的令牌个数;如果否,则当满足新一轮令牌发放条件时,执行新一轮令牌发放。
[0012]优选地,所述当满足新一轮令牌发放条件时,执行新一轮令牌发放,包括:
[0013]当满足新一轮令牌发放条件时,将所有策略组的令牌个数增加预设个数。
[0014]优选地,所述方法还包括:
[0015]为所述磁盘IO请求分配所述策略组的资源,并根据所述策略组的策略模式减少所述令牌个数。
[0016]优选地,所述获取所述磁盘分区标识对应的策略组,包括:
[0017]获取所述磁盘IO请求中的磁盘分区标识;
[0018]根据所述磁盘分区标识查找对应的磁盘分区;
[0019]获取所述磁盘分区对应的策略组。
[0020]优选地,所述当满足新一轮令牌发放条件时,执行新一轮令牌发放,包括:
[0021]当所有策略组的令牌个数均为零时,执行新一轮令牌发放;[0022]或者,
[0023]当所有策略组的令牌个数不都为零时,判断令牌个数最多的策略组是否处于预设的繁忙状态,如果否,则执行新一轮令牌发放。
[0024]优选地,所述方法还包括:
[0025]每隔预设频率的时长获取一次资源分配日志;
[0026]根据所述资源分配日志,为各个策略组分别分配令牌个数和策略模式。
[0027]本发明还提供了一种磁盘IO资源分配系统,所述系统包括:
[0028]设置单元,用于预先设置至少一个策略组,所述策略组包括至少一个磁盘分区;
[0029]第一分配单元,用于为各个策略组分别分配令牌个数和策略模式;
[0030]接收单元,用于接收任一磁盘IO请求,所述磁盘IO请求包括磁盘分区标识,所述磁盘分区标识用于唯一标识磁盘分区;
[0031]第一获取单元,用于获取所述磁盘分区标识对应的策略组;
[0032]判断单元,用于判断所述策略组的令牌个数是否大于零;
[0033]第二分配单元,用于在所述判断单元的结果为是时,为所述磁盘IO请求分配所述策略组的资源,并根据所述策略组的策略模式减少所述策略组的令牌个数;
[0034]令牌发放单元,用于在所述判断单元的结果为否,且满足新一轮令牌发放条件时,执行新一轮令牌发放。
[0035]优选地,所述令牌发放单元,包括:
[0036]第一发放子单元,用于当满足新一轮令牌发放条件时,将所有策略组的令牌个数增加预设个数。
[0037]优选地,所述系统还包括:
[0038]第三分配单元,用于为所述磁盘IO请求分配所述策略组的资源,并根据所述策略组的策略模式减少所述令牌个数。
[0039]优选地,所述第一获取单元,包括:
[0040]第一获取子单元,用于获取所述磁盘IO请求中的磁盘分区标识;
[0041]查找子单元,用于根据所述磁盘分区标识查找对应的磁盘分区;
[0042]第二获取子单元,用于获取所述磁盘分区对应的策略组。
[0043]优选地,所述令牌发放单元,包括:
[0044]第二发放子单元,用于当所有策略组的令牌个数均为零时,执行新一轮令牌发放;
[0045]或者,
[0046]判断子单元,用于当所有策略组的令牌个数不都为零时,判断令牌个数最多的策略组是否处于预设的繁忙状态;
[0047]第三发放子单元,用于在所述判断子单元的结果为否时,执行新一轮令牌发放。
[0048]优选地,所述系统还包括:
[0049]第二获取单元,用于每隔预设频率的时长获取一次资源分配日志;
[0050]第四分配单元,用于根据所述资源分配日志,为各个策略组分别分配令牌个数和策略模式。
[0051]本发明预先设置至少一个策略组,所述策略组包括至少一个磁盘分区;首先,为各个策略组分别分配令牌个数和策略模式;其次,接收任一磁盘IO请求,所述磁盘IO请求包括磁盘分区标识;并获取所述磁盘分区标识对应的策略组;最后,判断所述策略组的令牌个数是否大于零,如果是,则为所述磁盘IO请求分配所述策略组的资源,并根据所述策略组的策略模式减少所述策略组的令牌个数;如果否,则当满足新一轮令牌发放条件时,执行新一轮令牌发放。本发明采用了新的令牌分配方式,避免了资源分配过程中磁盘IO资源的浪费,同时,由于采用了策略分组方式,在磁盘IO资源分配上更加灵活可以为一台虚拟机分配磁盘IO资源,也可以让几个部署相关应用的虚拟机共享一定比例磁盘IO资源,减少了磁盘IO请求的拥堵,提高了磁盘IO资源的利用率。
【专利附图】

【附图说明】
[0052]为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0053]图1为本发明实施例一提供的磁盘IO资源分配方法流程图;
[0054]图2为本发明实施例一提供的执行新一轮令牌发放的方法流程图;
[0055]图3为本发明实施例二磁盘IO资源分配装置结构图。
【具体实施方式】
[0056]下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0057]本发明实施例采用了更加科学的令牌分配方式,可以解决现有技术的系统资源浪费问题,从而可以更加合理高效的使用系统资源。同时,本发明还采用了策略分组方式,可将相关磁盘分区加入到一个策略组里面,策略组包含I个或者多个磁盘分区,然后再为策略组分配策略,即本发明的控制对象不是磁盘分区而是策略组,从全局角度为各个虚拟机进行磁盘IO带宽分配和控制,从而可以支持为拥有多个分区的虚拟机分配一定比例的磁盘IO带宽,并支持多个虚拟机共享一定比例带宽。
[0058]实施例一
[0059]参考图1,图1为本实施例提供的磁盘IO资源分配方法流程图,具体可以包括:
[0060]步骤101:预先设置至少一个策略组,所述策略组包括至少一个磁盘分区;
[0061]本实施例中,磁盘包括若干个磁盘分区,若干个磁盘分区组成一个策略组。本实施例预先设置若干个策略组,每个策略组包括至少一个磁盘分区。本实施例的控制对象不是磁盘分区而是策略组。
[0062]步骤102:为各个策略组分别分配令牌个数和策略模式;
[0063]本实施例中,在设置若干个策略组之后,为所有策略组分别分配令牌个数和策略方式。
[0064]其中,可以为各个策略组分配权重系数,根据各个策略组的权重系数为各个策略组分配令牌个数,例如,预先设置两个策略组A和B,将包含有2048个令牌的基础令牌池为策略组A和B进行分配,策略组A和B的权重系数分别为80%和20%,为策略组A分配80%的磁盘IO资源,对应的令牌个数为:2048*80%=1638 ;为策略组B分配20%的磁盘IO资源,对应的令牌个数为:2048*20%=410。
[0065]另外,为各个策略组分别分配一种策略模式,具体的,策略模式可以包括weight和sector-weight两种模式,其中,weight模式不关心磁盘IO请求要请求的扇区的大小,对于任何一个磁盘IO请求的损耗均为一个令牌;而sector-weight模式会根据磁盘IO请求扇区的大小来损耗相应的令牌,一个扇区中的512字节对应一个令牌,也就是说,当磁盘IO请求需要的资源不大于512字节时,则一个磁盘IO请求的损耗为一个令牌,相应的,当磁盘IO请求需要的资源大于512字节且不大于1024字节时,则一个磁盘IO请求的损耗为两个令牌,依此类推。用户在为各个策略组分配策略模式时可以选择两种模式的任何一种,同时,策略模式也不仅限于上述两种模式。
[0066]步骤103:接收任一磁盘IO请求,所述磁盘IO请求包括磁盘分区标识,所述磁盘分区标识用于唯一标识磁盘分区;
[0067]本实施例中,接收任意一个磁盘IO请求,所述磁盘IO请求用于为输入输出等命令提供磁盘资源,其中,磁盘IO请求可以包括磁盘分区标识,磁盘分区标识用于唯一标识磁盘分区,也就是说,可以根据磁盘分区标识唯一确定磁盘分区。
[0068]步骤104:获取所述磁盘分区标识对应的策略组;
[0069]本实施例中,由于磁盘分区标识可以用于唯一确定磁盘分区,同时任意一个策略组包括若干个磁盘分区,即策略组与磁盘分区具有对应关系,所以,首先可以根据磁盘分区标识确定磁盘分区,其次可以根据磁盘分区确定该磁盘分区所在的策略组。
[0070]实际操作中,获取磁盘分区标识对应的策略组的方法可以包括:
[0071]首先,获取所述磁盘IO请求中的磁盘分区标识;
[0072]其次,根据所述磁盘分区标识查找对应的磁盘分区;
[0073]最后,获取所述磁盘分区对应的策略组。
[0074]步骤105:判断所述策略组的令牌个数是否大于零,如果是,则进入步骤106,如果否,则进入步骤107。
[0075]本实施例中,在磁盘IO请求需要访问的策略组确定后,首先判断该策略组持有的令牌个数是否大于零,如果该策略组持有的令牌个数大于零,则进入步骤106,否则,进入步骤 107。
[0076]其中,应用程序发出的磁盘I O请求可以通过所请求策略组持有的令牌来进行磁盘IO操作,并消耗相应的令牌。也就是说,通过令牌个数的增减能够体现该策略组所持有的磁盘资源的情况。
[0077]步骤106:为所述磁盘IO请求分配所述策略组的资源,并根据所述策略组的策略模式减少所述策略组的令牌个数;
[0078]本实施例中,当该磁盘IO请求需要访问的策略组持有的令牌个数大于零时,为该磁盘IO请求分配该策略组的资源,从而该磁盘IO请求对应的应用程序可以正常运行。并且,根据该策略组的策略模式减少该策略组所持有的令牌个数,也就是说,通过减少该策略组所持有的令牌个数体现该策略组的资源被分配。例如,当该策略组的策略模式为weight模式时,如果该策略组持有的令牌个数大于零,将该策略组持有的令牌个数减少I个。如果减后小于O,则设置该策略组持有令牌数为O。
[0079]步骤107:当满足新一轮令牌发放条件时,执行新一轮令牌发放。
[0080]为避免策略组因为令牌被用光,长时间不能提交新的磁盘IO请求,而导致系统资源浪费及服务异常,本实施例会发放新一轮的令牌以供所有策略组使用。
[0081]本实施例中,当该磁盘IO请求需要访问的策略组持有的令牌个数不大于零,即等于零时,判断当前状态是否满足新一轮令牌发放条件,如果满足,则执行新一轮令牌发放。
[0082]如果当前状态不满足新一轮令牌发放条件时,可以将当前的磁盘I O请求放入该策略组对应的block_bios队列中,其中,该block_bios队列可以按照磁盘I O请求的时间顺序存储未被响应的磁盘I O请求,当满足block_bios队列中的磁盘I O请求的响应条件时,依照请求时间顺序对该block_bios队列中的磁盘I O请求进行响应。
[0083]实际操作中,执行新一轮令牌发放的操作主要表现在:当满足新一轮令牌发放条件时,将所有策略组的令牌个数增加预设个数。也就是说,将策略组持有的令牌个数增加后,相应的该策略组就具有处理磁盘I O请求的能力。其中,新一轮令牌的发放也是依据预先制定的策略,在新一轮的令牌分配中,假设策略组A和B的权重系数仍然分别为80%和20%,则策略组A将在原来持有的令牌个数的基础上增加1638个,而策略组B将在原来持有的令牌数目上增加410个。
[0084]参考图2,图2为执行新一轮令牌发放的方法流程图,具体可以包括:
[0085]步骤201:判断所有策略组的令牌个数是否均为零,如果否,则进入步骤202,如果是,则进入步骤203。
[0086]步骤202:判断令牌个数最多的策略组是否处于预设的繁忙状态,如果是,则进入步骤204,如果否,则进入步骤203。
[0087]步骤203:执行新一轮令牌发放。
[0088]步骤204:将磁盘IO请求加入当前策略组的队列,等待被处理。
[0089]实际操作中,新一轮令牌发放条件可以存在两种设置方法,第一个条件为:当所有策略组的令牌个数均为零时,执行新一轮令牌发放;第二个条件为:当所有策略组的令牌个数不都为零时,判断令牌个数最多的策略组是否处于预设的繁忙状态,如果否,则执行新一轮令牌发放。如果持有令牌最多策略组,其I O请求也非常繁忙,则不会分配新一轮令牌,优先保证持有令牌最多的策略组进行磁盘IO读写操作。本实施例可以在满足上述两个条件中的任意一个时,执行新一轮令牌发放。具体的条件的设置不限于上述两种。
[0090]其中,预设的繁忙状态的标准可以是:5分钟内,当前策略组所提交的IO请求个数与所有策略组提交IO请求总个数的比值是否大于当前策略组初始分配令牌个数与所有策略组初始分配令牌个数的比值,如果大于,说明该当前策略组处于繁忙状态。
[0091]进一步的,在执行新一轮令牌发放之后,本实施例可以对为完成响应的磁盘IO请求分配资源,具体的:
[0092]为所述磁盘IO请求分配所述策略组的资源,并根据所述策略组的策略模式减少所述令牌个数。
[0093]另外,本实施例可以向用户反馈磁盘IO资源分配日志,用户可以预先设置需要获取资源分配日志的频率,并且对各个策略组的磁盘IO操作信息进行统计,例如包含预设频率段内读写IO的个数和读写磁盘空间总大小,进行了多少轮令牌分配,其中可以包括多少次令牌有富裕,多少次令牌不够用等。按照预先设定的频率定期将资源分配日志通过netlink方式传输到应用层,以便用户进行分析判断,从而可以更加真实的了解到各个策略组磁盘IO资源使用情况。
[0094]具体的,本实施例可以每隔预设频率的时长获取一次资源分配日志;根据所述资源分配日志,为各个策略组分别分配令牌个数和策略模式。
[0095]本实施例预先设置至少一个策略组,所述策略组包括至少一个磁盘分区;首先,为各个策略组分别分配令牌个数和策略模式;其次,接收任一磁盘IO请求,所述磁盘IO请求包括磁盘分区标识;并获取所述磁盘分区标识对应的策略组;最后,判断所述策略组的令牌个数是否大于零,如果是,则为所述磁盘IO请求分配所述策略组的资源,并根据所述策略组的策略模式减少所述策略组的令牌个数;如果否,则当满足新一轮令牌发放条件时,执行新一轮令牌发放。本实施例采用了新的令牌分配方式,避免了资源分配过程中磁盘IO资源的浪费,同时,由于采用了策略分组方式,在磁盘IO资源分配上更加灵活可以为一台虚拟机分配磁盘IO资源,也可以让几个部署相关应用的虚拟机共享一定比例磁盘IO资源,减少了磁盘IO请求的拥堵,提高了磁盘IO资源的利用率。
[0096]实施例二
[0097]参考图3,图3为本实施例提供的磁盘IO资源分配装置结构图,所述装置可以包括:
[0098]设置单元301,用于预先设置至少一个策略组,所述策略组包括至少一个磁盘分区;
[0099]第一分配单元302,用于为各个策略组分别分配令牌个数和策略模式;
[0100]接收单元303,用于接收任一磁盘IO请求,所述磁盘IO请求包括磁盘分区标识,所述磁盘分区标识用于唯一标识磁盘分区;
[0101]第一获取单元304,用于获取所述磁盘分区标识对应的策略组;
[0102]判断单元305,用于判断所述策略组的令牌个数是否大于零;
[0103]第二分配单元306,用于在所述判断单元的结果为是时,为所述磁盘IO请求分配所述策略组的资源,并根据所述策略组的策略模式减少所述策略组的令牌个数;
[0104]令牌发放单元307,用于在所述判断单元的结果为否,且满足新一轮令牌发放条件时,执行新一轮令牌发放。
[0105]其中,所述令牌发放单元,可以包括:
[0106]第一发放子单元,用于当满足新一轮令牌发放条件时,将所有策略组的令牌个数增加预设个数。
[0107]其中,所述系统还可以包括:
[0108]第三分配单元,用于为所述磁盘IO请求分配所述策略组的资源,并根据所述策略组的策略模式减少所述令牌个数。
[0109]具体的,所述第一获取单元,可以包括:
[0110]第一获取子单元,用于获取所述磁盘IO请求中的磁盘分区标识;
[0111]查找子单元,用于根据所述磁盘分区标识查找对应的磁盘分区;
[0112]第二获取子单元,用于获取所述磁盘分区对应的策略组。[0113]具体的,所述令牌发放单元,可以包括:
[0114]第二发放子单元,用于当所有策略组的令牌个数均为零时,执行新一轮令牌发放;
[0115]或者,
[0116]判断子单元,用于当所有策略组的令牌个数不都为零时,判断令牌个数最多的策略组是否处于预设的繁忙状态;
[0117]第三发放子单元,用于在所述判断子单元的结果为否时,执行新一轮令牌发放。
[0118]进一步的,所述系统还可以包括:
[0119]第二获取单元,用于每隔预设频率的时长获取一次资源分配日志;
[0120]第四分配单元,用于根据所述资源分配日志,为各个策略组分别分配令牌个数和策略模式。
[0121]本实施例提供的磁盘IO资源分配装置的工作原理为:
[0122]设置单元预先设置至少一个策略组,所述策略组包括至少一个磁盘分区;第一分配单元为各个策略组分别分配令牌个数和策略模式;接收单元接收任一磁盘IO请求,所述磁盘IO请求包括磁盘分区标识,所述磁盘分区标识用于唯一标识磁盘分区;第一获取单元获取所述磁盘分区标识对应的策略组;判断单元判断所述策略组的令牌个数是否大于零;第二分配单元在所述判断单元的结果为是时,为所述磁盘IO请求分配所述策略组的资源,并根据所述策略组的策略模式减少所述策略组的令牌个数;令牌发放单元在所述判断单元的结果为否,且满足新一轮令牌发放条件时,执行新一轮令牌发放。
[0123]其中,所述令牌发放单元包括第一发放子单元,当满足新一轮令牌发放条件时,第一发放子单元将所有策略组令牌个数增加预设个数。所述系统还可以包括第三分配单元,第三分配单元为所述磁盘IO请求分配所述策略组的资源,并根据所述策略组的策略模式减少所述令牌个数。
[0124]具体的,所述第一获取单元包括第一获取子单元,第一获取子单元获取所述磁盘IO请求中的磁盘分区标识;查找子单元根据所述磁盘分区标识查找对应的磁盘分区;第二获取子单元获取所述磁盘分区对应的策略组。
[0125]具体的,所述令牌发放单元包括,当所有策略组的令牌个数均为零时,第二发放子单元执行新一轮令牌发放;或者,当所有策略组的令牌个数不都为零时,判断子单元判断令牌个数最多的策略组是否处于预设的繁忙状态;在所述判断子单元的结果为否时,第三发放子单元执行新一轮令牌发放。
[0126]进一步的,所述系统包括第二获取单元和第四分配单元,第二获取单元每隔预设频率的时长获取一次资源分配日志;第四分配单元根据所述资源分配日志,为各个策略组分别分配令牌个数和策略模式。
[0127]本实施例预先设置至少一个策略组,所述策略组包括至少一个磁盘分区;首先,为各个策略组分别分配令牌个数和策略模式;其次,接收任一磁盘IO请求,所述磁盘IO请求包括磁盘分区标识;并获取所述磁盘分区标识对应的策略组;最后,判断所述策略组的令牌个数是否大于零,如果是,则为所述磁盘IO请求分配所述策略组的资源,并根据所述策略组的策略模式减少所述策略组的令牌个数;如果否,则当满足新一轮令牌发放条件时,执行新一轮令牌发放。本实施例采用了新的令牌分配方式,避免了资源分配过程中磁盘IO资源的浪费,同时,由于采用了策略分组方式,在磁盘IO资源分配上更加灵活可以为一台虚拟机分配磁盘IO资源,也可以让几个部署相关应用的虚拟机共享一定比例磁盘IO资源,减少了磁盘IO请求的拥堵,提高了磁盘IO资源的利用率。
[0128]对于系统实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
[0129]需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0130]以上对本发明实施例所提供的磁盘IO资源分配方法和装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在【具体实施方式】及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。·
【权利要求】
1.一种磁盘IO资源分配方法,其特征在于,所述方法包括: 预先设置至少一个策略组,所述策略组包括至少一个磁盘分区; 为各个策略组分别分配令牌个数和策略模式; 接收任一磁盘IO请求,所述磁盘IO请求包括磁盘分区标识,所述磁盘分区标识用于唯一标识磁盘分区; 获取所述磁盘分区标识对应的策略组; 判断所述策略组的令牌个数是否大于零,如果是,则为所述磁盘IO请求分配所述策略组的资源,并根据所述策略组的策略模式减少所述策略组的令牌个数;如果否,则当满足新一轮令牌发放条件时,执行新一轮令牌发放。
2.根据权利要求1所述的方法,其特征在于,所述当满足新一轮令牌发放条件时,执行新一轮令牌发放,包括: 当满足新一轮令牌发放条件时,将所有策略组的令牌个数增加预设个数。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括: 为所述磁盘IO请求分配所述策略组的资源,并根据所述策略组的策略模式减少所述令牌个数。
4.根据权利要求1所述的方法,其特征在于,所述获取所述磁盘分区标识对应的策略组,包括: 获取所述磁盘IO请求中的磁 盘分区标识; 根据所述磁盘分区标识查找对应的磁盘分区; 获取所述磁盘分区对应的策略组。
5.根据权利要求1所述的方法,其特征在于,所述当满足新一轮令牌发放条件时,执行新一轮令牌发放,包括: 当所有策略组的令牌个数均为零时,执行新一轮令牌发放; 或者, 当所有策略组的令牌个数不都为零时,判断令牌个数最多的策略组是否处于预设的繁忙状态,如果否,则执行新一轮令牌发放。
6.根据权利要求1-5中任一所述的方法,其特征在于,所述方法还包括: 每隔预设频率的时长获取一次资源分配日志; 根据所述资源分配日志,为各个策略组分别分配令牌个数和策略模式。
7.—种磁盘IO资源分配系统,其特征在于,所述系统包括: 设置单元,用于预先设置至少一个策略组,所述策略组包括至少一个磁盘分区; 第一分配单元,用于为各个策略组分别分配令牌个数和策略模式; 接收单元,用于接收任一磁盘IO请求,所述磁盘IO请求包括磁盘分区标识,所述磁盘分区标识用于唯一标识磁盘分区; 第一获取单元,用于获取所述磁盘分区标识对应的策略组; 判断单元,用于判断所述策略组的令牌个数是否大于零; 第二分配单元,用于在所述判断单元的结果为是时,为所述磁盘IO请求分配所述策略组的资源,并根据所述策略组的策略模式减少所述策略组的令牌个数; 令牌发放单元,用于在所述判断单元的结果为否,且满足新一轮令牌发放条件时,执行新一轮令牌发放。
8.根据权利要求7所述的系统,其特征在于,所述令牌发放单元,包括: 第一发放子单元,用于当满足新一轮令牌发放条件时,将所有策略组的令牌个数增加预设个数。
9.根据权利要求8所述的系统,其特征在于,所述系统还包括: 第三分配单元,用于为所述磁盘IO请求分配所述策略组的资源,并根据所述策略组的策略模式减少所述令牌个数。
10.根据权利要求7所述的系统,其特征在于,所述第一获取单元,包括: 第一获取子单元,用于获取所述磁盘IO请求中的磁盘分区标识; 查找子单元,用于根据所述磁盘分区标识查找对应的磁盘分区; 第二获取子单元,用于获取所述磁盘分区对应的策略组。
11.根据权利要求7所述的系统,其特征在于,所述令牌发放单元,包括: 第二发放子单元,用于当所有策略组的令牌个数均为零时,执行新一轮令牌发放; 或者, 判断子单元,用于当所有策略组 的令牌个数不都为零时,判断令牌个数最多的策略组是否处于预设的繁忙状态; 第三发放子单元,用于在所述判断子单元的结果为否时,执行新一轮令牌发放。
12.根据权利要求7-11中任一所述系统,其特征在于,所述系统还包括: 第二获取单元,用于每隔预设频率的时长获取一次资源分配日志; 第四分配单元,用于根据所述资源分配日志,为各个策略组分别分配令牌个数和策略模式。
【文档编号】G06F3/06GK103440113SQ201310422054
【公开日】2013年12月11日 申请日期:2013年9月16日 优先权日:2013年9月16日
【发明者】栾利刚 申请人:北京搜狐新媒体信息技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1