一种回收垃圾数据的方法及存储设备技术

技术编号:9667829 阅读:180 留言:0更新日期:2014-02-14 06:10
本发明专利技术实施例提供一种回收垃圾数据的方法和存储设备,分别记录存储设备每个段内当前时间的第一数据的数据量和在所述当前时间之前预先设置的时间内所述第一数据的变化量;根据所述每个段内所述第一数据的数据量和所述第一数据的变化量计算所述第一数据的预测值;根据每个段内所述第一数据的预测值确定需要回收垃圾数据的段,优先回收垃圾较多且垃圾产生速率较低的段,从而提高回收垃圾数据的效率。

【技术实现步骤摘要】
一种回收垃圾数据的方法及存储设备
本专利技术涉及计算机领域,尤其涉及到一种回收垃圾数据的方法及存储设备。
技术介绍
一般的存储设备写入数据后,会根据逻辑块地址(Logical Block Address, LBA)找到对应的地址,然后把数据写进去。如果多个输入输出命令(Input Output, 10)之间地址相连,则为顺序10,否则为随机10。存储设备中的硬盘驱动器(Hard Disk Drive, HDD)要读取一个数据时,磁头必须先移动到数据所在磁道,磁头沿径向移动,移到目标扇区所在磁道的上方,这段时间称为寻道时间,平均约为10毫秒。找到目标磁道后通过盘片的旋转,使得要目标扇区转到磁头的下方,这段时间称为旋转延迟时间,一个7200 (转/每分钟)的硬盘,每旋转一周所需时间为约为8.33毫秒,则平均旋转延迟时间为约为4.17毫秒。向目标扇区读取或写入数据,时间约为零点几个毫秒。对于顺序10,IO之间不需要重新寻道和等待,因此顺序IO性能比较高;对于随机10,每个IO需要重新寻道和等待,寻道和等待时间比数据读取或写入时间高非常多,因此随机IO性能非常差。存储设备中的一般采用冗余磁盘阵列(Redundant Array of Independent Disks,RAID)保护,对于随机写10,RAID5和RAID6都有写惩罚,严重影响性能;对应顺序写10,写惩罚非常小。以8盘RAID5为例说明写惩罚对写性能的影响。8盘RAID5由7个数据盘(D)和一个校验盘(P)组成,如果随机写一个小10,则最好情况下,必须把旧的校验数据读到内存中;然后用新数据和旧的校验数据一起重新校验产生新校验数据后,再一起写入磁盘中。每个主机IO至少触发3次磁盘IO操作,写放大3倍,整个系统性能下降2/3。顺序写时,在收到7个主机IO后,一起校验产生新的校验数据,然后7个IO连同一个新的校验数据一起下盘。每7个主机IO触发8次磁盘操作,写放大8/7倍性能下降非常少。重定向写为完全顺序写,既可以解决HDD随机写性能差问题,又可以解决RAID写惩罚问题,因此,在处理写IO的情况下,引入重定向写功能。把存储设备的物理空间划分为有效数据空间和冗余空间。有效数据空间存储已经写入的数据。在写IO的逻辑地址与有效数据空间物理地址之间建立一层映射,当逻辑地址上来了随机的写IO后,不覆盖写有效数据空间原始物理位置,而是从冗余空间中分配出一段空间,把多个随机写IO顺序写入连续的冗余空间,然后用映射表记录逻辑地址到新物理地址映射,被写过的旧的有效数据物理空间变成垃圾。这样可以把随机写转换成满条带顺序写,提高存储设备写性能。重定向写会在旧的物理空间产生垃圾,当冗余空间低于一定程度后,必须启动垃圾回收,否则冗余空间用完后,新写入IO会由于分配不到冗余空间而无法处理。为了方便垃圾回收,一般把存储设备物理空间按一定大小先划分为多个段,在RAID场景下段是指整个条带,在固态存储硬盘(Solid State Disk, SSD)场景下段是指可以擦除的块,其他场景下段是指一段连续的空间。当系统运行一段时间后,每个段内都有可能产生垃圾,垃圾数与段内块数的比值称为段内垃圾比例。垃圾回收时,一般先找到垃圾比例较高的段,把该段内剩余有效数据搬移到冗余空间中,将该段有效数据搬移后,就可以将该段回收,把该段变成冗余空间,用于重新分配。在SSD中,由最小写入单位页组成组成块,其中,SSD中,块为进行数据回收的段。在SSD中写入数据之前需要先擦除,擦除的单位为块,因此SSD内部也采用重定向写,也存在垃圾回收,操作过程跟前面提到的重定向写完全一样,只是在回收前多了一步擦除操作。通常的,基于重定向写的存储设备的垃圾回收,一般采用垃圾比例作为回收条件,当冗余空间不足后,按垃圾比例高低优先级对垃圾比例较高的段进行回收。垃圾回收过程需要搬移有效数据,搬移需要把有效数据读出来,再把有效数据写入新的地址,这一过程产生读IO和写10,属于重定向写功能的一部分,因此,搬移过程中需要产生新的10,新的IO会占用存储设备IO资源和带宽。在一般的存储设备中,IO资源和带宽是有限的,段内的垃圾比例越低,段内需要搬移的有效数据量越大,占用存储设备的IO资源和带宽能力就越多,最终对存储设备性能的影响就越大。现有技术中,基本上每个段在垃圾比例达到预定值后就立马回收,回收垃圾数据效率低。
技术实现思路
本专利技术提供了一种回收垃圾数据的方法,旨在解决如何提高垃圾回收效率的问题。第一方面,一种回收垃圾数据的方法,所述方法包括:分别记录存储设备每个段内当前时间的第一数据的数据量和在所述当前时间之前预先设置的时间内所述第一数据的变化量;所述第一数据是垃圾数据或者有效数据,所述第一数据的变化量是所述垃圾数据的增加量或者所述有效数据的减少量,所述垃圾数据的增加量的数值和所述有效数据的减少量的数值相同;根据所述每个段内所述第一数据的数据量和所述第一数据的变化量计算所述第一数据的预测值;根据每个段内所述第一数据的预测值确定需要回收垃圾数据的段;其中,所述有效数据是指段内与逻辑地址存在映射关系的物理地址中存储的数据;所述垃圾数据是指段内与逻辑地址不存在映射关系的物理地址中存储的数据。结合第一方面,在第一方面的第一种可能的实现方式中,所述根据所述每个段内所述第一数据的数据量和所述第一数据的变化量计算所述第一数据的预测值,包括:根据所述每个段内所述第一数据的数据量和第一权重计算所述第一数据的数据量的预测值;根据所述每个段内所述第一数据的变化量和第二权重计算所述第一数据的变化量的预测值;根据所述第一数据的数据量的预测值和所述第一数据的变化量的预测值计算所述第一数据的预测值。结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述分别记录存储设备每个段内当前时间的第一数据的数据量和在所述当前时间之前预先设置的时间内所述第一数据的变化量,包括:分别记录所述每个段内当前时间的垃圾数据的数据量和在所述当前时间之前预先设置的时间内垃圾数据的增加量;所述根据所述每个段内所述第一数据的数据量和所述第一数据的变化量计算所述第一数据的预测值,包括:根据所述每个段内所述当前时间的垃圾数据的数据量和所述第一权重计算所述当前时间的垃圾数据的数据量的预测值;根据所述每个段内所述垃圾数据的增加量和所述第二权重计算所述垃圾数据的变化量的预测值;将所述每个段内所述当前时间的垃圾数据的数据量的预测值和所述垃圾数据的变化量的预测值相减,得到所述垃圾数据的预测值;所述根据所述每段第一数据的预测值确定需要回收垃圾数据的段,包括:按照垃圾数据的预测值从大到小的顺序确定需要回收垃圾数据的段。结合第一方面的第一种可能的实现方式,在第一方面的第三种可能的实现方式中,所述分别记录存储设备每个段内当前时间的第一数据的数据量和在所述当前时间之前预先设置的时间内所述第一数据的变化量,包括:分别记录所述每个段内当前时间的有效数据的数据量和在所述当前时间之前预先设置的时间内有效数据的减少量;所述根据所述每个段内所述第一数据的数据量和所述第一数据的变化量计算所述第一数据的预测值,包括:根据所述每个段内所述当前时间的有效数据的数据量和所述第一权重计算所述当前时间的本文档来自技高网
...

【技术保护点】
一种回收垃圾数据的方法,其特征在于,所述方法包括:分别记录存储设备每个段内当前时间的第一数据的数据量和在所述当前时间之前预先设置的时间内所述第一数据的变化量;所述第一数据是垃圾数据或者有效数据,所述第一数据的变化量是所述垃圾数据的增加量或者所述有效数据的减少量,所述垃圾数据的增加量的数值和所述有效数据的减少量的数值相同;根据所述每个段内所述第一数据的数据量和所述第一数据的变化量计算所述第一数据的预测值;根据每个段内所述第一数据的预测值确定需要回收垃圾数据的段;其中,所述有效数据是指段内与逻辑地址存在映射关系的物理地址中存储的数据;所述垃圾数据是指段内与逻辑地址不存在映射关系的物理地址中存储的数据。

【技术特征摘要】
1.一种回收垃圾数据的方法,其特征在于,所述方法包括: 分别记录存储设备每个段内当前时间的第一数据的数据量和在所述当前时间之前预先设置的时间内所述第一数据的变化量;所述第一数据是垃圾数据或者有效数据,所述第一数据的变化量是所述垃圾数据的增加量或者所述有效数据的减少量,所述垃圾数据的增加量的数值和所述有效数据的减少量的数值相同; 根据所述每个段内所述第一数据的数据量和所述第一数据的变化量计算所述第一数据的预测值; 根据每个段内所述第一数据的预测值确定需要回收垃圾数据的段; 其中,所述有效数据是指段内与逻辑地址存在映射关系的物理地址中存储的数据;所述垃圾数据是指段内与逻辑地址不存在映射关系的物理地址中存储的数据。2.根据权利要求1所述的方法,其特征在于,所述根据所述每个段内所述第一数据的数据量和所述第一数据的变化量计算所述第一数据的预测值,包括: 根据所述每个段内所述第一数据的数据量和第一权重计算所述第一数据的数据量的预测值; 根据所述每个段内所述第一数据的变化量和第二权重计算所述第一数据的变化量的预测值; 根据所述第一数据的数据量的预测值和所述第一数据的变化量的预测值计算所述第一数据的预测值。3.根据权利要求2所述的方法,其特征在于,所述分别记录存储设备每个段内当前时间的第一数据的数据量和在所述当前时间之前预先设置的时间内所述第一数据的变化量,包括: 分别记录所述每个段内当前时间的垃圾数据的数据量和在所述当前时间之前预先设置的时间内垃圾数据的增加量; 所述根据所述每个段内所述第一数据的数据量和所述第一数据的变化量计算所述第一数据的预测值,包括: 根据所述每个段内所述当前时间的垃圾数据的数据量和所述第一权重计算所述当前时间的垃圾数据的数据量的预测值; 根据所述每个段内所述垃圾数据的增加量和所述第二权重计算所述垃圾数据的变化量的预测值; 将所述每个段内所述当前时间的垃圾数据的数据量的预测值和所述垃圾数据的变化量的预测值相减,得到所述垃圾数据的预测值; 所述根据所述每段第一数据的预测值确定需要回收垃圾数据的段,包括: 按照垃圾数据的预测值从大到小的顺序确定需要回收垃圾数据的段。4.根据权利要求2所述的方法,其特征在于,所述分别记录存储设备每个段内当前时间的第一数据的数据量和在所述当前时间之前预先设置的时间内所述第一数据的变化量,包括: 分别记录所述每个段内当前时间的有效数据的数据量和在所述当前时间之前预先设置的时间内有效数据的减少量; 所述根据所述每个段内所述第一数据的数据量和所述第一数据的变化量计算所述第一数据的预测值,包括: 根据所述每个段内所述当前时间的有效数据的数据量和所述第一权重计算所述当前时间的有效数据的数据量的预测值; 根据所述每个段内所述有效数据的减少量和所述第二权重计算所述有效数据的变化量的预测值; 将所述每个段内所述当前时间的有效数据的数据量的预测值和所述有效数据的变化量的预测值相加,得到所述有效数据的预测值; 所述根据所述每段第一数据的预测值确定需要回收垃圾数据的段,包括: 按照有效数据的预测值从小到大的顺序确定需要回收垃圾数据的段。5.根据权利要求2所述的方法,其特征在于,所述分别记录存储设备每个段内当前时间的第一数据的数据量和在所述当前时间之前预先设置的时间内所述第一数据的变化量,包括: 分别记录所述每个段内当前时间的垃圾数据的数据量和在所述当前时间之前预先设置的时间内有效数据的减少量; 所述根据所述每个段内所述第一数据的数据量和所述第一数据的变化量计算所述第一数据的预测值,包括: 根据所述每个段内所述当前时间的垃圾数据的数据量和所述第一权重计算所述当前时间的垃圾数据的数据量的预测值; 根据所述每个段内所述有效数据的减少量和所述第二权重计算所述有效数据的变化量的预测值; 将所述每个段内所述当前时间的垃圾数据的数据量的预测值和所述有效数据的变化量的预测值相减,得到所述垃圾数据的预测值; 所述根据所述每段第一数据的预测值确定需要回收垃圾数据的段,包括: 按照垃圾数据的预测值从大到小的顺序确定需要回收垃圾数据的段。6.根据权利要求2所述的方法,其特征在于,所述分别记录存储设备每个段内当前时间的第一数据的数据量和在所述当前时间之前预先设置的时间内所述第一数据的变化量,包括: 分别记录所述每个段内当前时间的有效数据的数据量和在所述当前时间之前预先设置的时间内垃圾数据的增加量; 所述根据所述每个段内所述第一数据的数据量和所述第一数据的变化量计算所述第一数据的预测值,包括: 根据所述每个段内所述当前...

【专利技术属性】
技术研发人员:林春恭
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1