System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及存储,尤其涉及一种垃圾回收方法及装置。
技术介绍
1、垃圾回收(garbage collection,gc)操作,是当存储空间中的可用存储空间较小时回收已用存储空间的操作。在分布式存储系统中,一般由客户端统一进行gc操作。如客户端保存有数据块与各个服务端访问的各个存储设备之间的映射关系,在进行垃圾回收操作时,客户端确定一个服务端访问的一个存储设备存储的数据块为有效数据块之后,向该服务端发送读请求,读取出存储在该服务端访问的该存储设备上的有效数据块。该服务端在该有效数据块被客户端读取出之后,将该存储设备设置为可用存储设备。客户端对全部读取出的有效数据块进行聚合,然后再次打散写入到各个服务端访问的各个存储设备上。
2、但是,由客户端统一进行垃圾回收操作时,常常出现跨服务端的数据搬移,导致客户端与服务端之间的网络带宽开销较高,影响垃圾回收效率。并且,在进行数据搬移时常常需要客户端和服务端的中央处理器(central processing unit,cpu)参与读写,导致客户端和服务端的cpu开销较高,也会影响垃圾回收效率。
技术实现思路
1、本申请实施例提供一种垃圾回收方法及装置,用于提高垃圾回收效率。
2、第一方面,本申请实施例提供一种垃圾回收方法,该方法可以应用于分布式存储系统的一个服务端,所述一个服务端访问至少一个存储设备。该方法包括:接收来自所述分布式存储系统的客户端的垃圾回收请求,所述垃圾回收请求携带目标单位数据块,所述目标单位数据块为有效数据
3、上述方案中,客户端可以向一个服务端发送垃圾回收请求。该服务端可以根据该垃圾回收请求确定目标单位数据块为有效数据块,并向存储目标单位数据块的存储设备发送搬移命令,使得该存储设备将目标单位数据块由第一存储位置搬移至第二存储位置。由于是一个服务端在其所访问的各个存储设备的各个存储位置之间进行数据搬移,并非是客户端在各个服务端之间进行数据搬移,减小了客户端与服务端之间的网络带宽开销,并且由于是存储设备来执行搬移操作,并非是客户端和服务端的cpu来执行搬移操作,减小了客户端与服务端之间的cpu开销,提高了垃圾回收效率。
4、在一种可能的实现方式中,所述第二存储位置位于第二存储设备中;所述向所述第一存储设备发送第一搬移命令,包括:向所述第一存储设备发送第二搬移命令,所述第二搬移命令包括所述第一存储设备的标识、所述第一存储位置、所述第二存储设备的标识、所述第二存储位置、所述目标单位数据块的长度,所述第一存储位置用于指示搬移前所述目标单位数据块在所述第一存储设备中的存储位置,所述第二存储位置用于指示搬移后所述目标单位数据块在所述第二存储设备中的存储位置。
5、上述实现方式中,在第二存储位置与第一存储位置是不同存储设备的存储位置时,服务端可以向存储目标单位数据块的存储设备发送跨盘搬移命令,由于是存储设备来执行搬移操作,并非是客户端和服务端的cpu来执行搬移操作,降低了客户端与服务端之间的cpu开销,提高了垃圾回收效率。
6、在一种可能的实现方式中,所述向所述第一存储设备发送第二搬移命令之后,包括:将第一映射关系更新为第二映射关系,所述第一映射关系为所述目标单位数据块与所述第一存储设备上的所述第一存储位置之间的映射关系,所述第二映射关系为所述目标单位数据块与所述第二存储设备上的所述第二存储位置之间的映射关系。
7、上述实现方式中,服务端可以在进行数据搬移之后,将目标单位数据块与第一存储设备的第一存储位置之间的第一映射关系更新为目标单位数据块与第一存储设备的第二存储位置之间的第二映射关系,使得服务端在进行数据搬移之后,也可以根据第二映射关系快速确定目标单位数据块的存储位置,提高数据读取、搬移效率。
8、在一种可能的实现方式中,所述第二存储位置位于所述第一存储设备中;所述向所述第一存储设备发送第一搬移命令,包括:向所述第一存储设备发送第三搬移命令,所述第三搬移命令包括所述第一存储位置、所述第二存储位置和所述目标单位数据块的长度,所述第一存储位置用于指示搬移前所述目标单位数据块在所述第一存储设备中的存储位置,所述第二存储位置用于指示搬移后所述目标单位数据块在所述第一存储设备中的存储位置。
9、上述实现方式中,在第二存储位置与第一存储位置是同一存储设备的存储位置时,服务端可以向存储目标单位数据块的存储设备发送盘内搬移命令,由于是存储设备来执行搬移操作,并非是客户端和服务端的cpu来执行搬移操作,降低了客户端与服务端之间的cpu开销,提高了垃圾回收效率。
10、在一种可能的实现方式中,所述向所述第一存储设备发送第三搬移命令之后,包括:将第一映射关系更新为第三映射关系,所述第一映射关系为所述目标单位数据块与所述第一存储设备上的所述第一存储位置之间的映射关系,所述第三映射关系为所述目标单位数据块与所述第一存储设备上的所述第二存储位置之间的映射关系。
11、上述实现方式中,服务端可以在进行数据搬移之后,将目标单位数据块与第一存储设备的第一存储位置之间的第一映射关系更新为目标单位数据块与第二存储设备的第二存储位置之间的第三映射关系,使得服务端在进行数据搬移之后,也可以根据第三映射关系快速确定目标单位数据块的存储位置,提高数据读取、搬移效率。
12、在一种可能的实现方式中,所述至少一个存储设备为固态硬盘(solid statedrive,ssd);所述向所述第一存储设备发送第一搬移命令,包括:通过非易失性内存标准(non-volatile memory express,nvme)协议向所述第一存储设备发送所述第一搬移命令,所述第一搬移命令用于指示所述第一存储设备的控制器将所述目标单位数据块由所述第一存储位置搬移至所述第二存储位置。
13、上述实现方式中,在存储设备为ssd时,服务端可以通过nvme协议向存储设备的控制器发送搬移命令,使得存储设备的控制器来执行搬移操作,由于并非是客户端和服务端的cpu来执行搬移操作,降低了客户端与服务端之间的cpu开销,提高了垃圾回收效率。
14、第二方面,本申请实施例还提供一种垃圾回收装置,该装置可以应用于分布式存储系统的一个服务端,所述一个服务端访问至少一个存储设备。该装置具有实现上述第一方面或第一方面的任一可能的设计所描述的方法的功能,该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块或单元,比如包括通信模块以及处理模块。
15、通信模块,用于接收来自本文档来自技高网...
【技术保护点】
1.一种垃圾回收方法,其特征在于,所述方法应用于分布式存储系统的一个服务端,所述一个服务端访问至少一个存储设备,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述第二存储位置位于第二存储设备中;所述向所述第一存储设备发送第一搬移命令,包括:
3.根据权利要求2所述的方法,其特征在于,所述向所述第一存储设备发送第二搬移命令之后,包括:
4.根据权利要求1所述的方法,其特征在于,所述第二存储位置位于所述第一存储设备中;所述向所述第一存储设备发送第一搬移命令,包括:
5.根据权利要求4所述的方法,其特征在于,所述向所述第一存储设备发送第三搬移命令之后,包括:
6.根据权利要求1所述的方法,其特征在于,所述至少一个存储设备为固态硬盘SSD;所述向所述第一存储设备发送第一搬移命令,包括:
7.一种垃圾回收装置,其特征在于,所述装置应用于分布式存储系统的一个服务端,所述一个服务端访问至少一个存储设备,所述装置包括:
8.如权利要求7所述的装置,其特征在于,所述第二存储位置位于第二存储设备中;所述通
9.如权利要求8所述的装置,其特征在于,所述处理模块,还用于:
10.如权利要求7所述的装置,其特征在于,所述第二存储位置位于所述第一存储设备中;所述通信模块,具体用于:
11.如权利要求10所述的装置,其特征在于,所述处理模块,还用于:
12.如权利要求7所述的装置,其特征在于,所述至少一个存储设备为SSD;所述通信模块,具体用于:
13.一种计算设备集群,其特征在于,所述计算设备集群中包括至少一个计算设备,每个计算设备包括处理器和存储器;所述至少一个计算设备中的存储器,用于存储计算机程序指令;
14.一种计算机可读存储介质,其特征在于,包括计算机程序指令,当所述计算机程序指令由计算设备执行时,所述计算设备执行如权利要求1-6中的任一项所述方法。
15.一种包含指令的计算机程序产品,其特征在于,当所述指令被计算设备运行时,使得所述计算设备执行如权利要求1-6中的任一项所述方法。
...【技术特征摘要】
1.一种垃圾回收方法,其特征在于,所述方法应用于分布式存储系统的一个服务端,所述一个服务端访问至少一个存储设备,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述第二存储位置位于第二存储设备中;所述向所述第一存储设备发送第一搬移命令,包括:
3.根据权利要求2所述的方法,其特征在于,所述向所述第一存储设备发送第二搬移命令之后,包括:
4.根据权利要求1所述的方法,其特征在于,所述第二存储位置位于所述第一存储设备中;所述向所述第一存储设备发送第一搬移命令,包括:
5.根据权利要求4所述的方法,其特征在于,所述向所述第一存储设备发送第三搬移命令之后,包括:
6.根据权利要求1所述的方法,其特征在于,所述至少一个存储设备为固态硬盘ssd;所述向所述第一存储设备发送第一搬移命令,包括:
7.一种垃圾回收装置,其特征在于,所述装置应用于分布式存储系统的一个服务端,所述一个服务端访问至少一个存储设备,所述装置包括:
8.如权利要求7所述的装置,其特...
【专利技术属性】
技术研发人员:王宇恒,孙旭岩,杨于哲,
申请(专利权)人:华为云计算技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。