瓦记录感知文件系统中垃圾数据的回收方法和装置与流程

文档序号:12362524阅读:194来源:国知局
瓦记录感知文件系统中垃圾数据的回收方法和装置与流程

本发明涉及数据存储领域,尤其涉及瓦记录感知文件系统中垃圾数据的回收方法和装置。



背景技术:

瓦记录是提高磁盘存储密度的一种技术,其原理是磁盘上的相邻磁道部分重叠,像重叠屋瓦一样记录数据,因此被称作瓦记录。瓦记录磁盘一般都是分为多个存储带(Band),每个Band只支持追加写,不支持就地更新,因此,瓦记录磁盘需要垃圾回收来提高资源利用率。

我们将瓦记录感知的文件系统(Shingle-Aware File System,简称“SAFS”)归纳为三类:设备端瓦记录感知文件系统(Device-side SAFS,简称“DSAFS”),主机端瓦记录感知文件系统(Host-side SAFS,简称“HSAFS”)和协作式瓦记录感知文件系统(Cooperative SAFS,简称“CSAFS”)。其中,DSAFS类似于固态硬盘(Solid State Drives,简称“SSD”)中的闪存转换层(Flash Translation Layer,简称“FTL”),向主机端提供一个块设备,而瓦记录磁盘(Shingled Write Disk,简称“SWD”)设备端做垃圾回收,地址映射等工作。HSAFS类似于专门的闪存(Flash)文件系统,主机端负责数据布局和地址映射等工作,相对于DSAFS能针对应用做更多的优化。

在瓦记录感知文件系统SAFS中,垃圾回收对系统的整体性能影响很大。但是现有技术中DSAFS缺少上层应用的I/O访问及语义信息,而HSAFS和CSAFS中由主机端负责数据布局和地址映射等工作,涉及到的大量数据拷贝会对主机端运行造成影响,所以,现有的SAFS中垃圾回收效果不佳。



技术实现要素:

本发明提供了一种垃圾数据的回收方法、主机端和设备端,能够提高垃圾数据回收效率。

第一方面,提供了一种瓦记录感知文件系统中垃圾数据的回收方法,该瓦记录感知文件系统包括主机端和设备端,该方法包括:该主机端在多个存储带中确定待回收存储带;该主机端确定该待回收存储带的类型,该待回收存储带的类型包括热存储带和冷存储带;该主机端根据该待回收存储带的类型,确定垃圾数据回收策略;该主机端向该设备端发送该垃圾数据回收策略,以便于该设备端根据该垃圾数据回收策略对该待回收存储带进行垃圾数据回收处理。

结合第一方面,在第一方面的一种实现方式中,该在多个存储带中确定待回收存储带,包括:确定该多个存储带中每个存储带的无效数据块利用率;将该无效数据块利用率最大的存储带确定为该待回收存储带。

结合第一方面及其上述实现方式,在第一方面的另一种实现方式中,该根据该待回收存储带的类型,确定垃圾数据回收策略,包括:当该待回收存储带的类型为热存储带时,在该多个存储带中的热存储带中确定第一目标存储带;确定该垃圾数据回收策略,该垃圾数据回收策略用于指示该设备端将该待回收存储带中的有效数据块存储到该第一目标存储带的空闲数据块中;当该待回收存储带的类型为冷存储带时,在该多个存储带中的冷存储带中确定第二目标存储带;确定该垃圾数据回收策略,该垃圾数据回收策略用于指示该设备端将该待回收存储带中的有效数据块存储到该第二目标存储带的空闲数据块中。

结合第一方面及其上述实现方式,在第一方面的另一种实现方式中,该当该待回收存储带的类型为热存储带时,在该多个存储带中的热存储带中确定第一目标存储带,包括:当该待回收存储带的类型为热存储带时,确定该待回收存储带的有效数据块利用率;确定该多个存储带中的热存储带的空闲数据块利用率;当该多个存储带中除了该待回收存储带以外的热存储带中存在至少一个热存储带的空闲数据块利用率大于或等于该待回收存储带的有效数据块利用率时;将该至少一个热存储带中空闲数据块利用率最小的热存储带确定为第一目标存储带;当该多个存储带中除了该待回收存储带以外的热存储带中不存在空闲数据块利用率大于或等于该待回收存储带的有效数据块利用率的热存储带时;将该待回收存储带确定为第一目标存储带。

结合第一方面及其上述实现方式,在第一方面的另一种实现方式中,该当该待回收存储带的类型为冷存储带时,在该多个存储带中的冷存储带中确 定第二目标存储带,包括:当该待回收存储带的类型为冷存储带时,确定该待回收存储带的有效数据块利用率;确定该多个存储带中的冷存储带的空闲数据块利用率;当该多个存储带中除了该待回收存储带以外的冷存储带中存在至少一个冷存储带的空闲数据块利用率大于或等于该待回收存储带的有效数据块利用率时;将该至少一个冷存储带中空闲数据块利用率最小的冷存储带确定为第二目标存储带;当该多个存储带中除了该待回收存储带以外的冷存储带中不存在空闲数据块利用率大于或等于该待回收存储带的有效数据块利用率的冷存储带时;将该待回收存储带确定为第二目标存储带。

结合第一方面及其上述实现方式,在第一方面的另一种实现方式中,该确定该待回收存储带的类型,包括:根据读写次数,确定该待回收存储带中每个数据块的冷热度;将该待回收存储带中每个数据块的冷热度之和确定为该待回收存储带的冷热度;当该待回收存储带的冷热度大于或等于第一阈值时,确定该待回收存储带的类型为热存储带;或当该待回收存储带的冷热度小于该第一阈值时,确定该待回收存储带的类型为冷存储带。

结合第一方面及其上述实现方式,在第一方面的另一种实现方式中,该方法还包括:确定该多个存储带中每个存储带的冷热度;将该多个存储带中冷热度大于或等于第二阈值的存储带确定为热存储带;将该多个存储带中冷热度小于该第二阈值的存储带确定为冷存储带。

结合第一方面及其上述实现方式,在第一方面的另一种实现方式中,该主机端向该设备端发送该垃圾数据回收策略,以便于该设备端根据该垃圾数据回收策略对该待回收存储带进行垃圾数据回收处理,包括:该主机端向该设备端发送该垃圾数据回收策略,该垃圾数据回收策略包括该待回收存储带和该目标存储带的指示符,以便于该设备端根据该垃圾数据回收策略,将该待回收存储带中的有效数据存储到该目标存储带中的空闲数据块中,并对该待回收存储带中的无效数据块进行回收处理,该目标存储带包括该第一目标存储带或该第二目标存储带。

第二方面,提供了一种主机,该主机包括网络接口、存储器以及处理器,其中,该存储器中存储一组程序,且该处理器用于调用该存储器中存储的程序,使得该主机执行如第一方面或第一方面的上述几种可能中任一种可能的实现方式。

第三方面,提供了一种瓦记录感知文件系统中的主机端,该主机端包括: 第一确定模块,用于在多个存储带中确定待回收存储带;第二确定模块,用于确定该待回收存储带的类型,该待回收存储带的类型包括热存储带和冷存储带;第三确定模块,用于根据该第二确定模块确定的该待回收存储带的类型,确定垃圾数据回收策略;发送模块,用于向该设备端发送该第三确定模块确定的该垃圾数据回收策略,以便于该设备端根据该垃圾数据回收策略对该待回收存储带进行垃圾数据回收处理。

结合第三方面,在第三方面的一种实现方式中,该第一确定模块具体用于:确定该多个存储带中每个存储带的无效数据块利用率;将该无效数据块利用率最大的存储带确定为该待回收存储带。

结合第三方面及其上述实现方式,在第三方面的另一种实现方式中,该第三确定模块具体用于:当该待回收存储带的类型为热存储带时,在该多个存储带中的热存储带中确定第一目标存储带;确定该垃圾数据回收策略,该垃圾数据回收策略用于指示该设备端将该待回收存储带中的有效数据块存储到该第一目标存储带的空闲数据块中;当该待回收存储带的类型为冷存储带时,在该多个存储带中的冷存储带中确定第二目标存储带;确定该垃圾数据回收策略,该垃圾数据回收策略用于指示该设备端将该待回收存储带中的有效数据块存储到该第二目标存储带的空闲数据块中。

结合第三方面及其上述实现方式,在第三方面的另一种实现方式中,该第三确定模块具体用于:当该待回收存储带的类型为热存储带时,确定该待回收存储带的有效数据块利用率;确定该多个存储带中的热存储带的空闲数据块利用率;当该多个存储带中除了该待回收存储带以外的热存储带中存在至少一个热存储带的空闲数据块利用率大于或等于该待回收存储带的有效数据块利用率时;将该至少一个热存储带中空闲数据块利用率最小的热存储带确定为第一目标存储带;当该多个存储带中除了该待回收存储带以外的热存储带中不存在空闲数据块利用率大于或等于该待回收存储带的有效数据块利用率的热存储带时;将该待回收存储带确定为第一目标存储带。

结合第三方面及其上述实现方式,在第三方面的另一种实现方式中,该第三确定模块具体用于:当该待回收存储带的类型为冷存储带时,确定该待回收存储带的有效数据块利用率;确定该多个存储带中的冷存储带的空闲数据块利用率;当该多个存储带中除了该待回收存储带以外的冷存储带中存在至少一个冷存储带的空闲数据块利用率大于或等于该待回收存储带的有效 数据块利用率时;将该至少一个冷存储带中空闲数据块利用率最小的冷存储带确定为第二目标存储带;当该多个存储带中除了该待回收存储带以外的冷存储带中不存在空闲数据块利用率大于或等于该待回收存储带的有效数据块利用率的冷存储带时;将该待回收存储带确定为第二目标存储带。

结合第三方面及其上述实现方式,在第三方面的另一种实现方式中,该第二确定模块具体用于:根据读写次数,确定该待回收存储带中每个数据块的冷热度;将该待回收存储带中每个数据块的冷热度之和确定为该待回收存储带的冷热度;当该待回收存储带的冷热度大于或等于第一阈值时,确定该待回收存储带的类型为热存储带;或当该待回收存储带的冷热度小于该第一阈值时,确定该待回收存储带的类型为冷存储带。

结合第三方面及其上述实现方式,在第三方面的另一种实现方式中,该第二确定模块还用于:确定该多个存储带中每个存储带的冷热度;将该多个存储带中冷热度大于或等于第二阈值的存储带确定为热存储带;将该多个存储带中冷热度小于该第二阈值的存储带确定为冷存储带。

第四方面,提供了一种瓦记录感知文件系统,该系统包括设备端和如第三方面或第三方面的上述几种可能的实现方式中的任一种可能的实现方式中的主机端,其中,该设备端用于:接收该主机端发送的垃圾数据回收策略,该垃圾数据回收策略包括待回收存储带和目标存储带的指示符;根据该接收模块接收的该垃圾数据回收策略,对该待回收存储带进行回收。

结合第四方面,在第四方面的一种实现方式中,该设备端还用于:根据该垃圾数据回收策略,确定待回收存储带和目标存储带;将该待回收存储带中的有效数据存储到该目标存储带中的空闲数据块中;对该待回收存储带中的无效数据块进行回收处理。

基于上述技术方案,本发明实施例的垃圾数据的回收方法和装置,由主机端确定待回收存储带,并根据该待回收存储带的类型确定垃圾数据回收策略,主机端将该垃圾数据回收策略发送至设备端,设备端根据该垃圾数据回收策略对待回收存储带中的垃圾数据进行回收,从而能够避免DSAFS中垃圾回收无法获得上层应用的I/O访问及语义信息的不足,也避免了HSAFS中垃圾回收的数据拷贝对主机CPU的占用,能够提高垃圾回收效率。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是根据本发明实施例的瓦记录感知文件系统中垃圾数据的回收方法的示意性流程图。

图2是根据本发明实施例的瓦记录感知文件系统中垃圾数据的回收方法的另一示意性流程图。

图3是根据本发明实施例的待回收/回收到的垃圾回收方式的示意图。

图4是根据本发明实施例的自我回收的垃圾回收方式的示意图。

图5是根据本发明实施例的瓦记录感知文件系统中垃圾数据的回收方法的再一示意性流程图。

图6是根据本发明实施例的瓦记录感知文件系统中的主机端的示意性框图。

图7是根据本发明实施例的瓦记录感知文件系统中的设备端的示意性框图。

图8是根据本发明实施例的瓦记录感知文件系统的示意性框图。

图9是根据本发明实施例的瓦记录感知文件系统中的主机端的另一示意性框图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。

图1示出了根据本发明实施例的瓦记录感知文件系统中垃圾数据的回收方法100的示意性流程图,瓦记录感知文件系统中包括主机端和设备端,该方法100可以由主机端执行。如图1所示,该方法100包括:

S110,在多个存储带中确定待回收存储带;

S120,确定该待回收存储带的类型,该待回收存储带的类型包括热存储带和冷存储带;

S130,根据该待回收存储带的类型,确定垃圾数据回收策略;

S140,向设备端发送该垃圾数据回收策略,以便于该设备端根据该垃圾数据回收策略对该待回收存储带进行垃圾数据回收处理。

具体地,在CSAFS中,主机端在多个存储带(Band)中确定待回收Band,根据该待回收Band的类型,确定垃圾数据回收策略,该垃圾数据回收策略可以包括待回收Band以及用于存储该待回收Band中有效数据块的目标Band,主机端向设备端发送该垃圾数据回收策略,以便于设备端根据该垃圾数据回收策略对待回收Band中的垃圾数据进行回收处理。

因此,本发明实施例的瓦记录感知文件系统中垃圾数据的回收方法,由主机端确定待回收存储带,并根据该待回收存储带的类型确定垃圾数据回收策略,主机端将该垃圾数据回收策略发送至设备端,设备端根据该垃圾数据回收策略对待回收存储带中的垃圾数据进行回收,从而能够避免DSAFS中垃圾回收无法获得上层应用的I/O访问及语义信息的不足,也避免了HSAFS中垃圾回收的数据拷贝对主机CPU的占用,能够提高垃圾回收效率。

在S110中,主机端在多个存储带(Band)中确定待回收Band。具体地,主机端可以分别确定多个Band中每个Band的无效数据块利用率,将其中无效数据块利用率最大的Band确定为待回收Band。可选地,Band的无效数据块利用率等于该Band中无效数据块(Invalid blocks)的个数与全部数据块个数的比值,其中,全部数据块包括该Band中有效数据块(Valid blocks)、无效数据块(Invalid blocks)和空闲数据块(Free blocks)。

在S120中,主机确定该待回收Band的类型,该待回收Band的类型包括热存储带(Hot Band)和冷存储带(Cold Band)。具体地,主机端可以根据读写次数,确定待回收Band中每个数据块的冷热度,将待回收Band中所有数据块的冷热度之和确定为该待回收Band的冷热度。当该待回收Band的冷热度大于或等于第一阈值时,将该待回收存储带的类型确定为热Band;当该待回收Band的冷热度小于该第一阈值时,将该待回收Band的类型确定为冷Band。可选地,该第一阈值可以根据经验值确定,本发明并不限于此。可选地,可以通过热数据识别算法Multiple Bloom Filter算法,根据读写操作来确定每个数据块的冷热度,但本发明并不限于此。

可选地,作为一个实施例,该主机端还可以确定每个Band的类型。具体地,主机端可以确定每个Band中包括的数据块的冷热度,一个Band中包 括的所有数据块的冷热度之和即为该Band的冷热度,确定每个Band的冷热度,当Band的冷热度大于或等于第二阈值时,确定该Band的类型确定为热Band;当该Band的冷热度小于该第二阈值时,确定该Band的类型为冷Band。可选地,该第二阈值可以根据经验值确定;可选地,也可以将多个Band的冷热度按照大小进行排序,将冷热度最大的前10%的Band的类型均确定为热Band,将其余90%的Band的类型确定为冷Band,该第二阈值即为排名10%的Band中冷热度最小的Band的冷热度,但本发明并不限于。可选地,待回收Band的类型也可以通过排名确定,例如当待回收Band的冷热度在所有Band的前10%,则确定该待回收Band为热Band,否则为冷Band,但本发明并不限于此。可选地,第一阈值与第二阈值可以相等,也可以不相等,本发明并不限于此。

在S130中,主机端根据该待回收Band的类型,确定垃圾数据回收策略。具体地,当主机端确定了待回收Band的类型后,例如该待回收Band为热Band,则在所有Band中确定除了待回收Band之外的所有热Band,并分别确定这些热Band中每个热Band的空闲数据块利用率。当存在至少一个热Band的空闲数据块利用率大于或等于待回收Band的有效数据块利用率时,在至少一个热Band中确定空闲数据块利用率最小的一个Band,将该空闲数据块利用率最小的Band确定为第一目标Band;当热Band中不存在空闲数据块利用率大于或等于待回收Band的有效数据块利用率时,则将该待回收Band确定为第一目标Band。

可选地,作为一个实施例,当待回收Band的类型被确定为冷Band时,同样地,主机端在多个Band中确定除了待回收Band以外的所有冷Band(Cold Band),并在这些冷Band中确定至少一个冷Band,使得该至少一个冷Band的空闲数据块利用率大于或等于待回收Band的有效数据块利用率,将至少一个冷Band中空闲数据块利用率最小时对应的Band确定为第二目标Band;当冷Band中不存在这样的至少一个冷Band时,则将待回收Band本身确定为第二目标Band。

在本发明实施例中,目标Band用于存储待回收Band中的有效数据块,该目标Band包括第一目标Band和第二目标Band。具体地,垃圾数据回收处理方式可以包括待回收/回收到(To Clean/Clean To)和自我回收(Self-GC)。当确定的目标Band为待回收Band以外的另一个Band时,采 用待回收/回收到(To Clean/Clean To)的回收方式,则该待回收存储带为To Clean Band,目标存储带为Clean To Band;当确定的目标Band为待回收Band本身时,则采用自我回收(Self-GC)的回收方式。

在本发明实施例中,Band的空闲块利用率等于该Band中空闲数据块(Free blocks)个数与Band所有数据块个数的比值,其中,所有数据块包括该Band中有效数据块(Valid blocks)、无效数据块(Invalid blocks)和空闲数据块(Free blocks)。

在本发明实施例中,主机端根据确定的回收方式,确定出垃圾数据回收策略。具体的,当主机端确定的目标Band不是待回收Band本身时,其中,该目标Band包括第一目标Band和第二目标Band,则采用待回收/回收到(To Cle an/Clean To)的回收方式,则垃圾数据回收策略可以确定为<To_Clean_Band,To_Clean_Valid_Bitmap,To_Clean_Valid_Size,lean_To_Band>,其中,To_Clean_Band是用于指示待回收Band的标示符,如Band ID、名字等信息,该标示符指示的Band将被垃圾清理;To_Clean_Valid_Bitmap表示被清理的待回收Band中的有效数据块的位图(bitmap),用来指示该band上哪些块是有效数据块,哪些是无效数据块,以便于设备端可以对有效数据块保留,对无效数据块做垃圾数据处理;To_Clean_Valid_Size表示待回收Band中所有有效数据大小的总和;Clean_To_Band是用于指示目标Band的标示符,该标示符指示的Band是被清理的待回收Band的目标Band,即被清理的待回收Band的有效数据块会写入该目标Band中。可选地,当确定的目标Band是待回收Band本身时,即采用的是自我回收(Self-GC)的回收方式,则主机端确定的垃圾数据回收策略可以为Clean_To_Band=-1,其中,Clean_To_Band表示目标Band,即待回收Band,指示设备端将该Band中的有效数据块保留,删除无效数据块。

在S140中,主机端可以向设备端发送确定的垃圾数据回收策略,以便于该设备端根据该垃圾数据回收策略,对该待回收Band进行垃圾数据回收处理,对该待回收Band中的有效数据块保留,无效数据块删除,从而释放Band的空间。

应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

因此,本发明实施例的瓦记录感知文件系统中垃圾数据的回收方法,由主机端确定待回收Band,并根据该待回收Band的类型确定垃圾数据回收策略,可以将热存储带(Hot Band)中的数据块保留在热存储带中,将冷存储带(Cold Band)中的数据块仍然保留在冷存储带中。因为Hot Band中为热数据块,更新更频繁,在垃圾数据回收的过程中有效数据块更少,而Cold Band中包含冷数据块,更新不频繁,基本不用进行垃圾回收,从而可以加速垃圾回收中有效数据块的拷贝操作。

另外,主机端将该垃圾数据回收策略发送至设备端,设备端根据该垃圾数据回收策略对待回收Band中的垃圾数据进行回收,从而能够避免DSAFS中垃圾回收无法获得上层应用的I/O访问及语义信息的不足,也避免了HSAFS中垃圾回收的数据拷贝对主机CPU的占用,能够提高垃圾回收效率。

上文中结合图1,从主机端的角度详细描述了根据本发明实施例的瓦记录感知文件系统中垃圾数据的回收方法,下面将结合图2,从设备端的角度描述根据本发明实施例的瓦记录感知文件系统中垃圾数据的回收方法。

图2示出了根据本发明另一实施例的瓦记录感知文件系统中垃圾数据的回收方法的示意性流程图。该方法主要由设备端执行。如图2所示,该方法200包括:

S210,接收主机端发送的垃圾数据回收策略,该垃圾数据回收策略包括待回收存储带和目标存储带的指示符;

S220,根据该垃圾数据回收策略,对该待回收存储带进行回收。

因此,本发明实施例的瓦记录感知文件系统中垃圾数据的回收方法,由主机端确定垃圾数据回收策略,主机端将该垃圾数据回收策略发送至设备端,设备端根据该垃圾数据回收策略对待回收Band中的垃圾数据进行回收,从而能够避免DSAFS中垃圾回收无法获得上层应用的I/O访问及语义信息的不足,也避免了HSAFS中垃圾回收的数据拷贝对主机CPU的占用,能够提高垃圾回收效率。

在S210中,设备端接收主机端发送的垃圾数据回收策略,该垃圾数据回收策略指示设备端对需要回收的存储带(Band)进行垃圾数据回收处理。

在S220中,设备端根据垃圾数据回收策略,对垃圾数据进行回收。具体地,设备端可以先根据垃圾回收策略确定出待回收Band和目标Band,进而对垃圾回收策略进行判断,判断采用哪一种回收方式。例如,当接收到的 垃圾数据回收策略为Clean_To_Band=-1,即Clean_To_Band指示的目标Band等于-1时,表示的是待回收Band和目标Band为同一个Band,则采用的是自我回收的方式。当接收到的垃圾数据回收策略不是上述自我回收策略时,即采用的是待回收/回收到(To Cle an/Clean To)的回收方式,例如,垃圾数据回收策略可以为<To_Clean_Band,To_Clean_Valid_Bitmap,To_Clean_Valid_Size,lean_To_Band>,则根据该策略,设备端确定待回收Band(To_Clean_Band)和目标Band(Clean_To_Band),将待回收Band中有效数据块合并到目标Band中,并删除待回收Band中的无效数据块,从而释放空间。

具体地,对于自我回收(Self-GC)的方式,如图3所示,待回收Band中实线框表示该数据块为有效数据块,虚线框代表无效数据块,对待回收Band采用自我回收的方式就是删除无效数据块,保留有效数据块。待回收Band将包括的有效数据块(如图3中的A1、A2、A3和A7)拷贝到设备端的随机存取存储器(Random-Access Memory,简称“RAM”)中,然后将待回收Band清空,之后将RAM中的原待回收Band中的有效数据块,重新拷到清空之后的待回收Band,即拷到目标Band之中。由于瓦记录的相邻磁道是部分重叠的,也就是说写入任意一个磁道i的时候,与磁道i相邻的几个磁道(比如磁道i+1)中的数据就被破坏了。所以每个Band只能追加写(数据只能顺序写入Band)。如果不遵循追加写的规则,比如在Band中顺序写入A1 A2 A3 A4后,然后再在A2所在地方写入数据,则A3和A4中的数据会被破坏。因此,在每个Band有一个相应的变量叫做Band的写入指示点(Band Write Pointer),可以对应图3中的实心黑色箭头,用于指示接下来数据如果要写入Band,只能写入Band Write Pointer所指示的地方,写完后Band Write Pointer+1。因此,当待回收Band被清空回收后,Band Write Pointer被重置为0。将RAM中有效数据写入后,Band的Band Write Pointer指示数据块A7的下一个数据块。

具体地,对于待回收/回收到(To Clean/Clean To)的方式,如图4所示,待回收Band(To Clean)中实线框表示该数据块为有效数据块,虚线框代表无效数据块,目标Band(Clean To)的实线框中具有标号的表示有效数据块,实线框中没有标号的表示空闲数据块,则设备端将待回收Band中有效数据块添加至目标Band中的空闲数据块的位置,再对待回收Band整体进行回收 处理,例如可以删除数据,释放空间。

应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

因此,本发明实施例的瓦记录感知文件系统中垃圾数据的回收方法,由主机端确定垃圾数据回收策略,主机端将该垃圾数据回收策略发送至设备端,设备端根据该垃圾数据回收策略对待回收Band中的垃圾数据进行回收,从而能够避免DSAFS中垃圾回收无法获得上层应用的I/O访问及语义信息的不足,也避免了HSAFS中垃圾回收的数据拷贝对主机CPU的占用,能够提高垃圾回收效率。

下面以一个具体实施例为例,对本发明实施例的瓦记录感知文件系统中垃圾数据的回收方法进行说明。图5示出了根据本发明实施例的瓦记录感知文件系统中垃圾数据的回收方法的再一示意性流程图,如图5所示:

在S301中,主机端在多个存储带(Band)中确定待回收Band。该主机端可分别计算每个Band的无效数据块利用率,Band的无效数据块利用率等于该Band中无效数据块(Invalid blocks)的个数与全部数据块个数的比值,其中,全部数据块包括该Band中有效数据块(Valid blocks)、无效数据块(Invalid blocks)和空闲数据块(Free blocks)。将多个Band中无效数据块利用率最大的Band确定为待回收Band。

在S302中,主机端确定待回收Band的类型,当确定该待回收Band的类型为热存储带(Hot Band)时,到S303;当确定该待回收Band的类型为冷存储带(Cold Band)时,到S304。

在S303中,主机端在多个Band中确定除了待回收Band以外的所有热Band,并确定这些热Band中每个Band的空闲数据块利用率,Band的空闲块利用率等于该Band中空闲数据块(Free blocks)个数与Band所有数据块个数的比值,其中,所有数据块包括该Band中有效数据块(Valid blocks)、无效数据块(Invalid blocks)和空闲数据块(Free blocks)。在这些热Band中确定空闲数据块利用率大于或等于待回收Band的无效数据块利用率的热Band,若存在至少一个这样的热Band,则将该至少一个热Band确定为候选热Band,并执行S305,若不存在这样的热Band,则执行S307。

在S304中,主机端在多个Band中确定除了待回收Band以外的所有冷 Band,并确定这些冷Band中每个Band的空闲数据块利用率,空闲数据块利用率的计算与热Band的空闲数据块利用率计算过程一致。在这些冷Band中确定空闲数据块利用率大于或等于待回收Band的无效数据块利用率的冷Band,若存在至少一个这样的冷Band,则将该至少一个冷Band确定为候选冷Band,并执行S306,若不存在这样的热Band,则执行S307。

在S305中,主机端在候选热Band中,将空闲数据块利用率最小的候选热Band确定为目标Band。

在S306中,主机端在候选冷Band中,将将空闲数据块利用率最小的候选冷Band确定为目标Band。

在S307中,主机端将待回收Band确定为目标Band。

在S308中,主机端确定垃圾数据回收策略,并将该策略发送至设备端。该垃圾数据回收策略包括指示设备端采用待回收/回收到(To Clean/Clean To)或自我回收(Self-GC)的方式进行垃圾数据回收。当主机端通过S305或S306确定的目标Band时,采用待回收/回收到(To Clean/Clean To)的回收方式,则垃圾数据回收策略为<To_Clean_Band,To_Clean_Valid_Bitmap,To_Clean_Valid_Size,Clean_To_Band>,其中,To_Clean_Band是用于指示待回收Band的标示符,如Band ID、名字等信息,该标示符指示的Band将被垃圾清理;To_Clean_Valid_Bitmap表示被清理的待回收Band中的有效数据块的位图(bitmap),用来指示该band上哪些块是有效数据块,哪些是无效数据块,以便于设备端可以对有效数据块保留,对无效数据块做垃圾数据处理;To_Clean_Valid_Size表示待回收Band中所有有效数据大小的总和;Clean_To_Band是用于指示目标Band的标示符,即被清理的待回收Band的有效数据块会写入该目标Band中。当主机端通过S307确定的目标Band时,采用自我回收(Self-GC)的方式进行垃圾数据回收,则垃圾数据回收策略为Clean_To_Band=-1,其中,Clean_To_Band表示目标Band,即待回收Band标识符,指示设备端将该Band中的有效数据块保留,删除无效数据块。

在S309中,设备端接收主机端发送的垃圾数据回收策略,判断该垃圾数据回收策略中,Clean_To_Band是否为-1,若垃圾回收策略为Clean_To_Band=-1,则执行S310,否则执行S311。

在S310中,设备端采用自我回收(Self-GC)的方式处理待回收Band,将无线数据块删除,释放空间。

在S311中,设备端采用待回收/回收到(To Clean/Clean To)的方式对待回收Band进行处理,释放待回收Band的空间。

应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

因此,本发明实施例的瓦记录感知文件系统中垃圾数据的回收方法,由主机端确定待回收存储带,并根据该待回收存储带的类型确定垃圾数据回收策略,主机端将该垃圾数据回收策略发送至设备端,设备端根据该垃圾数据回收策略对待回收存储带中的垃圾数据进行回收,从而能够避免DSAFS中垃圾回收无法获得上层应用的I/O访问及语义信息的不足,也避免了HSAFS中垃圾回收的数据拷贝对主机CPU的占用,能够提高垃圾回收效率。

上文中结合图1至图5,详细描述了根据本发明实施例的瓦记录感知文件系统中垃圾数据的回收方法,下面将结合图6至图7,描述根据本发明实施例的瓦记录感知文件系统中垃圾数据的回收装置。

本发明实施例的瓦记录感知文件系统中垃圾数据的回收装置包括主机端和设备端。如图6所示,根据本发明实施例的瓦记录感知文件系统中主机端400包括:

第一确定模块410,用于在多个存储带中确定待回收存储带;

第二确定模块420,用于确定该待回收存储带的类型,该待回收存储带的类型包括热存储带和冷存储带;

第三确定模块430,用于根据该第二确定模块420确定的该待回收存储带的类型,确定垃圾数据回收策略;

发送模块440,用于向该设备端发送该第三确定模块430确定的该垃圾数据回收策略,以便于该设备端根据该垃圾数据回收策略对该待回收存储带进行垃圾数据回收处理。

具体地,在CSAFS中,主机端通过第一确定模块410在多个存储带(Band)中确定待回收Band,并通过第二确定模块420确定待回收Band的类型,第三确定模块430根据该待回收Band的类型,确定垃圾数据回收策略,该垃圾数据回收策略可以包括待回收Band以及用于存储该待回收Band中有效数据块的目标Band,主机端的发送模块440向设备端发送第三确定模块430确定的该垃圾数据回收策略,以便于设备端根据该垃圾数据回收策 略对待回收Band中的垃圾数据进行回收处理。

因此,本发明实施例的瓦记录感知文件系统中的主机端,由第一确定模块确定待回收存储带,并根据该待回收存储带的类型确定垃圾数据回收策略,主机端通过发送模块将该垃圾数据回收策略发送至设备端,以便于设备端根据该垃圾数据回收策略对待回收存储带中的垃圾数据进行回收,从而能够避免DSAFS中垃圾回收无法获得上层应用的I/O访问及语义信息的不足,也避免了HSAFS中垃圾回收的数据拷贝对主机CPU的占用,能够提高垃圾回收效率。

在本发明实施例中,主机端的第一确定模块410在多个存储带(Band)中确定待回收Band。具体地,主机端可以分别确定多个Band中每个Band的无效数据块利用率,将其中无效数据块利用率最大的Band确定为待回收Band。可选地,Band的无效数据块利用率等于该Band中无效数据块(Invalid blocks)的个数与全部数据块个数的比值,其中,全部数据块包括该Band中有效数据块(Valid blocks)、无效数据块(Invalid blocks)和空闲数据块(Free blocks)。

在本发明实施例中,主机端的第二确定模块420确定该第一确定模块410确定的待回收Band的类型,该待回收Band的类型包括热存储带(Hot Band)和冷存储带(Cold Band)。具体地,主机端可以根据读写次数,确定待回收Band中每个数据块的冷热度,将待回收Band中所有数据块的冷热度之和确定为该待回收Band的冷热度。当该待回收Band的冷热度大于或等于第一阈值时,将该待回收存储带的类型确定为热Band;当该待回收Band的冷热度小于该第一阈值时,将该待回收Band的类型确定为冷Band。可选地,该第一阈值可以根据经验值确定,本发明并不限于此。可选地,可以通过热数据识别算法Multiple Bloom Filter算法,根据读写操作来确定每个数据块的冷热度,但本发明并不限于此。

可选地,作为一个实施例,该主机端还可以确定每个Band的类型。具体地,主机端可以确定每个Band中包括的数据块的冷热度,一个Band中包括的所有数据块的冷热度之和即为该Band的冷热度,确定每个Band的冷热度,当Band的冷热度大于或等于第二阈值时,确定该Band的类型确定为热Band;当该Band的冷热度小于该第二阈值时,确定该Band的类型为冷Band。可选地,该第二阈值可以根据经验值确定;可选地,也可以将多个Band的 冷热度按照大小进行排序,将冷热度最大的前10%的Band的类型均确定为热Band,将其余90%的Band的类型确定为冷Band,该第二阈值即为排名10%的Band中冷热度最小的Band的冷热度,但本发明并不限于。可选地,待回收Band的类型也可以通过排名确定,例如当待回收Band的冷热度在所有Band的前10%,则确定该待回收Band为热Band,否则为冷Band,但本发明并不限于此。可选地,第一阈值与第二阈值可以相等,也可以不相等,本发明并不限于此。

在本发明实施例中,主机端的第三确定模块430根据该待回收Band的类型,确定垃圾数据回收策略。具体地,当主机端确定了待回收Band的类型后,例如该待回收Band为热Band,则在所有Band中确定除了待回收Band之外的所有热Band,并分别确定这些热Band中每个热Band的空闲数据块利用率。当存在至少一个热Band的空闲数据块利用率大于或等于待回收Band的有效数据块利用率时,在至少一个热Band中确定空闲数据块利用率最小的一个Band,将该空闲数据块利用率最小的Band确定为第一目标Band;当热Band中不存在空闲数据块利用率大于或等于待回收Band的有效数据块利用率时,则将该待回收Band确定为第一目标Band。

可选地,作为一个实施例,当待回收Band的类型被确定为冷Band时,同样地,主机端在多个Band中确定除了待回收Band以外的所有冷Band(Cold Band),并在这些冷Band中确定至少一个冷Band,使得该至少一个冷Band的空闲数据块利用率大于或等于待回收Band的有效数据块利用率,将至少一个冷Band中空闲数据块利用率最小时对应的Band确定为第二目标Band;当冷Band中不存在这样的至少一个冷Band时,则将待回收Band本身确定为第二目标Band。

在本发明实施例中,目标Band用于存储待回收Band中的有效数据块,该目标Band包括第一目标Band和第二目标Band。具体地,垃圾数据回收处理方式可以包括待回收/回收到(To Clean/Clean To)和自我回收(Self-GC)。当确定的目标Band为待回收Band以外的另一个Band时,采用待回收/回收到(To Clean/Clean To)的回收方式,则该待回收存储带为To Clean Band,目标存储带为Clean To Band;当确定的目标Band为待回收Band本身时,则采用自我回收(Self-GC)的回收方式。

在本发明实施例中,Band的空闲块利用率等于该Band中空闲数据块 (Free blocks)个数与Band所有数据块个数的比值,其中,所有数据块包括该Band中有效数据块(Valid blocks)、无效数据块(Invalid blocks)和空闲数据块(Free blocks)。

在本发明实施例中,主机端根据确定的回收方式,确定出垃圾数据回收策略。具体的,当主机端确定的目标Band不是待回收Band本身时,其中,该目标Band包括第一目标Band和第二目标Band,则采用待回收/回收到(To Cle an/Clean To)的回收方式,则垃圾数据回收策略可以确定为<To_Clean_Band,To_Clean_Valid_Bitmap,To_Clean_Valid_Size,lean_To_Band>,其中,To_Clean_Band是用于指示待回收Band的标示符,如Band ID、名字等信息,该标示符指示的Band将被垃圾清理;To_Clean_Valid_Bitmap表示被清理的待回收Band中的有效数据块的位图(bitmap),用来指示该band上哪些块是有效数据块,哪些是无效数据块,以便于设备端可以对有效数据块保留,对无效数据块做垃圾数据处理;To_Clean_Valid_Size表示待回收Band中所有有效数据大小的总和;Clean_To_Band是用于指示目标Band的标示符,该标示符指示的Band是被清理的待回收Band的目标Band,即被清理的待回收Band的有效数据块会写入该目标Band中。可选地,当确定的目标Band是待回收Band本身时,即采用的是自我回收(Self-GC)的回收方式,则主机端确定的垃圾数据回收策略可以为Clean_To_Band=-1,其中,Clean_To_Band表示目标Band,即待回收Band,指示设备端将该Band中的有效数据块保留,删除无效数据块。

在本发明实施例中,主机端的发送模块可以向设备端发送第三确定模块430确定的垃圾数据回收策略,以便于该设备端根据该垃圾数据回收策略,对该待回收Band进行垃圾数据回收处理,对该待回收Band中的有效数据块保留,无效数据块删除,从而释放Band的空间。

应理解,根据本发明实施例的瓦记录感知文件系统中的主机端400可对应于执行本发明实施例中的方法的100,并且瓦记录感知文件系统中的主机端400中的各个模块的上述和其它操作和/或功能分别为了实现图1中的方法的相应流程,为了简洁,在此不再赘述。

因此,本发明实施例的瓦记录感知文件系统中的主机端,确定待回收Band,并根据该待回收Band的类型确定垃圾数据回收策略,可以将热存储带(Hot Band)中的数据块保留在热存储带中,将冷存储带(Cold Band)中 的数据块仍然保留在冷存储带中。因为Hot Band中为热数据块,更新更频繁,在垃圾数据回收的过程中有效数据块更少,而Cold Band中包含冷数据块,更新不频繁,基本不用进行垃圾回收,从而可以加速垃圾回收中有效数据块的拷贝操作。

另外,主机端将该垃圾数据回收策略发送至设备端,以便于设备端根据该垃圾数据回收策略对待回收Band中的垃圾数据进行回收,从而能够避免DSAFS中垃圾回收无法获得上层应用的I/O访问及语义信息的不足,也避免了HSAFS中垃圾回收的数据拷贝对主机CPU的占用,能够提高垃圾回收效率。

图7示出了根据本发明另一实施例的瓦记录感知文件系统中的设备端的示意性框图。如图7所示,根据本发明实施例的瓦记录感知文件系统中设备端500包括::

接收模块510,用于接收该主机端发送的垃圾数据回收策略,该垃圾数据回收策略包括待回收存储带和目标存储带的指示符;

处理模块520,用于根据该接收模块510接收的该垃圾数据回收策略,对该待回收存储带进行回收。

因此,本发明实施例的瓦记录感知文件系统中的设备端,主机端将确定的垃圾数据回收策略发送至设备端,设备端的接收模块接收该垃圾数据回收测量,并根据该垃圾数据回收策略对待回收存储带中的垃圾数据进行回收,从而能够避免DSAFS中垃圾回收无法获得上层应用的I/O访问及语义信息的不足,也避免了HSAFS中垃圾回收的数据拷贝对主机CPU的占用,能够提高垃圾回收效率。

在本发明实施例中,设备端的接收模块510接收主机端发送的垃圾数据回收策略,该垃圾数据回收策略指示设备端对需要回收的存储带(Band)进行垃圾数据回收处理。

在本发明实施例中,设备端的处理模块520根据接收模块510接收的垃圾数据回收策略,对垃圾数据进行回收。具体地,设备端可以先根据垃圾回收策略确定出待回收Band和目标Band,进而对垃圾回收策略进行判断,判断采用哪一种回收方式。例如,当接收到的垃圾数据回收策略为Clean_To_Band=-1,即Clean_To_Band指示的目标Band等于-1时,表示的是待回收Band和目标Band为同一个Band,则采用的是自我回收的方式。 当接收到的垃圾数据回收策略不是上述自我回收策略时,即采用的是待回收/回收到(To Cle an/Clean To)的回收方式,例如,垃圾数据回收策略可以为<To_Clean_Band,To_Clean_Valid_Bitmap,To_Clean_Valid_Size,lean_To_Band>,则根据该策略,设备端确定待回收Band(To_Clean_Band)和目标Band(Clean_To_Band),将待回收Band中有效数据块合并到目标Band中,并删除待回收Band中的无效数据块,从而释放空间。

具体地,对于自我回收(Self-GC)的方式,如图3所示,待回收Band中实线框表示该数据块为有效数据块,虚线框代表无效数据块,对待回收Band采用自我回收的方式就是删除无效数据块,保留有效数据块。待回收Band将包括的有效数据块(如图3中的A1、A2、A3和A7)拷贝到设备端的随机存取存储器(Random-Access Memory,简称“RAM”)中,然后将待回收Band清空,之后将RAM中的原待回收Band中的有效数据块,重新拷到清空之后的待回收Band,即拷到目标Band之中。由于瓦记录的相邻磁道是部分重叠的,也就是说写入任意一个磁道i的时候,与磁道i相邻的几个磁道(比如磁道i+1)中的数据就被破坏了。所以每个Band只能追加写(数据只能顺序写入Band)。如果不遵循追加写的规则,比如在Band中顺序写入A1 A2 A3 A4后,然后再在A2所在地方写入数据,则A3和A4中的数据会被破坏。因此,在每个Band有一个相应的变量叫做Band的写入指示点(Band Write Pointer),可以对应图3中的实心黑色箭头,用于指示接下来数据如果要写入Band,只能写入Band Write Pointer所指示的地方,写完后Band Write Pointer+1。因此,当待回收Band被清空回收后,Band Write Pointer被重置为0。将RAM中有效数据写入后,Band的Band Write Pointer指示数据块A7的下一个数据块。

具体地,对于待回收/回收到(To Clean/Clean To)的方式,如图4所示,待回收Band(To Clean)中实线框表示该数据块为有效数据块,虚线框代表无效数据块,目标Band(Clean To)的实线框中具有标号的表示有效数据块,实线框中没有标号的表示空闲数据块,则设备端将待回收Band中有效数据块添加至目标Band中的空闲数据块的位置,再对待回收Band整体进行回收处理,例如可以删除数据,释放空间。

应理解,根据本发明实施例的瓦记录感知文件系统中的设备端500可对应于执行本发明实施例中的方法200,并且瓦记录感知文件系统中的设备端 500中的各个模块的上述和其它操作和/或功能分别为了实现图2至图4中的各个方法的相应流程,为了简洁,在此不再赘述。

因此,本发明实施例的瓦记录感知文件系统中的设备端,主机端将确定的垃圾数据回收策略发送至设备端,设备端的接收模块接收该垃圾数据回收测量,并根据该垃圾数据回收策略对待回收存储带中的垃圾数据进行回收,从而能够避免DSAFS中垃圾回收无法获得上层应用的I/O访问及语义信息的不足,也避免了HSAFS中垃圾回收的数据拷贝对主机CPU的占用,能够提高垃圾回收效率。

如图8所示,本发明实施例还提供了一种瓦记录感知文件系统600,包括主机端610和设备端620。该主机端用于确定待回收存储带,根据该待回收存储带的类型,确定垃圾数据回收策略,并将该垃圾回收策略发送至设备端;该设备端用于接收该主机端发送的垃圾数据回收策略,该垃圾数据回收策略包括待回收存储带和目标存储带的指示符;根据该接收模块接收的该垃圾数据回收策略,对该待回收存储带进行回收。

主机端610可以是如图6所示的所示的主机端400,设备端620可以是如图7所示的设备端500。

该主机端610还可以包括如图6所示的第一确定模块410,第二确定模块420,第三确定模块430,发送模块440;该设备端620还可以包括如图7所示的接收模块510,处理模块520。

因此,本发明实施例的瓦记录感知文件系统,该系统包括主机端和设备端,主机端将确定的垃圾数据回收策略发送至设备端,设备端的接收模块接收该垃圾数据回收测量,并根据该垃圾数据回收策略对待回收存储带中的垃圾数据进行回收,从而能够避免DSAFS中垃圾回收无法获得上层应用的I/O访问及语义信息的不足,也避免了HSAFS中垃圾回收的数据拷贝对主机CPU的占用,能够提高垃圾回收效率。

如图9所示,本发明实施例还提供了一种主机端700,包括处理器710、存储器720、总线系统730和收发器740。处理器710、存储器720和收发器740通过总线系统730相连,该存储器720用于存储指令,该处理器710用于执行该存储器720存储的指令,以控制收发器740接收信号。其中,该处理器710用于在多个存储带中确定待回收存储带;确定所述待回收存储带的类型,所述待回收存储带的类型包括热存储带和冷存储带;根据所述待回收 存储带的类型,确定垃圾数据回收策略;收发器740用于向所述设备端发送所述垃圾数据回收策略,以便于所述设备端根据所述垃圾数据回收策略对所述待回收存储带进行垃圾数据回收处理。

因此,本发明实施例的瓦记录感知文件系统中的主机端,确定待回收Band,并根据该待回收Band的类型确定垃圾数据回收策略,可以将热存储带(Hot Band)中的数据块保留在热存储带中,将冷存储带(Cold Band)中的数据块仍然保留在冷存储带中。因为Hot Band中为热数据块,更新更频繁,在垃圾数据回收的过程中有效数据块更少,而Cold Band中包含冷数据块,更新不频繁,基本不用进行垃圾回收,从而可以加速垃圾回收中有效数据块的拷贝操作。

应理解,在本发明实施例中,该处理器710可以是中央处理单元(Central Processing Unit,简称为“CPU”),该处理器710还可以是其他通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

该存储器720可以包括只读存储器和随机存取存储器,并向处理器710提供指令和数据。存储器720的一部分还可以包括非易失性随机存取存储器。例如,存储器720还可以存储设备类型的信息。

该总线系统730除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线系统730。

在实现过程中,上述方法的各步骤可以通过处理器710中的硬件的集成逻辑电路或者软件形式的指令完成。结合本发明实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器720,处理器710读取存储器720中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。

可选地,作为一个实施例,处理器710可以调用存储器720中存储的程序代码执行以下操作:确定该多个存储带中每个存储带的无效数据块利用率;将该无效数据块利用率最大的存储带确定为该待回收存储带。

可选地,作为一个实施例,处理器710可以调用存储器720中存储的程序代码执行以下操作:当该待回收存储带的类型为热存储带时,在该多个存储带中的热存储带中确定第一目标存储带;确定该垃圾数据回收策略,该垃圾数据回收策略用于指示该设备端将该待回收存储带中的有效数据块存储到该第一目标存储带的空闲数据块中;当该待回收存储带的类型为冷存储带时,在该多个存储带中的冷存储带中确定第二目标存储带;确定该垃圾数据回收策略,该垃圾数据回收策略用于指示该设备端将该待回收存储带中的有效数据块存储到该第二目标存储带的空闲数据块中。

可选地,作为一个实施例,处理器710可以调用存储器720中存储的程序代码执行以下操作:当该待回收存储带的类型为热存储带时,确定该待回收存储带的有效数据块利用率;确定该多个存储带中的热存储带的空闲数据块利用率;当该多个存储带中除了该待回收存储带以外的热存储带中存在至少一个热存储带的空闲数据块利用率大于或等于该待回收存储带的有效数据块利用率时;将该至少一个热存储带中空闲数据块利用率最小的热存储带确定为第一目标存储带;当该多个存储带中除了该待回收存储带以外的热存储带中不存在空闲数据块利用率大于或等于该待回收存储带的有效数据块利用率的热存储带时;将该待回收存储带确定为第一目标存储带。

可选地,作为一个实施例,处理器710可以调用存储器720中存储的程序代码执行以下操作:当该待回收存储带的类型为冷存储带时,确定该待回收存储带的有效数据块利用率;确定该多个存储带中的冷存储带的空闲数据块利用率;当该多个存储带中除了该待回收存储带以外的冷存储带中存在至少一个冷存储带的空闲数据块利用率大于或等于该待回收存储带的有效数据块利用率时;将该至少一个冷存储带中空闲数据块利用率最小的冷存储带确定为第二目标存储带;当该多个存储带中除了该待回收存储带以外的冷存储带中不存在空闲数据块利用率大于或等于该待回收存储带的有效数据块利用率的冷存储带时;将该待回收存储带确定为第二目标存储带。

可选地,作为一个实施例,处理器710可以调用存储器720中存储的程序代码执行以下操作:根据读写次数,确定该待回收存储带中每个数据块的冷热度;将该待回收存储带中每个数据块的冷热度之和确定为该待回收存储带的冷热度;当该待回收存储带的冷热度大于或等于第一阈值时,确定该待回收存储带的类型为热存储带;或当该待回收存储带的冷热度小于该第一阈 值时,确定该待回收存储带的类型为冷存储带。

可选地,作为一个实施例,处理器710可以调用存储器720中存储的程序代码执行以下操作:确定该多个存储带中每个存储带的冷热度;将该多个存储带中冷热度大于或等于第二阈值的存储带确定为热存储带;将该多个存储带中冷热度小于该第二阈值的存储带确定为冷存储带。

可选地,作为一个实施例,收发器740用于:向该设备端发送该垃圾数据回收策略,该垃圾数据回收策略包括该待回收存储带和该目标存储带的指示符,以便于该设备端根据该垃圾数据回收策略,将该待回收存储带中的有效数据存储到该目标存储带中的空闲数据块中,并对该待回收存储带中的无效数据块进行回收处理,该目标存储带包括该第一目标存储带或该第二目标存储带。

因此,本发明实施例的瓦记录感知文件系统中的主机端,确定待回收Band,并根据该待回收Band的类型确定垃圾数据回收策略,可以将热存储带(Hot Band)中的数据块保留在热存储带中,将冷存储带(Cold Band)中的数据块仍然保留在冷存储带中。因为Hot Band中为热数据块,更新更频繁,在垃圾数据回收的过程中有效数据块更少,而Cold Band中包含冷数据块,更新不频繁,基本不用进行垃圾回收,从而可以加速垃圾回收中有效数据块的拷贝操作。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间 的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1