CN113687774A - 空间回收方法、装置及设备 - Google Patents
空间回收方法、装置及设备 Download PDFInfo
- Publication number
- CN113687774A CN113687774A CN202110815683.6A CN202110815683A CN113687774A CN 113687774 A CN113687774 A CN 113687774A CN 202110815683 A CN202110815683 A CN 202110815683A CN 113687774 A CN113687774 A CN 113687774A
- Authority
- CN
- China
- Prior art keywords
- data
- data block
- storage
- utilization rate
- utilization
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 60
- 238000011084 recovery Methods 0.000 title claims abstract description 53
- 238000013508 migration Methods 0.000 claims abstract description 59
- 230000005012 migration Effects 0.000 claims abstract description 59
- 238000012545 processing Methods 0.000 claims description 14
- 230000004044 response Effects 0.000 claims description 9
- 230000008569 process Effects 0.000 description 16
- 238000004064 recycling Methods 0.000 description 15
- 238000010586 diagram Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
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)
Abstract
本申请实施例提供一种空间回收方法、装置及设备。其中,通过设置不同利用率对应的多个存储结构;在存储系统中的多个数据块中的任一数据块写入数据时,计算数据块的利用率,并基于数据块满块时的利用率,将数据块的数据块标识存储至对应的存储结构中;响应于空间回收指令,按照利用率从小到大的排列顺序,选择至少一个存储结构对应的多个数据块进行数据迁移。本申请实施例提供的技术方案可以有效提高存储系统在进行空间回收过程中的回收效率。
Description
技术领域
本申请实施例涉及分布式存储技术领域,尤其涉及一种空间回收方法、装置及设备。
背景技术
为了满足个人和企业对飞速增长数据的存储需求,分布式存储系统应运而生。为了提高分布式存储系统的可靠性,很多企业采用追加写的写入方式存储数据,即在写入的某一数据需要修改时,是在磁盘的某一新的存储位置写入修改的数据,因此,原来的存储位置存储的数据会变成无效数据,追加写的方式会使磁盘中存在大量无效数据,从而磁盘的大量存储空间会被浪费,因此,需要及时对磁盘上无效数据的空间进行回收。
由于现有存储系统一般是将该存储系统所有磁盘的存储空间分成多个数据块进行数据存储,针对采用追加的写入方式进行数据存储的存储系统的空间回收方法都是通过扫描存储系统中各个数据块的利用率,其中,利用率是指有效单元数据空间所占数据块总空间的比例,然后对利用率满足预设阈值的满块的数据块进行回收。由于该方法需要遍历存储系统中所有的数据块,效率低下。
发明内容
本申请实施例提供一种空间回收方法、装置及设备,用以解决现有技术中存储空间回收过程中效率低下的问题。
第一方面,本申请实施例中提供了一种空间回收方法,包括:
设置多个利用率对应的多个存储结构;
在任一个数据块满块的情况下,基于所述数据块的利用率,将所述数据块的数据块标识存储至与所述任一数据块利用率相同的存储结构中;
响应于空间回收指令,按照利用率从小到大的排列顺序,选择至少一个存储结构对应的多个数据块进行数据迁移。
第二方面,本申请实施例提供了一种空间回收装置,该装置包括:
设置模块,用于设置多个利用率对应的多个存储结构;
存储模块,用于在任一个数据块满块的情况下,基于所述数据块的利用率,将所述数据块的数据块标识存储至与所述任一数据块利用率相同的存储结构中;
迁移模块,用于响应于空间回收指令,按照利用率从小到大的排列顺序,选择至少一个存储结构对应的多个数据块进行数据迁移。
所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
第三方面,本申请实施例提供一种计算设备,包括处理组件以及存储组件;所述存储组件存储一条或多条计算机指令;所述一条或多条计算机指令用以被所述处理组件调用执行;所述处理组件用于:在任一个数据块满块的情况下,基于所述数据块的利用率,将所述数据块的数据块标识存储至与所述任一数据块利用率相同的存储结构中;响应于空间回收指令,按照利用率从小到大的排列顺序,选择至少一个存储结构对应的多个数据块进行数据迁移。
第四方面,本申请实施例提供一种计算机存储介质,计算机存储介质存储有计算程序,当所述计算程序被计算设备执行时,使处理器至少可以实现如第一方面所述的空间回收方法。
本申请实施例中,设置不同利用率对应的多个存储结构;在存储系统中的多个数据块中的任一数据块写入数据时,计算数据块的利用率,并基于数据块满块时的利用率,将数据块的数据块标识存储至对应的存储结构中;响应于空间回收指令,按照利用率从小到大的排列顺序,选择至少一个存储结构对应的多个数据块进行数据迁移,从而能够在进行空间回收过程中,一方面不必遍历存储系统中的所有数据块,另一方面能够优先迁移利用率低的存储结构对应的数据块中的数据,从而不仅简化了进行空间回收过程的回收步骤,提高了回收效率,且由于利用率低的存储结构对应的数据块释放的空间大,进一步提高了存储系统在进行空间回收过程中的回收效率。
本申请的这些方面或其他方面在以下实施例的描述中会更加简明易懂。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本申请提供的空间回收方法一个实施例的流程图;
图2示出了本申请提供的空间回收方法另一个实施例的流程图;
图3示出了本申请提供的空间回收方法一个实施例的场景示意图;
图4示出了本申请提供的回收装置一个实施例的结构示意图;
图5示出了与本申请提供的与图4对应的消息中间件的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
在本申请的说明书和权利要求书及上述附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如101、102等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
承接上述背景技术,一般情况下,分布式存储系统会设置有多个存储节点,在存储数据之前,分布式存储系统将所有节点的磁盘作为一个存储池,然后将存储池中每块磁盘划分为多个条带,其中,多个条带为多个相同的小数据块;根据数据冗余的类型将多个条带中的至少一个条带组成一个逻辑数据块,该逻辑数据块包括数据部分和非数据部分,数据冗余是指为了防止写入数据的丢失,在某一磁盘写入数据的同时,在其他磁盘写入与该数据相关联的数据,其中,该相关联的数据包括:写入数据的副本数据以及用于恢复写入数据的编码数据。数据部分用于存放用户写入的数据,对应于不同的数据冗余类型,非数据部分可以用于存放用户写入的数据的副本数据或者用于恢复写入数据的编码数据。
为了表示方便,下文用数据块表示上述逻辑数据块。
为了解决现有技术中在存储系统需要进行空间回收的过程中,回收效率低下的问题,本申请的发明思路是:设置多个利用率对应的多个存储结构,由于在存储数据之前,分布式存储系统将各个节点的存储空间划分为多个数据块,因此,在任一个数据块满块的情况下,基于该数据块的利用率,将该数据块的数据块标识存储至对应的存储结构中,从而在接收到针对该存储系统的空间回收指令时,按照利用率从小到大的排列顺序,选择至少一个存储结构对应的多个数据块进行数据迁移。
由于数据块在满块时的数据块标识基于数据块的利用率被存储在对应的存储结构中,因此,在空间回收的过程中,不必遍历写入数据的多个数据块,直接按照利用率从小到大的排列顺序,选择至少一个存储结构中的多个数据块标识,并基于数据块标识对相应的数据块进行数据迁移,提高了回收效率,且由于利用率越低的数据块中的无效数据空间占比越大,进行空间回收时释放的空间越大,因此,按照利用率从小到大的顺序对数据块进行数据迁移可以在较少时间内释放出较多的存储空间,从而进一步保证空间回收的效率。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请提供的空间回收方法应用于采用追加写方式进行数据存储的存储系统,但不以此为限。
图1示出了本申请提供的空间回收方法一个实施例的流程图,如图1所示,该方法包括:
101、为每个利用率设置对应的存储结构。
存储系统在存储数据之前,分布式存储系统将各个节点的存储空间划分为多个数据块,且在分布式存储系统采用追加写的方式写入数据时,当写入的数据需要被修改时,会产生无效数据和有效数据,其中,针对每一个数据块,其利用率为有效数据所占空间与数据块总空间的比值,其中,无效数据为数据块中被修改的数据,有效数据是指数据块中未被修改的数据。数据在写入数据块时,会规定一个单元数据空间,即允许被写入的最小数据所占存储空间,即有效数据所占用的存储空间为单元数据所占存储空间的倍数,因此,任一数据块对应的利用率的数量为有限的,可选地,该多个利用率的数量即为任一数据块对应的利用率的数量。
其中,分布式存储系统任一节点所使用的存储介质可以包括但不限于:硬盘驱动器(Hard Disk Drive,简称HDD)、固态硬盘(Solid State Disk或Solid State Drive,简称SSD)和存储级内存(Storage Class Memory,简称SCM)中任一种,分布式存储系统的各个节点所使用的存储介质可以相同,也可以不同。
本申请实施例中,对应任一数据块的多个利用率设置多个存储结构,即针对数据块任一个利用率,对应设置一个存储结构。其中,存储结构是指存储数据块的标识或者存储数据块的物理地址段的计算机程序或者数组,例如可以为哈希桶。
可选地,为了提升分布式存储的负载均衡性能,可以将多个存储结构分布在分布式存储系统的多个节点。
102、在任一个数据块满块的情况下,基于数据块的利用率,将数据块的数据块标识存储至对应的存储结构中。
可选地,在步骤102之前还包括:在存储系统中的任一数据块追加写入数据时,更新所述数据块的利用率。
在将数据写入数据块的过程中,每当有数据写入数据块时,数据块都会更新该数据块的利用率,从而基于在数据块满块的情况下,基于数据块当前的利用率,将该数据块的数据块标识存储至当前的利用率对应的存储结构中。
其中,数据块满块是指数据块中的有效数据和无效数据所占存储空间为数据块的总空间的情况。
需要说明的是,在分布式存储系统将各个节点的存储空间划分为多个数据块的过程中,会对划分的多个数据块进行标记,从而形成多个数据块各自的标识,用于查找对应数据块的数据内容。
103、响应于空间回收指令,按照利用率从小到大的排列顺序,选择至少一个存储结构对应的多个数据块进行数据迁移。
响应于空间回收指令,查找预先设置的多个存储结构基于利用率从小到大进行排列的排列顺序,选择利用率小的至少一个存储结构中,对该至少一个存储结构中存储的数据块标识对应的多个数据块进行数据迁移。
可选地,对该至少一个存储结构中存储的数据块标识对应的多个数据块进行数据迁移可以是:
将至少一个存储结构中存储的数据块标识对应的多个数据块中的有效数据迁移至空白数据块,并且将该多个数据块内的无效数据所占空间进行释放,并根据空白数据块的存储空间对释放出的空间进行重组,以生成多个空白数据块以供数据的写入。
本申请实施例中,设置不同利用率对应的多个存储结构;在存储系统中的多个数据块中的任一数据块写入数据时,计算数据块的利用率,并基于数据块满块时的利用率,将数据块的数据块标识存储至对应的存储结构中;响应于空间回收指令,按照利用率从小到大的排列顺序,选择至少一个存储结构对应的多个数据块进行数据迁移,从而能够在进行空间回收过程中,一方面不必遍历存储系统中的所有数据块,另一方面能够优先迁移利用率低的存储结构对应的数据块中的数据,从而不仅简化了进行空间回收过程的回收步骤,由于利用率低的存储结构对应的数据块释放的空间大。因此,该方法还有效提高存储系统在进行空间回收过程中的回收效率。
进一步的,为了表示方便,一般都利用特定标识对多个存储结构进行标记,为了与利用率相对应,利用利用率标识对多个存储结构进行标记,可选地,根据多个存储结构各自对应的多个利用率确定多个存储结构各自对应的利用率标识。图2示出了本申请提供的空间回收方法一个实施例的流程图,如图2所示,该方法包括:
201、根据数据块总空间及单元数据空间,计算数据块中单元数据最大存储数量。
202、设置对应多个利用率的多个存储结构。
可选地,数据块中单元数据最大存储数量=数据块总空间/单元数据空间,由上文可知,任一数据块可能的利用率的数量为数据块中单元数据最大存储数量加一,对应的,可以设置与任一数据块可能的利用率的数量相同数量的存储结构。
203、利用多个存储结构对应的任一数据块的有效单元数据的多个可存储数量除以最大存储数量,得到多个存储结构各自对应的利用率。
204、利用多个存储结构对应的任一数据块的有效单元数据的多个可存储数量对最大存储数量进行取余,获取整数部分和余数部分。
205、若整数部分为1,则将最大存储数量的值确定为数据块对应的利用率标识。
206、若整数部分为0,则将余数部分的值确定为数据块对应的利用率标识。
207、响应于空间回收指令,按照多个利用率标识从小到大的排列顺序,选择利用率标识小的至少一个存储结构对应的多个数据块进行数据迁移。
其中,有效单元数据的多个可存储数量是指数据块内有效数据所占单元数据的数量。
在一个可选的实施例中,数据块总空间为10k,单元数据空间为2k,那么数据块中单元数据最大存储数量为5,即数据块的利用率的数量为6个,若数据块的有效单元数据的多个可存储数量为0个,则该数据块的利用率为有效单元数据的多个可存储数量除以所述最大存储数量,即该数据块的利用率为0%;对应的,若数据块的有效单元数据的多个可存储数量为1个,数据块的利用率为20%;若数据块的有效单元数据的多个可存储数量为2个,数据块的利用率为40%;若数据块的有效单元数据的多个可存储数量为3个,数据块的利用率为60%;若数据块的有效单元数据的多个可存储数量为4个,数据块的利用率为80%;若数据块的有效单元数据的多个可存储数量为5个,数据块的利用率为100%。
即数据块的利用率可以为0%、20%、40%、60%、80%和100%,因此,可以设置6个存储结构,分别对应于上述多个利用率,由于数据块的利用率为利用任一数据块中满块情况下有效单元数据的多个可存储数量除以最大存储数量;数据块的利用率标识为利用任一数据块中满块情况下有效单元数据的多个可存储数量对最大存储数量进行取余,获取取余之后的整数部分和余数部分,并且若整数部分为1,则将最大存储数量的值确定为数据块对应的利用率标识;若整数部分为0,则将余数部分的值确定为数据块对应的利用率标识。比如,利用率为100%的数据块的有效单元数据的多个可存储数量为5,因此,该数据块的有效单元数据的多个可存储数量对最大存储数量进行取余的过程为有效单元数据的多个可存储数量除以最大存储数量,结果为整数部分为1,余数部分为0,因此,该数据块对应的利用率标识为5,利用率为80%的数据块的有效单元数据的多个可存储数量为5,因此,取余结果为整数部分为0,余数部分为4,因此,该数据块对应的利用率标识为4,对应的,0%的存储结构的利用率标识为0、20%的存储结构的利用率标识为1、40%的存储结构的利用率标识为2、60%的存储结构的利用率标识为3、80%的存储结构的利用率标识为4、100%的存储结构的利用率标识为5。
基于利用率和利用率标识的计算过程可知,多个存储结构的多个利用率和多个利用率标识从小到大的顺序是一致的,即存储结构的利用率越小,该存储结构对应的利用率标识越小,可选地,响应于空间回收指令,按照利用率从小到大的排列顺序,选择至少一个存储结构对应的多个数据块进行数据迁移包括:响应于空间回收指令,按照多个利用率标识,选择利用率标识小的至少一个存储结构对应的多个数据块进行数据迁移。
进一步的,在任一个数据块满块的情况下,可以计算该数据块对应的利用率标识,并基于该利用率标识将该数据块的数据块标识存储至相应的存储结构中。可选地,在任一个数据块满块的情况下,基于数据块的利用率,将数据块的数据块标识存储至对应的存储结构中包括:利用任一个数据块满块情况下的有效单元数据的多个可存储数量对最大存储数量进行取余,得到数据块对应的利用率标识;基于利用率标识,将数据块的数据块标识存储至对应的存储结构中。
为了便于理解,以存储结构为哈希桶为例,对上述空间回收方法进行说明,为了叙述方便,假设数据块总空间为10k,单元数据空间为2k,基于数据块的利用率的数量,设置相应数量的哈希桶,由于每一个哈希桶对应于数据块的一个利用率,因此,利用利用率标识对多个哈希桶进行标记,为了表述方便,利用S表示利用率,key表示利用率标识,利用率S用如下公式表示:S=X/N,利用率标识key用如下公式表示:key=X%N,且当X%N的整数部分为1时,key为将数据块的单元数据的最大存储数量的值;当整数部分为0,key为余数部分的值,其中X为有效单元数据的多个可存储数量,N为数据块中单元数据最大存储数量,%为取余符号。X的取值为0,1…,N,对应的,X的取值可以为0、1、2、3、4、5,N为5。
即利用率S和利用率标识key可以为:S=0,key=0;S=20%,key=1;S=40%,key=2;S=60%,key=3;S=80%,key=4;S=100%,key=5。即6个哈希桶对应的利用率标识分别为key=0、key=1、key=2、key=3、key=4、key=5。
对应的,图3示出了本申请提供的空间回收方法一个实施例的场景示意图,如图3所示,设置了6个哈希桶,分别为key=0的哈希桶,key=1的哈希桶,key=2的哈希桶,key=3的哈希桶,key=4的哈希桶,key=5的哈希桶,其中,每个哈希桶分别存储有多个数据块的标识。
进一步的,在任一数据块满块时,计算该数据块对应的key值,从而根据该key值,将数据块的数据块标识存储至对应的哈希桶,以便在接收到空间回收指令之后,响应于该空间回收指令,按照多个key值从小到大的排列顺序,选择至少一个哈希桶对应的多个数据块进行数据迁移,根据上述利用率S和利用率标识key的表达式可知,利用率标识key值在数值大小上与利用率S是相对应的,也就是说,利用率标识key值越小,对应的哈希桶存储的数据块标识对应的数据块的利用率S越小,进行空间回收时释放的存储空间越大。
需要说明的是,由于数据块满块的情况下,数据块中的有效数据可能会被修改,变成无效数据,因此,在数据块的数据块标识被存储到对应的存储结构之后,当数据块中的有效数据的多个可存储数量发生变动,会计算该数据块当前对应的利用率标识key,从而将该数据块的数据块标识根据重新计算的利用率标识重新存储到相应的数据结构中。
在另一个可选的实施例中,由于利用率为0的数据块会被优先回收,且利用率为100%的数据块不用被回收,因此,可以不用设置key=0以及key=5对应的存储结构,即存储结构的数量为数据块中单元数据最大存储数量减一。当任一数据块的利用率为0,直接对该数据块中的数据进行数据迁移,即将该数据块中的存储空间进行释放,得到空白数据块;当任一数据的利用率为100%时,不用存储该数据块的数据块标识至存储结构中,直到该数据块中的有效数据的多个可存储数量发生变动,重新计算该数据块对应的利用率标识,并基于该利用率标识,将该数据块标识存储至相应的存储结构中。
在一个可选的实施例中,在响应于空间回收指令,按照利用率从小到大的排列顺序,选择至少一个存储结构对应的多个数据块进行数据迁移之前,方法还包括:根据多个存储结构中多个数据块各自的利用率,确定多个数据块的总利用率;若总利用率满足回收条件,则生成空间回收指令。
由于数据块可以实时更新自身的利用率,因此,在数据块满块的情况下,可以实时得知数据块当前的利用率,进一步的,多个存储结构的多个数据块的总利用率是可以实时获取的,当总利用率低于预设阈值,说明分布式存储系统中的无效数据所占存储空间过大,此时,需要对无效数据所占空间进行回收,即对至少一个存储结构对应的至少一个数据块中的数据进行迁移。
可选地,基于空间回收指令,按照利用率从小到大的排列顺序,选择至少一个存储结构对应的多个数据块进行数据迁移包括:若总利用率低于第一预设阈值且大于第二预设阈值,则按照迁移数据的第一流量小于写入数据的第二流量的方式以及按照利用率从小到大的排列顺序,选择至少一个存储结构对应的多个数据块进行数据迁移,其中,第一预设阈值大于第二预设阈值;若总利用率低于第二预设阈值,则按照第一流量大于第二流量的方式以及按照利用率从小到大的排列顺序,选择至少一个存储结构对应的多个数据块进行数据迁移。
可选地,分布式存储系统处理数据的能力是有限的,即分布式系统处理迁移数据的第一流量和分布式存储系统处理写入数据的第二流量是一定的,因此,在进行数据迁移的时候,要考虑到不影响数据的写入。
可选地,针对总利用率,设定两个预设阈值,当总利用率低于第一预设阈值大于第二预设阈值时,说明分布式存储系统的无效数据所占空间过多但还不影响数据的写入,其中,第一预设阈值大于第二预设阈值,此时按照迁移数据的第一流量小于写入数据的第二流量的方式以及按照利用率从小到大的排列顺序,选择至少一个存储结构对应的多个数据块进行数据迁移,当迁移数据的第一流量小于写入数据的第二流量,而写入数据中的无效数据所占空间比有效数据所占空间大,导致总利用率进一步减小,当总利用率小于第二预设阈值时,说明无效数据所占空间过大,且影响了数据的写入,可以通过加大迁移数据的第一流量的方式来释放空间来满足数据的写入不受影响,因此,需要按照第一流量大于第二流量的方式以及按照利用率从小到大的排列顺序,选择至少一个存储结构对应的多个数据块进行数据迁移,从而增大分布式存储系统的利用率。
进一步的,由于迁移数据的流量大于写入数据的流量,因此,在一段时间之后,分布式存储系统的总利用率会逐渐增大,在总利用率增大到第一阈值时,说明分布式存储系统的无效数据所占用的存储空间较小,则停止数据迁移。
由于数据在存储的过程中,可能会出现部分数据丢失或者部分数据被破坏的情况,因此,可以在数据迁移之前,对待迁移的数据进行校验。可选地,在响应于空间回收指令,按照利用率从小到大的排列顺序,选择至少一个存储结构对应的多个数据块进行数据迁移之前,方法还包括:对任一存在待迁移数据的数据块中的多个数据进行校验;若对多个数据校验成功,则执行按照利用率从小到大的排列顺序,选择至少一个存储结构对应的多个数据块进行数据迁移的步骤;若对多个数据校验失败,则读取与多个数据的关联数据,对多个数据进行恢复。
其中,多个数据的关联数据为多个数据的副本数据或者多个数据对应的纠删码数据。
可选地,在将数据写入分布式存储的系统中,可能采用纠删码的写入方式或者采用多副本的写入方式,其中,纠删码的写入方式为在写入数据的同时添加在其他磁盘写入纠删码数据,纠删码数据用于在写入数据丢失时,还原写入数据;多副本的写入方式为在写入数据的同时在其他磁盘拷贝一份写入数据,用于在写入数据丢失时,读取该拷贝的写入数据。对于任意一种写入方式,在写入的过程中,均会在写入过程中添加校验数据,以便在数据迁移之前采用对应的校验方法对待迁移的数据进行校验,其中,检验方法可以为奇偶校验、循环冗余校验(Cyclic Redundancy Check,简称CRC)、信息组校验码(Block CheckCharacter,简称BCC)、md5校验和数字签名中任一种。
在一个可选的实施例中,在任一数据块在写满数据的过程中,会在数据块中添加校验数据,比如在写入数据的过程中添加md5校验码:即在数据块满块的情况下,将写入数据块的所有数据转换成md5码保存在数据块中,其中,md5码所占存储空间较小,可以忽略不计,进一步的,在任一数据块进行数据迁移之前,将待迁移的数据转换成md5码,从而将该md5码与之前保存的md5码进行比较,若该md5码与之前保存的md5码一致,说明数据块中的数据完整,则对数据块中的数据进行迁移;若该md5码与之前保存的md5码不一致,则说明数据块中的数据被损坏,则读取该数据块中数据的副本数据,或者根据该数据块中的数据对应的纠删码数据对该数据进行恢复,从而进一步的对数据块中的有效数据进行迁移。
进一步的,在数据块中的数据校验成功或者回复成功之后,在分布式存储系统中选取至少一个空白数据块,将待迁移数据所在数据块的有效数据迁移至该至少一个空白数据块,另外,将待迁移数据所在数据块的无效数据所占空间进行释放,即删除无效数据,并且将释放后的存储空间按照空白数据块的存储空间进行重组,以供其他数据的写入。
图4示出了本申请提供的回收装置一个实施例的结构示意图,如图4所述,该装置包括:
设置模块41,用于设置多个利用率对应的多个存储结构;
存储模块42,用于在任一个数据块满块的情况下,基于所述数据块的利用率,将所述数据块的数据块标识存储至与所述任一数据块利用率相同的存储结构中;
迁移模块43,用于响应于空间回收指令,按照利用率从小到大的排列顺序,选择至少一个存储结构对应的多个数据块进行数据迁移。
可选地,所述设置模块具体用于根据数据块总空间及单元数据空间,计算数据块中单元数据最大存储数量;设置对应多个利用率的多个存储结构。
可选地,该装置还包括:
确定模块,用于根据所述多个存储结构各自对应的多个利用率确定所述多个存储结构各自对应的利用率标识。
所述确定模块,具体用于利用所述多个存储结构对应的任一数据块的有效单元数据的多个可存储数量除以所述最大存储数量,得到所述多个存储结构各自对应的利用率;利用所述多个存储结构对应的任一数据块的有效单元数据的多个可存储数量对所述最大存储数量进行取余,得到所述多个存储结构各自对应的利用率标识。
所述迁移模块43,具体用于响应于空间回收指令,按照所述多个利用率标识从小到大的排列顺序,选择利用率标识小的至少一个存储结构对应的多个数据块进行数据迁移。
可选地,该装置还包括:
确定模块,用于根据所述多个存储结构中多个数据块各自的利用率,确定所述多个数据块的总利用率。
生成模块,用于若所述总利用率满足回收条件,则生成空间回收指令。
所述迁移模块43,具体用于若所述总利用率低于所述第一预设阈值且大于所述第二预设阈值,则按照迁移数据的第一流量小于写入数据的第二流量的方式以及按照利用率从小到大的排列顺序,选择至少一个存储结构对应的多个数据块进行数据迁移,其中,所述第一预设阈值大于所述第二预设阈值;若所述总利用率低于所述第二预设阈值,则按照所述第一流量大于所述第二流量的方式以及按照所述利用率从小到大的排列顺序,选择至少一个存储结构对应的多个数据块进行数据迁移。
可选地,该装置还包括:
校验模块,用于对任一存在待迁移数据的数据块中的多个数据进行校验;若对所述多个数据校验成功,则执行所述按照利用率从小到大的排列顺序,选择至少一个存储结构对应的多个数据块进行数据迁移的步骤;若对所述多个数据校验失败,则读取与所述多个数据的关联数据,对所述多个数据进行恢复。
可选地,该装置还包括:
更新模块,用于在存储系统中的任一数据块追加写入数据时,更新所述数据块的利用率。
图4所述的空间回收装置可以执行图1-图3所示实施例所述的空间回收方法,其实现原理和技术效果不再赘述。对于上述实施例中的空间回收装置其中各个模块、单元执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
在一个可能的设计中,图4所示实施例的空间回收装置可以实现为消息中间件,如图5所示,该消息中间件可以包括存储组件501以及处理组件502;
所述存储组件501存储一条或多条计算机指令,其中,所述一条或多条计算机指令供所述处理组件502调用执行。
所述处理组件502用于:设置多个利用率对应的多个存储结构;
在任一个数据块满块的情况下,基于所述数据块的利用率,将所述数据块的数据块标识存储至与所述任一数据块利用率相同的存储结构中;
响应于空间回收指令,按照利用率从小到大的排列顺序,选择至少一个存储结构对应的多个数据块进行数据迁移。
其中,处理组件502可以包括一个或多个处理器来执行计算机指令,以完成上述的方法中的全部或部分步骤。当然处理组件也可以为一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
存储组件501被配置为存储各种类型的数据以支持在终端的操作。存储组件可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
当然,计算设备必然还可以包括其他部件,例如输入/输出接口、通信组件等。
输入/输出接口为处理组件和外围接口模块之间提供接口,上述外围接口模块可以是输出设备、输入设备等。
通信组件被配置为便于计算设备和其他设备之间有线或无线方式的通信等。
其中,该计算设备可以为物理设备或者云计算平台提供的弹性计算主机等,此时计算设备即可以是指云服务器,上述处理组件、存储组件等可以是从云计算平台租用或购买的基础服务器资源。
本申请实施例还提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被计算机执行时可以实现上述图1-图3所示实施例的空间回收方法。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (11)
1.一种空间回收的方法,其特征在于,包括:
设置多个利用率对应的多个存储结构;
在任一个数据块满块的情况下,基于所述数据块的利用率,将所述数据块的数据块标识存储至与所述任一数据块利用率相同的存储结构中;
响应于空间回收指令,按照利用率从小到大的排列顺序,选择至少一个存储结构对应的多个数据块进行数据迁移。
2.根据权利要求1所述的方法,其特征在于,所述设置多个利用率对应的多个存储结构包括:
根据数据块总空间及单元数据空间,计算数据块中单元数据最大存储数量;
根据所述最大存储数量,确定所述多个存储结构的数量。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
根据所述多个存储结构各自对应的多个利用率确定所述多个存储结构各自对应的利用率标识。
4.根据权利要求3所述的方法,其特征在于,所述根据所述多个存储结构各自对应的多个利用率确定所述多个存储结构各自对应的利用率标识包括:
利用所述多个存储结构对应的任一数据块的有效单元数据的多个可存储数量除以所述最大存储数量,得到所述多个存储结构各自对应的利用率;
利用所述多个存储结构对应的任一数据块的有效单元数据的多个可存储数量对所述最大存储数量进行取余,获取整数部分和余数部分;
若所述整数部分为1,则将所述最大存储数量的值确定为所述数据块对应的利用率标识;
若所述整数部分为0,则将所述余数部分的值确定为所述数据块对应的利用率标识;
所述响应于空间回收指令,按照利用率从小到大的排列顺序,选择至少一个存储结构对应的多个数据块进行数据迁移包括:
响应于空间回收指令,按照所述多个利用率标识从小到大的排列顺序,选择利用率标识小的至少一个存储结构对应的多个数据块进行数据迁移。
5.根据权利要求3所述的方法,其特征在于,所述在任一个数据块满块的情况下,基于所述数据块的利用率,将所述数据块的数据块标识存储至对应的存储结构中包括:
在任一数据块满块的情况下,基于所述数据块的利用率,确定出所述数据块的利用率标识;
基于所述利用率标识,将所述数据块的数据块标识存储至对应的存储结构中。
6.根据权利要求1所述的方法,其特征在于,在响应于空间回收指令,按照利用率从小到大的排列顺序,选择至少一个存储结构对应的多个数据块进行数据迁移之前,所述方法还包括:
根据所述多个存储结构中多个数据块各自的利用率,确定所述多个数据块的总利用率;
若所述总利用率满足回收条件,则生成空间回收指令。
7.根据权利要求6所述的方法,其特征在于,所述基于空间回收指令,按照利用率从小到大的排列顺序,选择至少一个存储结构对应的多个数据块进行数据迁移包括:
若所述总利用率低于第一预设阈值且大于第二预设阈值,则按照迁移数据的第一流量小于写入数据的第二流量的方式以及按照利用率从小到大的排列顺序,选择至少一个存储结构对应的多个数据块进行数据迁移,其中,所述第一预设阈值大于所述第二预设阈值;
若所述总利用率低于所述第二预设阈值,则按照所述第一流量大于所述第二流量的方式以及按照所述利用率从小到大的排列顺序,选择至少一个存储结构对应的多个数据块进行数据迁移。
8.根据权利要求1-7中任一项所述的方法,其特征在于,在响应于空间回收指令,按照利用率从小到大的排列顺序,选择至少一个存储结构对应的多个数据块进行数据迁移之前,所述方法还包括:
对任一存在待迁移数据的数据块中的多个数据进行校验;
若对所述多个数据校验成功,则执行所述按照利用率从小到大的排列顺序,选择至少一个存储结构对应的多个数据块进行数据迁移的步骤;
若对所述多个数据校验失败,则读取与所述多个数据的关联数据,对所述多个数据进行恢复。
9.根据权利要求1所述的方法,其特征在于,在任一个数据块满块的情况下,基于所述数据块的利用率,将所述数据块的数据块标识存储至与所述任一数据块利用率相同的存储结构中之前,所述方法还包括:
在存储系统中的任一数据块追加写入数据时,更新所述数据块的利用率。
10.一种空间回收装置,其特征在于,包括:
设置模块,用于设置多个利用率对应的多个存储结构;
存储模块,用于在任一个数据块满块的情况下,基于所述数据块的利用率,将所述数据块的数据块标识存储至与所述任一数据块利用率相同的存储结构中;
迁移模块,用于响应于空间回收指令,按照利用率从小到大的排列顺序,选择至少一个存储结构对应的多个数据块进行数据迁移。
11.一种计算设备,其特征在于,包括处理组件以及存储组件;
所述存储组件存储一条或多条计算机指令;所述一条或多条计算机指令用以被所述处理组件调用执行;
所述处理组件用于:设置多个利用率对应的多个存储结构;
在任一个数据块满块的情况下,基于所述数据块的利用率,将所述数据块的数据块标识存储至与所述任一数据块利用率相同的存储结构中;
响应于空间回收指令,按照利用率从小到大的排列顺序,选择至少一个存储结构对应的多个数据块进行数据迁移。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110815683.6A CN113687774A (zh) | 2021-07-19 | 2021-07-19 | 空间回收方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110815683.6A CN113687774A (zh) | 2021-07-19 | 2021-07-19 | 空间回收方法、装置及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113687774A true CN113687774A (zh) | 2021-11-23 |
Family
ID=78577445
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110815683.6A Pending CN113687774A (zh) | 2021-07-19 | 2021-07-19 | 空间回收方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113687774A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1746856A (zh) * | 2004-09-09 | 2006-03-15 | 微软公司 | 用于在数据保护系统中保护数据的方法、系统和装置 |
CN107229414A (zh) * | 2016-03-24 | 2017-10-03 | 杭州海康威视数字技术股份有限公司 | 存储空间回收方法及装置 |
US9892066B1 (en) * | 2016-10-31 | 2018-02-13 | International Business Machines Corporation | Dynamically adjusting read data return sizes based on interconnect bus utilization |
US20190056877A1 (en) * | 2017-08-15 | 2019-02-21 | Red Hat Israel, Ltd. | Storage domain growth management |
CN109445681A (zh) * | 2018-08-27 | 2019-03-08 | 华为技术有限公司 | 数据的存储方法、装置和存储系统 |
CN111813347A (zh) * | 2020-07-24 | 2020-10-23 | 济南浪潮数据技术有限公司 | 垃圾回收空间管理方法、装置及计算机可读存储介质 |
-
2021
- 2021-07-19 CN CN202110815683.6A patent/CN113687774A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1746856A (zh) * | 2004-09-09 | 2006-03-15 | 微软公司 | 用于在数据保护系统中保护数据的方法、系统和装置 |
CN107229414A (zh) * | 2016-03-24 | 2017-10-03 | 杭州海康威视数字技术股份有限公司 | 存储空间回收方法及装置 |
US9892066B1 (en) * | 2016-10-31 | 2018-02-13 | International Business Machines Corporation | Dynamically adjusting read data return sizes based on interconnect bus utilization |
US20190056877A1 (en) * | 2017-08-15 | 2019-02-21 | Red Hat Israel, Ltd. | Storage domain growth management |
CN109445681A (zh) * | 2018-08-27 | 2019-03-08 | 华为技术有限公司 | 数据的存储方法、装置和存储系统 |
CN111813347A (zh) * | 2020-07-24 | 2020-10-23 | 济南浪潮数据技术有限公司 | 垃圾回收空间管理方法、装置及计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109725822B (zh) | 用于管理存储系统的方法、设备和计算机程序产品 | |
CN108170555B (zh) | 一种数据恢复方法及设备 | |
US11698728B2 (en) | Data updating technology | |
US11093387B1 (en) | Garbage collection based on transmission object models | |
CN104461641A (zh) | 一种数据烧写方法、系统、烧写设备以及目标设备 | |
US10901646B2 (en) | Update of RAID array parity | |
CN114116321A (zh) | 一种冗余数据管理方法、装置、计算机设备和存储介质 | |
CN111506450A (zh) | 用于数据处理的方法、设备和计算机程序产品 | |
CN109426587B (zh) | 一种数据恢复方法及装置 | |
CN109144766B (zh) | 一种数据存储、重构方法和装置、及电子设备 | |
CN112612576A (zh) | 虚拟机备份方法、装置、电子设备及存储介质 | |
CN115202589B (zh) | 放置组成员选择方法、装置、设备及可读存储介质 | |
CN113687774A (zh) | 空间回收方法、装置及设备 | |
WO2023082629A1 (zh) | 数据存储方法及装置、电子设备和存储介质 | |
CN113553215A (zh) | 一种基于环境信息的纠删码数据恢复优化方法及装置 | |
CN107257281A (zh) | Nor flash存储密钥记录的方法、装置及计算机可读存储介质 | |
US11645333B1 (en) | Garbage collection integrated with physical file verification | |
CN112463460A (zh) | 一种基于纠删码的小块数据恢复方法及系统 | |
CN111291126B (zh) | 数据回收方法、装置、设备及存储介质 | |
CN113821378B (zh) | 一种云硬盘备份方法、系统、存储介质及设备 | |
CN117851132B (zh) | 一种分布式对象存储的数据恢复优化方法 | |
CN117971390A (zh) | 一种虚拟机恢复方法和服务器 | |
CN112835746A (zh) | 一种基于静态链表的高安全性文件存储方法 | |
CN113656406A (zh) | 一种索引页合并方法、装置、设备及介质 | |
CN115933981A (zh) | 数据迁移方法、装置、分布式系统和计算机可读存储介质 |
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 |