一种基于块关联的低能耗磁盘调度方法及系统的制作方法_2

文档序号:9249074阅读:来源:国知局
要通过利用服务器端磁盘的 空闲时间进行磁盘状态切换,使磁盘尽可能多的在低能耗状态下工作,实现磁盘节能的同 时,也要尽可能少的影响系统性能,因为服务器端的数据访问量比普通个人电脑的要大很 多,所W磁盘空闲时间的挖掘具有相当大的难度,在挖掘算法中设定的=个参数(分别为 Min-support、Time-gap和I/0-number)保证了产生的块关联规则能满足系统节能要求,也 能减少磁盘状态转换对系统性能的影响;同时提高主存的命中率,也为下次I/O请求产生 更多的空闲时间。
[0040] 2、本发明在挖掘频繁1-项集3时,使用动态平衡二叉树(A化树)组织规则集,极 大地加快了规则的挖掘速度,比起一般数据挖掘算法中应有线性结构组织规则库,体现出 很大的性能优势。
[0041] 3、本发明是一种磁盘调度技术,同时它可W结合其他磁盘调度算法一起使用,如 电梯调度、循环调度、空闲时间预测、超时算法等。通过结合不同的磁盘调度算法,能更好的 提升系统性能或节能效果,对于其他磁盘调度算法具有很大的兼容性。
【附图说明】
[0042] 图1为本发明实施例1的基于块关联的低能耗磁盘调度方法的流程图。
[0043] 图2为本发明实施例2的磁盘状态迁移示意图。
[0044] 图3为本发明实施例2的Time-gap参数在挖掘算法中的应用示意图。
[0045] 图4为本发明实施例2的I/0-number参数在挖掘算法中的应用示意图。
[0046] 图5为本发明实施例2的基于块关联规则的磁盘能量状态切换时序图。
【具体实施方式】
[0047] 下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限 于此。
[004引 实施例1 ;
[0049] 本实施例的基于块关联的低能耗磁盘调度方法具有两个模块;块关联规则挖掘模 块和磁盘驱动调度模块,其中:
[0化日]块关联规则挖掘模块,用于采用改进的数据挖掘技术对1/0(1吨ut/Ou化ut,输入 /输出)请求的历史信息产生适用于磁盘调度的块关联规则,此类块关联规则将被用于指 导磁盘驱动器对I/O请求进行调度;
[0化1] 磁盘驱动调度模块,基于磁盘驱动器实现,用于采用块关联规则挖掘模块产生的 块关联规则对磁盘状态进行切换,从而实现存储系统节能。
[0化2] 如图1所示,本实施例的基于块关联的低能耗磁盘调度方法包括W下步骤:
[0化3] S1、块关联规则挖掘模块采用改进的数据挖掘技术对I/O请求的历史信息产生适 用于磁盘调度的块关联规则;其中改进的数据挖掘技术为改进数据挖掘中的频繁项挖掘算 法,具体如下:
[0054] 在关联规则挖掘的过程中,对于产生的每个频繁项S,扫描频繁项S后缀数据库 D,,从中找出每一个频繁1-项集3 ;连接S和9,构成一个长度为ISI+1的新频繁集s',其 中5'=5+3 ;然后递归地挖掘新的频繁项,直到不能产生新的频繁项为止;
[0055] 在进行频繁项挖掘时,采用=个参数对频繁项进行剪枝,进而产生块关联规则,该 S个参数分别是Min-su卵ort、Time-gap和I/0-number,W下对Min-su卵ort、Time-gap和 I/0-number进行详细解释;
[0化6] 1)当需要对所有候选频繁项集作剪枝处理时,采用Min-suppod参数对过滤掉候 选频繁项中的非频繁项,现在基于该样一个假设;如果事务X出现的同时,事务y有很大概 率发生,在此认为事务X和y之间存在强关联(记作X-y);基于上面的假设,在一个频 繁项X的后缀事务数据库中,如果子序列Y在其中出现的频率超过预设定的阔值(定义为Min-suppod),则认为X和Y存在强关联,称X-Y为关联规则;在本实施例的挖掘算法中, Min-suppod参数的值设定为0. 1%,该值的设定保证了产生的频繁项的强关联,也使得产 生的规则不会太少;
[0化7] 2)若只是通过Min-suppod参数来对候选规则进行剪枝的话是不够的,因为根 据节能算法思想,在应用规则指导磁盘状态由高能耗状态向低能耗状态转移时,在状态切 换的过程中,有相当大的时间和额外功耗的开销。对于预测出来的空闲时间间隔的时间长 度必须能平衡磁盘能量状态切换的额外能量开销的同时也能产生一定程度上的能量节省, 定义该样的临界空闲时间间隔为Time-gap,它表示两个关联的I/O请求之间的时间间隔, 也就是采用Time-gap参数实现关联I/O请求间的时间间隔控制,同时它也作为空闲时间 间隔的预测值被磁盘驱动调度模块所利用;在本实施例的挖掘算法中,对于低端磁盘,设定 Time-gap参数的值为14秒;对于高端磁盘,设定Time-gap参数的值为22. 4秒;
[0化引 3)即使块的关联规则满足Time-gap参数的约束,仍然不能直接应用该些频繁规 贝1J,该里还存在一个问题就是,两个I/O请求之间的其他I/O访问数量是未知的,例如对于 一个规则X-Y,如果在处理完X后,将磁盘由active态转到Stan化y态,必须在磁盘挂起 的该段时间,通过磁盘cache缓存之后到达的I/O请求,直到磁盘在Time-gap的时间后重 新激活;定义规则间出现的临界I/O请求数量为I/0-number,通过I/0-number参数限制执 行规则过程中到达的零星I/O请求数量;在本实施例的挖掘算法中,设定I/O-number参数 的值为3~5。
[0化9] 当频繁度大于Min-suppcxrt参数,期间的时间间隔大于Time-gap参数,并且零星 I/O请求数小于I/0-number参数的候选规则,最终作为指导磁盘进行状态调度的块关联规 贝1J,该些块关联规则被形成一个块关联规则库,供磁盘驱动调度模块调用。
[0060] 在挖掘频繁1-项集3时,对于频繁数据集设及到大量的查询、插入和删除操作,如 果将频繁集组织成线性的数据结构,像数组、链表等,会造成规则的挖掘效率很低,例如对 于有1000万记录的数据集中挖掘频繁项时,若每个数据平均出现次数为100次,那么构造 出来的候选频繁集有10万条记录;如记录存在线性数据结构中,那么构造该个候选集时, 最坏情况下每条记录平均的查询次数约为10万次,也就是总查询次数为1000亿次,所W选 择线性结构显然是不划算的;因此为了提高查询效率,采用ML树(动态平衡二叉树)来 组织块关联规则集,具体实现是I/O请求的起始地址作为key键值,地址出现的频数作为 value值,该样每次的查询操作次数只跟ML树的深度有关,继续W上面的例子为例,对于 10万条记录的频繁候选集,用ML组织的深度不超过17层,也就是每次查询的次数最多为 17,总查询次数为1. 7亿次,查询效率得到很大的提高,进而大大加快了块规则库的产生速 度。
[0061] S2、磁盘驱动调度模块采用块关联规则挖掘模块产生的块关联规则对磁盘状态进 行切换,从而实现存储系统节能,其中对磁盘状态进行切换通过一个DFA状态机完成,具体 包括:
[0062] S21、当前一个新I/O请求属于规则集中记录的请求时,将磁盘转入到Stanly 态;
[0063] S22、若新I/O请求是读请求,系统行为会出现W下S种情况:
[0064] 1)若该请求在磁盘spindown过程完成前到达,则系统将磁盘转回到active态, 同时磁盘cache会缓存在磁盘spinup过程完成之前的所有I/O请求;在磁盘重返active 态后,系统优先处理cache中的请求,同时缓存处理期间的I/O请求;
[0065] 。若该请求在Time-gap期间内到达,则系统重复步骤1)的工作;
[0066] 3)若该请求在磁盘spinup过程完成前到达,则磁盘cache缓存在磁盘spinup 过程完成之前的所有I/O请求;在磁盘重返active态后,系统优先处理cache中的请求,同 时缓存处理期间的I/O请求;
[0067] S23、若新I/O请求是写请求,系统行为会出现W下S种情况:
[0068] 1)若该请求在磁盘spindown过程完成前到达,则系统将磁盘转回到active态, 同时磁盘cache会缓存在磁盘spinup过程完成之前的所有I/O请求;在磁盘重返active 态后,系统优先处理cache中的请求,同时缓存处理期间的I/O请求;
[0069] 2)若该请求在Time-gap期间内到达,则系统缓存该请求,磁盘状态不作切换;
[0070] 3)若该请求在磁盘spinup过程完成前到达,则磁盘cache缓存在磁盘spinup 过程完成之前的所有I/O请求;在磁盘重返active态后,系统优先处理cache中的请求,同 时缓存处理期间的I/O请求。
[0071] 步骤S23系统对写请求的行为中,系统通过磁盘cache缓存新I/O请求,同时向上 层应用返回写操作完成信号,进而减少系统延迟时间,采取此种非写穿策略,保证了对上层 应用的响应速度需求。
[0072] 实施例2;
[0073] 本实施例是实施例1的基于块关联的低能耗磁盘调度方法的具体应用实例。
[0074] 一般来说,磁盘驱动包含3种能量状态,图2示出了该3种磁盘状态和它们间的转 换关系。
[0075] 1)当I/O请求完成,同时在一定时间内没有其他请求的到达,磁盘可W由active 态转入idle态;
[0076] 。如果磁盘在idle态时,有I/O请求到达,磁盘由idle态转入active态,进行请 求处理;
[0077] 扣基于节能考虑,磁盘可W由idle态转入Stan化y态,此时磁
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1