[发明专利]一种基于固态盘读写特性的I/O调度方法有效
申请号: | 201510827493.0 | 申请日: | 2015-11-25 |
公开(公告)号: | CN106775438B | 公开(公告)日: | 2019-08-30 |
发明(设计)人: | 周可;王桦;何爽;饶琦;陈光明 | 申请(专利权)人: | 华中科技大学 |
主分类号: | G06F3/06 | 分类号: | G06F3/06 |
代理公司: | 华中科技大学专利中心 42201 | 代理人: | 朱仁玲 |
地址: | 430074 湖北*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 固态 读写 特性 调度 方法 | ||
技术领域
本发明属于固态盘存储技术领域,更具体地,涉及一种基于固态盘不同读写特性的I/O调度方法。
背景技术
固态盘(Solid state disk,简称SSD)是一种利用NAND闪存芯片作为数据永久存储的硬盘,随着NAND闪存芯片的生产成本下降,SSD的价格也越来越被人们所接受,SSD在数据中心、个人电脑、各种类型的移动设备上的使用越来越广泛。但是,由于长期以来构建存储系统的设备都是硬盘驱动器(Hard disk drive,简称HDD),现有的系统软件大多数是面向HDD进行设计和优化的,直接使用SSD替换掉HDD并不能最大限度地发挥SSD的高性能。因此,针对SSD进行系统软件优化具有十分重要的意义。
HDD是一种机械旋转式的硬盘,它的读写操作主要有以下几个步骤:
1、寻道:磁头传动装置将所有的磁头移动到待访问的柱面,并获取当前需要使用的磁头号;2、旋转等待:定位到相应的盘面和磁道后,盘面就会旋转,在旋转的过程中,磁头会读取其正下方的扇区中的扇区头标中的信息,与需要读取/写入的扇区号进行比对,如果不匹配则盘面会继续旋转,如果匹配则从此扇区开始读/写数据;3、完成数据读写。HDD读写操作很大一部分时间消耗在寻道和旋转等待上,而Linux内核中的IO调度算法所做的优化主要也是为了降低寻道和旋转等待的时间消耗。
在Linux系统中,现有的IO调度算法主要是Noop算法,CFQ算法Deadline算法和Anticipatory算法。其中CFQ、Deadline和Anticipatory算法针对HDD寻道时间长,采取了合并连续的读写请求,这样就可以在寻道 结束后进行连续的读写。Noop算法对读写请求不予合并,只将新的请求插入队尾。
然而,上述IO调度算法存在以下方面的问题:1、在SSD中,顺序的写和随机的写性能基本相同,所以对写请求进行合并并不能提高SSD的速率,反而会影响系统的性能;2、在SSD中,在不超过聚簇页大小的前提下合并读请求才会提高读效率,读请求大小超过聚簇页大小后并不会提高读效率。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了一种基于固态盘不同读写特性的I/O调度方法,其目的在于,解决现有IO调度方法中存在的连续读请求合并后过大或不能被合并、以及写请求存在不必要的合并的技术问题。
为实现上述目的,按照本发明的一个方面,提供了一种基于固态盘读写特性的IO调度方法,包括以下步骤:
(1)接收来自上层应用并经过文件系统处理后的bio请求,并判断该bio请求的类型是读请求还是写请求,如果是读请求则转入步骤(2),如果是写请求则转入步骤(3);
(2)判断该读请求是否能够与其邻近的读请求进行合并,若不能合并,则直接转入步骤(4);若可以合并且合并后的大小不超过聚簇页的大小,则将其与邻近的读请求进行合并,合并后的读请求仍然可以与其邻近的读请求进行合并,并且应当确保合并后的大小不超过聚簇页的大小。将最终合并后的读请求放入读队列和读红黑树中,以供系统读取数据。然后转入步骤(4)。
(3)判断该写请求是否能够与缓存中的写请求进行合并,如果可以则进行合并,并将合并后的写请求插入调度器队列末端,并转入步骤(4);否则判断其能否与哈希表中的写请求进行合并,如果可以则进行合并,并 将将合并后的写请求插入调度器队列末端,并转入步骤(4);
(4)将调度器队列中的请求分发到设备驱动器的请求队列中。
优选地,步骤(2)包括以下子步骤:
(2.1)针对该读请求,判断是否存在上次合并的读请求,若存在,则跳转到步骤(2.2);否则跳转到步骤(2.3);
(2.2)判断该读请求与上次合并后的读请求能否进行合并。如果不能合并,则跳转到步骤(2.3),如果能前向合并,则跳转到步骤(2.4),如果能后向合并,则跳转到步骤(2.5);
(2.3)判断该读请求能否与哈希链表中的请求进行后向合并,如果能则跳转到步骤(2.5);否则跳转到步骤(2.6);
(2.4)完成可前向合并的读请求Rfrq与该读请求的合并,并判断前向合并之后的读请求Rfrq能否继续与调度器中读红黑树中按照请求的起始访问地址排序的Rfrq的前一个读请求Rprev继续进行前向合并。能则跳转到步骤(2.7),否则跳转到步骤(2.8);
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华中科技大学,未经华中科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510827493.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:数据同步方法及装置
- 下一篇:一种实现系统分区的方法、装置和设备