一种数据写入方法以及相关设备技术

技术编号:37376594 阅读:6 留言:0更新日期:2023-04-27 07:19
本申请实施例公开了一种数据写入方法以及相关设备,用于降低垃圾回收时的读写放大。本申请实施例方法包括:获取第一数据的第一逻辑地址。确定存储池中是否存储有第二数据,第二数据的逻辑地址与第一逻辑地址相同。若存储池中存储有第二数据,则将第一数据写入存储池的第一逻辑块集合,第一逻辑块集合用于存储热数据。数据。数据。

【技术实现步骤摘要】
一种数据写入方法以及相关设备


[0001]本申请实施例涉及计算机领域,尤其涉及一种数据写入方法以及相关设备。

技术介绍

[0002]基于存储设备可以构建抽象化的存储池,该存储池由多个逻辑块组构成。在将数据写入存储池时,如果写入的数据的逻辑地址与存储池中已经存在的某个目标数据的逻辑地址一致,这种情况为重复写入,重复写入的数据不会覆盖目标数据,而是写入存储池中的另一个位置,并将目标数据标记为垃圾数据。当重复写入的次数过多时,存储池中的空间会被大量消耗,为避免这种情况,需要执行垃圾回收(garbage collection,GC),将逻辑块组中中除垃圾数据之外的数据迁移到一个新的逻辑块组中,并释放原有逻辑块组中的所有数据。
[0003]在当前的技术当中,通常在系统的业务空闲的时候执行GC,然而这种方案的数据迁移量较大,并且如果系统不存在业务空闲的情况,如果执行GC会对当前的业务产生影响。

技术实现思路

[0004]本申请实施例提供了一种数据写入方法以及相关设备,用于降低垃圾回收时的读写放大。
[0005]本申请实施例第一方面提供了一种数据写入方法:
[0006]每个在存储池中的数据都有对应的逻辑地址,在第一数据写入存储池之前获取第一数据写入存储池中的第一逻辑地址。之后确定存储池中是否存储有第二数据,该第二数据的逻辑地址与第一逻辑地址相同。若存储池中存储有第二数据,则将第一数据写入存储池的第一逻辑块集合,第一逻辑块集合用于存储热数据。
[0007]本申请实施例中,写入第一逻辑块集合中的数据为重复写入的数据,也即是更新的数据。由于数据的属性与数据的逻辑地址存在对应关系,并且当某种属性的数据需要进行更新时,这种属性的数据在后续继续进行更新的可能性较高。因此在第一逻辑块集合中产生的垃圾数据的比例较高,因此在进行垃圾回收时,所产生的读写放大较小。
[0008]在一种可能的实现方式中,若存储池中未存储有第二数据,则将第一数据写入存储池的第二逻辑块集合,第二逻辑块集合用于存储冷数据。
[0009]本申请实施例中,写入第二逻辑块集合中的数据不是重复写入的数据,因此第二逻辑块集合中产生垃圾数据的比例较低,从而使得在进行垃圾回收时,所产生的读写放大较小。
[0010]在一种可能的实现方式中,如果第一逻辑块集合中垃圾数据的比例大于或等于预设阈值,则将第一数据迁移至新建的逻辑块集合,并释放第一逻辑块集合中的数据。
[0011]在一种可能的实现方式中,第一数据以及所述第二数据的数据属性相同,第一逻辑地址与数据属性存在对应关系。
[0012]在一种可能的实现方式中,还需要创建存储池,该存储池包括多个逻辑块,逻辑块
的存储空间来自机械硬盘。
[0013]本申请实施例第二方面提供了一种存储设备:
[0014]该存储设备包括多个功能模块,所述多个功能模块相互作用,实现上述第一方面及其各实施方式中的方法。多个功能模块可以基于软件、硬件或软件和硬件的结合实现,且所述多个功能模块可以基于具体实现进行任意组合或分割。
[0015]本申请实施例第三方面提供了一种存储设备:
[0016]包括处理器,处理器与存储器耦合,存储器用于存储指令,当指令被处理器执行时,使得显示设备执行如前述第一方面中的方法。
[0017]本申请实施例第四方面提供了一种计算机程序产品,包括代码,当代码在计算机上运行时,使得计算机运行如前述第一方面的方法。
[0018]本申请实施例第五方面提供了一种计算机可读存储介质,其上存储有计算机程序或指令,其特征在于,计算机程序或指令被执行时,其上存储有计算机程序或指令,计算机程序或指令被执行时,使得计算机执行如前述第一方面的方法。
附图说明
[0019]图1为本申请实施例中数据写入方法所应用的系统示意图;
[0020]图2为本申请实施例中构建存储池的一个示意图;
[0021]图3为本申请实施例中垃圾回收的一个示意图;
[0022]图4为本申请实施例中数据写入方法的一个流程示意图;
[0023]图5a为本申请实施例中第一数据写入的流程示意图;
[0024]图5b为本申请实施例中根据位图查找第二数据的一个示意图;
[0025]图6为本申请实施例中第一逻辑块集合以及第二逻辑块集合中数据的分布示意图;
[0026]图7为本申请实施例中垃圾回收的另一示意图;
[0027]图8为本申请实施例中存储设备的一个结构示意图。
具体实施方式
[0028]下面结合附图,对本申请的实施例进行描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。本领域普通技术人员可知,随着技术发展和新场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
[0029]本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0030]本申请实施例提供了一种数据写入方法,用于减少垃圾回收时的数据迁移量。
[0031]本申请实施例可以应用于如图1所示的系统中,在该系统中,用户通过应用程序来
存取数据。运行这些应用程序的计算机被称为“应用服务器”。应用服务器100可以是物理机,也可以是虚拟机。物理应用服务器包括但不限于桌面电脑、服务器、笔记本电脑以及移动设备。应用服务器通过光纤交换机110访问存储设备120以存取数据。然而,交换机110只是一个可选设备,应用服务器100也可以直接通过网络与存储设备120通信。或者,光纤交换机110也可以替换成以太网交换机、InfiniBand交换机、RoCE(RDMA over Converged Ethernet)交换机等。
[0032]图1所示的存储设备120是一个集中式存储系统。集中式存储系统的特点是有一个统一的入口,所有从外部设备来的数据都要经过这个入口,这个入口就是集中式存储系统的引擎121。引擎121是集中式存储系统中最为核心的部件,许多存储系统的高级功能都在其中实现。
[0033]如图1所示,引擎121中有一个或多个控制器,图1以引擎包含两个控制器为例予以说明。控制器0与控制器1之间具有镜像通道,那么当控制器0将一份数据写入其内存124后,可以通过镜像通道将数据的副本发送给控制器1,控制器1将所述副本存储在自己本地的内存124中。由此,控制器0和控制器1互为备份,当控制器0发生故障时,控制器1可以接管控制器0的业务,当控制器1发生故障时,控制器0可以接本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据写入方法,其特征在于,包括:获取第一数据的第一逻辑地址;确定存储池中是否存储有第二数据,所述第二数据的逻辑地址与所述第一逻辑地址相同;若所述存储池中存储有所述第二数据,则将所述第一数据写入所述存储池的第一逻辑块集合,所述第一逻辑块集合用于存储热数据。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:若所述存储池中未存储有所述第二数据,则将所述第一数据写入所述存储池的第二逻辑块集合,所述第二逻辑块集合用于存储冷数据。3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:若所述第一逻辑块集合中垃圾数据的占比大于或等于预设阈值,则将所述第一数据迁移至新建的逻辑块集合;释放所述第一逻辑块集合中的数据。4.根据权利要求3所述的方法,其特征在于,所述第一数据以及所述第二数据的数据属性相同,所述第一逻辑地址与所述数据属性存在对应关系。5.根据权利要求1至4所述的方法,其特征在于,所述方法还包括:创建所述存储池,所述存储池包括多个逻辑块,逻辑块的存储空间来自机械硬盘。6.一种存储设备,其特征在于,包括:处理单元,用于获取第一数据的第一逻辑地址;所述处理单元,还用于确定存储池中是否存储有第二数据,所述第二数据的逻辑地址与所述第一逻辑地址相同;所述处理单元,还用于若所述存储池中存储有所述...

【专利技术属性】
技术研发人员:李劲松高军
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1