一种用于磁盘寻址的方法和装置制造方法及图纸

技术编号:8323364 阅读:168 留言:0更新日期:2013-02-14 00:36
本发明专利技术实施例提供了一种用于磁盘寻址的方法和装置,能够解决对磁盘进行操作时,消耗的寻址时间较大的问题。该方法包括:所述装置接收对所述磁盘进行随机读写的操作请求消息的第一队列后,确定读操作请求消息请求的I/O接口位置的第一范围,然后将I/O接口的位置属于所述第一范围的写操作请求消息请求的I/O接口与所有读操作请求消息请求的I/O接口进行第一排序,获得操作请求消息的第二队列;将I/O接口的位置不属于所述第一范围的写操作请求消息确定为第三队列,并将所述第三队列的写操作请求消息请求的数据写入缓存中;最后根据所述第二队列的操作请求消息,对所述磁盘依次进行所述请求的操作。本发明专利技术适用于计算机领域。

【技术实现步骤摘要】

本专利技术涉及计算机
,尤其涉及一种用于磁盘寻址的方法和装置
技术介绍
在采用机械硬盘介质存储数据的时候,经常遇到数据读写位置随机的情况,从而导致在读写过程中,大部分的时间浪费在磁盘介质的寻址过程中。尤其在一次请求中,需要寻址的读写I /O接口对应的内存较小,使所请求的数据分布在多个I /O接口对应的内存中,基于读写位置的随机性,这种性能损耗更加严重,导致在磁盘寻址的时间浪费严重。现有技术中,提出了如下两种减小磁盘寻址时间的方法·I)采用高速缓冲寄存器Cache对偏离当前磁头较大的数据进行缓存。再次读写数据的时候,根据Cache中是否存储该数据来判断是否要读写Cache,如果Cache中有,则不需要从磁盘读取,直接在Cache中读取,如果Cache中没有,再从磁盘中读取。该方法不需要全部读写都通过在磁盘中寻址实现,在一定程度上节省了磁盘寻址的时间。2)采用Linux电梯解决方法。在I/O调度过程中,该方法在处理磁盘中的读写I/O接口的消息请求时,选择最优方案将所述消息请求合并排序后进行处理,某些不在最优方案中的消息请求会被暂时挂起,当有一个新的I/o接口的请求加入到消息请求队列时,首先检查磁盘中每个挂起的消息请求是否可以合并到新消息请求队列中,如果可以,结合磁头的当前位置,合并后的新的消息请求队列选择最优顺序进行读写I/o接口的操作。如果合并失败,则会把所述挂起的消息请求插入到合适的位置。该方法可以通过一定的排序完成读写I/o接口的消息请求,在一定程度上节省磁盘寻址的时间。但是在上述解决磁盘寻址的时间浪费的两种方法中,还存在以下问题采用高速缓冲寄存器Cache对数据进行缓存时,当Cache中存储空间已满,需要将Cache中缓存的数据写入到磁盘中。若将Cache中缓存的数据保存到磁盘中时,由于没有考虑Cache中数据在磁盘中的位置与当前请求的I/O接口的位置的关系,仍然随机的将缓存中的数据写入磁盘中,这样还是使得磁盘进行操作时,消耗的寻址时间较大。采用Linux电梯解决方法时,某些读写I/O接口的消息请求由于排序的原因,可能会被挂起许久才被执行,由于I/o接口的消息请求滞留时间过长,被处理时会被直接插入队尾。此时由于所述挂起的请求的加入,仍然使得对磁盘进行操作时,消耗的寻址时间较大。
技术实现思路
本专利技术的实施例提供一种用于磁盘寻址的方法和装置,能够解决对磁盘进行操作时,消耗的寻址时间较大的问题。为达到上述目的,本专利技术的实施例采用如下技术方案第一方面,提供了一种用于磁盘寻址的方法,该方法包括接收对所述磁盘进行随机读写的操作请求消息的第一队列,所述每个操作请求消息中携带有对所述磁盘进行操作请求时对应的I/O接口;确定读操作请求消息请求的I/O接口位置的第一范围,所述第一范围为所述第一队列中所述请求的I/o接口的位置距离最远的两个读操作请求消息请求的I/O接口确定的范围;将I/O接口的位置属于 所述第一范围的写操作请求消息请求的I/O接口与所有读操作请求消息请求的I/o接口进行第一排序,获得操作请求消息的第二队列;将I/O接口的位置不属于所述第一范围的写操作请求消息确定为第三队列,将所述第三队列的写操作请求消息请求的数据写入缓存中;根据所述第二队列的操作请求消息,对所述磁盘依次进行所述请求的操作。在第一种可能的实现方式中,根据第一方面,在获得所述操作请求消息的第二队列后,该方法还包括确定缓存中的数据对应的I/O接口的位置是否有属于所述第一范围的第一 I/O接Π ;若有所述第一 I/O接口,按照所述第一排序,在所述第二队列中插入对所述第一I/o接口对应的数据进行写操作的写操作请求消息;或将属于所述第一范围的写操作请求消息请求的I/O接口与所有读操作请求消息请求的I/o接口进行第一排序,获得操作请求消息的第二队列之前,还包括确定缓存中的数据对应的I/O接口的位置是否有属于所述第一范围的第一 I/O接Π ;若有所述第一 I/O接口,将对所述第一 I/O接口对应的数据进行写操作的写操作请求消息插入到所述磁盘的第一队列中。在第二种可能的实现方式中,根据第一方面或第一种可能的实现方式,在将所述第三队列的写操作请求消息请求的数据写入缓存中前,该方法还包括检查所述缓存中的存储空间是否已满;若所述缓存中的存储空间已满,确定第二 I/O接口,所述第二 I/O接口为所述第三队列中请求的I/o接口和所述缓存的数据对应的I/O接口中的位置最接近第二队列的I/O接口 ;若所述缓存中存在所述第二 I/O接口,按照所述第一排序,在所述第二队列中插入对所述第二 I/O接口对应的数据进行写操作的写操作请求消息;若所述第三队列中存在所述第二 I/O接口,按照所述第一排序,将所述第三队列的第二 I/o接口对应的写操作请求消息插入到所述第二队列中。在第三种可能的实现方式中,根据第一方面或第一种可能的实现方式或第二种可能的实现方式,所述第一排序具体为以当前磁头所在I/O接口的位置为第一上一 I/O接口,将距离上一 I/O接口的位置最近的I/o接口确定为下一 I/O接口,按照I/O接口的排序对应的获取所述操作请求消息的排序。在第四种可能的实现方式中,根据第三种可能的实现方式,将所述第三队列的写操作请求消息请求的数据写入缓存中前,该方法还包括检查所述第一队列中是否全为写操作请求消息;若所述第一队列中全为写操作请求消息,则确定第三I/O接口和第四I/O接口,所述第三I/O接口为与上一 I/O接口的距离小于第一预设范围的I/O接口,所述第四I/O接口为与所述第三I/o接口的任一 I/O接口的距离大于第一预设范围的I/O接口,所述第四I/o接口对应的写操作请求消息确定为第三队列;在获得操作请求消息的第二队列后,还包括根据所述第一排序,将所述第三I/O接口对应的写操作请求消息插入到所述第二队列。在第五种可能的实现方式中,根据第一方面或第一种可能的实现方式至第四种可能的实现方式,接收对所述磁盘进行随机读写的操作请求消息的第一队列后,还包括 统计所述第一队列请求的I/O接口分别对应的磁盘区域的I/O接口的请求频率,判断所述磁盘区域是否为偏僻区域;根据所述第二队列的操作请求消息,对所述磁盘依次进行所述请求的操作之后,还包括若所述第一队列的读操作请求消息请求的I/O接口中存在偏僻区域的第五I/O接口,将所述读操作请求消息请求第五I/o接口读取的数据写入到所述缓存中。第二方面,提供了一种用于磁盘寻址的装置,所述装置包括接收单元、确定单元和处理单元;所述接收单元,用于接收对所述磁盘进行随机读写的操作请求消息的第一队列,所述每个操作请求消息中携带有对所述磁盘进行操作请求时对应的I/o接口;所述确定单元,用于确定读操作请求消息请求的I/O接口位置的第一范围,所述第一范围为所述第一队列中所述请求的I/o接口的位置距离最远的两个读操作请求消息请求的I/o接口确定的范围;所述处理单元,用于将I/O接口的位置属于所述第一范围的写操作请求消息请求的I/o接口与所有读操作请求消息请求的I/O接口进行第一排序,获得操作请求消息的第二队列;所述确定单元,还用于将I/O接口的位置不属于所述第一范围的写操作请求消息确定为第三队列,所述处理单元,还用于将所述第三队列的写操作请求消息请本文档来自技高网
...

【技术保护点】
一种用于磁盘寻址的方法,其特征在于,该方法包括:接收对所述磁盘进行随机读写的操作请求消息的第一队列,所述每个操作请求消息中携带有对所述磁盘进行操作请求时对应的I/O接口;确定读操作请求消息请求的I/O接口位置的第一范围,所述第一范围为所述第一队列中所述请求的I/O接口的位置距离最远的两个读操作请求消息请求的I/O接口确定的范围;将I/O接口的位置属于所述第一范围的写操作请求消息请求的I/O接口与所有读操作请求消息请求的I/O接口进行第一排序,获得操作请求消息的第二队列;将I/O接口的位置不属于所述第一范围的写操作请求消息确定为第三队列,将所述第三队列的写操作请求消息请求的数据写入缓存中;根据所述第二队列的操作请求消息,对所述磁盘依次进行所述请求的操作。

【技术特征摘要】
1.一种用于磁盘寻址的方法,其特征在于,该方法包括 接收对所述磁盘进行随机读写的操作请求消息的第一队列,所述每个操作请求消息中携带有对所述磁盘进行操作请求时对应的I/O接口; 确定读操作请求消息请求的I/O接口位置的第一范围,所述第一范围为所述第一队列中所述请求的I/o接口的位置距离最远的两个读操作请求消息请求的I/O接口确定的范围; 将I/o接口的位置属于所述第一范围的写操作请求消息请求的I/O接口与所有读操作请求消息请求的I/o接口进行第一排序,获得操作请求消息的第二队列; 将I/o接口的位置不属于所述第一范围的写操作请求消息确定为第三队列,将所述第三队列的写操作请求消息请求的数据写入缓存中; 根据所述第二队列的操作请求消息,对所述磁盘依次进行所述请求的操作。2.根据权利要求I所述的方法,其特征在于,在获得所述操作请求消息的第二队列后,该方法还包括 确定缓存中的数据对应的I/o接口的位置是否有属于所述第一范围的第一 I/O接口 ;若有所述第一 I/o接口,按照所述第一排序,在所述第二队列中插入对所述第一 I/O接口对应的数据进行写操作的写操作请求消息; 或将属于所述第一范围的写操作请求消息请求的I/O接口与所有读操作请求消息请求的I/o接口进行第一排序,获得操作请求消息的第二队列之前,还包括 确定缓存中的数据对应的I/o接口的位置是否有属于所述第一范围的第一 I/O接口 ;若有所述第一 I/o接口,将对所述第一 I/O接口对应的数据进行写操作的写操作请求消息插入到所述磁盘的第一队列中。3.根据权利要求I或2所述的方法,其特征在于,在将所述第三队列的写操作请求消息请求的数据写入缓存中前,该方法还包括 检查所述缓存中的存储空间是否已满; 若所述缓存中的存储空间已满,确定第二 I/o接口,所述第二 I/O接口为所述第三队列中请求的I/o接口和所述缓存的数据对应的I/O接口中的位置最接近第二队列的I/O接Π ; 若所述缓存中存在所述第二 I/o接口,按照所述第一排序,在所述第二队列中插入对所述第二 I/o接口对应的数据进行写操作的写操作请求消息; 若所述第三队列中存在所述第二 I/o接口,按照所述第一排序,将所述第三队列的第二I/o接口对应的写操作请求消息插入到所述第二队列中。4.根据权利要求1-3任一项所述的方法,其特征在于,所述第一排序为 以当前磁头所在I/o接口的位置为第一上一 I/O接口,将距离上一 I/O接口的位置最近的I/o接口确定为下一 I/O接口,按照I/O接口的排序对应的获取所述操作请求消息的排序。5.根据权利要求4所述的方法,其特征在于,将所述第三队列的写操作请求消息请求的数据写入缓存中前,该方法还包括 检查所述第一队列中是否全为写操作请求消息; 若所述第一队列中全为写操作请求消息,则确定第三I/o接口和第四I/O接口,所述第三I/o接口为与上一 I/O接口的距离小于第一预设范围的I/O接口,所述第四I/O接口为与所述第三I/o接口的任一 I/O接口的距离大于第一预设范围的I/O接口,所述第四I/O接口对应的写操作请求消息确定为第三队列; 根据所述第一排序,将所述第三I/o接口对应的写操作请求消息插入到所述第二队列。6.根据权利要求1-5任一项所述的方法,其特征在于, 接收对所述磁盘进行随机读写的操作请求消息的第一队列后,还包括 统计所述第一队列请求的I/o接口分别对应的磁盘区域的I/O接口的请求频率,判断所述磁盘区域是否为偏僻区域; 根据所述第二队列的操作请求消息,对所述磁盘依次进行所述请求的操作之后,还包括 若所述第一队列的读操作请求消息请求的I/o接口中存在偏僻区域的第五I/O接口,将所述读操作请求消息请求第五I/o接口读取的数据写入到所述缓存中。7.一种用于磁盘寻址的装置,其特征在于,所述装置包括接收单元、确定单元和处理单元; 所述接收单元,用于接收对所述磁盘进行随机读写的操作请求消息的第一队列,所述每个操作请求消息中携带有对所述磁盘进行操作请求时对应的I...

【专利技术属性】
技术研发人员:陈志新石晶翔
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1