CN114968119A - 一种数据保护方法、装置、设备及存储介质 - Google Patents
一种数据保护方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN114968119A CN114968119A CN202210612251.XA CN202210612251A CN114968119A CN 114968119 A CN114968119 A CN 114968119A CN 202210612251 A CN202210612251 A CN 202210612251A CN 114968119 A CN114968119 A CN 114968119A
- Authority
- CN
- China
- Prior art keywords
- original data
- lost
- data
- target
- blocks
- 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
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/0614—Improving the reliability of storage systems
-
- 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
-
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- 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/0662—Virtualisation aspects
- G06F3/0667—Virtualisation aspects at data level, e.g. file, record or object virtualisation
-
- 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)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种数据保护方法、装置、设备及存储介质,涉及计算机技术领域,包括:获取虚拟化环境中待保护的原始数据;计算原始数据的纠删码,并将原始数据和纠删码保存至分布式系统的多个目标节点;当目标节点出现故障时,获取未出现故障的目标节点或出现故障的目标节点上的未丢失的原始数据和未丢失的纠删码,并利用未丢失的原始数据和未丢失的纠删码对所述原始数据进行恢复。本申请利用纠删码的副本冗余机制策略来实现数据保护,能够提高数据保护的可靠性,节省更多的磁盘空间,提高磁盘的利用率,大幅减少存储成本,并且能容忍多节点或者节点上的多块磁盘故障,使系统的容错能力得到大幅度的提高。
Description
技术领域
本申请涉及计算机技术领域,特别涉及一种数据保护方法、装置、设备及存储介质。
背景技术
随着数据规模的不断增大,云计算也得到了飞速发展,而虚拟化作为云计算底层架构的基石也得到了广泛应用。在服务器虚拟化中,虚拟化软件需要实现对硬件的抽象、资源的分配、调度和管理。而随着公有云、私有云、政务云等在各行各业中的广泛应用,对虚拟化平台的稳定性、可靠性和数据冗余恢复机制等提出了更高的要求,尤其在金融、政务、医疗等行业,对数据业务安全等级又提升了一个档次。
目前虚拟化平台通常将服务器的CPU(Central Processing Unit,中央处理器)、内存、存储、网卡等硬件资源抽象成一整套软件系统提供给用户使用,用户通过在虚拟化平台上部署虚拟机来运行自己的业务,因此对用户来说,数据的安全和业务的稳定运行是至关重要的。
目前,在当前的虚拟化技术中,除了常用的快照和备份方式外,还有一种方案是通过开启磁盘多副本的方式对虚拟机进行数据保护的,即虚拟机在生产存储池里的磁盘数据,开启磁盘多副本后,会在所选择的备份存储池里生成相应的磁盘副本(如两副本、三副本等),如果生产存储池里的磁盘数据丢失后,可以通过恢复备份存储池里的磁盘副本恢复数据,达到数据冗余保护的目的。然而,虚拟机的磁盘多副本对于数据保护的可靠性虽然较高,但是牺牲了存储的利用率,两副本空间利用率为50%,三副本空间利用率为33.3%。这种通过牺牲存储空间来提高数据可靠性的方式,降低了磁盘空间利用、提高了存储成本,并且当多节点或者节点上的多块磁盘故障时,系统的容错能力将大大下降。
发明内容
有鉴于此,本申请的目的在于提供一种数据保护方法、装置、设备及存储介质,能够提高数据保护的可靠性,节省更多的磁盘空间,提高磁盘的利用率,大幅减少存储成本,并且能容忍多节点或者节点上的多块磁盘故障,使系统的容错能力得到大幅度的提高。其具体方案如下:
第一方面,本申请公开了一种数据保护方法,包括:
获取虚拟化环境中待保护的原始数据;
计算所述原始数据的纠删码,并将所述原始数据和所述纠删码保存至分布式系统的多个目标节点;
当所述目标节点出现故障时,获取未出现故障的所述目标节点或出现故障的所述目标节点上的未丢失的所述原始数据和未丢失的所述纠删码,并利用未丢失的所述原始数据和未丢失的所述纠删码对所述原始数据进行恢复。
可选的,所述获取虚拟化环境中待保护的原始数据,包括:
获取虚拟化环境中待保护的原始数据,并对所述原始数据进行分割,得到第一数量的原始数据块。
可选的,所述计算所述原始数据的纠删码,并将所述原始数据和所述纠删码保存至分布式系统的多个目标节点,包括:
利用预设纠删码校验码算法对所有所述原始数据块进行计算,得到第二数量的数据校验块;
将所述原始数据块和所述数据校验块分别保存至分布式系统的多个目标节点。
可选的,所述当所述目标节点出现故障时,获取未出现故障的所述目标节点或出现故障的所述目标节点上的未丢失的所述原始数据和未丢失的所述纠删码,并利用未丢失的所述原始数据和未丢失的所述纠删码对所述原始数据进行恢复,包括:
当所述目标节点出现故障时,统计出现故障的所述目标节点的数量,得到目标故障节点数量,并判断所述目标故障节点数量是否大于预设故障节点数量;
若所述目标故障节点数量小于或等于所述预设故障节点数量,则获取未出现故障的所述目标节点上的未丢失的所述原始数据块和未丢失的所述数据校验块,并利用未丢失的所述原始数据块和未丢失的所述数据校验块对丢失的所述原始数据块进行恢复。
可选的,所述计算所述原始数据的纠删码,并将所述原始数据和所述纠删码保存至分布式系统的多个目标节点,包括:
利用预设纠删码校验码算法对所有所述原始数据块进行计算,得到第三数量的数据校验块;
将所述原始数据块和所述数据校验块一同保存至分布式系统的多个目标节点的多个硬盘中。
可选的,所述当所述目标节点出现故障时,获取未出现故障的所述目标节点或出现故障的所述目标节点上的未丢失的所述原始数据和未丢失的所述纠删码,并利用未丢失的所述原始数据和未丢失的所述纠删码对所述原始数据进行恢复,包括:
当所述目标节点中的硬盘出现故障时,统计出现故障的硬盘数量,得到目标故障硬盘数量,并判断所述目标故障硬盘数量是否大于预设故障硬盘数量;
若所述目标故障硬盘数量小于或等于所述预设故障硬盘数量,则获取所述目标节点中未出现故障硬盘上的未丢失的所述原始数据块和未丢失的所述数据校验块,并利用未丢失的所述原始数据块和未丢失的所述数据校验块对丢失的所述原始数据块进行恢复。
可选的,所述未丢失的所述原始数据块和未丢失的所述数据校验块对丢失的所述原始数据块进行恢复,包括:
将所述第一数量的所述原始数据块按列进行排序,得到第一列向量;
利用所述数据校验块构造任意与所述第一数量相同个行向量都是相互独立的分布式矩阵,得到第一分布式矩阵;
删除所述第一列向量中丢失的所述原始数据块,得到第二列向量;
删除所述第一分布式矩阵中丢失的所述数据校验块对应的行向量,得到第二分布式矩阵;
计算所述第二分布式矩阵的逆矩阵,并利用所述逆矩阵、所述第二分布式矩阵和所述第二列向量对丢失的所述原始数据块进行恢复。
第二方面,本申请公开了一种数据保护装置,包括:
原始数据获取模块,用于获取虚拟化环境中待保护的原始数据;
数据计算与保存模块,用于计算所述原始数据的纠删码,并将所述原始数据和所述纠删码保存至分布式系统的多个目标节点;
数据恢复模块,用于当所述目标节点出现故障时,获取未出现故障的所述目标节点或出现故障的所述目标节点上的未丢失的所述原始数据和未丢失的所述纠删码,并利用未丢失的所述原始数据和未丢失的所述纠删码对所述原始数据进行恢复。
第三方面,本申请公开了一种电子设备,包括处理器和存储器;其中,所述处理器执行所述存储器中保存的计算机程序时实现前述的数据保护方法。
第四方面,本申请公开了一种计算机可读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现前述的数据保护方法。
可见,本申请先获取虚拟化环境中待保护的原始数据,然后计算所述原始数据的纠删码,并将所述原始数据和所述纠删码保存至分布式系统的多个目标节点,当所述目标节点出现故障时,获取未出现故障的所述目标节点或出现故障的所述目标节点上的未丢失的所述原始数据和未丢失的所述纠删码,并利用未丢失的所述原始数据和未丢失的所述纠删码对所述原始数据进行恢复。本申请利用纠删码的副本冗余机制策略来实现数据保护,能够提高数据保护的可靠性,节省更多的磁盘空间,提高磁盘的利用率,大幅减少存储成本,并且能容忍多节点或者节点上的多块磁盘故障,使系统的容错能力得到大幅度的提高。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请公开的一种数据保护方法流程图;
图2为本申请公开的一种具体的数据保护方法流程图;
图3为本申请公开的一种具体的数据分割方法示意图;
图4为本申请公开的一种具体的数据保护方法流程图;
图5为本申请公开的一种具体的矩阵构造方法示意图;
图6为本申请公开的一种具体的可逆矩阵示意图;
图7为本申请公开的一种具体的矩阵计算示意图;
图8为本申请公开的一种具体的存在数据块丢失的矩阵示意图;
图9为本申请公开的一种具体的矩阵计算示意图;
图10为本申请公开的一种具体的矩阵计算示意图;
图11为本申请公开的一种具体的矩阵计算过程示意图;
图12为本申请公开的一种数据保护装置结构示意图;
图13为本申请公开的一种电子设备结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例公开了一种数据保护方法,参见图1所示,该方法包括:
步骤S11:获取虚拟化环境中待保护的原始数据。
本实施例中,首先需要对虚拟化环境中待保护的原始数据进行获取。例如,对虚拟机中的待保护的原始数据文件进行获取。所述原始数据包括但不限于位于公有云、私有云、政务云等虚拟化环境中的数据。
步骤S12:计算所述原始数据的纠删码,并将所述原始数据和所述纠删码保存至分布式系统的多个目标节点。
本实施例中,获取到虚拟化环境中待保护的原始数据之后,进一步的,计算上述原始数据的纠删码(EC,Erasure Coding),即前向纠错编码技术(FEC,Forward errorcorrection),然后将上述原始数据和上述纠删码保存到分布式系统的多个目标节点中。其中,所述纠删码的数量与所述原始数据分割后得到的数据块的数量和采用的预设纠删码校验码算法有关。并且,需要指出的是,在对所述原始数据和所述纠删码进行保存时,为了节省目标节点的存储空间,既可以将其一同保存到分布式系统的多个目标节点上,也可以将其分别保存到分布式系统的多个目标节点上,优选的,为了节省目标节点的存储空间,还可以将所述原始数据和所述纠删码保存至分布式系统的多个目标节点的多个硬盘上。
步骤S13:当所述目标节点出现故障时,获取未出现故障的所述目标节点或出现故障的所述目标节点上的未丢失的所述原始数据和未丢失的所述纠删码,并利用未丢失的所述原始数据和未丢失的所述纠删码对所述原始数据进行恢复。
本实施例中,计算所述原始数据的纠删码,并将所述原始数据和所述纠删码保存至分布式系统的多个目标节点之后,当上述目标节点出现故障时,先对未出现故障的所述目标节点或出现故障的所述目标节点上的未丢失的所述原始数据和未丢失的所述纠删码进行获取,然后可以利用未丢失的所述原始数据和上述未丢失的所述纠删码对丢失的数据进行恢复,进而得到所述原始数据。
例如,根据已知的4个数a、b、c、d,就可以通过不同的公式算出2个校验数据x和y,把上述6个数据一起保存起来,那么当a、b、c、d、x、y中的任意两个数据丢失时,就可以通过剩余未丢失的数据和公式反推出丢失的数据。例如,已知a+b+c+d=x=10,a+2b+3c+4d=y=20,c=2,d=1,那么可以计算得到a+b=7,a+2b=10,进而计算出丢失的a=4,b=3。
可见,本申请实施例先获取虚拟化环境中待保护的原始数据,然后计算所述原始数据的纠删码,并将所述原始数据和所述纠删码保存至分布式系统的多个目标节点,当所述目标节点出现故障时,获取未出现故障的所述目标节点或出现故障的所述目标节点上的未丢失的所述原始数据和未丢失的所述纠删码,并利用未丢失的所述原始数据和未丢失的所述纠删码对所述原始数据进行恢复。本申请实施例利用纠删码的副本冗余机制策略来实现数据保护,能够提高数据保护的可靠性,节省更多的磁盘空间,提高磁盘的利用率,大幅减少存储成本,并且能容忍多节点或者节点上的多块磁盘故障,使系统的容错能力得到大幅度的提高。
本申请实施例公开了一种具体的数据保护方法,参见图2所示,该方法包括:
步骤S21:获取虚拟化环境中待保护的原始数据,并对所述原始数据进行分割,得到第一数量的原始数据块。
本实施例中,先获取虚拟化环境中待保护的原始数据,然后对上述原始数据进行数据分割,得到第一数量的原始数据块。
步骤S22:利用预设纠删码校验码算法对所有所述原始数据块进行计算,得到第二数量的数据校验块。
本实施例中,对所述原始数据进行分割得到第一数量的原始数据块之后,进一步的,可以利用预设纠删码校验码算法对所有上述原始数据块进行相应的数据校验,得到第二数量的数据校验块。
步骤S23:将所述原始数据块和所述数据校验块分别保存至分布式系统的多个目标节点。
本实施例中,利用预设纠删码校验码算法对所有所述原始数据块进行计算得到第二数量的数据校验块之后,可以将上述原始数据块和上述数据校验块分别保存到分布式系统的多个目标节点上。
例如,参见图3所示,将一个待保护的数据文件被切割成A、B、C、D4个大小相同的数据分片,并通过纠删码校验码算法生成2个同样大小的校验分片P和Q,然后随机存放在分布式系统的6个节点上。
步骤S24:当所述目标节点出现故障时,统计出现故障的所述目标节点的数量,得到目标故障节点数量,并判断所述目标故障节点数量是否大于预设故障节点数量。
本实施例中,将所述原始数据块和所述数据校验块分别保存至分布式系统的多个目标节点之后,当上述目标节点出现故障时,先统计出出现故障的所述目标节点的数量,得到相应的目标故障节点数量,然后判断上述目标故障节点数量是否大于预设故障节点数量。
步骤S25:若所述目标故障节点数量小于或等于所述预设故障节点数量,则获取未出现故障的所述目标节点上的未丢失的所述原始数据块和未丢失的所述数据校验块,并利用未丢失的所述原始数据块和未丢失的所述数据校验块对丢失的所述原始数据块进行恢复。
本实施例中,如果上述目标故障节点数量小于或等于上述预设故障节点数量,则获取未出现故障的所述目标节点上的未丢失的上述原始数据块和未丢失的上述数据校验块,然后可以利用未丢失的所述原始数据块和未丢失的所述数据校验块对丢失的所述原始数据块进行数据的恢复。
具体的,从图3中可以看出,当任意2个节点发生故障时,数据是不会丢失的。因为当只丢失两个数据分片时,可以通过未丢失的4个数据分片反推出原来的数据。但是,如果同时发生了3个节点的故障,则采用4+2型的纠删码就无法反算出原来的数据了,因此可以根据实际应用需求采用不同数量的纠删码。
可见,本申请实施例先利用预设纠删码校验码算法对所有原始数据块进行计算,得到第二数量的数据校验块,然后将所述原始数据块和所述数据校验块分别保存至分布式系统的多个目标节点,当所述目标节点出现故障时,便可以利用未丢失的所述原始数据块和未丢失的所述数据校验块对丢失的所述原始数据块进行恢复。通过纠删码的副本冗余机制策略对数据进行保护,能够提高数据保护的可靠性,不牺牲存储利用率,大幅减少存储成本,并且能容忍多节点故障,使系统的容错能力得到大幅度的提高。
本申请实施例公开了一种具体的数据保护方法,参见图4所示,该方法包括:
步骤S31:获取虚拟化环境中待保护的原始数据,并对所述原始数据进行分割,得到第一数量的原始数据块。
步骤S32:利用预设纠删码校验码算法对所有所述原始数据块进行计算,得到第三数量的数据校验块。
步骤S33:将所述原始数据块和所述数据校验块一同保存至分布式系统的多个目标节点的多个硬盘中。
本实施例中,利用预设纠删码校验码算法对所有所述原始数据块进行计算得到第三数量的数据校验块之后,可以将上述原始数据块和上述数据校验块一同保存到分布式系统的多个目标节点的多个硬盘中。如原始数据块有n个,从n个原始数据块中计算出m个数据校验块,将这n+m个数据块分别存放在n+m个硬盘上。
步骤S34:当所述目标节点中的硬盘出现故障时,统计出现故障的硬盘数量,得到目标故障硬盘数量,并判断所述目标故障硬盘数量是否大于预设故障硬盘数量。
本实施例中,将所述原始数据块和所述数据校验块一同保存至分布式系统的多个目标节点的多个硬盘中之后,当上述目标节点中的硬盘出现故障时,先统计出出现故障的硬盘数量,得到目标故障硬盘数量,然后判断上述目标故障硬盘数量是否大于预设故障硬盘数量。
步骤S35:若所述目标故障硬盘数量小于或等于所述预设故障硬盘数量,则获取所述目标节点中未出现故障硬盘上的未丢失的所述原始数据块和未丢失的所述数据校验块,并利用未丢失的所述原始数据块和未丢失的所述数据校验块对丢失的所述原始数据块进行恢复。
本实施例中,如果上述目标故障硬盘数量小于或等于所述预设故障硬盘数量,则获取上述目标节点中未出现故障硬盘上的未丢失的所述原始数据块和未丢失的所述数据校验块,然后可以利用未丢失的所述原始数据块和未丢失的所述数据校验块对丢失的所述原始数据块进行数据恢复。例如,将上述n+m个数据块分别存放在n+m个硬盘之后,此时就能容忍任意m个硬盘出现故障,当硬盘出现故障时,只需要任意选取n个正常数据块就能计算得到所有的原始数据块。当然,如果将n+m个数据块分散在不同的存储节点上,也能容忍m个节点故障。
另外,采用上述4+2型的纠删码也能容忍2个节点内任意数量的硬盘故障,如果其他4个节点的数据分片还在,就可以反推出原来的磁盘数据,不会造成数据的丢失。
本实施例中,所述利用未丢失的所述原始数据块和未丢失的所述数据校验块对丢失的所述原始数据块进行恢复,具体可以包括:将所述第一数量的所述原始数据块按列进行排序,得到第一列向量;利用所述数据校验块构造任意与所述第一数量相同个行向量都是相互独立的分布式矩阵,得到第一分布式矩阵;删除所述第一列向量中丢失的所述原始数据块,得到第二列向量;删除所述第一分布式矩阵中丢失的所述数据校验块对应的行向量,得到第二分布式矩阵;计算所述第二分布式矩阵的逆矩阵,并利用所述逆矩阵、所述第二分布式矩阵和所述第二列向量对丢失的所述原始数据块进行恢复。例如,参见图5所示,当采用冗余级别为5+3型的纠删码时,即原始数据块有5个并且数据校验块有3个,可以先将5个原始数据块D1、D2、D3、D4、D5按列排成向量D,再构造一个(5+3)*5的分布式矩阵B,其中,分布式矩阵B的构造要求是:B中任意5个,即所述原始数据块的个数,行向量都是相互独立的,即这5个行向量组成的(5+3)*5矩阵可逆。具体的,分布式矩阵B的前5行可以是单位矩阵I,下部3行的构造参见图6中的矩阵V所示,由线性代数可知,对于互不相等的实数a1,a2,…,ak(k≥n),矩阵V的任意n行组成的矩阵都可逆,因此由单位矩阵I和矩阵V构造的分布式矩阵B的任意5个行向量也是相互独立的,然后参见图7所示,计算分布式矩阵B与所述向量D的乘积,即计算B*D,得到C1、C2和C3三个数据校验块,接着参见图8和图9所示,当用于存储D1、D4、C2的硬盘发生了故障时,从分布式矩阵B中将剩余数据块对应的行向量挑出来,组成新的矩阵B',此时B'乘以向量D的结果恰好是未发生故障的数据块。进一步的,计算B'的逆矩阵,可以理解的是,由于B的任意5行组成的矩阵均可逆,因此矩阵B'存在逆矩阵,并且逆矩阵B'-1*B'=I(即单位矩阵)。接下来,参见图10所示将图9中等式的左右两边同时左乘矩阵B'-1,经过图11的计算过程就得到了5个原始数据块D1、D2、D3、D4、D5,即完成了原始数据D1和D4的恢复。
通过上述处理过程可见,5个原始数据块+3个数据校验块在实现数据保护的同时,还有较高的磁盘利用率:5/8=62.5%。如果采用3副本实现,则总原始数据块为15块,磁盘利用率为5/15=33.3%。
其中,关于上述步骤S31、S32更加具体的处理过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
可见,本申请实施例通过纠删码的副本冗余机制策略对数据进行保护,能够提高数据保护的可靠性,节省更多的磁盘空间,提高磁盘的利用率,大幅减少存储成本,并且能容忍多节点上的多块磁盘故障,使系统的容错能力得到大幅度的提高。
相应的,本申请实施例还公开了一种数据保护装置,参见图12所示,该装置包括:
原始数据获取模块11,用于获取虚拟化环境中待保护的原始数据;
数据计算与保存模块12,用于计算所述原始数据的纠删码,并将所述原始数据和所述纠删码保存至分布式系统的多个目标节点;
数据恢复模块13,用于当所述目标节点出现故障时,获取未出现故障的所述目标节点或出现故障的所述目标节点上的未丢失的所述原始数据和未丢失的所述纠删码,并利用未丢失的所述原始数据和未丢失的所述纠删码对所述原始数据进行恢复。
其中,关于上述各个模块的具体工作流程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
可见,本申请实施例中,先获取虚拟化环境中待保护的原始数据,然后计算所述原始数据的纠删码,并将所述原始数据和所述纠删码保存至分布式系统的多个目标节点,当所述目标节点出现故障时,获取未出现故障的所述目标节点或出现故障的所述目标节点上的未丢失的所述原始数据和未丢失的所述纠删码,并利用未丢失的所述原始数据和未丢失的所述纠删码对所述原始数据进行恢复。本申请实施例利用纠删码的副本冗余机制策略来实现数据保护,能够提高数据保护的可靠性,节省更多的磁盘空间,提高磁盘的利用率,大幅减少存储成本,并且能容忍多节点或者节点上的多块磁盘故障,使系统的容错能力得到大幅度的提高。
在一些具体实施例中,所述原始数据获取模块11,具体可以包括:
原始数据获取单元,用于获取虚拟化环境中待保护的原始数据;
数据分割单元,用于对所述原始数据进行分割,得到第一数量的原始数据块。
在一些具体实施例中,所述数据计算与保存模块12,具体可以包括:
第一计算单元,用于利用预设纠删码校验码算法对所有所述原始数据块进行计算,得到第二数量的数据校验块;
第一数据保存单元,用于将所述原始数据块和所述数据校验块分别保存至分布式系统的多个目标节点。
在一些具体实施例中,所述数据恢复模块13,具体可以包括:
第一数量统计单元,用于当所述目标节点出现故障时,统计出现故障的所述目标节点的数量,得到目标故障节点数量;
第一数量判断单元,用于判断所述目标故障节点数量是否大于预设故障节点数量;
第一数据恢复单元,用于如果所述目标故障节点数量小于或等于所述预设故障节点数量,则获取未出现故障的所述目标节点上的未丢失的所述原始数据块和未丢失的所述数据校验块,并利用未丢失的所述原始数据块和未丢失的所述数据校验块对丢失的所述原始数据块进行恢复。
在一些具体实施例中,所述数据计算与保存模块12,具体可以包括:
第二计算单元,用于利用预设纠删码校验码算法对所有所述原始数据块进行计算,得到第三数量的数据校验块;
第二数据保存单元,用于将所述原始数据块和所述数据校验块一同保存至分布式系统的多个目标节点的多个硬盘中。
在一些具体实施例中,所述数据恢复模块13,具体可以包括:
第二数量统计单元,用于当所述目标节点中的硬盘出现故障时,统计出现故障的硬盘数量,得到目标故障硬盘数量;
第二数量判断单元,用于判断所述目标故障硬盘数量是否大于预设故障硬盘数量;
第二数据恢复单元,用于如果所述目标故障硬盘数量小于或等于所述预设故障硬盘数量,则获取所述目标节点中未出现故障硬盘上的未丢失的所述原始数据块和未丢失的所述数据校验块,并利用未丢失的所述原始数据块和未丢失的所述数据校验块对丢失的所述原始数据块进行恢复。
在一些具体实施例中,所述数据恢复模块13,具体可以包括:
列向量创建单元,用于将所述第一数量的所述原始数据块按列进行排序,得到第一列向量;
分布式矩阵构造单元,用于利用所述数据校验块构造任意与所述第一数量相同个行向量都是相互独立的分布式矩阵,得到第一分布式矩阵;
第一删除单元,用于删除所述第一列向量中丢失的所述原始数据块,得到第二列向量;
第二删除单元,用于删除所述第一分布式矩阵中丢失的所述数据校验块对应的行向量,得到第二分布式矩阵;
逆矩阵计算单元,用于计算所述第二分布式矩阵的逆矩阵;
第三数据恢复单元,用于利用所述逆矩阵、所述第二分布式矩阵和所述第二列向量对丢失的所述原始数据块进行恢复。
进一步的,本申请实施例还公开了一种电子设备,图13是根据一示例性实施例示出的电子设备20结构图,图中的内容不能认为是对本申请的使用范围的任何限制。
图13为本申请实施例提供的一种电子设备20的结构示意图。该电子设备20,具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的数据保护方法中的相关步骤。另外,本实施例中的电子设备20具体可以为电子计算机。
本实施例中,电源23用于为电子设备20上的各硬件设备提供工作电压;通信接口24能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源可以包括操作系统221、计算机程序222等,存储方式可以是短暂存储或者永久存储。
其中,操作系统221用于管理与控制电子设备20上的各硬件设备以及计算机程序222,其可以是Windows Server、Netware、Unix、Linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的数据保护方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。
进一步的,本申请还公开了一种计算机可读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的数据保护方法。关于该方法的具体步骤可以参考前述实施例中公开的相应内容,在此不再进行赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本申请所提供的一种数据保护方法、装置、设备及存储介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种数据保护方法,其特征在于,包括:
获取虚拟化环境中待保护的原始数据;
计算所述原始数据的纠删码,并将所述原始数据和所述纠删码保存至分布式系统的多个目标节点;
当所述目标节点出现故障时,获取未出现故障的所述目标节点或出现故障的所述目标节点上的未丢失的所述原始数据和未丢失的所述纠删码,并利用未丢失的所述原始数据和未丢失的所述纠删码对所述原始数据进行恢复。
2.根据权利要求1所述的数据保护方法,其特征在于,所述获取虚拟化环境中待保护的原始数据,包括:
获取虚拟化环境中待保护的原始数据,并对所述原始数据进行分割,得到第一数量的原始数据块。
3.根据权利要求2所述的数据保护方法,其特征在于,所述计算所述原始数据的纠删码,并将所述原始数据和所述纠删码保存至分布式系统的多个目标节点,包括:
利用预设纠删码校验码算法对所有所述原始数据块进行计算,得到第二数量的数据校验块;
将所述原始数据块和所述数据校验块分别保存至分布式系统的多个目标节点。
4.根据权利要求3所述的数据保护方法,其特征在于,所述当所述目标节点出现故障时,获取未出现故障的所述目标节点或出现故障的所述目标节点上的未丢失的所述原始数据和未丢失的所述纠删码,并利用未丢失的所述原始数据和未丢失的所述纠删码对所述原始数据进行恢复,包括:
当所述目标节点出现故障时,统计出现故障的所述目标节点的数量,得到目标故障节点数量,并判断所述目标故障节点数量是否大于预设故障节点数量;
若所述目标故障节点数量小于或等于所述预设故障节点数量,则获取未出现故障的所述目标节点上的未丢失的所述原始数据块和未丢失的所述数据校验块,并利用未丢失的所述原始数据块和未丢失的所述数据校验块对丢失的所述原始数据块进行恢复。
5.根据权利要求2所述的数据保护方法,其特征在于,所述计算所述原始数据的纠删码,并将所述原始数据和所述纠删码保存至分布式系统的多个目标节点,包括:
利用预设纠删码校验码算法对所有所述原始数据块进行计算,得到第三数量的数据校验块;
将所述原始数据块和所述数据校验块一同保存至分布式系统的多个目标节点的多个硬盘中。
6.根据权利要求5所述的数据保护方法,其特征在于,所述当所述目标节点出现故障时,获取未出现故障的所述目标节点或出现故障的所述目标节点上的未丢失的所述原始数据和未丢失的所述纠删码,并利用未丢失的所述原始数据和未丢失的所述纠删码对所述原始数据进行恢复,包括:
当所述目标节点中的硬盘出现故障时,统计出现故障的硬盘数量,得到目标故障硬盘数量,并判断所述目标故障硬盘数量是否大于预设故障硬盘数量;
若所述目标故障硬盘数量小于或等于所述预设故障硬盘数量,则获取所述目标节点中未出现故障硬盘上的未丢失的所述原始数据块和未丢失的所述数据校验块,并利用未丢失的所述原始数据块和未丢失的所述数据校验块对丢失的所述原始数据块进行恢复。
7.根据权利要求2至6任一项所述的数据保护方法,其特征在于,所述利用未丢失的所述原始数据块和未丢失的所述数据校验块对丢失的所述原始数据块进行恢复,包括:
将所述第一数量的所述原始数据块按列进行排序,得到第一列向量;
利用所述数据校验块构造任意与所述第一数量相同个行向量都是相互独立的分布式矩阵,得到第一分布式矩阵;
删除所述第一列向量中丢失的所述原始数据块,得到第二列向量;
删除所述第一分布式矩阵中丢失的所述数据校验块对应的行向量,得到第二分布式矩阵;
计算所述第二分布式矩阵的逆矩阵,并利用所述逆矩阵、所述第二分布式矩阵和所述第二列向量对丢失的所述原始数据块进行恢复。
8.一种数据保护装置,其特征在于,包括:
原始数据获取模块,用于获取虚拟化环境中待保护的原始数据;
数据计算与保存模块,用于计算所述原始数据的纠删码,并将所述原始数据和所述纠删码保存至分布式系统的多个目标节点;
数据恢复模块,用于当所述目标节点出现故障时,获取未出现故障的所述目标节点或出现故障的所述目标节点上的未丢失的所述原始数据和未丢失的所述纠删码,并利用未丢失的所述原始数据和未丢失的所述纠删码对所述原始数据进行恢复。
9.一种电子设备,其特征在于,包括处理器和存储器;其中,所述处理器执行所述存储器中保存的计算机程序时实现如权利要求1至7任一项所述的数据保护方法。
10.一种计算机可读存储介质,其特征在于,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的数据保护方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210612251.XA CN114968119A (zh) | 2022-05-31 | 2022-05-31 | 一种数据保护方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210612251.XA CN114968119A (zh) | 2022-05-31 | 2022-05-31 | 一种数据保护方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114968119A true CN114968119A (zh) | 2022-08-30 |
Family
ID=82958578
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210612251.XA Pending CN114968119A (zh) | 2022-05-31 | 2022-05-31 | 一种数据保护方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114968119A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115827311A (zh) * | 2023-02-13 | 2023-03-21 | 北京天维信通科技有限公司 | 利用纠错编码在普通文件系统中保护核心文件的方法 |
CN115964445A (zh) * | 2023-02-23 | 2023-04-14 | 合肥申威睿思信息科技有限公司 | 一种分布式数据库的多副本实现方法和装置 |
-
2022
- 2022-05-31 CN CN202210612251.XA patent/CN114968119A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115827311A (zh) * | 2023-02-13 | 2023-03-21 | 北京天维信通科技有限公司 | 利用纠错编码在普通文件系统中保护核心文件的方法 |
CN115964445A (zh) * | 2023-02-23 | 2023-04-14 | 合肥申威睿思信息科技有限公司 | 一种分布式数据库的多副本实现方法和装置 |
CN115964445B (zh) * | 2023-02-23 | 2024-03-05 | 合肥申威睿思信息科技有限公司 | 一种分布式数据库的多副本实现方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114968119A (zh) | 一种数据保护方法、装置、设备及存储介质 | |
US9983941B2 (en) | Method and apparatus for recovering data | |
US7925927B2 (en) | Simulator for determining data loss in a fault tolerant system | |
CN111078662B (zh) | 一种区块链数据存储方法与装置 | |
US20160246676A1 (en) | Methods for policy-based hierarchical data protection and devices thereof | |
CN114281270B (zh) | 一种数据存储方法、系统、设备以及介质 | |
EP2854033B1 (en) | Data recovery method, data recovery device, and distributed storage system | |
WO2010091101A1 (en) | Distributed storage of recoverable data | |
CN114153651B (zh) | 一种数据编码方法、装置、设备及介质 | |
US11442827B2 (en) | Policy-based hierarchical data protection in distributed storage | |
Venkatesan et al. | Effect of codeword placement on the reliability of erasure coded data storage systems | |
CN115454712B (zh) | 一种校验码恢复方法、系统、电子设备及存储介质 | |
CN105988894A (zh) | 一种双活模式的容灾技术 | |
Venkatesan et al. | Effect of replica placement on the reliability of large-scale data storage systems | |
CN110278222B (zh) | 分布式文件存储系统中数据管理的方法、系统以及相关设备 | |
Kim et al. | Availability modeling and analysis of a virtualized system using stochastic reward nets | |
CN113552998B (zh) | 用于管理存储系统中的条带的方法、设备和程序产品 | |
CN111181780A (zh) | 基于ha集群的主机池切换方法、系统、终端及存储介质 | |
US20150033070A1 (en) | Data recovery method, data recovery device and distributed storage system | |
CN115113819A (zh) | 一种数据存储的方法、单节点服务器及设备 | |
CN115543693B (zh) | 数据恢复方法及相关设备 | |
Iliadis et al. | An efficient method for reliability evaluation of data storage systems | |
CN114996047A (zh) | 一种数据存储方法、系统、设备以及介质 | |
Galinanes et al. | Ensuring data durability with increasingly interdependent content | |
Trivedi et al. | 7 CHAPTER Stochastic Modeling Techniques for Secure and Survivable Systems |
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 |