CN114442949A - 一种垃圾数据回收方法及系统 - Google Patents

一种垃圾数据回收方法及系统 Download PDF

Info

Publication number
CN114442949A
CN114442949A CN202210046168.0A CN202210046168A CN114442949A CN 114442949 A CN114442949 A CN 114442949A CN 202210046168 A CN202210046168 A CN 202210046168A CN 114442949 A CN114442949 A CN 114442949A
Authority
CN
China
Prior art keywords
data
garbage
garbage data
recovery
actual
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
CN202210046168.0A
Other languages
English (en)
Inventor
王鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN202210046168.0A priority Critical patent/CN114442949A/zh
Publication of CN114442949A publication Critical patent/CN114442949A/zh
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System (AREA)

Abstract

本发明提供了一种垃圾数据回收方法及系统,方法包括获取对象及对象的实际数据大小;遍历对象的数据结构blob,计算所有数据结构blob占用的实际物理磁盘空间;在实际数据大小和占用的实际物理磁盘空间均满足预设的回收条件时,创建新数据结构blob,将对象重新写入被分配的新磁盘空间中,并在写完对象后,释放原有数据及其存储空间。本发明可有效识别并处理存在垃圾数据的对象,释放垃圾数据占用的空间,减小存储系统的空间放大。并且由于使用了单独线程并设定了启动条件,可以减小垃圾数据回收对正常业务的影响。

Description

一种垃圾数据回收方法及系统
技术领域
本发明涉及存储技术领域,尤其是一种垃圾数据回收方法及系统。
背景技术
Bluestore(Ceph存储引擎)作为Ceph(分布式存储系统)的新一代存储引擎,绕过本地文件系统直接管理裸设备,因此可以自主设定最小分配单元大小,并通过blob(bluestore中对应数据逻辑段和物理磁盘空间的数据结构)将逻辑数据块对应到物理磁盘的空间上。同时引入了重定向写,即在修改写时重新创建blob并分配磁盘空间写入新数据,在新数据落盘后修改对象元数据引用到新blob上,极大提高了性能。但这种机制也引入了新的问题,在对象进行clone(克隆)操作后(如在对逻辑卷创建快照),会将对象原有blob标记为不可修改的shared_blob,同时被原对象和clone对象引用,在对原数据修改写时,由于share_blob仍被快照对象引用,因此会重新创建blob并分配新的磁盘空间写入数据,当clone对象删除时,原shared_blob的引用计数会减去相应值,但是由于该shared_blob仍然可能存在有效数据(如clone操作后原对象进行了小于最小分配单元的修改写,原对象该最小分配单元中部分数据未被修改)并被引用,该shared_blob并不会释放。当持续进行clone操作和修改写操作后,删除快照后,会出现快照对象已经全部删除,但是一个对象由于分配了较多的blob,且一些blob中存在着已不被使用的垃圾数据并占用物理空间,导致该对象分配的物理空间远超过数据的实际大小,即对象发生了空间放大。
现有bluestore中已存在空间回收操作,即当写数据时,查找该数据逻辑位置附近的blob个数,如果这段数据被分配了过多blob,则认为存在垃圾数据,会触发空间回收机制,即读取对应范围内的数据,然后再重新写入。
由于bluestore的再分配写机制,所有数据会重新分配blob写入到新的连续磁盘空间,原blob和对应的磁盘空间会被释放。然而该逻辑需要由bluestore的非最小分配单元修改写流程触发,同时写操作触发的空间回收会导致对应写操作时延剧增。对于有快照的业务场景,原有方法并不能很好的识别和处理对象clone后数据碎片化造成的空间浪费。
发明内容
本发明提供了垃圾数据回收方法及系统,用于解决现有方法并不能很好的识别和处理对象clone后数据碎片化造成的空间浪费的问题。
为实现上述目的,本发明采用下述技术方案:
本发明第一方面提供了一种垃圾数据回收方法,所述方法包括以下步骤:
获取对象及对象的实际数据大小;
遍历所述对象的数据结构blob,计算所有数据结构blob占用的实际物理磁盘空间;
在所述实际数据大小和占用的实际物理磁盘空间均满足预设的回收条件时,创建新数据结构blob,将对象重新写入被分配的新磁盘空间中,并在写完对象后,释放原有数据及其存储空间。
进一步地,所述对象通过预设的垃圾数据回收队列中获取;所述获取对象之前包括步骤:
增加垃圾数据回收队列;
判断所述垃圾数据回收队列是否为空;
若是,则遍历对象存储设备OSD中的对象,将对象加入到所述垃圾数据回收队列中,从垃圾数据回收队列中获取对象;
若否,则直接从垃圾数据回收队列中获取对象。
进一步地,所述获取对象之前还包括步骤:
判断存储系统当前状态是否满足垃圾数据回收条件;
若是,则获取对象;
若否,则在预设延时后,重复判断所述垃圾数据回收条件。
进一步地,所述垃圾数据回收条件具体为:
设置允许时间段,作为垃圾数据回收的时间条件;
设置负载阈值,将当前磁盘压力未超过所述负载阈值,作为垃圾数据回收所允许的负载条件。
进一步地,所述预设的回收条件具体为:
对象的实际数据大小大于预设值,且所述实际物理磁盘空间与所述对象实际数据大小的比值超过预设比值。
进一步地,所述将对象重新写入前,增加读写锁保护,在对象数据写完后,释放所述读写锁。
进一步地,所述获取对象之前还包括步骤:
增加垃圾数据回收线程,并在所述垃圾数据回收线程开始后获取对象。
本发明第二方面提供了一种垃圾数据回收系统,所述系统包括:
信息采集单元,用于获取对象及对象的实际数据大小;
信息处理单元,用于遍历所述对象的数据结构blob,计算所有数据结构blob占用的实际物理磁盘空间;
垃圾数据回收单元,在所述实际数据大小和占用的实际物理磁盘空间均满足预设的回收条件时,创建新数据结构blob,将对象重新写入被分配的新磁盘空间中,并在写完对象后,释放原有数据及其存储空间。
进一步地,所述系统还包括垃圾数据回收队列,所述垃圾数据回收队列存储OSD的对象,并用户所述信息采集单元的数据采集。
进一步地,所述系统还包括初始化单元,所述初始化单元用于创建垃圾数据回收线程及垃圾数据回收条件的设置。
本发明第二方面的所述垃圾数据回收系统能够实现第一方面及第一方面的各实现方式中的方法,并取得相同的效果。
发明内容中提供的效果仅仅是实施例的效果,而不是发明所有的全部效果,上述技术方案中的一个技术方案具有如下优点或有益效果:
1、本发明基于bluestore存储引擎,根据对象的占用空间超出对象实际大小的比例判断对象是否存在较多垃圾数据,如果超出过多则触发垃圾回收重写对象,释放浪费的存储空间。可有效识别并处理存在垃圾数据的对象,释放垃圾数据占用的空间,减小存储系统的空间放大。并且由于使用了单独线程并设定了启动条件,可以减小垃圾数据回收对正常业务的影响。
2、将OSD中的对象加入垃圾数据回收队列,对象从垃圾数据回收队列中获取,使用队列可以记录未进行垃圾回收的对象,在下次垃圾回收触发后不必重新获取对象,无需从第一个对象开始遍历和判断,提高操作效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明所述方法实施例的流程示意图;
图2是本发明所述方法实施例的其一实现方式的流程示意图;
图3是本发明所述系统实施例的结构示意图。
具体实施方式
为能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本发明进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实现本发明的不同结构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。此外,本发明可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本发明省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本发明。
如图1所示,本发明实施例提供了一种垃圾数据回收方法,所述方法包括以下步骤:
S1,获取对象及对象的实际数据大小;
S2,遍历所述对象的数据结构blob,计算所有数据结构blob占用的实际物理磁盘空间;
S3,在所述实际数据大小和占用的实际物理磁盘空间均满足预设的回收条件时,创建新数据结构blob,将对象重新写入被分配的新磁盘空间中,并在写完对象后,释放原有数据及其存储空间。
步骤S3中预设的回收条件包括对象的实际数据大小大于预设值,且所述实际物理磁盘空间与所述对象实际数据大小的比值超过预设比值。具体为:
对象实际数据大小大于4M(该值由参数设置,可根据需要调整),在ceph中,一个对象的最大数据大小为4M,若对象实际数据大小小于4M,则说明该对象还未被写满数据,不进行垃圾数据回收;对象所有blob占用实际物理空间与对象实际数据大小的比例超过1.2倍(该倍数可由参数调整),此时认为该对象存在大量垃圾数据。
本发明实施例的其一实现方式中,所述对象通过预设的垃圾数据回收队列中获取;所述获取对象之前包括步骤:增加垃圾数据回收队列;判断所述垃圾数据回收队列是否为空;若是,则遍历对象存储设备OSD中的对象,将对象加入到所述垃圾数据回收队列中,从垃圾数据回收队列中获取对象;若否,则直接从垃圾数据回收队列中获取对象。
本发明实施例的其一实现方式中,所述获取对象之前还包括步骤:增加垃圾数据回收线程,并在所述垃圾数据回收线程开始后获取对象。
如图2所示,在垃圾回收数据线程开始后,首先需要判断存储系统当前是否满足垃圾数据回收条件,包括:
时间条件:使用可调节参数设置,一般设置为晚间业务压力较小的时段,如果不在参数设置的时间段内,则停止垃圾数据回收;
负载条件:获取当前磁盘压力大小,若磁盘压力超过设定阈值,说明此时业务读写较多,停止垃圾数据回收。
只有同时满足以上时间条件和负载条件,垃圾数据回收线程才继续执行,否则延时一段时间后返回重新判断。
若系统满足垃圾数据回收条件,则从垃圾数据回收队列中取出对象。若垃圾数据回收队列为空,则遍历OSD(Object-based Storage Device,对象存储设备)中所有onode(Bluestore对象)对象加入队列。从队列中取出对象后,首先获取对象的实际数据大小,然后遍历对象所有blob,并对所有blob占用的实际物理磁盘空间求和。若对象满足预设的回收条件,则认为该对象存在大量垃圾数据。
在对象满足垃圾数据回收条件时,调用垃圾回收函数对对象进行重写。为避免此时对象被修改,在该过程增加加读写锁保护。首先读取对象所有数据,然后将该数据再写入到对象中,由于bluestore满足最小分配单元的再分配写机制,该对象会创建新blob,然后被分配新的磁盘空间写入数据。在数据写完成后,还需要修改对象元数据,将其引用修改为新的blob。在元数据修改提交数据库后,释放读写锁,此次垃圾数据回收完成,线程返回值起始重新执行,进行下一个对象的垃圾数据回收。另外,若在对象重写数据过程中失败,由于元数据并未修改,此时对象仍引用原blob,因此并不会造成数据不一致。
如图3所示,本发明实施例还提供了一种垃圾数据回收系统,所述系统包括信息采集单元1、信息处理单元2和垃圾数据回收单元3。
信息采集单元1用于获取对象及对象的实际数据大小;信息处理单元2用于遍历所述对象的数据结构blob,计算所有数据结构blob占用的实际物理磁盘空间;垃圾数据回收单元3在所述实际数据大小和占用的实际物理磁盘空间均满足预设的回收条件时,创建新数据结构blob,将对象重新写入被分配的新磁盘空间中,并在写完对象后,释放原有数据及其存储空间。
本发明实施例的其一实现方式中,所述系统还包括垃圾数据回收队列4,所述垃圾数据回收队列4存储OSD的对象,并用户所述信息采集单元的数据采集。
本发明实施例的其一实现方式中,所述系统还包括初始化单元5,所述初始化单元5用于创建垃圾数据回收线程及垃圾数据回收条件的设置。
上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。

Claims (10)

1.一种垃圾数据回收方法,其特征是,所述方法包括以下步骤:
获取对象及对象的实际数据大小;
遍历所述对象的数据结构blob,计算所有数据结构blob占用的实际物理磁盘空间;
在所述实际数据大小和占用的实际物理磁盘空间均满足预设的回收条件时,创建新数据结构blob,将对象重新写入被分配的新磁盘空间中,并在写完对象后,释放原有数据及其存储空间。
2.根据权利要求1所述垃圾数据回收方法,其特征是,所述对象通过预设的垃圾数据回收队列中获取;所述获取对象之前包括步骤:
增加垃圾数据回收队列;
判断所述垃圾数据回收队列是否为空;
若是,则遍历对象存储设备OSD中的对象,将对象加入到所述垃圾数据回收队列中,从垃圾数据回收队列中获取对象;
若否,则直接从垃圾数据回收队列中获取对象。
3.根据权利要求1所述垃圾数据回收方法,其特征是,所述获取对象之前还包括步骤:
判断存储系统当前状态是否满足垃圾数据回收条件;
若是,则获取对象;
若否,则在预设延时后,重复判断所述垃圾数据回收条件。
4.根据权利要求3所述垃圾数据回收方法,其特征是,所述垃圾数据回收条件具体为:
设置允许时间段,作为垃圾数据回收的时间条件;
设置负载阈值,将当前磁盘压力未超过所述负载阈值,作为垃圾数据回收所允许的负载条件。
5.根据权利要求1所述垃圾数据回收方法,其特征是,所述预设的回收条件具体为:
对象的实际数据大小大于预设值,且所述实际物理磁盘空间与所述对象实际数据大小的比值超过预设比值。
6.根据权利要求1所述垃圾数据回收方法,其特征是,所述将对象重新写入前,增加读写锁保护,在对象数据写完后,释放所述读写锁。
7.根据权利要求1所述垃圾数据回收方法,其特征是,所述获取对象之前还包括步骤:
增加垃圾数据回收线程,并在所述垃圾数据回收线程开始后获取对象。
8.一种垃圾数据回收系统,其特征是,所述系统包括:
信息采集单元,用于获取对象及对象的实际数据大小;
信息处理单元,用于遍历所述对象的数据结构blob,计算所有数据结构blob占用的实际物理磁盘空间;
垃圾数据回收单元,在所述实际数据大小和占用的实际物理磁盘空间均满足预设的回收条件时,创建新数据结构blob,将对象重新写入被分配的新磁盘空间中,并在写完对象后,释放原有数据及其存储空间。
9.根据权利要求8所述垃圾数据回收系统,其特征是,所述系统还包括垃圾数据回收队列,所述垃圾数据回收队列存储OSD的对象,并用户所述信息采集单元的数据采集。
10.根据权利要求8所述垃圾数据回收系统,其特征是,所述系统还包括初始化单元,所述初始化单元用于创建垃圾数据回收线程及垃圾数据回收条件的设置。
CN202210046168.0A 2022-01-14 2022-01-14 一种垃圾数据回收方法及系统 Withdrawn CN114442949A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210046168.0A CN114442949A (zh) 2022-01-14 2022-01-14 一种垃圾数据回收方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210046168.0A CN114442949A (zh) 2022-01-14 2022-01-14 一种垃圾数据回收方法及系统

Publications (1)

Publication Number Publication Date
CN114442949A true CN114442949A (zh) 2022-05-06

Family

ID=81366994

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210046168.0A Withdrawn CN114442949A (zh) 2022-01-14 2022-01-14 一种垃圾数据回收方法及系统

Country Status (1)

Country Link
CN (1) CN114442949A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115826886A (zh) * 2023-02-24 2023-03-21 浪潮电子信息产业股份有限公司 追加写模式的数据垃圾回收方法、装置、系统及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115826886A (zh) * 2023-02-24 2023-03-21 浪潮电子信息产业股份有限公司 追加写模式的数据垃圾回收方法、装置、系统及存储介质
CN115826886B (zh) * 2023-02-24 2023-05-12 浪潮电子信息产业股份有限公司 追加写模式的数据垃圾回收方法、装置、系统及存储介质

Similar Documents

Publication Publication Date Title
US10725669B2 (en) Incremental snapshot based technique on paged translation systems
CN106598878B (zh) 一种固态硬盘冷热数据分离方法
US10725903B2 (en) Unified paging scheme for dense and sparse translation tables on flash storage systems
US11816027B2 (en) Translation lookup and garbage collection optimizations on storage system with paged translation table
CN101944119B (zh) 一种智能电子设备的实时事件管理方法
CN105786410A (zh) 一种提高数据存储系统处理速度的方法及数据存储系统
CN111880731B (zh) 一种数据处理方法、装置及相关组件
CN110750372B (zh) 基于共享内存的日志系统及日志管理方法
CN109086141B (zh) 内存管理方法和装置以及计算机可读存储介质
CN106445405A (zh) 一种面向闪存存储的数据访问方法及其装置
CN107066349A (zh) 一种集群文件系统数据保护的方法及系统
CN116088770B (zh) 数据管理方法及装置、系统、电子设备、存储介质
CN114706836B (zh) 一种基于机载嵌入式数据库的数据生命周期管理方法
CN108255608B (zh) 一种内存池的管理方法
CN114442949A (zh) 一种垃圾数据回收方法及系统
CN100580669C (zh) 在Flash存储介质上的关于文件分配表的缓存实现方法
CN105653466B (zh) 数据储存装置以及快闪存储器控制方法
CN103617008A (zh) 车载视频监控终端的双sd卡多媒体文件存储系统及方法
CN105740098A (zh) 备份数据中过期数据的判定方法及系统
CN110781166B (zh) 存储系统中数据管理方法和装置
CN111858159A (zh) 一种基于链式克隆特性实现的备份方法与系统
CN111752905A (zh) 一种基于对象存储的大文件分布式缓存系统
CN114780489B (zh) 一种实现分布式块存储底层gc的方法及装置
CN102141964A (zh) 一种磁带重复使用的方法及装置
CN111722805B (zh) 一种高效获取磁盘读写io数据信息的系统及其方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
WW01 Invention patent application withdrawn after publication
WW01 Invention patent application withdrawn after publication

Application publication date: 20220506