本公开涉及垃圾回收,具体涉及固态硬盘的垃圾回收方法、装置、计算机设备及存储介质。
背景技术:
1、固态硬盘(ssd)的nand(notand,与非门)闪存只允许顺序写,而上层软件的写会有多种行为,所以固态硬盘一般用ftl(flash translation layer,闪存转换层)表将各种写行为转为super block(超级块)内的顺序写。这种情况下,一个super block内有的数据可能有效,而有的数据可能无效;如果ssd需要回收有效空间,就要进行垃圾回收(cg)。
2、当前的设计中,在使用ssd时,ssd的垃圾回收由硬盘进行控制,上层host(主机)对此没有控制,ssd中经常出现不受上层控制的垃圾回收会影响系统的qos(quality ofservice,服务质量)。
技术实现思路
1、有鉴于此,本公开提供了一种固态硬盘的垃圾回收方法、装置、计算机设备及存储介质,以解决主机难以主动控制垃圾回收的问题。
2、第一方面,本公开提供了一种固态硬盘的垃圾回收方法,应用于主机文件系统,包括:
3、在需要对固态硬盘进行垃圾回收的情况下,确定需要进行垃圾回收的第一回收单元;
4、从所述主机文件系统中获取所述第一回收单元的第一回收单元区段链表;所述第一回收单元区段链表用于记录属于所述第一回收单元的区段;
5、判断所述第一回收单元区段链表中各个区段是否有效;
6、在所述第一回收单元区段链表中存在有效区段的情况下,将所述有效区段对应的数据重写至第二回收单元,并将所述有效区段写入至所述第二回收单元的第二回收单元区段链表;
7、在所述第一回收单元区段链表中存在无效区段的情况下,释放所述无效区段对应的存储空间。
8、第二方面,本公开提供了一种固态硬盘的垃圾回收装置,应用于主机文件系统,包括:
9、回收单元确定模块,用于在需要对固态硬盘进行垃圾回收的情况下,确定需要进行垃圾回收的第一回收单元;
10、链表获取模块,用于从所述主机文件系统中获取所述第一回收单元的第一回收单元区段链表;所述第一回收单元区段链表用于记录属于所述第一回收单元的区段;
11、判断模块,用于判断所述第一回收单元区段链表中各个区段是否有效;
12、垃圾回收模块,用于在所述第一回收单元区段链表中存在有效区段的情况下,将所述有效区段对应的数据重写至第二回收单元,并将所述有效区段写入至所述第二回收单元的第二回收单元区段链表;在所述第一回收单元区段链表中存在无效区段的情况下,释放所述无效区段对应的存储空间。
13、第三方面,本公开提供了一种计算机设备,包括:存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行上述第一方面或其对应的任一实施方式的固态硬盘的垃圾回收方法。
14、第四方面,本公开提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机指令,计算机指令用于使计算机执行上述第一方面或其对应的任一实施方式的固态硬盘的垃圾回收方法。
15、第五方面,本公开提供了一种计算机程序产品,包括计算机指令,计算机指令用于使计算机执行上述第一方面或其对应的任一实施方式的固态硬盘的垃圾回收方法。
16、本公开基于为回收单元对应的区段,设置回收单元区段链表,主机文件系统记录并维护各个回收单元的回收单元区段链表;在需要对第一回收单元进行垃圾回收时,主机文件系统基于该第一回收单元的第一回收单元区段链表即可实现垃圾回收,且在垃圾回收过程中可以对其中的有效区段和无效区段分别执行相应的处理,可以保证有效区段的数据能够被正确读写。该方案可以实现主机侧对ssd进行垃圾回收,即能够在主机文件系统层面进行垃圾回收,能够帮助系统提升qos。
1.一种固态硬盘的垃圾回收方法,其特征在于,应用于主机文件系统,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述判断所述第一回收单元区段链表中各个区段是否有效,包括:
3.根据权利要求2所述的方法,其特征在于,所述确定所述第一回收单元区段链表中的目标区段对应的目标文件,包括:
4.根据权利要求3所述的方法,其特征在于,所述从所述主机文件系统中获取所述目标文件的文件区段链表,包括:
5.根据权利要求1所述的方法,其特征在于,在所述主机文件系统中,记录有各个回收单元的回收单元元数据和各个区段的区段元数据;所述回收单元元数据包括:回收单元标识和回收单元区段链表;所述区段元数据包括:文件标识、用于链接到文件区段链表的第一链接指针和用于链接到回收单元区段链表的第二链接指针;
6.根据权利要求1所述的方法,其特征在于,还包括:
7.根据权利要求1至6中任一项所述的方法,其特征在于,所述确定需要进行垃圾回收的第一回收单元,包括:
8.根据权利要求1至6中任一项所述的方法,其特征在于,还包括:
9.一种固态硬盘的垃圾回收装置,其特征在于,应用于主机文件系统,所述装置包括:
10.一种计算机设备,其特征在于,包括:
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机指令,所述计算机指令用于使计算机执行权利要求1至8中任一项所述的固态硬盘的垃圾回收方法。