CN113553215A - 一种基于环境信息的纠删码数据恢复优化方法及装置 - Google Patents
一种基于环境信息的纠删码数据恢复优化方法及装置 Download PDFInfo
- Publication number
- CN113553215A CN113553215A CN202110712439.7A CN202110712439A CN113553215A CN 113553215 A CN113553215 A CN 113553215A CN 202110712439 A CN202110712439 A CN 202110712439A CN 113553215 A CN113553215 A CN 113553215A
- Authority
- CN
- China
- Prior art keywords
- zero
- information
- fragments
- data
- erasure
- 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 63
- 238000011084 recovery Methods 0.000 title claims abstract description 62
- 238000005457 optimization Methods 0.000 title claims abstract description 28
- 230000007613 environmental effect Effects 0.000 title claims abstract description 17
- 239000012634 fragment Substances 0.000 claims abstract description 177
- 238000003860 storage Methods 0.000 claims abstract description 82
- 238000009826 distribution Methods 0.000 claims abstract description 20
- 230000008859 change Effects 0.000 claims description 20
- 238000012217 deletion Methods 0.000 claims description 6
- 230000037430 deletion Effects 0.000 claims description 6
- 238000013467 fragmentation Methods 0.000 claims description 5
- 238000006062 fragmentation reaction Methods 0.000 claims description 5
- 238000012937 correction Methods 0.000 description 52
- 230000000875 corresponding effect Effects 0.000 description 27
- 230000008569 process Effects 0.000 description 21
- 230000009471 action Effects 0.000 description 13
- 238000007726 management method Methods 0.000 description 13
- 238000005516 engineering process Methods 0.000 description 11
- 239000011159 matrix material Substances 0.000 description 7
- 238000012545 processing Methods 0.000 description 4
- 238000012795 verification Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 239000002699 waste material Substances 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000002360 explosive Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1469—Backup restoration techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及基于环境信息的纠删码数据恢复优化方法及装置,其中方法包括根据采集的环境信息和对象的分片个数属性全零分片的分布,再结合待恢复数据块的位置参数cur_shard,判断待恢复数据块是否为全零分片。是则对全零分片进行数据恢复时,通过touch操作创建空文件,并根据全零分片的信息确定所述空文件的属性,存储系统识别所述空文件的属性获取其所代表的全零分片的信息;否则通过纠删码算法进行数据恢复,将恢复的数据写入存储空间。本申请涉及一种实现上述方法的装置。本申请能够自动判断待恢复数据块是否为全零分片,并对判定为全零分片的以空文件的创建替代数据零的写入,节省存储空间和写入带宽,提高存储系统的性能。
Description
技术领域
本申请涉及存储系统数据恢复领域,尤其涉及一种基于环境信息的纠删码数据恢复优化方法及装置。
背景技术
随着信息技术的快速发展,作为信息的载体,数据的作用越发凸显,将社会生活生产中的数据进行收集、整理、提炼、总结,能够从大量的数据中获取重要的信息而创造出巨大的经济收益。随着数据爆发式的增长,服务器性能成为约束数据处理能力的瓶颈,分布式存储采用将数据分散存储的方式,有效的解决了服务器性能对数据处理能力的约束,因此分布式存储在数据处理领域应用的更加广泛。
对于分布式存储系统来说,由于数据是分散存储的,存在因某一存储节点故障使数据某一部分出错从而导致数据不一致的问题,就散码技术的出现有效地增加的分布式存储系统的数据冗余能力。纠删码技术的数据操作的基本单位为纠删条带,纠删条带内包括K份原始数据和M份校验数据,M份校验数据通过K份原始数据与编码矩阵进行矩阵乘法计算获取,在进行数据保存时将,K+M份数据保存于不同的存储位置(不同的存储节点或者同一存储节点的不同OSD上),在读取数据时仅仅需要从总量为K+M份数据中任意选取数量K份正常的数据,然后通过纠删算法就能够将缺失的数据恢复。
然而对与现有的纠删码技术来说,由于纠删码技术的数据操作的基本单位为纠删条带,且纠删条带中原始数据和校验数据按照K+M设置,在对数据进行编码操作时,需要将不足的部分用零补齐,一份数据用一个分片(shard)表示,补充后的原始数据中可能包含一shard或者几shard的全零数据,这就造成了存储空间的浪费,在数据写入过程中,针对全零的shard,通过存储层的touch操作进行标记,在数据库中记录全零shard信息,与write操作相比,占用相同大小的数据库空间,但是减少了磁盘空间的损耗;但是,当存储系统发生故障,在执行数据恢复时,恢复过程会将全零shard以零补齐写入存储空间,这样就导致在写入阶段被节省的存储空间浪费掉。因此需要提供一种能够解决纠删码技术在恢复数据时写零补充造成的存储空间浪费和存储系统带宽浪费问题的基于环境信息的纠删码数据恢复优化方法。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,第一方面,本申请提供了一种基于环境信息的纠删码数据恢复优化方法,包括:
从恢复信息中读取待恢复对象的分片个数属性,
从对象所处存储系统的环境信息中获取数据条带和校验条带中纠删单元的数量;
根据分片个数属性、数据条带中纠删单元的数量和校验条带中纠删单元的数量建立通过纠删码编码的对象的acting_map;
计算当前待恢复的数据块在待恢复对象的acting_map中的位置参数cur_shard;
根据所述位置参数cur_shard判断当前待恢复数据块是否为全零分片;
是则对全零分片进行数据恢复时,通过touch操作创建空文件,并根据全零分片的信息确定所述空文件的属性,以使存储系统识别所述空文件的属性获取其所代表的全零分片的信息;
否则通过纠删码算法进行数据恢复,将恢复的数据写入存储空间。
更进一步地,从恢复信息中读取待恢复对象的分片个数属性包括:在对象创建和变化阶段,计算对象的分片个数并将所述分片个数作为对象属性的一种保存到数据库中;
从恢复信息中确定待恢复对象,根据待恢复对象从所述数据库中读取所述分片个数属性。
更进一步地,计算对象的分片个数包括用对象大小除以纠删单元的容量,判断是否能够被整除,如果能够被整除,则以获得的值作为对象的分片个数,如果不能被整除,则获取的值加一,以执行加一后的数值作为对象的分片个数;所述纠删单元的容量从环境信息中获取。
更进一步地,从环境信息中获取纠删单元的容量。
更进一步地,所述acting_map记录对象在进行纠删码编码后,数据分片和校验分片的分布,并记录所述数据分片和校验分片的所处的OSD。
更进一步地,根据对象的分片个数和数据条带中纠删单元数量确定在acting_map中全零分片的全零分片分布,根据待恢复数据块的位置参数cur_shard,判断待恢复数据块是否为全零分片。
更进一步地,全零分片的信息包括全零分片对应的OSD信息,全零分片的大小信息,根据全零分片对应的OSD信息配置所述空文件的索引属性,根据所述全零分片的大小信息配置所述空文件的大小属性。
第二方面,本申请提供一种表示全零分片的空文件的管理方法,用于管理表示全零分片的空文件,包括:检测对象是否被删除,当对象被删除时,根据被删除对象查询空文件索引,索引到该对象对应的空文件后将空文件删除;
遍历存储系统对象信息,遍历存储系统表示全零分片的空文件信息,将未对应对象而存在的表示全零分片的空文件删除;
检测对象的改变信息,当某一对象被改变时,对照对象改变前后的两个acting_map,确定是否发生全零分片的增加或删除,如果新增全零分片的增加,则构建相应的空文件,如果有全零分片被删除,则删除对应的空文件。
第三方面,本申请还提供一种基于环境信息的纠删码数据恢复优化装置,包括:
环境信息采集模块,所述环境信息采集模块用于采集存储系统应用的纠删码技术信息;
对象属性配置模块,所述对象属性配置模块根据采集的纠删码技术信息计算对象的分片数量属性;
acting_map构建模块,所述acting_map构建模块用于根据纠删码技术信息和对象的分片个数属性构建acting_map;
存储模块,所述存储模块用于存储根据纠删码技术信息和对象属性形成的acting_map;
判断模块,所述判断模块用于根据待恢复数据块的位置参数cur_shard判断待恢复数据块是否为全零分片,
恢复优化模块,所述恢复优化模块对全零分片进行恢复时,创建空文件并根据全零分片的信息修改空文件属性,所述恢复优化模块按照纠删码恢复过程正常恢复非全零分片。
更进一步地,本申请提供的所述基于环境信息的纠删码数据恢复优化装置,还包括空文件识别模块,所述空文件识别模块识别所述空文件的属性获取全零分片的信息。
更进一步地,所述恢复优化模块包括空文件创建单元和空文件属性修改单元。
本申请实施例提供的上述技术方案与现有技术相比具有如下优点:
本申请能够从环境信息中获取存储系统所采用的纠删码编码技术的数据条带的纠删单元数量和校验条带纠删单元数量,纠删单元容量信息,并根据纠删单元容量和对象的大小计算对象的分片个数属性;分片个数属性和数据条带的纠删单元数量,纠删条带中校验条带纠删单元数量建立对象的acting_map,在进行数据恢复时,根据acting_map和待恢复数据块的cur_shard判断待恢复数据块是否为全零分片,如果是全零分片在进行恢复时建立相应属性的空文件替换数据零的写入,从而节省存储系统的存储空间,减少常规修复过程中全零分片零数据写入占用的写入带宽,提高存储系统的整体性能。
综上,一方面本申请能够根据环境信息和对象分片个数属性来确定纠删码编码时产生的全零分片的分布,根据待恢复数据块的cur-shard和全零分片的分布判断待恢复数据是否为全零分片;另一方面,本申请在进行数据修复时,用空文件代替全零分片能够节省存储空间,减少数据恢复过程中写入带宽,提高存储系统的整体性能。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种基于环境信息的纠删码数据恢复优化方法的流程图;
图2为本申请实施例提供的小于一条数据条带的对象的acting_map形成过程示意图;
图3为本申请实施例提供的大于一条数据条带的对象的acting_map形成过程示意图;
图4为本申请实施例提供的计算对象分片个数属性的流程图;
图5为本申请实施例提供的创建空文件并配置空文件属性的流程图;
图6为本申请实施例提供的根据对象被删除而删除相应空文件的流程图;
图7为本实施例提供的对照存储系统中全部对象和全部空文件而删除为对应对象而存在的表示全零分片的空文件的流程图;
图8为本实施例提供的根据对象的改变而改变表示全零分片的空文件的流程图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
对本文涉及的相关概念进行说明:纠删条带是纠错编码存储一次性读或者写的基本单位,一个纠删条带往往包含K个原始数据块和M个校验数据块,本申请中将一条纠删条带中原始数据块的集合称为数据条带,将校验数据块的集合称为校验条带。纠删单元是构成纠删条带的基本分片。OSD(Object Storage Device)对象存储设备。全零分片对象原始数据不足以填充一条纠删条带的数据条带时,以零补充剩余纠删单元形成完整的数据条带时,产生的全部由零填充的纠删单元。
纠删码技术是应用于存储系统中用于实现存储系统数据存储冗余保证存储系统可靠性的技术。将对象分割分配到纠删条带的包含K个数据分片的数据条带中,当对象的长度不足填充一条数据条带时,通过补零的方式获取完整的数据条带,将K份数据分片通过与生成矩阵相乘获取M份校验分片,并将K份数据分片和M份校验分片存储于不同的位置。只需要从K份数据分片和M份校验分片中任意获取K份数据,纠删码算法能够恢复出全部的对象。因此纠删码技术能够实现存储系统的存储冗余。
实施例1
参阅图1所示,本申请提供一种基于环境信息的纠删码数据恢复优化方法,包括:
S1,从恢复信息中读取待恢复对象的分片个数属性。具体实施过程中,在对象的创建和变化阶段(变化阶段:执行任意一种操作,该操作改变对象的大小),计算对象的分片个数并将所述分片个数作为对象属性的一种保存到数据库中;特别地当对象被删除时,删除数据库中对象以及相应的对象属性;从恢复信息中确定待恢复对象,根据待恢复对象从所述数据库中读取所述分片个数属性。其中,参阅图4所示,计算对象的分片个数包括用对象大小除以纠删单元的容量(从环境信息中获取纠删单元的容量),判断是否能够被整除,如果能够被整除,则以获得的值作为对象的分片个数,如果不能被整除,则获取的值加一,以执行加一后的数值作为对象的分片个数。
从环境信息中获取纠删单元的容量包括:如果环境信息中包含纠删单元的容量时,从环境信息中直接获取纠删单元的容量;如果环境信息中不包含纠删单元容量,但是包含纠删条带的数据容量和纠删条带中包含的纠删单元的总数量时,获取纠删条带的数据容量和纠删条带中包含的纠删单元的总数量,用纠删条带的数据容量除以纠删单元的总数量,获取纠删单元的容量。
S2,从对象所处的存储系统的环境信息中获取数据条带中纠删单元的数量,获取校验条带中纠删单元的数量。具体实施过程中,不同的存储系统可能采用不同的纠删码方案,不同的纠删码方案可能数据条带和校验条带的纠删单元数量不同,纠删单元的容量可能也不同,这就导致纠删码方案不同时,同一对象经编码产生的全零分片可能产生差异。为了适应采用不同纠删码方案的存储系统,本申请从存储系统的环境信息中采集纠删码相关信息。
S3,根据S1和S2过程中获取的对象分片个数属性和纠删码相关信息建立对象通过纠删码编码的acting_map。所述acting_map记录对象在进行纠删码编码后,数据分片和校验分片的有序分布,并记录所述数据分片和校验分片的所存储的OSD。具体实施过程中,acting_map建立后,通过对象分片个数除以数据条带中纠删单元的数量,根据过程中获得的余数可以确定该对象全零分片在acting_map中的分布。
具体的,参阅图2所示,在如下情况:对象的分片个数属性为4,存储系统应用的纠删码技术的K(数据条带纠删单元量)=5,纠删码技术的M(校验条带纠删单元量)=3。在进行纠删码编码时,对象的4个分片有序地填充到一条纠删条带中并且需要用零补足数据条带的第四个和第五个纠删单元,因此第五纠删单元为全零分片,不足数据条带后通过纠删码算法计算出校验分片,将数据分片和校验分片存储于不同的OSD中。参阅图3所示,在如下情况下,对象的分片属性为7,存储系统应用的纠删码技术的K(数据条带纠删单元量)=5,纠删码技术的M(校验条带纠删单元量)=3。在进行纠删码编码时,对象的5个分片有序地填充到一条纠删条带中,对象的剩余两个分片有序地填充到另外一条纠删条带中,并需要用数据零填充另一条纠删条带的数据条带的第二个至第五个纠删单元,因此,另外一条纠删条带的第三个至第五个纠删单元为全零分片。
S4,计算当前待恢复的数据块在待恢复对象的acting_map中的位置参数cur_shard;根据所述位置参数cur_shard可以确定待恢复的数据块在所述acting_map中的位置。
S5,根据所述位置参数cur_shard判断当前待恢复数据块是否为全零分片。具体实施过程中,结合由所述位置参数cur_shard获取的待恢复数据块在所述acting_map中的位置与全零分片在acting_map中的分布,可以获知当前待恢复数据块是否为全零分片。全零分片仅仅分布于数据条带内,位于校验条带内的分片,即使其内容全为零,也是不是全零分片。
如果当前待恢复数据块为全零分片,则执行S6;如果当前待恢复数据块不是全零分片,则执行S7。
S6,参阅图5所示,对被判定为全零分片的数据块进行数据恢复时,通过touch操作创建空文件,并根据全零分片的信息确定所述空文件的属性,以使存储系统识别所述空文件的属性获取其所代表的全零分片的信息;具体的,全零分片的信息包括全零分片对应的OSD信息(区别于纠删条带中其他分片的OSD)和全零分片的大小信息,根据全零分片对应的OSD信息配置所述空文件的索引属性,根据所述全零分片的大小信息配置所述空文件的大小属性。在其他分片的存储装置故障,需要纠删码计数利用空文件进行数据恢复时,识别空文件的索引属性获取全零分片的OSD信息,识别空文件的大小属性确定全零分片的大小信息,以构建出恢复数据的逆运算矩阵。
S7,进行正常的纠删码数据恢复过程,通过逆运算获取恢复的数据,并将恢复的数据写入存储空间。
实施例2
实施例2提供一种表示全零分片的空文件的管理方法,包括:
参阅图6所示,检测对象的被删除信息,当某一对象被删除时,根据对象查询空文件索引找到该对象对应的空文件,将空文件删除。
参阅图7所示,遍历存储系统对象信息,遍历存储系统表示全零分片的空文件索引属性,根据对象信息和空文件的索引属性找到未对应对象而存在的表示全零分片的空文件,将未对应对象而存在的表示全零分片的空文件删除。
空文件的建立势必会占用存储系统的索引资源,因此需要对已删除的对象的空文件及时清理,避免存储系统的索引资源被堆积的空文件占用,本申请实施例中提供表示全零分片空文件的管理方法能够清理无效的表示全零分片的空文件。
参阅图8所示,检测对象的改变信息,当某一对象被改变而导致acting_map整体发生改变,全零分片的分布发生改变时,获取并对照前后两个acting_map,确定是否发生全零分片的增加或删除,如果新增全零分片的增加,则构建相应的空文件,如果有全零分片被删除,则删除对应的空文件。当根据对应对象改变的空文件的改变完成后删除旧的acting_map。
对象变化时很可能导致全零分片的变化,相应的空文件需要根据全零分片的具体变化进行改变,获取对象变化前后两个acting_map并对照获取全零分片的改变,根据全零分片的改变增删相应的空文件。
实施例3
本申请还提供一种基于环境信息的纠删码数据恢复优化装置,包括:
环境信息采集模块,所述环境信息采集模块用于采集存储系统应用的纠删码技术信息;纠删码技术信息包括在采用的纠删单元的容量、纠删条带的数据容量、纠删条带中纠删单元的数量、纠删条带中数据条带的纠删单元的数量、纠删条带中校验条带的纠删单元的数量。
对象属性配置模块,所述对象属性配置模块根据采集的纠删码技术信息计算对象的分片数量属性;具体实施过程中,在对象创建过程中,或者创建完成的对象经过内容添加、内容删除或者内容替换等操作而改变对象的大小时,所述对象属性配置模块获取对象的大小信息作为第一操作数,所述对象属性配置模块采用所述环境信息采集模块采集的纠删单元容量作为第二操作数,以所述第一操作数除以所述第二操作数,判断第一操作数初一所述第二操作数能否被整除,如果能够被整除,则以获得的值作为对象的分片个数,如果不能被整除,则获取的值加一,以执行加一后的数值作为对象的分片个数。所述对象属性配置模块将对象的分片个数作为对象的属性发送保存到数据库中。
acting_map构建模块,所述acting_map构建模块用于根据纠删码技术信息和对象的分片个数属性构建acting_map;将对象的分片有序的分配到按照纠删码技术信息配置的纠删条带中,通过补零获取完整的数据条带,按照纠删码的算法通过完整的数据条带分别与生成矩阵相乘获取校验条带,所述acting_map记录数据分片和校验分片的分布,并且通过所述对象分片个数属性除以数据条带中纠删单元的数量,获取余数,根据余数确定补零的分片,从而确定全零分片在acting_map中的分布。
存储模块,所述存储模块用于存储根据纠删码技术信息和对象属性形成的acting_map。
判断模块,所述判断模块用于根据待恢复数据块的位置参数cur_shard判断待恢复数据块是否为全零分片。在进行数据恢复过程中,获取待恢复数据块的位置参数cur_shard,所述判断模块结合acting_map和所述位置参数cur_shard判断待恢复的数据块是否落在全零分片区域中,从而实现判断待恢复的的数据块是否为全零分片。
恢复优化模块,所述恢复优化模块对全零分片进行恢复时,创建空文件并根据全零分片的信息修改空文件属性,所述恢复优化模块按照纠删码恢复过程正常恢复非全零分片。
所述恢复优化模块包括空文件创建单元和空文件属性修改单元。所述空文件创建单元用于在执行全零分片的恢复时创建空文件,所述控卫见属性修改单元用于获取全零分片的信息,并根据全零分片的信息修改空文件的属性。具体的,根据全零分片的OSD信息所述对象信息配置空文件的索引属性,根据全零分片的大小配置空文件的大小属性。
所述恢复优化模块在对非全零分片进行恢复时,按照纠删码算法计算获取待回复的数据,将待回复的数据写入存储空间中。
本申请基于环境信息的纠删码数据恢复优化装置还包括空文件识别模块,所述空文件识别模块识别所述空文件的属性获取全零分片的信息。在具体实施过程中,其余分片所在的OSD发生故障而需要全零分片参与纠删码逆运算计算恢复数据时,通过所述空文件识别模块获取空文件的属性,并根据空文件的属性获取全零分片的信息构建相应的矩阵参与逆运算过程。
本申请基于环境信息的纠删码数据恢复优化装置还包括空文件识别模块,所述空文件识别模块识别所述空文件的属性获取全零分片的信息。在具体实施过程中,其余分片所在的OSD发生故障而需要全零分片参与纠删码逆运算计算恢复数据时,通过所述空文件识别模块获取空文件的属性,并根据空文件的属性获取全零分片的信息构建相应的矩阵参与逆运算过程。
本申请基于环境信息的纠删码数据恢复优化装置还包括空文件管理模块,所述空文件管理模块用于管理脱离存储空间独立存在的空文件;具体的,所述空文件管理模块检测对象删除信息,当对象被删除时,所述空文件管理模块根据对象信息检索空文件的索引属性已确定被删除的对象是否包含表示全零分片的空文件,如果包含则所述空文件管理模块将包含于被删除对象的表示全零分片的空文件删除。
所述空文件管理模块检测对象的改变信息,当某一对象被改变而导致acting_map整体发生改变,全零分片的分布发生改变时,所述空文件管理模块获取并对照前后两个acting_map,确定是否发生全零分片的增加或删除,如果新增全零分片的增加,则构建相应的空文件,如果有全零分片被删除,则删除对应的空文件。当根据对应对象改变的空文件的改变完成后,所述空文件管理模块删除旧的acting_map。
另外所述空文件管理模块还能够遍历存储系统中全部对象的信息,遍历全部表示全零分片的空文件信息,通过对象信息和空文件的索引属性建立映射,将全部未映射到对象信息的表示全零分片的空文件删除。
实施例4
本申请实施例提供一种存储介质,该存储介质存储至少一条指令,执行所述指令实现所述一种基于环境信息的纠删码数据恢复优化方法,执行所述指令实现所述一种表示全零分片的空文件的管理方法。
实施例5
本申请实施例提供一种存储系统,该存储系统包括存储器和处理器,其中,所述存储器用于存储对象和存储程序,所述处理器执行所述存储器存储的程序实现所述一种基于环境信息的纠删码数据恢复优化方法,执行所述程序实现所述一种表示全零分片的空文件的管理方法。
本申请能够从环境信息中获取存储系统所采用的纠删码编码技术的所采用的纠删条带中数据条带的纠删单元数量,纠删条带中校验条带纠删单元数量,纠删单元容量信息,并根据纠删单元容量和对象的大小计算对象的分片个数属性;分片个数属性和数据条带的纠删单元数量,纠删条带中校验条带纠删单元数量建立对象的acting_map,并通过对象分片个数属性与数据条带的纠删单元做除法的余数获取acting_map中全零分片的分布,在进行数据恢复时,根据已明确全零分片分布的acting_map和待恢复数据块的cur_shard判断待恢复数据块是否为全零分片,如果是全零分片在进行恢复时建立相应属性的空文件替换数据零的写入,从而节省存储系统的存储空间,减少常规修复过程中全零分片零数据写入占用的写入带宽,提高存储系统的整体性能。
另外本申请能够根据对象变化来管理对象所对应的空文件,具体的检测对象的被删除信息,对象被删除则将对象对应的表示全零分片的空文件删除。检测对象的改变信息,当某一对象被改变而导致全零分片的分布发生改变时,对照前后两个acting_map,确定是否发生全零分片的增加或删除,如果新增全零分片的增加,则构建相应的空文件,如果有全零分片被删除,则删除对应的空文件。
空文件的建立势必会占用存储系统的索引资源,因此需要对已删除的对象的空文件及时清理,避免存储系统的索引资源被堆积的空文件占用,本申请实施例中提供表示全零分片空文件的管理方法能够清理无效的表示全零分片的空文件。对象变化过程中,全零分片的分布也会发生变化,根据前后acting_map的对照获取全零分片的变化,增加或者删除相应的空文件,保证对象变化后纠删码编码的正常。
综上,一方面本申请能够根据环境信息和对象分片个数属性来确定纠删码编码时产生的全零分片的分布,根据待恢复数据块的cur-shard和全零分片的分布判断待恢复数据是否为全零分片;另一方面,本申请在进行数据修复时,用空文件代替全零分片能够节省存储空间,减少数据恢复过程中写入带宽,提高存储系统的整体性能。
另外本申请可以根据对象的改变对脱离对象存储空间存在的空文件进行管理。保证空文件始终与对象进行纠删码编码的全零分片相对应,从而保证不会因空文件而导致纠删码技术的应用出错。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
在本发明所提供的实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种基于环境信息的纠删码数据恢复优化方法,其特征在于,包括:
从恢复信息中读取待恢复对象的分片个数属性,
从对象所处存储系统的环境信息中获取数据条带和校验条带中纠删单元的数量;
根据分片个数属性、数据条带中纠删单元的数量和校验条带中纠删单元的数量建立通过纠删码编码的对象的acting_map;
计算当前待恢复的数据块在待恢复对象的acting_map中的位置参数cur_shard;
根据所述位置参数cur_shard判断当前待恢复数据块是否为全零分片;
是则对全零分片进行数据恢复时,通过touch操作创建空文件,并根据全零分片的信息确定所述空文件的属性,以使存储系统识别所述空文件的属性获取其所代表的全零分片的信息;
否则通过纠删码算法进行数据恢复,将恢复的数据写入存储空间。
2.根据权利要求1所述基于环境信息的纠删码数据恢复优化方法,其特征在于,从恢复信息中读取待恢复对象的分片个数属性包括:
在对象创建和变化阶段,计算对象的分片个数并将所述分片个数作为对象属性的一种保存到数据库中;
从恢复信息中确定待恢复对象,根据待恢复对象从所述数据库中读取相应的分片个数属性。
3.根据权利要求2所述基于环境信息的纠删码数据恢复优化方法,其特征在于,计算对象的分片个数包括用对象大小除以纠删单元的容量,判断是否能够被整除,如果能够被整除,则以获得的值作为对象的分片个数,如果不能被整除,则获取的值加一,以执行加一后的数值作为对象的分片个数;所述纠删单元的容量从环境信息中获取。
4.根据权利要求1所述基于环境信息的纠删码数据恢复优化方法,其特征在于,所述acting_map记录对象在进行纠删码编码后,数据分片和校验分片的分布,并记录所述数据分片和校验分片的所处的OSD。
5.根据权利要求4所述基于环境信息的纠删码数据恢复优化方法,其特征在于,根据对象的分片个数和数据条带中纠删单元数量确定在acting_map中全零分片的全零分片分布,根据待恢复数据块的位置参数cur_shard,判断待恢复数据块是否为全零分片。
6.根据权利要求1所述基于环境信息的纠删码数据恢复优化方法,其特征在于,全零分片的信息包括全零分片对应的OSD信息,全零分片的大小信息,根据全零分片对应的OSD信息配置所述空文件的索引属性,根据所述全零分片的大小信息配置所述空文件的大小属性。
7.一种表示全零分片的空文件的管理方法,用于管理表示全零分片的空文件,其特征在于,包括:检测对象是否被删除,当对象被删除时,根据被删除对象查询空文件索引,索引到该对象对应的空文件后将空文件删除;
遍历存储系统对象信息,遍历存储系统表示全零分片的空文件信息,将未对应对象而存在的表示全零分片的空文件删除;
检测对象的改变信息,当某一对象被改变时,对照对象改变前后的两个acting_map,确定是否发生全零分片的增加或删除,如果新增全零分片的增加,则构建相应的空文件,如果有全零分片被删除,则删除对应的空文件。
8.一种基于环境信息的纠删码数据恢复优化装置,其特征在于,包括:
环境信息采集模块,所述环境信息采集模块用于采集存储系统应用的纠删码技术信息;
对象属性配置模块,所述对象属性配置模块根据采集的纠删码技术信息计算对象的分片数量属性;
acting_map构建模块,所述acting_map构建模块用于根据纠删码技术信息和对象的分片个数属性构建acting_map;
存储模块,所述存储模块用于存储根据纠删码技术信息和对象属性形成的acting_map;
判断模块,所述判断模块用于根据待恢复数据块的位置参数cur_shard判断待恢复数据块是否为全零分片,
恢复优化模块,所述恢复优化模块对全零分片进行恢复时,创建空文件并根据全零分片的信息修改空文件属性,所述恢复优化模块按照纠删码恢复过程正常恢复非全零分片。
9.根据权利要求8所述基于环境信息的纠删码数据恢复优化装置,其特征在于,还包括空文件识别模块,所述空文件识别模块识别所述空文件的属性获取全零分片的信息。
10.根据权利要求1所述基于环境信息的纠删码数据恢复优化装置,其特征在于,所述恢复优化模块包括空文件创建单元和空文件属性修改单元。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110712439.7A CN113553215A (zh) | 2021-06-25 | 2021-06-25 | 一种基于环境信息的纠删码数据恢复优化方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110712439.7A CN113553215A (zh) | 2021-06-25 | 2021-06-25 | 一种基于环境信息的纠删码数据恢复优化方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113553215A true CN113553215A (zh) | 2021-10-26 |
Family
ID=78130942
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110712439.7A Pending CN113553215A (zh) | 2021-06-25 | 2021-06-25 | 一种基于环境信息的纠删码数据恢复优化方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113553215A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115454711A (zh) * | 2022-11-11 | 2022-12-09 | 苏州浪潮智能科技有限公司 | 一种分布式存储系统中纠删数据恢复的方法、装置及介质 |
-
2021
- 2021-06-25 CN CN202110712439.7A patent/CN113553215A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115454711A (zh) * | 2022-11-11 | 2022-12-09 | 苏州浪潮智能科技有限公司 | 一种分布式存储系统中纠删数据恢复的方法、装置及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110531940B (zh) | 视频文件处理方法及装置 | |
US11775428B2 (en) | Deletion immunity for unreferenced data | |
CN109725822B (zh) | 用于管理存储系统的方法、设备和计算机程序产品 | |
CN103678026B (zh) | 可修复的视频监控数据存储和修复方法及其装置 | |
US9367448B1 (en) | Method and system for determining data integrity for garbage collection of data storage systems | |
CN109478159B (zh) | 损坏数据块的在线修复 | |
CN113176858B (zh) | 数据处理方法、存储系统及存储设备 | |
CN110018989B (zh) | 一种快照比对的方法和装置 | |
CN112463724B (zh) | 一种轻量级文件系统的数据处理方法和系统 | |
CN113568582B (zh) | 数据管理方法、装置和存储设备 | |
CN110399333B (zh) | 删除快照的方法、设备和计算机程序产品 | |
CN115437581B (zh) | 一种数据处理方法、装置、设备及可读存储介质 | |
CN110147203B (zh) | 一种文件管理方法、装置、电子设备及存储介质 | |
US20210133029A1 (en) | Methods for data writing and for data recovery, electronic devices, and program products | |
CN105027071A (zh) | 管理对存储数据单元的操作 | |
CN108141229A (zh) | 损坏数据的高效检测 | |
CN111143116A (zh) | 一种磁盘坏块处理的方法及装置 | |
CN113868244A (zh) | 生成键-值索引快照 | |
WO2017087015A1 (en) | Count of metadata operations | |
CN113553215A (zh) | 一种基于环境信息的纠删码数据恢复优化方法及装置 | |
CN109426587B (zh) | 一种数据恢复方法及装置 | |
CN117075821B (zh) | 一种分布式存储方法、装置、电子设备及存储介质 | |
CN105009068A (zh) | 管理对存储数据单元的操作 | |
CN111857603B (zh) | 数据处理方法及相关装置 | |
CN115237351B (zh) | Nand块动态重映射、读写命令处理方法及存储设备 |
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 |