一种针对机械硬盘的可控连续写方法、调度器及存储系统技术方案

技术编号:22329743 阅读:41 留言:0更新日期:2019-10-19 12:12
本发明专利技术公开了一种针对机械硬盘的可控连续写方法、调度器及存储系统,计算机存储技术领域,包括:接收并缓存写请求及相应的写请求数据;接收写请求的同时,轮询是否满足触发条件,若满足,则选取一个磁盘作为目标磁盘,并开始对目标磁盘执行连续写操作;连续写数据时,若写请求队列不为空,则处理写请求,以将对应的写请求数据连续写入目标磁盘中,否则,生成填充数据并连续写入目标磁盘,在写入填充数据的过程中,一旦有新的写请求到达,则转而直接处理该写请求,并在处理完该写请求后,继续生成填充数据并连续写入目标磁盘;在连续写数据的同时,轮询是否满足停止条件,若满足,则结束对目标磁盘的连续写操作。本发明专利技术能够优化机械硬盘的写性能。

【技术实现步骤摘要】
一种针对机械硬盘的可控连续写方法、调度器及存储系统
本专利技术属于计算机存储
,更具体地,涉及一种针对机械硬盘的可控连续写方法、调度器及存储系统。
技术介绍
机械硬盘具有存储容量大,价格低,连续写带宽高的优点,在数据中心等应用中获得了广泛的应用。机械硬盘内部通常包含一个或多个磁盘,数据实际存储于磁盘上。磁盘上数据读取和写入所花费的时间主要包括寻道时间、旋转延迟和传输时间,寻道时间就是磁臂移动到指定磁道所需要的时间,旋转延迟指的是把扇区移动到磁头下面的时间,传输时间指的是从磁盘读出或将数据写入磁盘的时间。当机械硬盘接收到写请求之后,需要先将写入逻辑地址转换成物理地址,然后磁盘控制器定位到具体的写请求写入位置的柱面号、磁头号和扇区号,磁盘控制器使磁头部件步进到相应的柱面,选通相应的磁头,等待要求的扇区移动到磁头下,然后将写请求的内容写入磁盘。磁头寻道是机械动作而不是电子动作,因此所造成的延迟较大,因此磁盘上读写数据所花费的主要时间是寻道时间。当向未处于工作状态的磁盘上写入一小块数据时,延迟很高,其原因是此时磁盘要从未工作状态转为工作状态,首先盘片旋转所形成的气流将磁头托起,然后磁头要移动到目标磁道,即完成寻道过程,之后目标扇区旋转到磁头下,最后开始进行写数据操作,由于涉及到寻道这一机械操作,整个过程耗时较大,因此这种情况下即使是写一个很小的数据块也得花费很多的时间。相对而言,若向正处于工作状态的磁盘顺序写入一个数据块,则不用再进行寻道,大大减小了延迟,在这种情况下即使是写一个比较大的数据块,其延迟也很小。然而,在实际使用过程中,写请求处理完成后,磁盘就会处于未工作状态,因此,总体而言,机械硬盘的写性能存在很大的优化空间。
技术实现思路
针对现有技术的缺陷和改进需求,本专利技术提供了一种针对机械硬盘的可控连续写方法、调度器及存储系统,其目的在于,优化机械硬盘的写性能。为实现上述目的,按照本专利技术的第一方面,提供了一种针对机械硬盘的可控连续写方法,包括:接收写请求的步骤、轮询触发条件的步骤、连续写数据的步骤以及轮询停止条件的步骤;接收写请求的步骤包括:接收并缓存写请求及相应的写请求数据,写请求缓存于写请求队列中,写请求数据缓存于写缓存中;轮询触发条件的步骤包括:在执行接收写请求的步骤的同时,以轮询的方式判断是否满足预设的触发条件,若是,则选取机械硬盘中的一个磁盘作为目标磁盘,并转入连续写数据的步骤,以从预设的起始写入地址开始对目标磁盘执行连续写操作;若否,则不处理写请求;连续写数据的步骤包括:若写请求队列不为空,则处理写请求队列中的写请求,以将对应的写请求数据连续写入目标磁盘中;否则,生成填充数据并连续写入目标磁盘;在向目标磁盘连续写入填充数据的过程中,一旦有新的写请求到达,则停止写入填充数据,转而直接处理该写请求,以将对应的写请求数据连续写入目标磁盘,并在处理完该写请求后,继续生成填充数据并连续写入目标磁盘;轮询停止条件的步骤包括:在执行连续写数据的步骤的同时,以轮询的方式判断是否满足预设的停止条件,若是,则结束对目标磁盘的连续写操作;若否,则不做任何操作;其中,写请求队列为内存中用于存放写请求的缓冲队列,写缓存为内存中用于存放写请求数据的缓冲区域,写缓存数量与机械硬盘中磁盘数量相同,且写缓存与磁盘一一对应。相比于传统的机械硬盘写方法中只有写请求到达时,才将用户写请求数据写入磁盘,会因磁盘从未工作状态切换到工作状态而引起较大磁头机械延迟。本专利技术通过一种简单可控的方法,在写请求的间隙向磁盘连续写入填充数据,能够在一定的时间范围内让磁盘一直连续写,由此能够有效减少磁盘从非工作状态向工作状态的切换,充分发挥了机械硬盘的连续写带宽,避免本段时间内磁头的机械延迟,提高了机械硬盘的写性能。进一步地,连续写数据的步骤还包括:每一个写请求处理完成后,将该写请求所属文件的逻辑起始地址和逻辑结束地址,以及对应的写请求数据在目标磁盘上的起始地址和逻辑地址,均记录到写记录表中;每一次写入填充数据完成后,将填充数据在目标磁盘上的起始地址和逻辑地址均记录到写记录表中;其中,写记录表为内存中用于存储相关数据的数据结构。利用写记录表记录数据的存储地址,能够区分磁盘上的数据是写请求数据还是填充数据,为后续的优化和使用提供了基础。进一步地,轮询停止条件的步骤还包括:若满足预设的停止条件,则将写记录表持久化存储到非易失性存储设备上。进一步地,轮询停止条件的步骤还包括:若满足预设的停止条件,则根据写记录表对目标磁盘上的写请求数据的存储地址进行重整,以删除连续写操作中写入的填充数据。作为进一步优选地,对目标磁盘上的写请求数据的存储地址进行重整后,写请求数据在目标磁盘上连续存储。通过地址重整,删除磁盘上的填充数据,并进一步使得写请求数据在目标磁盘上连续存储,能够避免存储资源的浪费。可选地,触发条件为写请求队列不为空,且存在可用磁盘;或者触发条件为写缓存中的写请求数据总量超过预设的第一阈值;或者触发条件为写请求队列中至少一个写请求的大小超过预设的第二阈值。以上述条件作为触发条件,在对目标磁盘执行连续写操作的起始阶段,向目标磁盘连续写入大量的写请求数据,由此能够保证在一次连续写操作中写请求数据具有较高的比例。进一步地,停止条件为目标磁盘已写满;或者停止条件为一次向目标磁盘写入填充数据的时间超过预设的第三阈值。以上述条件作为停止条件,能够避免在一次连续写操作中写入过多无用的填充数据。进一步地,在连续写数据的步骤中,所生成的填充数据能与写请求数据区分开。按照本专利技术的第二方面,提供了一种调度器,包括:写请求接收模块、触发条件轮询模块、连续写数据模块以及停止条件轮询模块;写请求接收模块,用于接收并缓存写请求及相应的写请求数据,写请求缓存于写请求队列中,写请求数据缓存于写缓存中;触发条件轮询模块,用于在写请求接收模块接收并缓存写请求及相应的写请求数据的同时,以轮询的方式判断是否满足预设的触发条件,若是,则选取机械硬盘中的一个磁盘作为目标磁盘,并由连续写数据模块从预设的起始写入地址开始对目标磁盘执行连续写操作;若否,则不处理写请求;连续写数据模块,用于在写请求队列不为空时,根据预设的调度策略处理写请求队列中的写请求,以将对应的写请求数据连续写入目标磁盘中;连续写数据模块,还用于在写请求队列为空时,生成填充数据并连续写入目标磁盘;连续写数据模块在向目标磁盘连续写入填充数据的过程中,一旦有新的写请求到达,则停止写入填充数据,转而直接处理该写请求,以将对应的写请求数据连续写入目标磁盘,并在处理完该写请求后,继续生成填充数据并连续写入目标磁盘;停止条件轮询模块,用于在连续写数据模块对目标磁盘执行连续写操作的同时,以轮询的方式判断是否满足预设的停止条件,若是,则结束对目标磁盘的连续写操作;若否,则不做任何操作;其中,写请求队列为内存中用于存放写请求的缓冲队列,写缓存为内存中用于存放写请求数据的缓冲区域,写缓存数量与机械硬盘中磁盘数量相同,且写缓存与磁盘一一对应。按照本专利技术的第三方面,提供了一种存储系统,包括:内存、机械硬盘、非易失性存储设备以及调度器,其中,调度器为本专利技术第二方面所提供的调度器。总体而言,本专利技术所提供的针对机械硬盘的可控连续写方法、调度器及存储系统,在写本文档来自技高网
...

【技术保护点】
1.一种针对机械硬盘的可控连续写方法,其特征在于,包括:接收写请求的步骤、轮询触发条件的步骤、连续写数据的步骤以及轮询停止条件的步骤;所述接收写请求的步骤包括:接收并缓存写请求及相应的写请求数据,写请求缓存于写请求队列中,写请求数据缓存于写缓存中;所述轮询触发条件的步骤包括:在执行所述接收写请求的步骤的同时,以轮询的方式判断是否满足预设的触发条件,若是,则选取机械硬盘中的一个磁盘作为目标磁盘,并转入所述连续写数据的步骤,以从预设的起始写入地址开始对所述目标磁盘执行连续写操作;若否,则不处理写请求;所述连续写数据的步骤包括:若所述写请求队列不为空,则处理所述写请求队列中的写请求,以将对应的写请求数据连续写入所述目标磁盘中;否则,生成填充数据并连续写入所述目标磁盘;在向所述目标磁盘连续写入填充数据的过程中,一旦有新的写请求到达,则停止写入填充数据,转而直接处理该写请求,以将对应的写请求数据连续写入所述目标磁盘,并在处理完该写请求后,继续生成填充数据并连续写入所述目标磁盘;所述轮询停止条件的步骤包括:在执行所述连续写数据的步骤的同时,以轮询的方式判断是否满足预设的停止条件,若是,则结束对所述目标磁盘的连续写操作;若否,则不做任何操作;其中,所述写请求队列为内存中用于存放写请求的缓冲队列,所述写缓存为内存中用于存放写请求数据的缓冲区域,写缓存数量与机械硬盘中磁盘数量相同,且写缓存与磁盘一一对应。...

【技术特征摘要】
1.一种针对机械硬盘的可控连续写方法,其特征在于,包括:接收写请求的步骤、轮询触发条件的步骤、连续写数据的步骤以及轮询停止条件的步骤;所述接收写请求的步骤包括:接收并缓存写请求及相应的写请求数据,写请求缓存于写请求队列中,写请求数据缓存于写缓存中;所述轮询触发条件的步骤包括:在执行所述接收写请求的步骤的同时,以轮询的方式判断是否满足预设的触发条件,若是,则选取机械硬盘中的一个磁盘作为目标磁盘,并转入所述连续写数据的步骤,以从预设的起始写入地址开始对所述目标磁盘执行连续写操作;若否,则不处理写请求;所述连续写数据的步骤包括:若所述写请求队列不为空,则处理所述写请求队列中的写请求,以将对应的写请求数据连续写入所述目标磁盘中;否则,生成填充数据并连续写入所述目标磁盘;在向所述目标磁盘连续写入填充数据的过程中,一旦有新的写请求到达,则停止写入填充数据,转而直接处理该写请求,以将对应的写请求数据连续写入所述目标磁盘,并在处理完该写请求后,继续生成填充数据并连续写入所述目标磁盘;所述轮询停止条件的步骤包括:在执行所述连续写数据的步骤的同时,以轮询的方式判断是否满足预设的停止条件,若是,则结束对所述目标磁盘的连续写操作;若否,则不做任何操作;其中,所述写请求队列为内存中用于存放写请求的缓冲队列,所述写缓存为内存中用于存放写请求数据的缓冲区域,写缓存数量与机械硬盘中磁盘数量相同,且写缓存与磁盘一一对应。2.如权利要求1所述的针对机械硬盘的可控连续写方法,其特征在于,所述连续写数据的步骤还包括:每一个写请求处理完成后,将该写请求所属文件的逻辑起始地址和逻辑结束地址,以及对应的写请求数据在所述目标磁盘上的起始地址和逻辑地址,均记录到写记录表中;每一次写入填充数据完成后,将填充数据在所述目标磁盘上的起始地址和逻辑地址均记录到所述写记录表中;其中,所述写记录表为内存中用于存储相关数据的数据结构。3.如权利要求2所述的针对机械硬盘的可控连续写方法,其特征在于,所述轮询停止条件的步骤还包括:若满足预设的停止条件,则将所述写记录表持久化存储到非易失性存储设备上。4.如权利要求2所述的针对机械硬盘的可控连续写方法,其特征在于,所述轮询停止条件的步骤还包括:若满足预设的停止条件,则根据所述写记录表对所述目标磁盘上的写请求数据的存储地址进行重整,以删除连续写操作中写入的填充数据。5.如权利要求4所述的针对机械硬盘的可控连续写方法,其特征在于,对所述目标磁盘上的...

【专利技术属性】
技术研发人员:曹强邓凡
申请(专利权)人:华中科技大学
类型:发明
国别省市:湖北,42

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

1