CN117806528A - 一种数据存储方法及装置 - Google Patents
一种数据存储方法及装置 Download PDFInfo
- Publication number
- CN117806528A CN117806528A CN202211178062.2A CN202211178062A CN117806528A CN 117806528 A CN117806528 A CN 117806528A CN 202211178062 A CN202211178062 A CN 202211178062A CN 117806528 A CN117806528 A CN 117806528A
- Authority
- CN
- China
- Prior art keywords
- target
- partition
- data
- fragments
- tape
- 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 76
- 238000013500 data storage Methods 0.000 title claims abstract description 21
- 238000005192 partition Methods 0.000 claims abstract description 200
- 239000012634 fragment Substances 0.000 claims abstract description 132
- 230000015654 memory Effects 0.000 claims description 23
- 238000004064 recycling Methods 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 7
- 238000011084 recovery Methods 0.000 claims description 7
- 238000012217 deletion Methods 0.000 abstract description 22
- 230000037430 deletion Effects 0.000 abstract description 22
- 238000012795 verification Methods 0.000 abstract description 5
- 238000013508 migration Methods 0.000 abstract 1
- 230000005012 migration Effects 0.000 abstract 1
- 238000004891 communication Methods 0.000 description 9
- 206010047289 Ventricular extrasystoles Diseases 0.000 description 8
- 230000008569 process Effects 0.000 description 8
- 238000005129 volume perturbation calorimetry Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 6
- 230000007423 decrease Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000004083 survival effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
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/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
-
- 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/0604—Improving or facilitating administration, e.g. storage management
-
- 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/0608—Saving storage space on storage systems
-
- 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/0614—Improving the reliability of storage systems
-
- 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/0644—Management of space entities, e.g. partitions, extents, pools
-
- 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
- G06F3/0649—Lifecycle management
-
- 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/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0686—Libraries, e.g. tape libraries, jukebox
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)
- Library & Information Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种数据存储方法及装置,用于节约存储***的资源,保证存储***的性能。该方法可以应用于存储***,该存储***包括多个磁带。该方法包括:将基于校验方法得到的n个分片分别写入多个分区中目标分区的n个磁带,每个分区包括多个磁带中的n个磁带,并且,多个磁带中的每个磁带最多被划分至一个分区。当确定删除目标分片并且回收所在的目标磁带时,即使对其他分片进行搬迁并标记删除,可以将其他分片所在的磁带限制在一个分区(即目标分区),减少存储***的数据搬迁操作。
Description
技术领域
本申请涉及存储技术领域,尤其涉及一种数据存储方法及装置。
背景技术
磁带因具备成本低、保存时间长等优点,一般被用作深度归档的存储介质。为了提高数据可靠性,存储***通常将待存储的数据写入数据块中的数据分片,并基于校验技术生成数据块中的校验分片,之后将数据块中的数据分片和校验分片分别写入多个磁带。当某个分片丢失时,可以根据数据块中的其他分片(称作关联分片)重建目标分片。
由于磁带不支持部分空间回收,因此,在用户删除写入磁带的分片后,只能将磁带中的该分片标记为删除(或无效),降低磁带的利用率。当磁带的利用率较低时,存储***对磁带中有效数据进行搬迁,并回收磁带的全部存储空间,此时,被标记删除的分片才能被真正删除。
当存储***为了保证关联分片的可靠性,对其他磁带中的关联分片进行搬迁和标记删除时,会降低关联分片所在磁带(称作关联磁带)的利用率,进而导致大量的磁带被回收,存储***需要执行大量的数据搬迁操作,浪费存储***的资源,减低存储***的性能。
发明内容
本申请提供一种数据存储方法及装置,即使存储***对删除分片的关联分片进行搬迁和标记删除,有利于减少存储***的数据搬迁操作,节约存储***的资源,保证存储***性能的稳定性。
第一方面,提供一种数据存储方法,可以应用于存储***,该方法包括:获取目标数据块,所述目标数据块包括n个分片,所述n个分片包括数据分片和校验分片,n为正整数。将所述n个分片分别写入目标分区的n个磁带,所述目标分区为多个分区的一个分区,每个所述分区包括多个磁带中的n个磁带,并且,所述多个磁带中的每个磁带最多被划分至一个所述分区。可选的,在所述多个磁带中回收存储空间的最小单位为所述多个磁带中的至少一个磁带。
假设n个分片中的目标分片被写入目标分区的目标磁带,当确定删除目标分片时,可以将目标分片标记为被删除或无效,目标磁带的利用率下降。当回收目标磁带时,若存储***为了保证目标数据块中其他分片(称作目标分片的关联分片)的可靠性,对目标分片的关联分片进行搬迁并标记删除,会降低该关联分片所在磁带(称作目标分片的关联磁带)的利用率。
目标磁带通常包括多个被标记删除的目标分片,回收目标磁带将降低每个目标分片的关联磁带的利用率。由于同一数据块中的所有分片存储在同一分区中,因此即使存储***对目标分片的关联分片进行搬迁和标记删除,回收目标磁带所影响的磁带将被限制在目标磁带所在的分区中。由于目标磁带最多被划分至一个分区(即目标分区),因此,有利于将回收目标磁带所影响的磁带限制在单个分区(即目标分区)中,从而减少回收目标磁带所影响的磁带的数量,减少存储***的数据搬迁操作,保证存储***性能的稳定性。
可选的,所述方法还包括:当确定删除所述n个分片中的目标分片时,将所述目标分区中存储的所述目标分片标记为无效数据,并更新所述目标分区的利用率,其中,所述目标分区的利用率与所述目标分区中无效数据的总量相关。根据所述目标分区的利用率回收所述目标分区。根据目标分区的利用率一并回收目标分区中的全部磁带,相当于将在所述多个磁带中回收存储空间的最小单位提升至一个分区,无需分别根据每个磁带的利用率下指令回收相应磁带,提高回收效率。
可选的,目标分区为从多个分区中为目标数据块选择的一个分区。
存储***可以包括存储服务器和n个存储设备,每个分区的不同磁带部署于不同存储设备中。可选的,存储服务器可以从多个分区中为目标数据块选择目标分区,之后向n个存储设备发送存储指令,该存储指令携带目标数据块中的一个分片,可选的,该存储指令还指示将分片存储在目标分区的磁带中。可选的,目标分区为从多个分区中为目标数据块随机选择的一个分区。
可选的,所述目标分区为根据所述目标数据块的信息从所述多个分区中确定的。
可选的,所述目标数据块的信息包括所述目标数据块的生命周期(例如存活期)。这样,有利于在分区中写入生命周期相同或接近的数据块,在回收分区时,未被标记为无效数据的数据量较小,有利于减少搬迁(或称备份)有效数据的开销。
可选的,所述目标数据块的信息包括所述目标数据块的标识。每个存储设备接收到存储服务器的存储指令后,可以根据分片所属数据块的标识将分片写入目标分区的磁带,无需存储服务器在存储指令中携带目标分区的标识,有利于减少存储设备对存储服务器的依赖,降低存储服务器的负载。
可选的,所述目标数据块的信息包括所述目标数据块的标识和/或所述目标数据块的生命周期。
可选的,所述n个分片中的数据分片为根据数据的生命周期从写请求指示写入的全部数据中选择的一部分数据。有利于将删除的对象限制在更少分区中,减少回收过程中搬迁操作的开销。
可选的,所述多个磁带为根据运行状态信息从存储集群中选择的磁带,所述运行状态信息指示所述存储集群中每个磁带的运行状态,所述运行状态指示可用状态或不可用状态。这样,有利于避免将目标数据块中的分片存储到不可用的磁带,导致写入失败或降低写入效率
第二方面,提供一种数据存储装置,包括:获取模块,用于获取目标数据块,所述目标数据块包括n个分片,所述n个分片包括数据分片和校验分片,n为正整数。存储模块,用于将所述n个分片分别写入目标分区的n个磁带,所述目标分区为多个分区的一个分区,每个所述分区包括多个磁带中的n个磁带,并且,所述多个磁带中的每个磁带最多被划分至一个所述分区。可选的,在所述多个磁带中回收存储空间的最小单位为所述多个磁带中的至少一个磁带。
可选的,所述装置还包括回收模块,所述回收模块用于:当确定删除所述n个分片中的目标分片时,将所述目标分区中存储的所述目标分片标记为无效数据,并更新所述目标分区的利用率,其中,所述目标分区的利用率与所述目标分区中无效数据的总量相关;根据所述目标分区的利用率回收所述目标分区。
可选的,所述目标分区为根据所述目标数据块的信息从所述多个分区中确定的。
可选的,所述目标数据块的信息包括所述目标数据块的标识和/或所述目标数据块的生命周期。
可选的,所述n个分片中的数据分片为根据数据的生命周期从写请求指示写入的全部数据中选择的一部分数据。
可选的,所述多个磁带为根据运行状态信息从存储集群中选择的磁带,所述运行状态信息指示所述存储集群中每个磁带的运行状态,所述运行状态指示可用状态或不可用状态。
第三方面,提供一种计算设备集群,包括至少一个计算设备,每个计算设备包括处理器和存储器;所述至少一个计算设备的处理器用于执行所述至少一个计算设备的存储器中存储的指令,以使得所述计算设备集群执行如第一方面或第一方面任意一种可能的实现方式所描述的方法。
第四方面,提供一种包含指令的计算机程序产品,当所述指令被计算设备集群运行时,使得所述计算设备集群执行如第一方面或第一方面任意一种可能的实现方式所描述的方法。
第五方面,提供一种计算机可读存储介质,包括计算机程序指令,当所述计算机程序指令由计算设备集群执行时,所述计算设备集群执行如第一方面或第一方面任意一种可能的实现方式所描述的方法。
第六方面,提供一种芯片***,该芯片***包括处理器和接口电路,该处理器通过该接口电路与存储器耦合,该处理器用于执行该存储器中的程序代码,以执行第一方面或第一方面的任意一种可能的实现方式所描述的方法。该芯片***可以由芯片构成,也可以包含芯片和其他分立器件。
第七方面,提供一种存储***,包括多个磁带或存储集群,该存储集群至少包括多个磁带。该存储***还包括如第二方面提供的数据存储装置或如第三方面提供的计算设备集群或如第六方面提供的芯片***。
由于本申请提供的各装置可用于执行前述对应的方法,因此本申请各装置所能获得到的技术效果可参考前述对应的方法所获得的技术效果,此处不再赘述。
附图说明
图1示意性示出存储***一种可能的结构;
图2示意性示出存储服务器将写请求指示写入的多个对象分布式写入磁带池的过程;
图3-1至图3-2示意性示出存储服务器根据删除请求删除写入的至少一个对象的过程;
图4-1和图4-2示意性示出数据存储方法的流程;
图5-1示意性示出按照图4-1所示方法对数据块1~数据块3的存储结果;
图5-2示意性示出回收图5-1所示的磁带1对其他磁带的影响;
图6示意性示出数据存储装置一种可能的结构;
图7示例性示出计算设备一种可能的结构;
图8示例性示出计算设备集群一种可能的结构。
具体实施方式
图1示意性示出本申请适用的一种可能的存储***。该存储***包括存储服务器和存储集群。不限定存储集群中存储设备的数量和类型,图1以存储集群为磁带池(pool)为例而非限定。磁带池包括多个机架(rack),每个机架包括服务器(服务器)和磁带库(tapelibrary),每个磁带库包括多个磁带(tape)。图1以磁带池包括6个机架为例,磁带池可以包括更多或更少的机架。
存储服务器可以获取写请求数据。不限定写请求数据为一个写请求所指示写入的数据,可选的,写请求数据包括一个或多个写请求中每个写请求所指示写入的数据。不限定写请求数据的类型。可选的,该写请求数据可以包括一个或多个对象,或者,包括一个或多个文件。后文以写请求数据包括多个对象为例进行介绍。
存储服务器还可以将写请求数据写入磁带池。可选的,存储服务器可以通过数据块(chunk)追加写方式,将写请求数据写入一个或多个数据块中,进而将写入完成的数据块写入磁带池。不限定写请求数据的大小,后文以写请求数据可以写满3个数据块为例进行介绍。
为了提高写请求数据的可靠性,对于每个数据块,可以根据某种校验技术,将存储服务器配置为对该数据块中的数据进行切片,得到k个数据分片,并为k个数据分片生成m个校验分片,之后将k个数据分片和m个校验分片分布式写入磁带池中。其中,k和m为正整数。不限定校验技术的类型,可选的,该校验技术为纠删码技术或副本技术。后文以该校验技术为配比为4+2的纠删码技术为例。
以k和m分别为4和2为例,对于每个数据块,存储服务器可以将4个数据分片和2个校验分片分别写入6个机架中。每个机架的服务器接收到存储服务器发送的数据分片或校验分片后,可以将其刷到磁带库中。
图2示意性示出存储服务器将写请求指示写入的多个对象分布式写入磁带池的过程。
参考图2,存储服务器在接收到写请求后,将写请求指示写入的多个对象以数据块追加写的方式写入数据块1~数据块3,每个数据块在图2中以包括6个小矩形的矩形区域代表,每个矩形区域中的6个小矩形从左到右依次代表4个数据分片和2个校验分片。为了便于描述,将数据块i中的6个块分别称作分片i_1、分片i_2、……、分片i_6,其中,i为1或2或3,分片i_1~分片i_4为数据分片,分片i_5和分片i_6为校验分片。
参考图2,存储服务器将数据分片1_1、数据分片2_1和数据分片3_1分别发送给机架1的服务器(记为服务器1)。服务器1将接收到的数据分片1_1、数据分片2_1和数据分片3_1暂存在缓存中(图2未示出),之后根据机架1的磁带库(记为磁带库1)中各磁带的运行状态,分别将数据分片1_1、数据分片2_1和数据分片3_1刷到磁带库1的磁带1、磁带库1的磁带1和磁带库1的磁带2中。磁带的运行状态可以指示该磁带为可用状态或不可用状态。服务器1可以将分片写入运行状态为可用状态的磁带中。
可选的,可用状态是指可写状态,当磁带中可写的存储空间较大或磁带正常工作时,磁带的运行状态可以为可用状态。可选的,不可用状态指不可写状态,当磁带中可写的存储空间过小或磁带发生故障时,磁带的运行状态可以为不可用状态。
继续参考图2,存储服务器将数据分片1_2、数据分片2_2和数据分片3_2分别发送给机架2的服务器(记为服务器2)。服务器2将接收到的数据分片1_2、数据分片2_2和数据分片3_2暂存在缓存中(图2未示出),之后根据机架2的磁带库(记为磁带库2)中各磁带的运行状态,分别将数据分片1_2、数据分片2_2和数据分片3_2刷到磁带库2的磁带2、磁带库2的磁带3和磁带库2的磁带3中。
以此类推,机架3的服务器(记为服务器3)将数据分片1_3、数据分片2_3和数据分片3_3刷到机架3的磁带库(记为磁带库3)中,……,机架5的服务器(记为服务器5)将数据分片1_5、数据分片2_5和数据分片3_5刷到机架5的磁带库(记为磁带库5)中。
继续参考图2,存储服务器将数据分片1_6、数据分片2_6和数据分片3_6分别发送给机架6的服务器(记为服务器6)。服务器6将接收到的数据分片1_6、数据分片2_6和数据分片3_6暂存在缓存中(图2未示出),之后根据机架6的磁带库(记为磁带库6)中各磁带的运行状态,分别将数据分片1_6、数据分片2_6和数据分片3_6刷到磁带库6的磁带1、磁带库6的磁带2和磁带库6的磁带3中。
存储服务器不仅支持向磁带池写入一个或多个对象,存储服务器还可以支持删除写入的一部分或全部对象。图3-1至图3-2示意性示出存储服务器根据删除请求删除写入的至少一个对象的过程。
参考图3-1,假设存储服务器接收删除请求,删除请求指示删除对象1~对象3。存储服务器根据元数据分别确定对象1包括分片1_1中,对象2包括分片2_1中,对象3包括分片3_2。
由于磁带不支持部分空间回收,因此,存储***无法在磁带中真正删除分片1_1、分片2_1和分片3_2,而是标记删除分片1_1、分片2_1和分片3_2,这样会降低分片所在磁带的利用率。图3-1以深色背景的分片代表被标记删除(或称被标记为无效数据)的分片,参考图3-1,磁带库1的磁带1和磁带库2的磁带1的利用率下降。
当磁带被整体回收时,磁带中被标记删除的分片才能被真正删除,分片占用的存储空间才能再次处于可用状态。参考图3-2,假设磁带库1的磁带1被回收,磁带库1的磁带1中被标记删除的分片(例如分片1_1和分片2_1)将被真正删除,可能影响所在数据块中其他分片的重建。
为了便于描述,将被回收的磁带称作目标磁带,将目标磁带中被标记删除的每个分片称作目标分片,将与目标分片在同一数据块中的其他分片称作目标分片的关联分片,将存储目标分片的关联分片的磁带称作目标分片的关联磁带。为了保证数据的可靠性,存储***需要对目标磁带中未被标记删除的分片进行搬迁,并且,对目标分片的关联分片进行搬迁和标记删除,这样会降低关联分片所在磁带的利用率。可选的,存储***可以搬迁数据分片而不搬迁校验分片。存储***可以将搬迁后的数据分片作为待写入的数据,以前文介绍的存储方式再次写入磁带池中。
参考图3-2,存储***还可以包括磁带池以外的其他存储设备,以存储搬迁的关联分片。图3-2以其他存储设备为硬盘集群为例,该硬盘集群可以包括一个或多个硬盘。参考图3-2,当回收磁带库1的磁带1时,存储***需要对数据块1中分片1_1以外的分片进行搬迁并标记删除,对数据块2中分片2_1以外的分片进行搬迁并标记删除,被标记删除的分片所在的磁带的利用率下降。
参考图3-1和图3-2,被标记删除的目标分片(例如分片1_1和分片2_1)不仅会降低所在的目标磁带(例如磁带库1的磁带1)的利用率,当回收目标磁带时,还会降低关联磁带的利用率。为了便于描述,因回收目标磁带所导致的利用率下降的其他磁带称作回收目标磁带所影响的磁带。假设数据块1和数据块2中的分片,除了分片1_1和分片2_1被存储在同一磁带,其他分片均存储在不同磁带,那么回收磁带库1的磁带1所影响的磁带至少包括10个磁带。
进一步的,参考图3-2,由于磁带库2的磁带3还包括被标记删除的分片3_2,当磁带库2的磁带3被回收时,为了保证数据块3的可靠性,存储***需要对数据块3中除分片3_2以外的其他分片进行搬迁和标记删除,被标记删除的分片所在的磁带的利用率下降。以此类推,回收目标磁带所影响的磁带可能扩散到整个磁带池中的所有磁带,需要将大量分片搬迁至硬盘集群,并重新写入磁带池,浪费存储***的存储资源和计算资源。
为了减少回收目标磁带所影响的磁带,本申请提供一种数据存储方法。该方法可以应用于图4-1所示的存储***。
参考图4-1,该存储***包括存储服务器和存储集群,存储集群包括多个磁带。不限定每个磁带的类型,只要在多个磁带中回收存储空间的最小单位为多个磁带中的至少一个磁带即可。可选的,该存储***可以为图1所示的存储***,存储集群为图1所示的磁带池,单个磁带为磁带池中的单个或多个磁带。可选的,图4-1所示的存储***还包括其他装置,例如,存储集群还包括一个或多个服务器,每个服务器例如为图1所示的服务器,例如,存储***还包括存储集群以外的其他存储设备(如图3-2所示的硬盘集群)。
参考图4-1,该数据存储方法包括步骤S401和S402。
S401、获取目标数据块;
存储***可以获取目标数据块,该目标数据块包括n个分片,n个分片包括数据分片和校验分片(或称冗余分片),n为大于1的正整数。可选的,校验分片为采用校验技术(或称冗余编码技术)对数据分片进行编码得到的,该校验技术例如为纠删码技术或副本技术等。以该校验技术为配比为k+m的纠删码技术为例,k和m为正整数,那么,n=k+m,且,n个分片包括k个数据分片和m个校验分片。
在一些示例中,存储***以外的其他设备生成并向存储服务器发送目标数据块,例如,客户端或应用服务器生成并向存储服务器发送目标数据块。
或者,在一些示例中,存储***根据写请求生成目标数据块。可选的,参考图4-1,步骤S401包括S4011和S4012。
S4011、接收写请求;
存储***可以接收写请求,该写请求携带指示写入的数据(称作写请求数据)。可选的,该写请求可以包括一个或多个写请求,该写请求数据包括一个或多个写请求中每个写请求所指示写入的数据。
不限定写请求数据的类型。可选的,该写请求数据可以包括一个或多个对象,或者,包括一个或多个文件等。后文以写请求数据包括多个对象为例进行介绍。
不限定写请求数据的来源,例如,客户端或应用服务器可以向存储服务器发送写请求,以指示将多个对象存储在存储集群中,或者,例如,该写请求为存储服务器本身产生的。
S4012、根据写请求生成目标数据块;
存储***接收写请求后,可以根据写请求生成目标数据块。可选的,目标数据块包括写请求数据中的一部分或全部数据。在一些示例中,存储***将写请求数据中的一部分数据写入目标数据块,将其他数据写入目标数据块以外的其他数据块。
不限定存储***根据写请求生成目标数据块的方式,可选的,如图2所示的存储过程,存储***可以采用数据块追加写的方式将写请求数据中的一部分或全部数据写入目标数据块中的数据分片,之后基于校验技术生成数据分片的校验分片。目标数据块可以例如为图2所示的数据块1或数据块2或数据块3等。
S402、将n个分片分别写入目标分区的n个磁带;
存储集群中的多个磁带可以被划分为多个分区,每个分区包括多个磁带中的n个磁带,并且,每个磁带被划分至最多一个分区。以n为6为例,图4-1示意性示出多个分区。
存储***获取目标数据块后,可以将目标数据块中的n个分片分别写入目标分区的n个磁带,有利于提高目标数据块的可靠性。例如,当某个磁带中的分片丢失时,存储***可以从目标分区中的其他磁带读取目标数据块的其他分片,基于校验技术重建丢失的分片。
当存储***获取多个数据块时,存储***可以以每个数据块为目标数据块,执行步骤S401和S402。需要说明的是,不限定目标分区为多个分区中的一个固定分区,例如,图4-1以分区1为目标分区为例而非限定,存储***可以为每个数据块从多个分区中选择一个分区作为目标分区。因此,不同数据块可能被写入多个分区中的相同分区或不同分区。后文将介绍存储***为目标数据块选择目标分区的方式,此处暂不展开介绍。
不限定多个磁带为存储集群中的全部磁带,可选的,多个磁带为根据运行状态信息从存储集群中确定的,有利于避免将目标数据块中的分片存储到不可用的磁带,导致写入失败或降低写入效率。其中,运行状态信息指示存储集群中每个磁带的运行状态,运行状态指示可用状态或不可用状态。运行状态的含义可以参考前文的相关内容,此处不再赘述。可选的,多个磁带为存储集群中运行状态为可用状态的全部或一部分磁带。
不限定多个分区的划分方式。可选的,为了提高目标数据块的可靠性,每个分区中的不同磁带设置在不同存储设备中。以存储集群如图1所示,每个分区中的不同磁带设置在不同磁带库中,例如,每个分区所包括磁带如表1所示。
表1
在一些示例中,存储***存储有分区信息,分区信息指示多个分区中每个分区所包括的磁带,用户或存储***通过配置分区信息来设置分区的数目和每个分区中包括的磁带。可选的,用户或存储***可以根据运行状态信息配置分区信息,有利于避免将目标数据块中的分片存储到不可用的磁带,导致写入失败或降低写入效率。不限定分区信息的数据形式,例如,分区信息如表1所示。
在一些示例中,分区信息还指示多个磁带中每个磁带的运行状态,如表2所示。可选的,存储***可以根据运行状态信息更新分区信息中每个磁带的运行状态。表2中,以“OK”代表可用状态,以“UNOK”代表不可用状态。参考表2,由于磁带库1中的磁带4的运行状态为不可用状态,存储***从多个分区为目标数据块选择目标分区时,多个分区不包括分区4。
表2
由于单个磁带为在存储集群中回收存储空间的最小单位,因此,当目标分区中第一磁带的第一分片被删除时,只能标记该磁带中的第一分片已被删除或无效。可选的,参考图4-2,该数据存储方法还包括步骤S403和S404。
S403、确定删除n个分片中的目标分片;
存储***将n个分片分别写入目标分区的n个磁带后,可以确定删除n个分片中的目标分片。
可选的,存储***可以获取指示删除目标分片的指令,以确定删除目标分片。该指令可以为存储***内部产生的或来自存储***以外的其他设备,例如客户端或应用服务器。
可选的,步骤S403包括S4031和S4032。
S4031、接收删除请求;
存储***可以接收删除请求,删除请求指示删除写请求数据中的一部分或全部数据。
不限定删除请求的来源,可选的,应用服务器或客户端向存储***发送删除请求,或者,存储***内部产生该删除请求。
S4032、根据删除请求确定目标数据块中的目标分片;
存储***可以根据删除请求确定目标分片。例如,删除请求指示删除的一部分或全部数据在步骤S401中写入目标数据块中的目标分片。可选的,存储***还可以根据删除请求确定其他分片。
可选的,存储***可以根据元数据信息确定删除请求对应的分片,元数据信息指示写请求数据与分片的对应关系。可选的,存储***在步骤S401中根据写请求数据生成图2所示的数据块1~数据块3,并更新元数据信息。不限定元数据信息的数据结构,例如,元数据信息可以如表3所示。
表3
对象标识 | 对象的布局信息 |
对象1 | 数据块1,偏移1,长度1 |
对象2 | 数据块2,偏移2,长度2 |
对象3 | 数据块3,偏移3,长度3 |
…… | …… |
S404、将目标磁带中的目标分片标记为无效数据;
假设步骤S402中,存储***将目标分片写入目标分区中的目标磁带中。存储***确定删除n个分片中的目标分片后,可以将目标磁带中的目标分片标记为无效数据(或标记为已删除)。
可选的,存储***可以维护删除信息,删除信息包括一个或多个删除记录,每个删除记录指示被删除的分片和该分片的存储位置。存储***可以通过向删除信息中添加目标分片对应的删除记录来将目标分片标记为无效数据。
当回收目标磁带的全部存储空间时,才能真正删除目标磁带中的目标分片。当回收目标磁带时,会降低目标数据块中其他分片(即目标分片的关联分片)的可靠性。因此,当目标磁带被回收时,需要对目标分片的关联分片进行搬迁并标记删除,降低该关联分片所在磁带(即目标分片的关联磁带)的利用率。
待回收的目标磁带通常包括多个被标记删除的目标分片,回收目标磁带将降低每个目标分片的关联磁带的利用率。由于同一数据块中的所有分片存储在同一分区中,因此回收目标磁带所影响的磁带被限制在目标磁带所在的分区中。由于目标磁带最多被划分至一个分区(即目标分区),因此,有利于将回收目标磁带所影响的磁带限制在单个分区(即目标分区)中,从而减少回收目标磁带所影响的磁带的数量。
参考图5-1,假设存储***将图2所示的数据块1和数据块2分别写入表1所示的分区1(即磁带库1的磁带1~磁带库6的磁带1),将数据块3写入表1所示的分区2(即磁带库1的磁带2~磁带库6的磁带2),并且,将分片1_1、分区2_1和分片3_2标记为无效数据。参考图5-2,当回收磁带库1的磁带1时,存储***分别对分片1_2~分片1_6和分片2_2~分片2_6进行搬迁和标记删除。如图5-2所示,回收磁带库1的磁带1所影响的磁带被限制在分区1中,被影响的磁带数目为5个,远小于图3-2所示的10个。
存储***将目标分区中存储的目标分片标记为无效数据后,可以更新目标磁带的利用率,当该利用率较低(例如低于阈值时),存储***可以回收目标磁带。磁带的利用率与磁带中被标记为无效数据的数据总量有关。不限定磁带的利用率的具体公式,例如,磁带的利用率=有效数据量/总数据量,有效数据量指磁带中无效数据以外的其他数据的总大小,总数据量指磁带中存储的全部数据的总大小。
可选的,参考图4-2,该数据存储方法还包括步骤S405。
S405、根据目标分区的利用率回收目标分区。
存储***将目标分区中存储的目标分片标记为无效数据后,可以更新目标分区的利用率,其中,目标分区的利用率与目标分区中被标记为已删除的数据的总量相关。不限定分区的利用率的具体确定方式,例如,目标分区的利用率为目标分区中利用率最低的磁带的利用率,或者,目标分区的利用率=有效数据量/总数据量,有效数据量指目标分区中所有磁带存储的无效数据以外的其他数据的总大小,总数据量指目标分区中所有磁带中存储的全部数据的总大小。
不限定存储***确定目标分区的利用率的具体方法,可选的,存储***确定删除目标分片后,可以确定目标分片所在的分区(即目标分区),进而更新目标分区的利用率。可选的,存储***维护例如表4所示的分区使用信息,分区使用信息指示分区的利用率,存储***确定目标分片所在的目标分区后,可以更新分区使用信息,以更新目标分区的利用率。后文介绍确定目标分片(或称确定目标分片所目标数据块)所在分区的方式,此处暂不展开介绍。
表4
分区标识 | 利用率 |
1 | 30% |
2 | 50% |
3 | 80% |
…… | …… |
存储***可以根据目标分区的利用率回收目标分区,以回收目标分区中所有磁带的存储空间。继续参考图5-2,回收磁带库1的磁带1后,与磁带库1的磁带1在同一分区的其他磁带(即磁带库2的磁带1~磁带库6的磁带1)的利用率均下降,存储***需要分别更新其他磁带中每个磁带的利用率,并分别下指令回收其他磁带,回收效率低。
通过步骤S405,可以根据目标分区的利用率一并回收目标分区中的全部磁带,相当于将在多个磁带中回收存储空间的最小单位提升至一个分区,无需分别根据每个磁带的利用率下指令回收相应磁带,提高回收效率。
前文介绍到,当存储***获取多个数据块时,存储***可以以每个数据块为目标数据块,执行步骤S401和S402。不限定目标分区为多个分区中的一个固定分区,存储***可以为每个数据块从多个分区中选择一个分区作为目标分区,因此,不同数据块可能被写入多个分区中的相同分区或不同分区。下面举例介绍存储***为目标数据块选择目标分区的方式。
可选的,目标分区为根据数据块的信息从多个分区中确定的。存储***获取目标数据块后,可以根据目标数据块的信息从多个分区中确定目标分区。可选的,目标数据块的信息包括目标数据块的标识和/或目标数据块的生命周期等。
存储***可以通过预设算法确定目标数据块和目标分区的对应关系。可选的,目标分区的标识PT=目标数据块的标识%PT_MAX,其中,PT_MAX为固定的整数值。例如,多个分区的标识为以1为首,公差为1的等差数列(如表1所示的分区标识),PT_MAX为多个分区中分区标识最大的分区标识。其中,“%”可以代表取余运算。
可选的,目标数据块的生命周期可以为根据目标数据块中数据分片的生命周期确定的。例如,目标数据块的生命周期为目标数据块中所有数据分片的生命周期的平均结果,该平均结果可以为平均数或中位数等。这样,有利于在分区中写入生命周期相同或接近的数据块,在回收分区时,未被标记为无效数据的数据量较小,有利于减少搬迁(或称备份)有效数据的开销。
可选的,n个分片中的数据块为根据数据的生命周期从写请求指示写入的全部数据中选择的一部分数据。例如,在步骤S4012中,存储***可以缓存写请求数据(例如多个对象),并更新生命周期信息,生命周期信息指示每个对象的生命周期。不限定生命周期信息的数据格式,生命周期信息例如表5所示。
表5
对象标识 | 对象的存活期 |
对象1 | 30天 |
对象2 | 30天 |
对象3 | 30天 |
对象4 | 90天 |
…… | …… |
可选的,存储***根据生命周期信息将生命周期相同或相近的对象写入相同数据块中,例如,将对象1、对象2和对象3写入同一数据块(例如数据块1)中,有利于将删除的对象限制在更少分区中。可选的,数据块的大小可以为一个分区的存储空间的大小,比如k+m为4+2,每个磁带容量为12TB,数据块的大小为12TB*6,需要将12TB*6的写请求数据聚合后写入一个分区中的磁带上。因为这些对象具备相同或相近的生命周期,因此在空间释放时可以同时释放,减少了搬迁的开销。
本申请还提供一种数据存储装置,如图6所示,该数据存储装置包括获取模块和存储模块。其中,获取模块用于实现步骤S401,和/或,实现步骤S4011和S4012,和/或,实现步骤S403,和/或,实现步骤S4031和S4032。存储模块用于实现步骤S402。
可选的,数据存储装置还包括回收模块,回收模块用于实现步骤S404,和/或,实现步骤S405
其中,获取模块、存储模块和回收模块均可以通过软件实现,或者可以通过硬件实现。示例性的,接下来以获取模块为例,介绍获取模块的实现方式。类似的,存储模块和回收模块的实现方式可以参考获取模块的实现方式。
模块作为软件功能单元的一种举例,获取模块可以包括运行在计算实例上的代码。其中,计算实例可以包括物理主机(计算设备)、虚拟机、容器中的至少一种。进一步地,上述计算实例可以是一台或者多台。例如,获取模块可以包括运行在多个主机/虚拟机/容器上的代码。需要说明的是,用于运行该代码的多个主机/虚拟机/容器可以分布在相同的区域(region)中,也可以分布在不同的region中。进一步地,用于运行该代码的多个主机/虚拟机/容器可以分布在相同的可用区(availability zone,AZ)中,也可以分布在不同的AZ中,每个AZ包括一个数据中心或多个地理位置相近的数据中心。其中,通常一个region可以包括多个AZ。
同样,用于运行该代码的多个主机/虚拟机/容器可以分布在同一个虚拟私有云(virtual private cloud,VPC)中,也可以分布在多个VPC中。其中,通常一个VPC设置在一个region内,同一region内两个VPC之间,以及不同region的VPC之间跨区通信需在每个VPC内设置通信网关,经通信网关实现VPC之间的互连。
模块作为硬件功能单元的一种举例,获取模块可以包括至少一个计算设备,如服务器等。或者,获取模块也可以是利用专用集成电路(application-specific integratedcircuit,ASIC)实现、或可编程逻辑器件(programmable logic device,PLD)实现的设备等。其中,上述PLD可以是复杂程序逻辑器件(complex programmable logical device,CPLD)、现场可编程门阵列(field-programmable gate array,FPGA)、通用阵列逻辑(generic array logic,GAL)或其任意组合实现。
获取模块包括的多个计算设备可以分布在相同的region中,也可以分布在不同的region中。获取模块包括的多个计算设备可以分布在相同的AZ中,也可以分布在不同的AZ中。同样,获取模块包括的多个计算设备可以分布在同一个VPC中,也可以分布在多个VPC中。其中,多个计算设备可以是服务器、ASIC、PLD、CPLD、FPGA和GAL等计算设备的任意组合。
需要说明的是,在其他实施例中,获取模块可以用于执行图4-1对应的方法中的任意步骤,或者,可以用于执行图4-2对应的方法中的任意步骤。存储模块可以用于执行图4-1对应的方法中的任意步骤,或者,可以用于执行图4-2对应的方法中的任意步骤。获取模块和存储模块负责实现的步骤可根据需要指定,通过实现获取模块、存储模块和回收模块中至少一个模块分别实现图4-1或图4-2对应的方法中不同的步骤来实现数据存储装置的全部功能。
本申请还提供一种计算设备700。如图7所示,计算设备700包括:总线702、处理器704、存储器706和通信接口708。处理器704、存储器706和通信接口708之间通过总线702通信。计算设备700可以是服务器或终端设备。应理解,本申请不限定计算设备700中的处理器、存储器的个数。
总线702可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条线表示,但并不表示仅有一根总线或一种类型的总线。总线704可包括在计算设备700各个部件(例如,存储器706、处理器704、通信接口708)之间传送信息的通路。
处理器704可以包括中央处理器(central processing unit,CPU)、图形处理器(graphics processing unit,GPU)、微处理器(micro processor,MP)或者数字信号处理器(digital signal processor,DSP)等处理器中的任意一种或多种。
存储器706可以包括易失性存储器(volatile memory),例如随机存取存储器(random access memory,RAM)。处理器704还可以包括非易失性存储器(non-volatilememory),例如只读存储器(read-only memory,ROM),快闪存储器,机械硬盘(hard diskdrive,HDD)或固态硬盘(solid state drive,SSD)。
存储器706中存储有可执行的程序代码,处理器704执行该可执行的程序代码以分别实现前述获取模块、存储模块和回收模块中至少一种模块的功能,从而实现图4-1对应的方法或图4-2对应的方法,也即,存储器706上存有用于执行图4-1对应的方法或图4-2对应的方法的指令。
通信接口703使用例如但不限于网络接口卡、收发器一类的收发模块,来实现计算设备700与其他设备或通信网络之间的通信。
在一些示例中,计算设备700可以例如为图1所示的存储***或存储服务器,或服务器1~服务器6中的任意一个或多个服务器。
本申请实施例还提供了一种计算设备集群。该计算设备集群包括至少一台计算设备。该计算设备可以是服务器,例如是中心服务器、边缘服务器,或者是本地数据中心中的本地服务器。在一些实施例中,计算设备也可以是台式机、笔记本电脑或者智能手机等终端设备。
如图8所示,计算设备集群包括至少一个计算设备700。计算设备集群中的一个或多个计算设备700中的存储器706中可以存有相同的用于执行图4-1对应的方法或图4-2对应的方法的指令。
在一些可能的实现方式中,该计算设备集群中的一个或多个计算设备700的存储器706中也可以分别存有用于执行图4-1对应的方法或图4-2对应的方法的部分指令。换言之,一个或多个计算设备700的组合可以共同执行用于执行图4-1对应的方法或图4-2对应的方法的指令。
需要说明的是,计算设备集群中的不同的计算设备700中的存储器706可以存储不同的指令,分别用于执行数据存储装置的部分功能。也即,不同的计算设备700中的存储器706存储的指令可以实现获取模块、存储模块和回收模块中至少一个模块的功能。
在一些可能的实现方式中,计算设备集群中的一个或多个计算设备可以通过网络连接。其中,网络可以是广域网或局域网等等。具体地,通过各个计算设备中的通信接口与网络进行连接。
本申请实施例还提供了一种包含指令的计算机程序产品。所述计算机程序产品可以是包含指令的,能够运行在计算设备上或被储存在任何可用介质中的软件或程序产品。当所述计算机程序产品在至少一个计算设备上运行时,使得至少一个计算设备执行图4-1对应的方法或图4-2对应的方法。
本申请实施例还提供了一种计算机可读存储介质。所述计算机可读存储介质可以是计算设备能够存储的任何可用介质或者是包含一个或多个可用介质的数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘)等。该计算机可读存储介质包括指令,所述指令指示计算设备执行图4-1对应的方法或图4-2对应的方法。
本申请的说明书和权利要求书及上述附图中的术语“第一”、第二”、“第三”、“第四”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,这仅仅是描述本申请的实施例中对相同属性的对象在描述时所采用的区分方式。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、***、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它单元。本申请实施例中出现的术语“多个”指两个或两个以上。应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的保护范围。
Claims (16)
1.一种数据存储方法,其特征在于,包括:
获取目标数据块,所述目标数据块包括n个分片,所述n个分片包括数据分片和校验分片,n为正整数;
将所述n个分片分别写入目标分区的n个磁带,所述目标分区为多个分区的一个分区,每个所述分区包括多个磁带中的n个磁带,并且,所述多个磁带中的每个磁带最多被划分至一个所述分区。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当确定删除所述n个分片中的目标分片时,将所述目标分区中存储的所述目标分片标记为无效数据,并更新所述目标分区的利用率,其中,所述目标分区的利用率与所述目标分区中无效数据的总量相关;
根据所述目标分区的利用率回收所述目标分区。
3.根据权利要求1或2所述的方法,其特征在于,所述目标分区为根据所述目标数据块的信息从所述多个分区中确定的。
4.根据权利要求3所述的方法,其特征在于,所述目标数据块的信息包括所述目标数据块的标识和/或所述目标数据块的生命周期。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述n个分片中的数据分片为根据数据的生命周期从写请求指示写入的全部数据中选择的一部分数据。
6.根据权利要求1至5中任一项所述的方法,其特征在于,所述多个磁带为根据运行状态信息从存储集群中选择的磁带,所述运行状态信息指示所述存储集群中每个磁带的运行状态,所述运行状态指示可用状态或不可用状态。
7.一种数据存储装置,其特征在于,包括:
获取模块,用于获取目标数据块,所述目标数据块包括n个分片,所述n个分片包括数据分片和校验分片,n为正整数;
存储模块,用于将所述n个分片分别写入目标分区的n个磁带,所述目标分区为多个分区的一个分区,每个所述分区包括多个磁带中的n个磁带,并且,所述多个磁带中的每个磁带最多被划分至一个所述分区。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括回收模块,所述回收模块用于:
当确定删除所述n个分片中的目标分片时,将所述目标分区中存储的所述目标分片标记为无效数据,并更新所述目标分区的利用率,其中,所述目标分区的利用率与所述目标分区中无效数据的总量相关;
根据所述目标分区的利用率回收所述目标分区。
9.根据权利要求7或8所述的装置,其特征在于,所述目标分区为根据所述目标数据块的信息从所述多个分区中确定的。
10.根据权利要求9所述的装置,其特征在于,所述目标数据块的信息包括所述目标数据块的标识和/或所述目标数据块的生命周期。
11.根据权利要求7至10中任一项所述的装置,其特征在于,所述n个分片中的数据分片为根据数据的生命周期从写请求指示写入的全部数据中选择的一部分数据。
12.根据权利要求7至11中任一项所述的装置,其特征在于,所述多个磁带为根据运行状态信息从存储集群中选择的磁带,所述运行状态信息指示所述存储集群中每个磁带的运行状态,所述运行状态指示可用状态或不可用状态。
13.一种计算设备集群,其特征在于,包括至少一个计算设备,每个计算设备包括处理器和存储器;
所述至少一个计算设备的处理器用于执行所述至少一个计算设备的存储器中存储的指令,以使得所述计算设备集群执行如权利要求1至6中任一项所述的方法。
14.一种包含指令的计算机程序产品,其特征在于,当所述指令被计算设备集群运行时,使得所述计算设备集群执行如权利要求1至6中任一项所述的方法。
15.一种计算机可读存储介质,其特征在于,包括计算机程序指令,当所述计算机程序指令由计算设备集群执行时,所述计算设备集群执行如权利要求1至6中任一项所述的方法。
16.一种存储***,其特征在于,包括多个磁带和如权利要求13所述的计算设备集群。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211178062.2A CN117806528A (zh) | 2022-09-23 | 2022-09-23 | 一种数据存储方法及装置 |
PCT/CN2023/119710 WO2024061212A1 (zh) | 2022-09-23 | 2023-09-19 | 一种数据存储方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211178062.2A CN117806528A (zh) | 2022-09-23 | 2022-09-23 | 一种数据存储方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117806528A true CN117806528A (zh) | 2024-04-02 |
Family
ID=90433982
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211178062.2A Pending CN117806528A (zh) | 2022-09-23 | 2022-09-23 | 一种数据存储方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN117806528A (zh) |
WO (1) | WO2024061212A1 (zh) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10817207B2 (en) * | 2018-08-21 | 2020-10-27 | International Business Machines Corporation | Management of a multi-library storage system |
CN113490922B (zh) * | 2019-02-27 | 2023-07-18 | 华为技术有限公司 | 固态硬盘写放大优化方法 |
CN113672175A (zh) * | 2021-08-09 | 2021-11-19 | 浙江大华技术股份有限公司 | 分布式对象存储方法、装置和设备及计算机存储介质 |
CN114153395B (zh) * | 2021-11-30 | 2024-05-14 | 浙江大华技术股份有限公司 | 一种对象存储数据生命周期管理方法、装置及设备 |
-
2022
- 2022-09-23 CN CN202211178062.2A patent/CN117806528A/zh active Pending
-
2023
- 2023-09-19 WO PCT/CN2023/119710 patent/WO2024061212A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2024061212A1 (zh) | 2024-03-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11341117B2 (en) | Deduplication table management | |
US10909004B1 (en) | Online system checkpoint recovery orchestration | |
US10977124B2 (en) | Distributed storage system, data storage method, and software program | |
US10983955B2 (en) | Data unit cloning in memory-based file systems | |
US10409493B1 (en) | Online system checkpoint alert and handling | |
US10176190B2 (en) | Data integrity and loss resistance in high performance and high capacity storage deduplication | |
KR102152238B1 (ko) | 단편화를 해결하는 메모리 세그먼트 재매핑 | |
US11698728B2 (en) | Data updating technology | |
CN113176858B (zh) | 数据处理方法、存储***及存储设备 | |
CN108604165B (zh) | 存储装置 | |
CN108733306B (zh) | 一种文件合并方法及装置 | |
CN110196818B (zh) | 缓存数据的方法、缓存设备和存储*** | |
US10664358B1 (en) | Ensure volume consistency for online system checkpoint | |
CN108431815B (zh) | 在处理器网格中的分布式数据的去重复数据 | |
CN111124264B (zh) | 用于重建数据的方法、设备和计算机程序产品 | |
US11449402B2 (en) | Handling of offline storage disk | |
US20200393987A1 (en) | Storage system and storage control method | |
US9524109B2 (en) | Tiered data storage in flash memory based on write activity | |
US11003542B1 (en) | Online consistent system checkpoint | |
CN117806528A (zh) | 一种数据存储方法及装置 | |
CN109002265B (zh) | 一种数据处理的方法以及相关装置 | |
CN113302597A (zh) | 分布式存储***和分布式存储***中垃圾回收方法 | |
US11663080B1 (en) | Techniques for performing live rebuild in storage systems that operate a direct write mode | |
US10719401B2 (en) | Increasing data recoverability during central inode list loss | |
JP6605762B2 (ja) | 記憶ドライブの故障により消失したデータを復元する装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |