CN114116321A - 一种冗余数据管理方法、装置、计算机设备和存储介质 - Google Patents

一种冗余数据管理方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN114116321A
CN114116321A CN202210084199.5A CN202210084199A CN114116321A CN 114116321 A CN114116321 A CN 114116321A CN 202210084199 A CN202210084199 A CN 202210084199A CN 114116321 A CN114116321 A CN 114116321A
Authority
CN
China
Prior art keywords
data
redundancy
block
storage space
redundant
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
Application number
CN202210084199.5A
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 CN202210084199.5A priority Critical patent/CN114116321A/zh
Publication of CN114116321A publication Critical patent/CN114116321A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • 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/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本申请涉及一种冗余数据管理方法、装置、计算机设备和存储介质。所述方法包括:获取原始数据的分块数据以及分块数量,设置第一冗余数量,根据分块数量与第一冗余数量对分块数据进行冗余计算,获取第一冗余数据,将分块数据与第一冗余数据存储至第一存储空间;将存储空间的环境关联信息与环境信息阈值进行对比,设置第二冗余数量,根据分块数量与第二冗余数量对分块数据进行第二冗余计算,获取第二冗余数据,将第二冗余数据存储至第二存储空间;获取分块数据的丢失数量,将丢失数量与第一冗余数量进行对比,选择第一冗余数据和/或第二冗余数据对分块数据进行恢复处理,可解决当数据丢失数量较大时数据恢复难、存储可靠性低等问题。

Description

一种冗余数据管理方法、装置、计算机设备和存储介质
技术领域
本发明涉及数据存储技术领域,特别是涉及一种冗余数据管理方法、装置、计算机设备和存储介质。
背景技术
随着数字技术的快速发展,基于云计算、大数据等技术所落地实施的应用业务规模越来越大,随之产生的数据信息越来越多,而作为数据存储中心的海量存储系统对应用的实施起到了有力的支撑作用。其中,分布式存储系统具有扩展性强、低成本等优势,已得到了广泛的认可和应用。
在大规模的分布式存储系统里,存储数据的稳定可靠是核心需求,通常可以通过对原始数据块进行纠删码计算,生成冗余数据块,当出现数据丢失情况的数据块的数量较小时,可通过纠删计算对存储数据进行恢复。但随着系统规模的不断扩展,当出现数据丢失情况的数据块的数量较大时,会导致数据恢复难、存储可靠性低等问题。
发明内容
基于此,有必要针对上述技术问题,提供一种冗余数据管理方法、装置、计算机设备和存储介质,改善数据存储过程中冗余数据恢复性能不佳的问题。
一方面,提供一种冗余数据管理方法,所述冗余数据管理方法包括:
对原始数据进行分块处理,获取分块数据及其对应的分块数量,设置第一冗余数量,根据所述分块数量与所述第一冗余数量对所述分块数据进行第一冗余计算,获取第一冗余数据,将所述分块数据与所述第一冗余数据存储至第一存储空间;
获取存储空间的环境关联信息,将所述环境关联信息与预设的环境信息阈值进行对比,根据对比结果设置第二冗余数量,根据所述分块数量与所述第二冗余数量对所述分块数据进行第二冗余计算,获取第二冗余数据,将所述第二冗余数据存储至第二存储空间,其中,所述存储空间包括:所述第一存储空间、所述第二存储空间;
获取所述分块数据的丢失数量,将所述丢失数量与所述第一冗余数量进行对比,选择所述第一冗余数据和/或所述第二冗余数据对所述分块数据进行恢复处理。
在其中一个实施例中,根据所述分块数量与所述第一冗余数量对所述分块数据进行第一冗余计算,获取第一冗余数据,将所述分块数据与所述第一冗余数据存储至第一存储空间的步骤包括:
建立第一执行矩阵,其中,所述第一执行矩阵的行数包括:所述第一冗余数量,所述第一执行矩阵的列数包括:所述分块数量;
将所述第一执行矩阵与所述分块数据进行乘法处理,获取第一冗余数据;
将所述分块数据与所述第一冗余数据依次存储于所述第一存储空间。
在其中一个实施例中,获取存储空间的环境关联信息,将所述环境关联信息与预设的环境信息阈值进行对比,根据对比结果设置第二冗余数量,根据所述分块数量与所述第二冗余数量对所述分块数据进行第二冗余计算,获取第二冗余数据的步骤包括:
获取所述环境关联信息,判断所述环境关联信息是否大于预设的所述环境信息阈值,其中,所述环境关联信息至少包括以下之一:所述原始数据的优先级、所述存储空间的容量大小、所述存储空间的使用记录;
若是,则设置所述第二冗余数量为正整数,建立第二执行矩阵,将所述第二执行矩阵与所述分块数据进行乘法处理,获取第二冗余数据,其中,所述第二执行矩阵的行数包括:所述第二冗余数量,所述第二执行矩阵的列数包括:所述分块数量。
在其中一个实施例中,获取所述分块数据的丢失数量,将所述丢失数量与所述第一冗余数量进行对比,选择所述第一冗余数据和/或所述第二冗余数据对所述分块数据进行恢复处理的步骤包括:
判断所述丢失数量是否大于所述第一冗余数量;
若是,则通过所述第一冗余数据和/或所述第二冗余数据对所述分块数据进行恢复处理;
若否,则通过所述第一冗余数据对所述分块数据进行恢复处理。
在其中一个实施例中,将所述分块数据存储至第一存储空间的步骤包括:
构建单位矩阵,其中,所述单位矩阵的行数与列数包括:所述分块数量;
将所述单位矩阵与所述原始数据进行乘法处理,获取所述分块数据;
将所述分块数据存储至所述第一存储空间。
在其中一个实施例中,对所述分块数据进行恢复处理的步骤包括:
将所述单位矩阵与第一执行矩阵和第二执行矩阵进行合并,获取第一分布矩阵;
将所述第一分布矩阵与所述分块数据进行乘法处理,获取第一存储数据;
从所述第一存储数据中删减所述丢失数量对应的数据,获取第二存储数据;
从所述第一分布矩阵中删减所述丢失数量对应的数据的行数,获取第二分布矩阵;
将所述第二分布矩阵的逆矩阵与所述第二存储数据进行乘法处理,获取所述分块数据。
在其中一个实施例中,还包括:
判断所述原始数据是否需要更新;
若是,则获取更新后的原始数据,对所述更新后的原始数据进行分块处理,并重新对所述第一冗余数据和/或所述第二冗余数据进行计算和存储。
另一方面,提供了一种冗余数据管理增强装置,所述冗余数据管理装置包括:
第一处理模块,用于对原始数据进行分块处理,获取分块数据及其对应的分块数量,设置第一冗余数量,根据所述分块数量与所述第一冗余数量对所述分块数据进行第一冗余计算,获取第一冗余数据,将所述分块数据与所述第一冗余数据存储至第一存储空间;
第二处理模块,用于获取存储空间的环境关联信息,将所述环境关联信息与预设的环境信息阈值进行对比,根据对比结果设置第二冗余数量,根据所述分块数量与所述第二冗余数量对所述分块数据进行第二冗余计算,获取第二冗余数据,将所述第二冗余数据存储至第二存储空间,其中,所述存储空间包括:所述第一存储空间、所述第二存储空间;
数据恢复模块,用于获取所述分块数据的丢失数量,将所述丢失数量与所述第一冗余数量进行对比,选择所述第一冗余数据和/或所述第二冗余数据对所述分块数据进行恢复处理。
再一方面,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
对原始数据进行分块处理,获取分块数据及其对应的分块数量,设置第一冗余数量,根据所述分块数量与所述第一冗余数量对所述分块数据进行第一冗余计算,获取第一冗余数据,将所述分块数据与所述第一冗余数据存储至第一存储空间;
获取存储空间的环境关联信息,将所述环境关联信息与预设的环境信息阈值进行对比,根据对比结果设置第二冗余数量,根据所述分块数量与所述第二冗余数量对所述分块数据进行第二冗余计算,获取第二冗余数据,将所述第二冗余数据存储至第二存储空间,其中,所述存储空间包括:所述第一存储空间、所述第二存储空间;
获取所述分块数据的丢失数量,将所述丢失数量与所述第一冗余数量进行对比,选择所述第一冗余数据和/或所述第二冗余数据对所述分块数据进行恢复处理。
又一方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
对原始数据进行分块处理,获取分块数据及其对应的分块数量,设置第一冗余数量,根据所述分块数量与所述第一冗余数量对所述分块数据进行第一冗余计算,获取第一冗余数据,将所述分块数据与所述第一冗余数据存储至第一存储空间;
获取存储空间的环境关联信息,将所述环境关联信息与预设的环境信息阈值进行对比,根据对比结果设置第二冗余数量,根据所述分块数量与所述第二冗余数量对所述分块数据进行第二冗余计算,获取第二冗余数据,将所述第二冗余数据存储至第二存储空间,其中,所述存储空间包括:所述第一存储空间、所述第二存储空间;
获取所述分块数据的丢失数量,将所述丢失数量与所述第一冗余数量进行对比,选择所述第一冗余数据和/或所述第二冗余数据对所述分块数据进行恢复处理。
上述一种冗余数据管理方法、装置、计算机设备和存储介质,首先将存储空间划分为第一存储空间与第二存储空间,并将分块数据和第一冗余数据存储至第一存储空间,然后根据存储空间的环境关联信息与环境信息阈值进行对比的结果,决定是否对分块数据进行第二冗余计算,并将第二冗余数据存储至第二存储空间;最后根据分块数据的丢失数量情况,选择第一冗余数据和/或第二冗余数据对分块数据进行恢复处理,可解决当数据丢失数量较大时数据恢复难、存储可靠性低等问题。
附图说明
图1为一个实施例中一种冗余数据管理方法的应用环境图;
图2为一个实施例中一种冗余数据管理方法的流程示意图;
图3为一个实施例中将分块数据与第一冗余数据存储至第一存储空间的流程示意图;
图4为一个实施例中获取第二冗余数据的流程示意图;
图5为一个实施例中选择第一冗余数据和/或第二冗余数据对分块数据进行恢复处理的流程示意图;
图6为一个实施例中将分块数据存储至第一存储空间的流程示意图;
图7为一个实施例中对分块数据进行恢复处理的流程示意图;
图8为一个实施例中对更新后的原始数据进行冗余计算和存储的流程示意图;
图9为一个实施例中冗余数据管理装置的结构框图;
图10为另一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的一种冗余数据管理方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104通过网络进行通信。例如,本申请提供的一种冗余数据管理方法可应用于基于云计算、大数据、人工智能等技术所落地实施的应用业务中,特别是大规模的分布式存储系统里对数据进行冗余处理并存储的场景,在传统分布式存储系统的数据冗余处理与存储过程中,可将原始数据划分成K个分块数据,通过K块磁盘进行存储,并对分块数据进行RS(Reed Solomon,里德-所罗门)纠删码计算,生成M个冗余数据,然后将M个冗余数据也分别存储至不同的M个磁盘,当某块磁盘发生故障的时候,只要同时发生故障磁盘的数量小于等于M个,都能够通过纠删计算恢复对原始数据进行恢复。但随着系统规模的不断扩展以及磁盘数量的递增,多块磁盘同时出现故障的现象越来越频繁,而一旦发生故障的磁盘数量超过M个则会造成严重的数据丢失问题。因此,本方法在传统方法基础上,考虑了用户数据的优先级、存储空间的使用情况等因素,将存储空间划分为第一存储空间与第二存储空间,将K个分块数据与M个第一冗余数据存储至第一存储空间,并在M个第一冗余数据的基础上设置了N个第二冗余数据,将N个第二冗余数据存储至第二存储空间,当同时发生故障的磁盘数量大于M且小于M+N时,可通过查询N个第二冗余数据对原始数据进行恢复,即通过对冗余数据进行管理,解决当数据丢失数量较大时数据恢复难、存储可靠性低等问题,其中,K,M,N为正整数,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、便携式可穿戴设备或者子服务器,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群或者云计算平台来实现。
在一个实施例中,如图2所示,提供了一种冗余数据管理方法,包括以下步骤:
S1:对原始数据进行分块处理,获取分块数据及其对应的分块数量,设置第一冗余数量,根据所述分块数量与所述第一冗余数量对所述分块数据进行第一冗余计算,获取第一冗余数据,将所述分块数据与所述第一冗余数据存储至第一存储空间;
S2:获取存储空间的环境关联信息,将所述环境关联信息与预设的环境信息阈值进行对比,根据对比结果设置第二冗余数量,根据所述分块数量与所述第二冗余数量对所述分块数据进行第二冗余计算,获取第二冗余数据,将所述第二冗余数据存储至第二存储空间,其中,所述存储空间包括:所述第一存储空间、所述第二存储空间;
S3:获取所述分块数据的丢失数量,将所述丢失数量与所述第一冗余数量进行对比,选择所述第一冗余数据和/或所述第二冗余数据对所述分块数据进行恢复处理。
通过上述步骤,可解决大规模分布式存储系统中当同时发生故障的存储模块数量较大时无法对数据进行恢复的问题。
为了提升数据存储的效率,在对原始数据进行存储之前,需要对原始数据进行分块处理,在步骤S1中,示例性地说明,将原始数据划分为多个分块数据,设置第一冗余数量,根据分块数量与第一冗余数量对分块数据进行第一冗余计算,获取第一冗余数据,将分块数据与第一冗余数据存储至第一存储空间,例如,可根据原始数据的字节大小,考虑当前可用的存储空间容量,将原始数据进行分块处理,获取分块数量为K的多个分块数据,然后设置第一冗余数量为M,对K个分块数据进行第一冗余计算,获取M个第一冗余数据,其中,第一冗余计算可以为纠删码计算,然后将K个分块数据与M个第一冗余数据按顺序存储至第一存储空间,同时需要保证K个分块数据与M个第一冗余数据的总的数据存储容量小于等于第一存储空间的总存储容量,以此在大规模存储系统中对分块数据和冗余数据进行分布式存储,降低网数据流量,节约网路带宽和存储空间,其中,K,M为正整数。
为了进一步提升数据存储的可靠性,在步骤S2中,示例性地说明,将存储空间的环境关联信息与预设的环境信息阈值进行对比,根据对比结果设置第二冗余数量,对分块数据进行第二冗余计算,获取第二冗余数据,将第二冗余数据存储至第二存储空间,例如,可对需要进行存储的用户数据的重要性进行评估,获取当前用户数据的优先级,作为存储空间的环境关联信息,若当前的环境关联信息大于预设的环境信息阈值,比如当前用户数据的优先级大于预设的优先级阈值时,则认为当前用户的原始数据需要进一步对存储空间进行管理,此时可以设置第二冗余数量为N,在步骤S1的K个分块数据与M个第一冗余数据的基础上,新增N个冗余数据块,即此时对K个分块数据进行第二冗余计算,获得M+N个冗余数据块,其中,M个冗余数据块为第一冗余数据,N个冗余数据块为第二冗余数据,然后将第二冗余数据存储至第二存储空间,其中,存储空间可以为磁盘;在设定第二冗余数据的数量时,需要考虑第二存储空间的存储容量,保证N个第二冗余数据的字节大小需要小于等于第二存储空间的总存储容量,以此对部分满足条件的原始数据新增第二冗余数据并将第二冗余数据存储至独立的第二存储空间,提升数据的存储可靠性,优选地,根据存储空间的剩余容量,通过异步计算的方式对第二存储空间进行分配以及对第二冗余数据进行计算,其中,K,M为正整数,N为自然数。
当出现数据丢失的情况时,可根据冗余数据对分块数据进行恢复处理,在步骤S3中,示例性地说明,获取分块数据的丢失数量,将丢失数量与第一冗余数量进行对比,选择第一冗余数据和/或第二冗余数据对分块数据进行恢复处理,例如,当同时发生故障的存储模块数量即丢失数量较小时,可直接通过第一存储空间的第一冗余数据对原始数据进行恢复,比如当前存在K个分块数据与M个第一冗余数据,当同时发生故障的存储模块的数量小于等于M时,可以直接通过剩余的未发生数据丢失的第一冗余数据与分块数据对原始K个分块数据进行数据恢复处理,而当同时发生故障的存储模块的数量大于M时,无法直接通过剩余的未发生数据丢失的第一冗余数据与分块数据对原始K个分块数据进行数据恢复,因此可以结合第二存储空间中的N个第二冗余数据,结合剩余的未发生数据丢失的第一冗余数据与分块数据一起对分块数据进行恢复处理,在一些实施过程中,可能出现第二冗余数据也存在数据丢失的情况,但只要丢失数据的存储模块数量小于等于M+N,都可通过本方法对数据进行恢复处理,以此提升数据恢复的性能和数据存储的可靠性,在另一些实施过程中,还可能出现M个第一冗余数据全部丢失,而K个分块数据中丢失K1个分块数据,并且M+K1<M+N,此时可以通过第二冗余数据以及剩余的K-K1个分块数据对原始的分块数据进行数据恢复,其中,K,M为正整数,N,K1为自然数。
对原始数据进行分块处理后,需要对分块数据进行冗余计算,在一些实施例中,如图3所示,根据所述分块数量与所述第一冗余数量对所述分块数据进行第一冗余计算,获取第一冗余数据,将所述分块数据与所述第一冗余数据存储至第一存储空间的步骤包括:
S11:建立第一执行矩阵,其中,所述第一执行矩阵的行数包括:所述第一冗余数量,所述第一执行矩阵的列数包括:所述分块数量;
S12:将所述第一执行矩阵与所述分块数据进行乘法处理,获取第一冗余数据;
S13:将所述分块数据与所述第一冗余数据依次存储于所述第一存储空间。
如图3所示,在步骤S11中,示例性地说明,建立第一执行矩阵,例如,建立行数为第一冗余数量、列数为分块数量的第一执行矩阵,该矩阵的任意行都相互独立,从该矩阵中选取任意行与分块数据组成的尺寸为K*K的新矩阵具有可逆性,即存在与新矩阵对应的逆矩阵,其中,K为正整数,在一些实施过程中,可采用范德蒙矩阵对第一执行矩阵进行构造,比如当第一执行矩阵的行数为3列数为5时,可将第一执行矩阵的第1行元素设置为[1,1,1,1,1],将第2行元素设置为[1,2,4,8,16],将第3行元素设置为[1,3,9,27,81]。
如图3所示,在步骤S12中,示例性地说明,将第一执行矩阵与分块数据进行乘法处理,获取第一冗余数据,例如,当分块数量为K,第一冗余数量为M时,当前第一执行矩阵的尺寸为M*K,而K个分块数据构成的矩阵尺寸为K*1,因此将第一执行矩阵与分块数据矩阵进行矩阵乘法处理可以得到一个尺寸为M*1的矩阵,将尺寸为M*1的矩阵作为M个第一冗余数据,其中,K和M为正整数。
如图3所示,在步骤S13中,示例性地说明,将分块数据与第一冗余数据依次存储于第一存储空间,例如,可以将分块数据与第一冗余数据通过磁盘进行独立存储,并将存储分块数据与第一冗余数据的磁盘构造为第一存储空间。
针对部分用户数据,为了提升数据的存储可靠性,可对该部分用户数据进行第二冗余计算,如图4所示,在一些实施例中,获取存储空间的环境关联信息,将所述环境关联信息与预设的环境信息阈值进行对比,根据对比结果设置第二冗余数量,根据所述分块数量与所述第二冗余数量对所述分块数据进行第二冗余计算,获取第二冗余数据的步骤包括:
S21:获取所述环境关联信息,判断所述环境关联信息是否大于预设的所述环境信息阈值,其中,所述环境关联信息至少包括以下之一:所述原始数据的优先级、所述存储空间的容量大小、所述存储空间的使用记录;
S22:若是,则设置所述第二冗余数量为正整数,建立第二执行矩阵,将所述第二执行矩阵与所述分块数据进行乘法处理,获取第二冗余数据,其中,所述第二执行矩阵的行数包括:所述第二冗余数量,所述第二执行矩阵的列数包括:所述分块数量。
如图4所示,在步骤S21中,示例性地说明,将环境关联信息与预设环境信息阈值进行比较,例如,可对用户的数据重要性进行评估,获取原始数据的优先级,将原始数据的优先级作为环境关联信息的构成元素,同时预设优先级阈值,当该用户的原始数据的优先级大于优先级阈值时,则认为该原始数据较为重要,需要进行第二冗余计算,以此保证重要数据的恢复性能和存储可靠,在一些实施过程中,还可评估存储空间的容量大小,当存储空间的容量较大,可分配的磁盘数量较大时,可以认为在当前存储空间进行数据存储具有较大的数据丢失的可能,因此可以将存储空间的容量作为环境关联信息的构成元素,同时预设存储容量阈值,当存储空间的容量大于存储容量阈值时,则对待存储的原始数据作分块处理后进行第二冗余计算,在另一些实施过程中,还可将存储空间的使用记录作为构成环境关联信息的构成元素,当存储空间中的存储磁盘的使用记录大于预设的使用阈值时,可认为该情况下该存储空间具有较大的数据丢失的可能,需要对待存储的原始数据作分块处理后进行第二冗余计算,其中,使用阈值包括至少以下之一:使用时间超过预期寿命的三分之一、存储空间的数据读写次数超过预期最大次数的三分之一,在另一些实施过程中,还可将原始数据的优先级、存储空间的容量大小和存储空间的使用记录进行组合,例如,将原始数据的优先级设置为指标A1,将存储空间的容量大小设置为指标A2,将存储空间的使用记录设置为指标A3,可以选取[A1,A2]、[A1,A3]、[A2,A3]或者[A1,A2,A3]作为环境关联信息,将优先级阈值设置为T1,将存储容量阈值设置为T2,将存储空间的使用阈值设置为T3,当A1>T1且A2>T2时可以认为[A1,A2]构成的环境关联信息触发了对原始数据进行第二冗余计算的条件,当A1>T1且A3>T3时可以认为[A1,A3]构成的环境关联信息触发了对原始数据进行第二冗余计算的条件,当A2>T2且A3>T3时可以认为[A2,A3]构成的环境关联信息触发了对原始数据进行第二冗余计算的条件,当A1>T1且A2>T2且A3>T3时可以认为[A1,A2,A3]构成的环境关联信息触发了对原始数据进行第二冗余计算的条件,在另一些实施过程中,还可以为各个阈值设定各自对应的权值,例如对T1设置权值W1,对T2设置权值W2,对T3设置权值W3,可以将A1、A2、A3、T1、T2、T3作归一化处理,当(A1+A2)>(T1*W1+T2*W2)时认为[A1,A2]构成的环境关联信息触发了对原始数据进行第二冗余计算的条件,当(A1+A3)>(T1*W1+T3*W3)时认为[A1,A3]构成的环境关联信息触发了对原始数据进行第二冗余计算的条件,当(A2+A3)>(T2*W2+T3*W3)时认为[A2,A3]构成的环境关联信息触发了对原始数据进行第二冗余计算的条件,当(A1+A2+A3)>(T1*W1+T2*W2+T3*W3)时认为[A1,A2,A3]构成的环境关联信息触发了对原始数据进行第二冗余计算的条件,通过该方式,可以对是否对原始数据进行第二冗余计算作出综合性判断,以此在具体实施过程中根据存储空间的具体使用情况对数据的冗余计算以及对冗余数据的管理进行适应性地控制,其中,A1,A2,A3,W1,W2,W3,T1,T2,T3为实数,在具体实施过程中根据实际情况进行设置。
如图4所示,在步骤S22中,示例性地说明,若所述环境关联信息大于预设的所述环境信息阈值,则设置第二冗余数量为正整数,建立第二执行矩阵,将第二执行矩阵与分块数据进行乘法处理,获取第二冗余数据,例如,建立行数为第二冗余数量、列数为分块数量的第二执行矩阵,该矩阵的任意行都相互独立,从该矩阵中选取任意行与分块数据组成的尺寸为K*K的新矩阵具有可逆性,即存在与新矩阵对应的逆矩阵,在一些实施过程中,可采用范德蒙矩阵对第二执行矩阵进行构造,比如当第二执行矩阵的行数为3、列数为6时,可将第二执行矩阵的第1行元素设置为[1,1,1,1,1,1],将第2行元素设置为[1,2,4,8,16,32],将第3行元素设置为[1,3,9,27,81,243],只要保证当分块数量为K,第二冗余数量为N时,当前第二执行矩阵的尺寸为N*K,而K个分块数据构成的矩阵尺寸为K*1,因此将第二执行矩阵与分块数据矩阵进行矩阵乘法处理可以得到一个尺寸为N*1的矩阵,将尺寸为N*1的矩阵作为N个第二余数据,其中,K为正整数,N为自然数,在另一些实施过程中,还可以用柯西矩阵代替范德蒙行列式,利用位运算的方法对柯西RS纠删编码中的乘法进行改进,转化为二进制乘法,因此整个RS纠删编码的运算可以转化为只包含异或的简单运算。
当发生数据丢失的情况时,需要获取分块数据的丢失数量,根据冗余数据和剩余的分块数据对原始的分块数据进行数据恢复,如图5所示,获取所述分块数据的丢失数量,将所述丢失数量与所述第一冗余数量进行对比,选择所述第一冗余数据和/或所述第二冗余数据对所述分块数据进行恢复处理的步骤包括:
S31:判断所述丢失数量是否大于所述第一冗余数量;
S32:若是,则通过所述第一冗余数据和/或所述第二冗余数据对所述分块数据进行恢复处理;
S33:若否,则通过所述第一冗余数据对所述分块数据进行恢复处理。
通过上述步骤,可根据分块数据的丢失情况,选用第一冗余数据和/或第二冗余数据对原始的分块数据进行恢复,改善当同时发生故障的存储模块的数量较大时无法对数据进行恢复的问题。
如图5所示,在步骤S31中,示例性地说明,判断丢失数量是否大于第一冗余数量,例如,设分块数据的分块数量为K,第一冗余数据的第一冗余数量为M,第二冗余数据的第二冗余数量为N,假设在(K+M+N)个存储模块中同时发生故障的存储模块的数量为R,通过判断R与M的大小决定通过哪些存储模块对原始分块数据进行恢复处理,其中,K,M为正整数,N,R为自然数。
如图5所示,在步骤S32中,示例性地说明,若丢失数量大于第一冗余数量,则通过第一冗余数据和/或第二冗余数据对分块数据进行恢复处理,例如,设分块数据的分块数量为K,第一冗余数据的第一冗余数量为M,第二冗余数据的第二冗余数量为N,当同时发生故障的存储模块的数量R大于M且小于等于M+N时,无法仅仅通过第一存储空间中的第一冗余数据对原始分块数据进行恢复,因此,需要选取第一存储空间中剩余的第一冗余数据与第二存储空间的第二冗余数据对原始分块数据进行恢复处理,在一些实施过程中,可以设分块数据中发生数据丢失的分块数量为R1,设第一冗余数据中发生数据丢失的分块数量为R2,第二冗余数据中发生数据丢失的分块数量为R3,因此在整个存储空间中同时发生数据丢失的分块数量总数为R=R1+R2+R3,并且M<R≤N+M,此时分块数据中剩余的未发生数据丢失的分块数量为K-R1,第一冗余数据中剩余的未发生数据丢失的分块数量为M-R2,第二冗余数据中剩余的未发生数据丢失的分块数量为N-R3,此时可以从剩余的((K-R1)+(M-R2)+(N-R3))个存储模块中任意选择K个存储数据对原始分块数据进行恢复处理,其中,K,M为正整数,R1,R2,R3,R,N为自然数。
如图5所示,在步骤S33中,示例性地说明,若丢失数量小于等于第一冗余数量,则通过第一冗余数据对分块数据进行恢复处理,例如,当同时发生故障的存储模块的数量R小于等于M时,可仅仅通过第一存储空间中的第一冗余数据对原始分块数据进行恢复,具体可以采取如下措施:设分块数据中发生数据丢失的分块数量为R1,设第一冗余数据中发生数据丢失的分块数量为R2,而R=R1+R2,并且R≤M,则分块数据中剩余的未发生数据丢失的分块数量为K-R1,第一冗余数据中剩余的未发生数据丢失的分块数量为M-R2,此时从((K-R1)+(M-R2))中任意选择K个存储数据块对原始数据进行恢复处理,其中,K,M为正整数,R1,R2,R为自然数。
对于待存储的分块数据,可以将各分块数据存储至独立的磁盘,如图6所示,将所述分块数据存储至第一存储空间的步骤包括:
S41:构建单位矩阵,其中,所述单位矩阵的行数与列数包括:所述分块数量;
S42:将所述单位矩阵与所述原始数据进行乘法处理,获取所述分块数据;
S43:将所述分块数据存储至所述第一存储空间。
通过上述步骤,可将原始数据分割为多个分块数据并进行分布式存储,以此提升数据存储的可靠性。
如图6所示,在步骤S41中,示例性地说明,构建单位矩阵,例如,设分块数量为K,则构建一个K行K列的单位矩阵,其中,单位矩阵的第k行第k列的元素数值为1,其他元素数值为0,k为索引值,k=1,2,..,K,K为正整数。
如图6所示,在步骤S42中,示例性地说明,将单位矩阵与原始数据进行乘法处理,获取分块数据,例如,由于单位矩阵的行列数量根据分块数量进行构造,因此将单位矩阵与原始数据进行乘法处理后,可实现对原始数据进行分块的目的,将原始数据分割成多块独立的分块数据。
如图6所示,在步骤S43中,示例性地说明,将分块数据存储至第一存储空间,例如,可以将分块数据存储至独立的磁盘,将多个独立的磁盘组合成为第一存储空间。
将分块数据及其对应的冗余数据存储后,当发生分块数据丢失的情况时,需要选取合适的存储模块对原始分块数据进行恢复,如图7所示,对所述分块数据进行恢复处理的步骤包括:
S51:将所述单位矩阵与第一执行矩阵和第二执行矩阵进行合并,获取第一分布矩阵;
S52:将所述第一分布矩阵与所述分块数据进行乘法处理,获取第一存储数据;
S53:从所述第一存储数据中删减所述丢失数量对应的数据,获取第二存储数据;
S54:从所述第一分布矩阵中删减所述丢失数量对应的数据的行数,获取第二分布矩阵;
S55:将所述第二分布矩阵的逆矩阵与所述第二存储数据进行乘法处理,获取所述分块数据。
通过上述步骤,可在发生数据丢失的情况时,通过冗余数据对原始分块数据进行恢复处理。
如图7所示,在步骤S51中,示例性地说明,将单位矩阵与第一执行矩阵和第二执行矩阵进行合并,获取第一分布矩阵,例如,设分块数量为K,第一冗余数量为M,第二冗余数量为N,则单位矩阵的行数与列数K,第一执行矩阵的行数为M、列数为K,第二执行矩阵的行数为K、列数为N,将单位矩阵与第一执行矩阵和第二执行矩阵的每一行进行合并,获取第一分布矩阵,在一些实施过程中,第一分布矩阵的前K行的元素为K*K的单位矩阵,第K+1行至第K+M行的元素为M*K的第一执行矩阵,第K+M+1至第K+M+N行的元素为N*K的第二执行矩阵,其中,K和M为正整数,N为自然数,在另一些实施过程中,N可以等于0,具体地,当存储空间的环境关联信息不满足预设的条件时,则仅对当前待存储的分块数据进行第一冗余计算,以此适应性地根据用户数据的优先级、存储空间的使用情况等因素对冗余数据存储空间的分配进行管理。
如图7所示,在步骤S52中,示例性地说明,将第一分布矩阵与分块数据进行乘法处理,获取第一存储数据,例如,设第一分布矩阵的行数为(K+M+N),列数为K,即第一分布矩阵的尺寸结构为(K+M+N)*K,而分块数据可看作结构为K*1的矩阵,因此将第一分布矩阵与分块数据进行乘法处理可以得到结构为(K+M+N)*1的矩阵,将该矩阵的每一行单独存储至独立的磁盘,作为第一存储数据,具体地,前K个磁盘存储的内容为K个分块数据的存储内容,第K+1至第K+M个磁盘存储的内容为M个第一冗余数据的存储内容,第K+M+1至第K+M+N个磁盘存储的内容为N个第二冗余数据的存储内容,以此对分块数据及其对应的冗余数据进行分布式存储,提升数据存储可靠性,并便于后续对丢失的数据进行恢复,其中,K,M为正整数,N为自然数,在一些实施过程中,N可以等于0,具体地,当存储空间的环境关联信息不满足预设的条件时,则不存在第二冗余数据。
如图7所示,在步骤S53中,示例性地说明,从第一存储数据中删减丢失数量对应的数据,获取第二存储数据,例如,设第一存储数据的存储模块个数为(K+M+N),设分块数据的丢失数量为R1,设第一冗余数据的丢失数量为R2,设第二冗余数据的丢失数量为R3,从第一存储数据中删减各丢失数量对应的数据,即剩余的分块数据的数量为K-R1,剩余的第一冗余数据的数量为M-R2,剩余的第二冗余数据的数量为N-R3,将第一存储数据中剩余的分块数据、第一冗余数据、第二冗余数据作为第二存储数据,其中,K,M为正整数,N,R1,R2,R3为自然数。
如图7所示,在步骤S54中,从第一分布矩阵中删减丢失数量对应的数据的行数,获取第二分布矩阵,例如,设第一分布矩阵的结构为(K+M+N)*K,设分块数据的丢失数量为R1,设第一冗余数据的丢失数量为R2,设第二冗余数据的丢失数量为R3,即剩余的分块数据的数量为K-R1,剩余的第一冗余数据的数量为M-R2,剩余的第二冗余数据的数量为N-R3,那么将第一分布矩阵中与各丢失数量对应的行的元素进行删减,获取结构为从((K-R1)+(M-R2)+(N-R3)) 中任意选数量为K从而构成K*K的第二分布矩阵,其中,K,M为正整数,N,R1,R2,R3为自然数,N的取值由存储空间的环境关联信息与预设的阈值的对比结果决定,而R1,R2,R3的取值由实际应用场景中发生数据丢失情况决定。
如图7所示,在步骤S55中,示例性的说明,将第二存储数据左乘第二分布矩阵的逆矩阵,获取分块数据,例如,设第二存储数据为结构为从((K-R1)+(M-R2)+(N-R3))中任意选取数量为K从而构成K*1的矩阵S,设第二分布矩阵为结构为从((K-R1)+(M-R2)+(N-R3))中任意选取数量为K从而构成K*K的矩阵D,设分块数据为结构为K*1的矩阵B,当分块数据出现数据丢失的情况,认为矩阵B的完整信息受到破坏,即此时认为矩阵B的具体元素是未知的,但矩阵B的行数与列数是可知的,因此可以得知:D*B=S,而由于矩阵D来源于单位矩阵、第一执行矩阵和第二执行矩阵的组合,因此矩阵D具有可逆性,存在可知的逆矩阵D-1,因此将公式D*B=S中等号的两边都左乘逆矩阵D-1,可以得到D-1*D*B= D-1*S,矩阵D左乘逆矩阵D-1得到单位矩阵I,因此可知I*B= D-1*S,可以发现,等号左边为分块数据构成的矩阵B,等式右边为可知的逆矩阵D-1与已知的矩阵B,通过该方式可以获取矩阵B的完整元素数值,从而获取各个分块数据的具体存储内容,实现对分块数据的恢复处理功能,其中,K,M为正整数,N,R1,R2,R3为自然数,D,B,S仅为矩阵的名称,在具体实施过程汇总可随意对矩阵名称进行变换与调整。
当需要对原始数据进行增加或删减的更新操作时,需要对冗余数据重新进行管理,如图8所示,冗余数据管理方法还包括:
S61:判断所述原始数据是否需要更新;
S62:若是,则获取更新后的原始数据,对所述更新后的原始数据进行分块处理,并重新对所述第一冗余数据和/或所述第二冗余数据进行计算和存储。
通过上述步骤,可针对用户数据的更新,对存储空间中的冗余数据进行相应地释放、分配等管理操作,以此改善存储空间的存储灵活性,提升存储性能。
如图8所示,在步骤S61中,示例性地说明,判断原始数据是否需要更新,例如,当用户数据的存储容量增大或者减少时,认为需要对原始数据进行更新。
如图8所示,在步骤S62中,示例性地说明,当需要对原始数据进行更新时,则获取更新后的原始数据,对更新后的原始数据进行分块处理,并重新对第一冗余数据和/或第二冗余数据进行计算和存储,例如,由于存储空间有限,而第二存储空间的存储容量可由存储空间总容量、用户数据的存储容量和第一冗余数据的容量决定,因此当用户数据的存储容量需要增大时,可以对第二存储空间的存储内容进行释放,以使整个存储空间具有足够大的存储容量对更新后的原始数据进行存储,然后对更新后的原始数据进行分块处理,同时对可进行分配的第二存储空间的容量进行评估,若存储空间的关联信息大于预设的阈值并且可用的第二存储空间的容量满足对第二冗余数据的存储容量限制,此时可以灵活设置第二冗余数量,并对第一冗余数据和第二冗余数据进行计算,将分块数据和第一冗余数据存储至第一存储空间,将第二冗余数据存储至第二存储空间,在一些实施过程中,当用户数据需要进行删减时,可以认为留给第二存储空间可用的存储容量得到了提升,因此针对该情况,可以进一步地扩大第二存储空间的容量,从而增加第二冗余数量,将更多的第二冗余数据存储至第二存储空间,从而增加存储空间在面临同时发生数据丢失的存储模块的数量较多时对原始分块数据进行恢复处理的能力。
在一个实施例中,如图9所示,提供了一种冗余数据管理装置,所述图像数据增强装置包括:
第一处理模块,用于对原始数据进行分块处理,获取分块数据及其对应的分块数量,设置第一冗余数量,根据所述分块数量与所述第一冗余数量对所述分块数据进行第一冗余计算,获取第一冗余数据,将所述分块数据与所述第一冗余数据存储至第一存储空间;
第二处理模块,用于获取存储空间的环境关联信息,将所述环境关联信息与预设的环境信息阈值进行对比,根据对比结果设置第二冗余数量,根据所述分块数量与所述第二冗余数量对所述分块数据进行第二冗余计算,获取第二冗余数据,将所述第二冗余数据存储至第二存储空间,其中,所述存储空间包括:所述第一存储空间、所述第二存储空间;
数据恢复模块,用于获取所述分块数据的丢失数量,将所述丢失数量与所述第一冗余数量进行对比,选择所述第一冗余数据和/或所述第二冗余数据对所述分块数据进行恢复处理。
在第一处理模块中,示例性地说明,将原始数据划分为多个分块数据,设置第一冗余数量,根据分块数量与第一冗余数量对分块数据进行第一冗余计算,获取第一冗余数据,将分块数据与第一冗余数据存储至第一存储空间,例如,可根据原始数据的字节大小,考虑当前可用的存储空间容量,将原始数据进行分块处理,获取分块数量为K的多个分块数据,并将K个分块数据存储至独立的磁盘或者存储节点,然后设置第一冗余数量为M,对K个分块数据进行第一冗余计算,获取M个第一冗余数据,其中,第一冗余计算可以为RS纠删码计算,然后将K个分块数据与M个第一冗余数据按顺序存储至第一存储空间,同时需要保证K个分块数据与M个第一冗余数据的总的数据存储容量小于第一存储空间的总存储容量,以此在大规模存储系统中对分块数据和冗余数据进行分布式存储,降低网数据流量,节约网路带宽和存储空间,其中,K,M为正整数,在另一些实施过程中,还可以采用阵列纠删码、低密度奇偶校验纠删码方式对待存储的原始数据进行冗余计算。
在第二处理模块中,示例性地说明,将存储空间的环境关联信息与预设的环境信息阈值进行对比,根据对比结果设置第二冗余数量,对分块数据进行第二冗余计算,获取第二冗余数据,将第二冗余数据存储至第二存储空间,例如,可对需要进行存储的用户数据的重要性进行评估,获取当前用户数据的优先级,作为存储空间的环境关联信息,可选地,对历史用户数据的存储容量、用户数据所属业务类型等历史信息进行统计和分析,对于比如安全生产业务、警务防护业务、医疗业务等重要性高的业务类型,可对该用户数据设置高优先级,若当前的环境关联信息大于预设的环境信息阈值,比如当前用户数据的优先级大于预设的优先级阈值时,则认为当前用户的原始数据需要进一步对存储空间进行管理,此时可以设置第二冗余数量为N,在K个分块数据与M个第一冗余数据的基础上,新增N个冗余数据块,即此时对K个分块数据进行第二冗余计算,获得M+N个冗余数据块,其中,M个冗余数据块为第一冗余数据,N个冗余数据块为第二冗余数据,然后将第二冗余数据存储至第二存储空间,其中,存储空间可以为磁盘;在设定第二冗余数据的数量时,需要考虑第二存储空间的存储容量,保证N个第二冗余数据的字节大小需要小于第二存储空间的总存储容量,以此对部分满足条件的原始数据新增第二冗余数据并将第二冗余数据存储至独立的第二存储空间,提升数据的存储可靠性,其中,K,M为正整数,N为自然数,在另一些实施过程中,当环境关联信息小于预设的环境信息阈值时,可以将第二冗余数量N的数值设置为0,即此时不需要对第二冗余数据以及第二存储空间进行分配和管理。
在数据恢复模块中,示例性地说明,获取分块数据的丢失数量,将丢失数量与第一冗余数量进行对比,选择第一冗余数据和/或第二冗余数据对分块数据进行恢复处理,例如,当同时发生故障的存储模块数量较小时,可直接通过第一存储空间的剩余的分块数据和第一冗余数据对原始数据进行恢复,比如当前存在K个分块数据与M个第一冗余数据,当同时发生故障的存储模块的数量小于等于M时,可以直接通过读取剩余的未发生数据丢失的磁盘中的第一冗余数据存储内容与分块数据存储内容对原始K个分块数据进行数据恢复处理,而当同时发生故障的存储模块的数量大于M时,无法直接通过剩余的未发生数据丢失的第一冗余数据与分块数据对原始K个分块数据进行数据恢复,因此可以将第二存储空间中的N个第二冗余数据与剩余的未发生数据丢失的第一冗余数据和分块数据进行组合,从组合中任意选取不重复的K个磁盘,读取K个磁盘的存储内容再经过纠删码解码计算对原始的分块数据进行恢复处理,在一些实施过程中,可能出现第二冗余数据也存在数据丢失的情况,但只要丢失数据的存储模块数量小于等于M+N,都可通过本方法对数据进行恢复处理,以此提升数据恢复的性能和数据存储的可靠性。
上述装置可应用于大规模的分布式存储系统里对数据进行冗余处理并存储的场景中,上述装置考虑了用户数据的优先级、存储空间的使用情况等因素,将存储空间划分为第一存储空间与第二存储空间,将K个分块数据与M个第一冗余数据存储至第一存储空间,并在M个第一冗余数据的基础上设置了N个第二冗余数据,将N个第二冗余数据存储至第二存储空间,当同时发生故障的磁盘数量大于M且小于等于N+M时,可通过查询N个第二冗余数据对原始数据进行恢复,即通过对冗余数据进行管理,解决当数据丢失数量较大时数据恢复难、存储可靠性低等问题,其中,K,M为正整数,N为自然数。
关于冗余数据管理装置的具体限定可以参见上文中对于冗余数据管理方法的限定,在此不再赘述。上述冗余数据管理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图10所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储对冗余数据进行管理的数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种冗余数据管理方法。
本领域技术人员可以理解,图10中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:
对原始数据进行分块处理,获取分块数据及其对应的分块数量,设置第一冗余数量,根据所述分块数量与所述第一冗余数量对所述分块数据进行第一冗余计算,获取第一冗余数据,将所述分块数据与所述第一冗余数据存储至第一存储空间;
获取存储空间的环境关联信息,将所述环境关联信息与预设的环境信息阈值进行对比,根据对比结果设置第二冗余数量,根据所述分块数量与所述第二冗余数量对所述分块数据进行第二冗余计算,获取第二冗余数据,将所述第二冗余数据存储至第二存储空间,其中,所述存储空间包括:所述第一存储空间、所述第二存储空间;
获取所述分块数据的丢失数量,将所述丢失数量与所述第一冗余数量进行对比,选择所述第一冗余数据和/或所述第二冗余数据对所述分块数据进行恢复处理。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
对原始数据进行分块处理,获取分块数据及其对应的分块数量,设置第一冗余数量,根据所述分块数量与所述第一冗余数量对所述分块数据进行第一冗余计算,获取第一冗余数据,将所述分块数据与所述第一冗余数据存储至第一存储空间;
获取存储空间的环境关联信息,将所述环境关联信息与预设的环境信息阈值进行对比,根据对比结果设置第二冗余数量,根据所述分块数量与所述第二冗余数量对所述分块数据进行第二冗余计算,获取第二冗余数据,将所述第二冗余数据存储至第二存储空间,其中,所述存储空间包括:所述第一存储空间、所述第二存储空间;
获取所述分块数据的丢失数量,将所述丢失数量与所述第一冗余数量进行对比,选择所述第一冗余数据和/或所述第二冗余数据对所述分块数据进行恢复处理。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink) DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种冗余数据管理方法,其特征在于,包括:
对原始数据进行分块处理,获取分块数据及其对应的分块数量,设置第一冗余数量,根据所述分块数量与所述第一冗余数量对所述分块数据进行第一冗余计算,获取第一冗余数据,将所述分块数据与所述第一冗余数据存储至第一存储空间;
获取存储空间的环境关联信息,将所述环境关联信息与预设的环境信息阈值进行对比,根据对比结果设置第二冗余数量,根据所述分块数量与所述第二冗余数量对所述分块数据进行第二冗余计算,获取第二冗余数据,将所述第二冗余数据存储至第二存储空间,其中,所述存储空间包括:所述第一存储空间、所述第二存储空间;
获取所述分块数据的丢失数量,将所述丢失数量与所述第一冗余数量进行对比,选择所述第一冗余数据和/或所述第二冗余数据对所述分块数据进行恢复处理。
2.根据权利要求1所述的冗余数据管理方法,其特征在于,根据所述分块数量与所述第一冗余数量对所述分块数据进行第一冗余计算,获取第一冗余数据,将所述分块数据与所述第一冗余数据存储至第一存储空间的步骤包括:
建立第一执行矩阵,其中,所述第一执行矩阵的行数包括:所述第一冗余数量,所述第一执行矩阵的列数包括:所述分块数量;
将所述第一执行矩阵与所述分块数据进行乘法处理,获取第一冗余数据;
将所述分块数据与所述第一冗余数据依次存储于所述第一存储空间。
3.根据权利要求1所述的冗余数据管理方法,其特征在于,获取存储空间的环境关联信息,将所述环境关联信息与预设的环境信息阈值进行对比,根据对比结果设置第二冗余数量,根据所述分块数量与所述第二冗余数量对所述分块数据进行第二冗余计算,获取第二冗余数据的步骤包括:
获取所述环境关联信息,判断所述环境关联信息是否大于预设的所述环境信息阈值,其中,所述环境关联信息至少包括以下之一:所述原始数据的优先级、所述存储空间的容量大小、所述存储空间的使用记录;
若是,则设置所述第二冗余数量为正整数,建立第二执行矩阵,将所述第二执行矩阵与所述分块数据进行乘法处理,获取第二冗余数据,其中,所述第二执行矩阵的行数包括:所述第二冗余数量,所述第二执行矩阵的列数包括:所述分块数量。
4.根据权利要求1所述的冗余数据管理方法,其特征在于,获取所述分块数据的丢失数量,将所述丢失数量与所述第一冗余数量进行对比,选择所述第一冗余数据和/或所述第二冗余数据对所述分块数据进行恢复处理的步骤包括:
判断所述丢失数量是否大于所述第一冗余数量;
若是,则通过所述第一冗余数据和/或所述第二冗余数据对所述分块数据进行恢复处理;
若否,则通过所述第一冗余数据对所述分块数据进行恢复处理。
5.根据权利要求1所述的冗余数据管理方法,其特征在于,将所述分块数据存储至第一存储空间的步骤包括:
构建单位矩阵,其中,所述单位矩阵的行数与列数包括:所述分块数量;
将所述单位矩阵与所述原始数据进行乘法处理,获取所述分块数据;
将所述分块数据存储至所述第一存储空间。
6.根据权利要求5所述的冗余数据管理方法,其特征在于,对所述分块数据进行恢复处理的步骤包括:
将所述单位矩阵与第一执行矩阵和第二执行矩阵进行合并,获取第一分布矩阵;
将所述第一分布矩阵与所述分块数据进行乘法处理,获取第一存储数据;
从所述第一存储数据中删减所述丢失数量对应的数据,获取第二存储数据;
从所述第一分布矩阵中删减所述丢失数量对应的数据的行数,获取第二分布矩阵;
将所述第二分布矩阵的逆矩阵与所述第二存储数据进行乘法处理,获取所述分块数据。
7.根据权利要求1所述的冗余数据管理方法,其特征在于,还包括:
判断所述原始数据是否需要更新;
若是,则获取更新后的原始数据,对所述更新后的原始数据进行分块处理,并重新对所述第一冗余数据和/或所述第二冗余数据进行计算和存储。
8.一种冗余数据管理装置,其特征在于,包括:
第一处理模块,用于对原始数据进行分块处理,获取分块数据及其对应的分块数量,设置第一冗余数量,根据所述分块数量与所述第一冗余数量对所述分块数据进行第一冗余计算,获取第一冗余数据,将所述分块数据与所述第一冗余数据存储至第一存储空间;
第二处理模块,用于获取存储空间的环境关联信息,将所述环境关联信息与预设的环境信息阈值进行对比,根据对比结果设置第二冗余数量,根据所述分块数量与所述第二冗余数量对所述分块数据进行第二冗余计算,获取第二冗余数据,将所述第二冗余数据存储至第二存储空间,其中,所述存储空间包括:所述第一存储空间、所述第二存储空间;
数据恢复模块,用于获取所述分块数据的丢失数量,将所述丢失数量与所述第一冗余数量进行对比,选择所述第一冗余数据和/或所述第二冗余数据对所述分块数据进行恢复处理。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1-7中任一项所述冗余数据管理方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-7中任一项所述冗余数据管理方法的步骤。
CN202210084199.5A 2022-01-25 2022-01-25 一种冗余数据管理方法、装置、计算机设备和存储介质 Pending CN114116321A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210084199.5A CN114116321A (zh) 2022-01-25 2022-01-25 一种冗余数据管理方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210084199.5A CN114116321A (zh) 2022-01-25 2022-01-25 一种冗余数据管理方法、装置、计算机设备和存储介质

Publications (1)

Publication Number Publication Date
CN114116321A true CN114116321A (zh) 2022-03-01

Family

ID=80360946

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210084199.5A Pending CN114116321A (zh) 2022-01-25 2022-01-25 一种冗余数据管理方法、装置、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN114116321A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114884803A (zh) * 2022-04-28 2022-08-09 交控科技股份有限公司 多重冗余状态的处理方法、装置、设备和介质
WO2024001494A1 (zh) * 2022-06-29 2024-01-04 京东方科技集团股份有限公司 一种数据存储的方法、单节点服务器及设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7093182B2 (en) * 1999-08-02 2006-08-15 Inostor Corporation Data redundancy methods and apparatus
CN107977285A (zh) * 2017-12-19 2018-05-01 郑州云海信息技术有限公司 一种纠删码存储机制的数据修改方法、装置及介质
CN110389715A (zh) * 2018-04-23 2019-10-29 杭州海康威视系统技术有限公司 数据存储方法、存储服务器及云存储系统
CN111930555A (zh) * 2020-09-02 2020-11-13 平安国际智慧城市科技股份有限公司 基于纠删码的文件处理方法、装置及计算机设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7093182B2 (en) * 1999-08-02 2006-08-15 Inostor Corporation Data redundancy methods and apparatus
CN107977285A (zh) * 2017-12-19 2018-05-01 郑州云海信息技术有限公司 一种纠删码存储机制的数据修改方法、装置及介质
CN110389715A (zh) * 2018-04-23 2019-10-29 杭州海康威视系统技术有限公司 数据存储方法、存储服务器及云存储系统
CN111930555A (zh) * 2020-09-02 2020-11-13 平安国际智慧城市科技股份有限公司 基于纠删码的文件处理方法、装置及计算机设备

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114884803A (zh) * 2022-04-28 2022-08-09 交控科技股份有限公司 多重冗余状态的处理方法、装置、设备和介质
CN114884803B (zh) * 2022-04-28 2024-02-20 交控科技股份有限公司 多重冗余状态的处理方法、装置、设备和介质
WO2024001494A1 (zh) * 2022-06-29 2024-01-04 京东方科技集团股份有限公司 一种数据存储的方法、单节点服务器及设备

Similar Documents

Publication Publication Date Title
US20220222157A1 (en) Policy-based hierarchical data protection in distributed storage
CN114116321A (zh) 一种冗余数据管理方法、装置、计算机设备和存储介质
CN110750382B (zh) 用于提高数据修复性能的最小存储再生码编码方法及系统
US20200319973A1 (en) Layered error correction encoding for large scale distributed object storage system
US20150089283A1 (en) Method of data storing and maintenance in a distributed data storage system and corresponding device
US11698728B2 (en) Data updating technology
CN111078662B (zh) 一种区块链数据存储方法与装置
CN114090345B (zh) 一种磁盘阵列数据恢复方法、系统、存储介质及设备
CN115437581B (zh) 一种数据处理方法、装置、设备及可读存储介质
US9864550B2 (en) Method and apparatus of recovering and encoding for data recovery in storage system
US20190227710A1 (en) Incremental data restoration method and apparatus
CN113687975B (zh) 数据处理方法、装置、设备及存储介质
US11442827B2 (en) Policy-based hierarchical data protection in distributed storage
WO2013164228A1 (en) Method of storing a data item in a distributed data storage system, corresponding storage device failure repair method and corresponding devices
CN113485874B (zh) 数据处理方法及分布式存储系统
CN114968119A (zh) 一种数据保护方法、装置、设备及存储介质
CN117724899A (zh) 一种项目数据备份方法、系统及介质
CN112596959A (zh) 分布式存储集群数据备份方法及装置
CN113312309A (zh) 快照链的管理方法、装置和存储介质
CN113687774A (zh) 空间回收方法、装置及设备
CN112565201B (zh) 一种区块链中的私钥处理方法、装置及计算机存储介质
CN115357429A (zh) 恢复数据文件的方法、装置和客户端
CN114003174A (zh) 一种纠删码存储方法、系统及电子设备
CN112543920B (zh) 数据重构的方法、装置、计算机设备、存储介质及系统
CN115269270B (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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20220301