CN111581028A - 一种基于数据块的数据快速备份和一致性验证方法及系统 - Google Patents
一种基于数据块的数据快速备份和一致性验证方法及系统 Download PDFInfo
- Publication number
- CN111581028A CN111581028A CN202010395511.3A CN202010395511A CN111581028A CN 111581028 A CN111581028 A CN 111581028A CN 202010395511 A CN202010395511 A CN 202010395511A CN 111581028 A CN111581028 A CN 111581028A
- Authority
- CN
- China
- Prior art keywords
- data
- backup
- source
- bitmap table
- sent
- 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 27
- 238000012795 verification Methods 0.000 title claims abstract description 20
- 238000013524 data verification Methods 0.000 claims description 22
- 230000005540 biological transmission Effects 0.000 claims description 6
- 230000005856 abnormality Effects 0.000 claims description 5
- 238000012544 monitoring process Methods 0.000 claims description 3
- 230000001360 synchronised effect Effects 0.000 description 6
- 230000007547 defect Effects 0.000 description 5
- 230000003068 static effect Effects 0.000 description 5
- 238000011084 recovery Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 1
- 238000004519 manufacturing process Methods 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/1448—Management of the data involved in backup or backup restore
-
- 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
-
- 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
Abstract
本发明公开了一种基于数据块的数据快速备份和一致性验证方法及系统,该方法包括:步骤S1,构建并实时更新源端磁盘空间的bitmap表,由源端向备端发送数据同步请求,将源端磁盘空间的bitmap表发送至备端,根据bitmap表将相应的数据块发送至备端,并于数据块发送后,计算源端所发送的数据块的校验值,保存至源端数据校验文件;步骤S2,备端接收源端的数据同步请求,接收源端发过来的bitmap表,并根据bitmap表接收源端发送的数据块写入备端磁盘,计算所接收的数据块的校验值,保存至备端数据校验文件;步骤S3,源备端分别计算其数据校验文件的消息摘要并进行对比,验证源备端数据的完整性和一致性。
Description
技术领域
本发明涉及计算机数据备份容灾技术领域,特别是涉及一种基于数据块的数据快速备份和一致性验证方法及系统。
背景技术
随着信息技术快速发展,各企业在信息化建设过程中,对容灾备份的要求也在逐步提高,快速的备份数据和校验数据的一致性,已逐步成为保障企业生产、销售、开发的正常运行的必要手段。
目前的计算机数据容灾备份技术,普遍采用全备份,存在备份成本高,硬件受限,备份不够灵活等缺点,而且也没有校验数据的一致性,因此实有必要提出一种技术手段,以解决传统备份的成本高,硬件受限,备份不够灵活、无一致性检测等缺点。
发明内容
为克服上述现有技术存在的不足,本发明之目的在于提供一种基于数据块的数据快速备份和一致性验证方法及系统,以实现基于数据块进行数据快速备份和一致性验证的目的,克服传统备份的成本高,硬件受限,备份不够灵活、无一致性检测等缺点。
为达上述目的,本发明提供一种基于数据块的数据快速备份和一致性验证方法,包括如下步骤:
步骤S1,构建并实时更新源端磁盘空间的bitmap表,由所述源端向备端发送数据同步请求,先将源端磁盘空间的bitmap表发送至备端,再根据所述bitmap表将相应的数据块发送至备端,并于数据块发送后,计算源端所发送的数据块的校验值,并保存至源端数据校验文件;
步骤S2,备端接收所述源端的数据同步请求,接收所述源端发过来的bitmap表,并根据所述bitmap表接收所述源端发送的数据块写入备端磁盘,计算所接收的数据块的校验值,保存至备端数据校验文件;
步骤S3,源备端分别计算其数据校验文件的消息摘要,并通过对比源备端的数据校验文件的消息摘要,验证源备端数据的完整性和一致性。
优选地,步骤S1进一步包括:
步骤S100,将所述源端的磁盘存储空间划分为若干数据块,并建立与该若干数据块对应的bitmap表,所述bitmap表用于标识对应的数据块的数据变化;
步骤S101,监测源端磁盘各数据块的数据变化情况更新所述bitmap表;
步骤S102,向备端发送数据同步请求,将所述源端磁盘空间的bitmap表发送至备端;
步骤S103,根据所述bitmap表将相应的数据块发送至所述备端,并于数据块发送后,更新源端所述bitmap表中相应的bit位;
步骤S104,于数据块发送后,计算源端所发送的数据块的校验值,并保存至源端数据校验文件中。
优选地,于步骤S100中,当进行初始同步时,将所述bitmap表的所有bit位置1以进行全备份。
优选地,于步骤S103中,根据所述bitmap表,将所述bitmap表中bit位值为1的bit位对应的数据块发送至所述备端,并于数据块发送后,将对应的bit位置为0。
优选地,步骤S2进一步包括:
步骤S200,所述备端接收到所述源端的数据同步请求,并接收所述源端发送的bitmap表;
步骤S201,根据所述bitmap表接收所述源端发送的数据块,并写入备端磁盘;
步骤S202,所述备端计算所接收的数据块的校验值,保存至备端数据校验文件。
优选地,步骤S201中,所述备端根据接收的源端发送的bitmap表,并按照所述bitmap表中bit位是否置1,接收相应的数据块。
优选地,于步骤S201中,在写磁盘数据前,所述备端根据该bit位在所述bitmap表中的位置和该bit位表示的数据块大小,计算出备端磁盘偏移值,再根据所述备端磁盘偏移值和数据块大小,将该bit位对应的源端的数据块写入备端相应的磁盘位置。
优选地,于步骤S3中,所述源端和备端分别获取对方的消息摘要,通过比对消息摘要是否一致,来验证数据的完整性、一致性;若消息摘要比对一致,则源端继续监听以进行后续增量备份,备端则返回步骤S2继续接收数据同步请求;若消息摘要比对结果不一致,则源端获取备端数据校验文件,根据数据块校验值的不同计算对应的bit位,更新所述bitmap表,并返回步骤S1重新发起数据同步。
优选地,若在数据传输过程中,发生网络中断或者网络异常导致的数据丢失,备端和源端保存各自的bitmap表和数据校验文件,待网络恢复后,由所述源端获取备端的bitmap表,合并自身与从备端获得的bitmap表构成新的bitmap表,并返回步骤S1重新发起数据同步。
为达到上述目的,本发明还提供一种基于数据块的数据快速备份和一致性验证系统,包括:
源端,用于向备端发送数据同步请求,先将源端磁盘空间的bitmap表发送至备端,再根据所述bitmap表将相应的数据块发送至备端,并于数据块发送后,计算源端所发送的数据块的校验值,并保存至源端数据校验文件,于数据同步完毕,计算源端数据校验文件的消息摘要,通过对比源备端的数据校验文件的消息摘要,验证源备端数据的完整性和一致性;
备端,用于接收源端的数据同步请求,接收源端发送的bitmap表,并根据所述bitmap表接收源端发送的数据块写入备端磁盘,计算所接收的数据块的校验值,保存至备端数据校验文件,并于数据同步完毕,计算备端数据校验文件的消息摘要,通过对比源备端的数据校验文件的消息摘要,验证源备端数据的完整性和一致性。
与现有技术相比,本发明一种基于数据块的数据快速备份和一致性验证方法及系统通过于构建并实时更新源端磁盘空间的bitmap表,由所述源端向备端发送数据同步请求,先将源端磁盘空间的bitmap表发送至备端,再根据所述bitmap表将相应的数据块发送至备端,并于数据块发送后,计算源端所发送的数据块的校验值,并保存至源端数据校验文件,由备端接收所述源端的数据同步请求,接收所述源端发过来的bitmap表,并根据所述bitmap表接收所述源端发送的数据块写入备端磁盘,计算所接收的数据块的校验值,保存至备端数据校验文件,最后源备端分别计算其数据校验文件的消息摘要,并通过对比源备端的数据校验文件的消息摘要,验证源备端数据的完整性和一致性,以实现基于数据块进行数据快速备份和一致性验证的目的,克服传统备份的成本高,硬件受限,备份不够灵活等缺点。
附图说明
图1为本发明一种基于数据块的数据快速备份和一致性验证方法的步骤流程图;
图2为本发明具体实施例中bitmap表、数据块以及数据校验文件之间的关系图;
图3为本发明一种基于数据块的数据快速备份和一致性验证系统的系统架构图;
图4为本发明实施例中源备端数据同步/校验的流程图;
图5为本发明实施例中断点续传的流程示意图。
具体实施方式
以下通过特定的具体实例并结合附图说明本发明的实施方式,本领域技术人员可由本说明书所揭示的内容轻易地了解本发明的其它优点与功效。本发明亦可通过其它不同的具体实例加以施行或应用,本说明书中的各项细节亦可基于不同观点与应用,在不背离本发明的精神下进行各种修饰与变更。
在本发明以下说明中,源端表示数据源,通常为包含计算机文件系统的磁盘或者文件,备端则表示包含计算机文件系统的备份存储设备,存储设备包括磁盘、存储文件等。
图1为本发明一种基于数据块的数据快速备份和一致性验证方法的步骤流程图。如图1所示,本发明一种基于数据块的数据快速备份和一致性验证方法,包括如下步骤:
步骤S1,构建并实时更新源端磁盘空间的bitmap表,由所述源端向备端发送数据同步请求,先将源端磁盘空间的bitmap表发送至备端,再根据所述bitmap表将相应的数据块发送至备端,并于数据块发送后,计算源端所发送的数据块的校验值,保存至源端数据校验文件。
具体地,步骤S1进一步包括:
步骤S100,将源端磁盘存储空间划分为若干数据块,并建立与该若干数据块对应的bitmap表。
在本发明具体实施例中,将源端磁盘存储空间划分若干相等的数据块,例如,假设源端磁盘为1G的存储容量,按照1M大小的数据块进行划分,则可划分为1024个数据块,并对划分后得数据块建立对应的bitmap表,如果用1bit表示一块1M大小的数据块,那么则需要1024个bit来表示1G的磁盘容量,即需要1024/8=128个字节表示1G数据的磁盘空间,每个bit位的值为1或0,其中,1代表该bit(位)对应的源备端的数据块有数据变化,需要进行数据同步,需将该bit(位)对应的源端的数据块发送至备端,0代表该bit(位)对应的源备端数据块的数据没有变化,无需进行数据同步,该bit(位)对应的源端的数据块则无需发送至备端。在本发明实施例中,用bitmap表示bit组(1024个bit),这里需说明的是,本实施例以数据块大小为1M为例,当然数据块的大小也可以根据需要调整为2M,4M等,本发明并不以此为限。
步骤S101,根据源端磁盘各数据块的数据变化情况更新所述bitmap表。具体地,于初始同步时,将所述bitmap表的所有bit位置1,于初始同步完成后,实时监听源端磁盘数据块的变化,根据监听结果更新所述bitmap表。
通常,数据的备份包括数据全同步以及增量备份,数据全同步是静态备份,备份过程中,源端磁盘数据不能发生动态变化,对于数据全同步来说,源端所有的数据块都需要同步至备端,在本发明中,源备端的第一次数据同步(即初始同步)为数据全同步,当然,源备端也可以对数据全同步的时机进行约定。在数据全同步时,bitmap表中的所有bit位置1,即表示源端全磁盘数据需要备份。
当处于增量备份状态时(初始同步后),源端则实时监听其磁盘数据块的变化,如果某些数据块发生改变,根据数据块的位置,源端则会更新所述bitmap表(即将bitmap表中相应bit位置1),并发起数据同步,将更新后的bitmap表发送至备端。这里需说明的是,增量备份属于动态备份,增量备份必须在数据静态全同步的基础上进行,这样,当源端数据发生变化,备端可以实时同步源端的数据变化,始终保持源端和备端的数据一致,根据源端磁盘空间各数据块的数据变化情况更新所述bitmap表。
步骤S102,向备端发送数据同步请求,将所述源端磁盘空间的bitmap表发送至备端。
也就是说,源端发送数据之前,需要先将与源端磁盘空间成映射的bitmap表发送至备端,然后再根据bitmap表进行数据块同步,以便备端根据所述bitmap表进行数据块的接收,也就是说,在本发明中,源端和备端的bitmap表同步先于数据块同步。
步骤S103,根据所述bitmap表将相应的数据块发送至备端,并于数据块发送后,更新bitmap表中相应的bit位。也就是说,根据所述bitmap表,将所述bitmap表中bit位值为1的bit位对应的数据块发送至备端,并于数据块发送后,将对应的bit位置为0。
步骤S104,于数据块发送后,计算源端所发送的数据块的校验值,并保存至源端数据校验文件。
在本发明具体实施例中,校验值的计算可选择异或校验、CRC32、MD5等校验算法,本发明不以此为限,校验值计算后将校验值保存为源端数据校验文件。以MD5校验为例,例如当检测一个磁盘上0~100M的数据,可通过MD5算法将该100M上数据转化为MD5值,由于MD5值具有唯一性,因此,只要数据发生一点变化,计算出的MD5值都会不一样,则可以实现校验,在本发明中,源端磁盘的各数据块与源端数据校验文件中的各校验值成一一对应关系,如图2所示。
步骤S2,备端接收源端的数据同步请求,接收源端发过来的bitmap表,根据所述bitmap表接收源端发送的数据块写入备端磁盘,并计算所接收的数据块的校验值,保存为备端数据校验文件。
具体地,步骤S2进一步包括:
步骤S200,所述备端接收到源端的数据同步请求,并接收所述源端发送的bitmap表。
步骤S201,根据所述bitmap表接收源端发送的数据块,并写入备端磁盘。具体地,按照所述bitmap表中的bit位是否为1,接收bit位值为1的bit位对应的数据块,在将接收的数据块写磁盘数据前,备端根据该bit位在bitmap表中的位置(bit_offset)和该bit位表示的数据块大小(block_size),计算出备端磁盘偏移值offset=bit_offset*block_size;备端再根据备端磁盘偏移值offset和数据块大小block_size的大小,将所接收到的该bit位对应的源端的数据块写入备端相应的磁盘位置;于将该数据块写入备端磁盘后,还将备端的bitmap表中相应的bit位清0。
在本发明具体实施例中,备端与源端一样,备端磁盘存储空间划分为与源端相等的若干数据块,即,假设源端磁盘为1G的存储容量,按照1M大小的数据块进行划分为1024个数据块,则备端磁盘也为1G的存储空间,也将源端磁盘存储空间划分若干相等的数据块,例如假设源端磁盘为1G的存储容量,按照1M大小的数据块进行划分,可划分为1024个数据块。但需说明的是,备端的容量不小于源端即可,不一定必须与源端相同,本实施例中选择保持和源端一致仅是为了提高磁盘的利用率。
步骤S202,备端计算所接收的数据块的校验值,保存至备端数据校验文件。在本发明具体实施例中,备端数据块校验值的计算方法与源端一致,在此不予赘述。
当bitmap表中所有的bit位都为0时,数据同步完毕。
也就是说,本发明在创建保护策略时,源端和备端一一对应,在刚创建保护策略后的第一次会进行全同步,之后的所有同步都可以是增量备份,这样有效的减少了同步量。当创建完保护策略之后,源端bitmap中的所有位都是1,表示此时需要全备份,当源端把bitmap传送到备端之后,源端的bitmap所有位则会变成0(1代表脏数据,即需要备份的数据),假设全备份完成之后,源端bitmap此时全部变成0,此时,当源端有新的数据写入,会将源端的bitmap对应的位置1,并发给备端,这就是后续的增量备份。当中途发生任何异常,bitmap都会保存到文件中,待下次备份运行时,源端则从文件中读相应的bitmap发送到备端进行增量备份。
步骤S3,源备端分别计算其数据校验文件的消息摘要,并通过对比源备端的数据校验文件的消息摘要,验证源备端数据的完整性和一致性。
具体地说,源端计算源端数据校验文件的消息摘要,同样可采用MD5或SHA算法,根据需要,还可以对消息摘要进行数字签名,同时备端重复与源端同样的操作,然后源端和备端分别获取对方的消息摘要,通过比对消息摘要是否一致,来验证数据的完整性、一致性;若消息摘要比对一致,则源端继续监听以进行后续增量备份,备端则返回步骤S2继续接收数据同步请求。
若消息摘要比对结果不一致,则源端获取备端数据校验文件,根据数据块校验值的不同计算对应的bit位,更新bitmap表,并返回步骤S1重新发起数据同步。具体地说,若比对出源备端某个数据块校验值不同,则获取该校验值对应的数据块,进而获得该数据块对应的bit位,将bitmap表中该bit位的值置为1,返回步骤S1重新发起数据同步。
优选地,如果在数据传输过程中,发生网络中断或者网络异常导致得数据丢失,备端和源端保存各自的bitmap表和数据校验文件,待网络恢复后,则由源端获取备端的bitmap表,合并bitmap表中值为1的bit,构成新的bitmap表,并返回步骤S1重新发起数据同步。具体地说,在传输数据的过程中,源端会一直询问备端同步的情况,若发生网络异常,源端则得不到正确的回复,当源端得不到正确回复时,此时源端会认为有异常发生,那么此次同步则视为一次不完全同步,由于备端在接受到源端的bitmap之后,只有备端成功将接受的数据写到备端磁盘对应的位置上,备端的bitmap对应的位才会从1置为0,如果由于网络问题(数据没有完全写成功),导致这次同步没有完全完成,此时备端的bitmap肯定有的位还是1,在此情况下,当网络恢复后,备端会将bitmap表返回至源端以要求源端把bitmap表中1对应的数据从新发一遍,此时,若在此过程中,源端有新的数据写入的话,源端也会记录并生成自身的bitmap,因此,源端在接下来的同步中,会选择一次性将该些变化备份到备端,因此,源端会整合一下源端本身和从备端获得的bitmap,构成新的bitmap发给备端,返回步骤S1进行数据同步,从而实现了断点续传(即源端传送的不仅仅是上次因为网络问题导致备份失败的数据,还包括在此期间产生的新数据)。
图3为本发明一种基于数据块的数据快速备份和一致性验证系统的系统架构图。如图3所示,本发明一种基于数据块的数据快速备份和一致性验证系统,包括:
源端30,用于向备端发送数据同步请求,先将源端磁盘空间的bitmap表发送至备端,再根据所述bitmap表将相应的数据块发送至备端,并于数据块发送后,计算源端所发送的数据块的校验值,并保存至源端数据校验文件,于数据同步完毕,计算源端数据校验文件的消息摘要,通过对比源备端的数据校验文件的消息摘要,验证源备端数据的完整性和一致性。
具体地,源端30进一步包括:
bitmap表生成单元301,用于将源端磁盘存储空间划分为若干数据块,建立与该若干数据块对应的bitmap表以标识对应数据块数据变化情况,并根据监听数据块的变化更新所述bitmap表。
在本发明具体实施例中,将源端磁盘存储空间划分若干相等的数据块,例如假设源端磁盘为1G的存储容量,按照1M大小的数据块进行划分,可划分为1024个数据块,并对划分后得数据块建立对应的bitmap表,如果用1bit表示一块1M大小的数据块,那么则需要1024个bit来表示1G的磁盘容量,即需要1024/8=128个字节表示1G数据的磁盘空间,每个bit位的值为1或0,其中,1代表该bit(位)对应的源备端的数据块有数据变化,需要进行数据同步,需将该bit(位)对应的源端的数据块发送至备端,0代表该bit(位)对应的源备端数据块的数据没有变化,无需进行数据同步,该bit(位)对应的源端的数据块泽无需发送至备端。在本发明实施例中,用bitmap表示bit组(1024个bit),这里需说明的是,本实施例以数据块大小为1M为例,当然数据块的大小也可以根据需要调整为2M,4M等,本发明并不以此为限。
数据的备份包括数据全同步以及增量备份,数据全同步是静态备份,备份过程中,源端磁盘数据不能发生动态变化,对于数据全同步来说,源端所有的数据块都需要同步至备端,一般来说,源备端的第一次数据同步(初始同步)为数据全同步,当然,源备端也可以对数据全同步的时机进行约定。在数据全同步时,bitmap表生成单元301将bitmap表中的所有bit位置1,即表示源端全磁盘数据需要备份,并将所述bitmap表发送至备端。
当处于增量备份状态时(初始同步后),bitmap表生成单元301则实时监听源端的磁盘数据块的变化,如果某些数据块发生改变,根据数据块的位置,bitmap表生成单元则会更新所述bitmap表,将发生数据变化的数据块所对应的bit位置为1,并发起数据同步,将更新后的bitmap表发送至备端。这里需说明的是,增量备份属于动态备份,增量备份必须在数据静态全同步的基础上进行,这样,当源端数据发生变化,备端可以实时同步源端的数据变化,始终保持源端和备端的数据一致,根据源端磁盘空间各数据块的数据变化情况更新所述bitmap表,并将其发送至备端。
同步请求发送单元302,用于向备端发送数据同步请求,并将源端磁盘空间的bitmap表发送至备端。
也就是说,源端发送数据之前,需要先将与源端磁盘空间成映射关系的bitmap表发送至备端,然后再根据bitmap表进行数据块同步,以便备端根据所述bitmap表进行数据块的接收,即源端和备端的bitmap表同步先于数据块同步。
数据块发送单元303,用于根据所述bitmap表将相应的数据块发送至备端,并于数据块发送后,更新bitmap表中相应的bit位。也就是说,根据所述bitmap表,将所述bitmap表中bit位值为1的bit位对应的数据块发送至备端,并于数据块发送后,将对应的bit位置为0
在本发明具体实施例中,所述bitmap表中bit位值为1,表示该bit(位)对应的源端的数据块有数据变化,需要进行数据同步,所述数据块发送单元302需将该bit(位)对应的源端的数据块发送至备端,bit位值为0代表该bit(位)对应的源端数据块的数据没有变化,无需进行数据同步,该bit(位)对应的源端的数据块则无需发送至备端。
源端数据校验文件生成单元304,用于在数据块发送后,计算源端所发送的数据块的校验值,并保存至源端数据校验文件。
在本发明中,当进行数据全同步时,源端所有数据块都发送至备端,源端数据校验文件生成单元304计算所有数据块(也即所发送的数据块)的校验值,并保存至源端数据校验文件中,当进行增量备份时,源端数据校验文件生成单元304则只需计算所发送的数据块的校验值,并更新至源端数据校验文件中,未发送的数据块的校验值则无需更新。
源端数据一致性验证单元305,用于于数据同步完毕,计算源端数据校验文件的消息摘要,通过对比源备端的数据校验文件的消息摘要,验证源备端数据的完整性和一致性。
具体地,源端数据一致性验证单元305于数据同步完毕后,计算源端数据校验文件的消息摘要,MD5或SHA,根据需要,还可以对消息摘要进行数字签名,同时,获取备端计算的备端数据校验文件的消息摘要,通过比对消息摘要是否一致,来验证数据的完整性、一致性。
源端验证结果处理单元306,若消息摘要比对一致,则由bitmap表生成单元301继续监听以更新所述bitmap表以便后续增量备份;若消息摘要比对结果不一致,则源端获取备端数据校验文件,根据数据块校验值的不同计算对应的bit位,更新bitmap表,并返回同步请求发送单元302重新发起数据同步。具体地说,若比对出源备端某个数据块校验值不同,则获取该校验值对应的数据块,进而获得该数据块对应的bit位,将bitmap表中该bit位的值置为1,返回同步请求发送单元302重新发起数据同步。
优选地,源端30还包括:
断点续传单元,用于在发生网络中断或者网络异常导致数据丢失时,获取备端的bitmap表,合并源端与备端的bitmap表中值为1的bit位,构成新的bitmap表,并返回同步请求发送单元302重新发起数据同步。
备端31,用于接收源端的数据同步请求,接收源端发送的bitmap表,并根据所述bitmap表接收源端发送的数据块写入备端磁盘,计算所接收的数据块的校验值,保存至备端数据校验文件,并于数据同步完毕,计算备端数据校验文件的消息摘要,通过对比源备端的数据校验文件的消息摘要,验证源备端数据的完整性和一致性。
具体地,备端31进一步包括:
Bitmap表接收单元310,用于接收到源端的数据同步请求,并接收源端发送的bitmap表。
数据块接收单元311,用于根据所接收的bitmap表接收源端发送的数据块,并根据所述bitmap表写入备端磁盘,并更新备端的bitmap表。
具体地,数据块接收单元311按照bitmap表中的bit位是否为1,接收bit位值为1的bit位对应的数据块,在写磁盘数据前,数据块接收单元311根据该bit位在bitmap表中的位置(bit_offset)和该bit位表示的数据块大小(block_size),计算出备端磁盘偏移值offset=bit_offset*block_size;数据块接收单元311再根据备端磁盘偏移值offset和数据块大小block_size的大小,将该bit位对应的源端的数据块写入备端相应的磁盘位置,并于数据块写入磁盘后,将备端的bitmap表中相应的bit位清0,当bitmap表中所有的bit位都为0时,数据同步完毕。
这里需说明的是,备端与源端一样,备端磁盘存储空间划分为与源端相等的若干数据块,即,假设源端磁盘为1G的存储容量,按照1M大小的数据块进行划分为1024个数据块,则备端磁盘也为1G的存储空间,也将源端磁盘存储空间划分若干相等的数据块,例如假设源端磁盘为1G的存储容量,按照1M大小的数据块进行划分,可划分为1024个数据块。
备端数据校验文件生成单元312,用于计算所接收的数据块的校验值,保存为备端数据校验文件。
备端数据一致性验证单元313,用于于数据同步完毕,计算备端数据校验文件的消息摘要,通过对比源备端的数据校验文件的消息摘要,验证源备端数据的完整性和一致性。
具体地,备端数据一致性验证单元313于数据同步完毕后,计算备端数据校验文件的消息摘要,MD5或SHA,同时,获取源端计算的备端数据校验文件的消息摘要,通过比对消息摘要是否一致,来验证数据的完整性、一致性。
备端验证结果处理单元314,若消息摘要比对一致,则返回Bitmap表接收单元310继续接收数据同步请求,若消息摘要比对不一致,则将备端数据校验文件发送至源端。
实施例
图4为本发明实施例中源备端数据同步/校验的流程图。在本实施例中,源备端的数据同步包括数据全同步与增量备份:数据全同步是静态备份,备份过程中,源端磁盘数据不能发生动态变化,首先源端对磁盘进行Bitmap表映射,Bitmap表中的每bit表示1M/2M/4M数据块,其可以根据需要定制,在数据全同步时,所述源端的Bitmap表中所有的bit为1,表示源端全磁盘数据需要备份,备份过程,首先,需要进行bitmap同步,源端发送bitmap表到备端;其次,源端按照bitmap表中的bit发送磁盘数据块,备端根据接收的bitmap表中的bit,接收数据块,并写入备端磁盘相应的磁盘位置,源端和备端同时更新生成数据校验文件,最后,对源备端数据校验文件生成信息摘要,根据信息摘要比对数据的完整性和一致性;在增量备份中,源端监听磁盘数据块的变化,如果某些数据块发生改变,根据数据块的位置,源端更新bitmap表,并重新发起数据同步。增量备份属于动态备份,增量备份必须在数据静态全同步的基础上进行,这样,当源端数据发生变化,备端可以实时同步源端的数据变化,始终保持源端和备端的数据一致。
图5为本发明实施例中断点续传的流程示意图。在本实施例中,当在数据传输过程中,发生网络中断或者网络异常导致的数据丢失时,备端和源端需要保存各自的bitmap表和数据校验文件,当网络恢复后,源端获取备端的bitmap表,合并两者的bitmap表中为1的bit位,以构造新的bitmap,并重新发起数据同步。
综上所述,本发明一种基于数据块的数据快速备份和一致性验证方法及系统通过于构建并实时更新源端磁盘空间的bitmap表,由所述源端向备端发送数据同步请求,先将源端磁盘空间的bitmap表发送至备端,再根据所述bitmap表将相应的数据块发送至备端,并于数据块发送后,计算源端所发送的数据块的校验值,并保存至源端数据校验文件,由备端接收所述源端的数据同步请求,接收所述源端发过来的bitmap表,并根据所述bitmap表接收所述源端发送的数据块写入备端磁盘,计算所接收的数据块的校验值,保存至备端数据校验文件,最后源备端分别计算其数据校验文件的消息摘要,并通过对比源备端的数据校验文件的消息摘要,验证源备端数据的完整性和一致性,以实现基于数据块进行数据快速备份和一致性验证的目的,克服传统备份的成本高,硬件受限,备份不够灵活等缺点。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何本领域技术人员均可在不违背本发明的精神及范畴下,对上述实施例进行修饰与改变。因此,本发明的权利保护范围,应如权利要求书所列。
Claims (10)
1.一种基于数据块的数据快速备份和一致性验证方法,包括如下步骤:
步骤S1,构建并实时更新源端磁盘空间的bitmap表,由所述源端向备端发送数据同步请求,先将源端磁盘空间的bitmap表发送至备端,再根据所述bitmap表将相应的数据块发送至备端,并于数据块发送后,计算源端所发送的数据块的校验值,保存至源端数据校验文件;
步骤S2,备端接收所述源端的数据同步请求,接收所述源端发过来的bitmap表,根据所述bitmap表接收所述源端发送的数据块写入备端磁盘,并计算所接收的数据块的校验值,保存至备端数据校验文件;
步骤S3,源备端分别计算其数据校验文件的消息摘要,并通过对比源备端的数据校验文件的消息摘要,验证源备端数据的完整性和一致性。
2.如权利要求1所述的一种基于数据块的数据快速备份和一致性验证方法,其特征在于,步骤S1进一步包括:
步骤S100,将所述源端的磁盘存储空间划分为若干数据块,并建立与该若干数据块对应的bitmap表,所述bitmap表用于标识对应的数据块的数据变化;
步骤S101,监测源端磁盘各数据块的数据变化情况更新所述bitmap表;
步骤S102,向备端发送数据同步请求,将所述源端磁盘空间的bitmap表发送至备端;
步骤S103,根据所述bitmap表将相应的数据块发送至所述备端,并于数据块发送后,更新源端所述bitmap表中相应的bit位;
步骤S104,于数据块发送后,计算源端所发送的数据块的校验值,并保存至源端数据校验文件中。
3.如权利要求2所述的一种基于数据块的数据快速备份和一致性验证方法,其特征在于:于步骤S100中,当进行初始同步时,将所述bitmap表的所有bit位置1以进行全备份。
4.如权利要求3所述的一种基于数据块的数据快速备份和一致性验证方法,其特征在于:于步骤S103中,根据所述bitmap表,将所述bitmap表中bit位值为1的bit位对应的数据块发送至所述备端,并于数据块发送后,将对应的bit位置为0。
5.如权利要求1所述的一种基于数据块的数据快速备份和一致性验证方法,其特征在于,步骤S2进一步包括:
步骤S200,所述备端接收到所述源端的数据同步请求,并接收所述源端发送的bitmap表;
步骤S201,根据所述bitmap表接收所述源端发送的数据块,并写入备端磁盘;
步骤S202,所述备端计算所接收的数据块的校验值,保存至备端数据校验文件。
6.如权利要求5所述的一种基于数据块的数据快速备份和一致性验证方法,其特征在于:步骤S201中,所述备端根据接收的源端发送的bitmap表,并按照所述bitmap表中bit位是否置1,接收相应的数据块。
7.如权利要求6所述的一种基于数据块的数据快速备份和一致性验证方法,其特征在于:于步骤S201中,在写磁盘数据前,所述备端根据该bit位在所述bitmap表中的位置和该bit位表示的数据块大小,计算出备端磁盘偏移值,再根据计算出的备端磁盘偏移值和数据块大小,将所接收的该bit位对应的源端的数据块写入备端相应的磁盘位置。
8.如权利要求1所述的一种基于数据块的数据快速备份和一致性验证方法,其特征在于:于步骤S3中,所述源端和备端分别获取对方的消息摘要,通过比对消息摘要是否一致,来验证数据的完整性、一致性;若消息摘要比对一致,则源端继续监听以进行后续增量备份,备端则返回步骤S2继续接收数据同步请求;若消息摘要比对结果不一致,则源端获取备端数据校验文件,根据数据块校验值的不同计算对应的bit位,更新所述bitmap表,并返回步骤S1重新发起数据同步。
9.如权利要求1所述的一种基于数据块的数据快速备份和一致性验证方法,其特征在于:若在数据传输过程中,发生网络中断或者网络异常导致的数据丢失,备端和源端保存各自的bitmap表和数据校验文件,待网络恢复后,由所述源端获取备端的bitmap表,合并自身与从备端获得的bitmap表构成新的bitmap表,并返回步骤S1重新发起数据同步。
10.一种基于数据块的数据快速备份和一致性验证系统,包括:
源端,用于向备端发送数据同步请求,将源端磁盘空间的bitmap表发送至备端,根据所述bitmap表将相应的数据块发送至备端,并于数据块发送后,计算源端所发送的数据块的校验值,保存至源端数据校验文件,于数据同步完毕,计算源端数据校验文件的消息摘要,通过对比源备端的数据校验文件的消息摘要,验证源备端数据的完整性和一致性;
备端,用于接收源端的数据同步请求,接收源端发送的bitmap表,并根据所述bitmap表接收源端发送的数据块写入备端磁盘,计算所接收的数据块的校验值,保存至备端数据校验文件,并于数据同步完毕,计算备端数据校验文件的消息摘要,通过对比源备端的数据校验文件的消息摘要,验证源备端数据的完整性和一致性。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010395511.3A CN111581028A (zh) | 2020-05-12 | 2020-05-12 | 一种基于数据块的数据快速备份和一致性验证方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010395511.3A CN111581028A (zh) | 2020-05-12 | 2020-05-12 | 一种基于数据块的数据快速备份和一致性验证方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111581028A true CN111581028A (zh) | 2020-08-25 |
Family
ID=72126488
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010395511.3A Pending CN111581028A (zh) | 2020-05-12 | 2020-05-12 | 一种基于数据块的数据快速备份和一致性验证方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111581028A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112214355A (zh) * | 2020-10-21 | 2021-01-12 | 上海英方软件股份有限公司 | 一种海量数据备份处理方法及系统 |
CN112231403A (zh) * | 2020-10-15 | 2021-01-15 | 北京人大金仓信息技术股份有限公司 | 数据同步的一致性校验方法、装置、设备和存储介质 |
CN112988461A (zh) * | 2021-02-08 | 2021-06-18 | 中国联合网络通信集团有限公司 | 数据备份方法、边缘节点、数据中心及计算机存储介质 |
CN113505026A (zh) * | 2021-09-10 | 2021-10-15 | 深圳市科力锐科技有限公司 | 验证备份数据的方法、装置、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1707450A (zh) * | 2004-06-08 | 2005-12-14 | 侯方勇 | 保护存储设备中数据机密性与完整性的方法和装置 |
CN102073462A (zh) * | 2010-11-29 | 2011-05-25 | 华为技术有限公司 | 虚拟存储迁移方法、系统和虚拟机监控器 |
CN110413441A (zh) * | 2019-06-18 | 2019-11-05 | 平安科技(深圳)有限公司 | 主备存储卷同步数据校验方法、装置、设备及存储介质 |
CN111045865A (zh) * | 2019-11-28 | 2020-04-21 | 上海英方软件股份有限公司 | 一种基于块复制的实时同步方法及系统 |
-
2020
- 2020-05-12 CN CN202010395511.3A patent/CN111581028A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1707450A (zh) * | 2004-06-08 | 2005-12-14 | 侯方勇 | 保护存储设备中数据机密性与完整性的方法和装置 |
CN102073462A (zh) * | 2010-11-29 | 2011-05-25 | 华为技术有限公司 | 虚拟存储迁移方法、系统和虚拟机监控器 |
CN110413441A (zh) * | 2019-06-18 | 2019-11-05 | 平安科技(深圳)有限公司 | 主备存储卷同步数据校验方法、装置、设备及存储介质 |
CN111045865A (zh) * | 2019-11-28 | 2020-04-21 | 上海英方软件股份有限公司 | 一种基于块复制的实时同步方法及系统 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112231403A (zh) * | 2020-10-15 | 2021-01-15 | 北京人大金仓信息技术股份有限公司 | 数据同步的一致性校验方法、装置、设备和存储介质 |
CN112231403B (zh) * | 2020-10-15 | 2024-01-30 | 北京人大金仓信息技术股份有限公司 | 数据同步的一致性校验方法、装置、设备和存储介质 |
CN112214355A (zh) * | 2020-10-21 | 2021-01-12 | 上海英方软件股份有限公司 | 一种海量数据备份处理方法及系统 |
CN112988461A (zh) * | 2021-02-08 | 2021-06-18 | 中国联合网络通信集团有限公司 | 数据备份方法、边缘节点、数据中心及计算机存储介质 |
CN112988461B (zh) * | 2021-02-08 | 2023-05-23 | 中国联合网络通信集团有限公司 | 数据备份方法、边缘节点、数据中心及计算机存储介质 |
CN113505026A (zh) * | 2021-09-10 | 2021-10-15 | 深圳市科力锐科技有限公司 | 验证备份数据的方法、装置、设备及存储介质 |
CN113505026B (zh) * | 2021-09-10 | 2021-12-24 | 深圳市科力锐科技有限公司 | 验证备份数据的方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111581028A (zh) | 一种基于数据块的数据快速备份和一致性验证方法及系统 | |
CN107748702B (zh) | 一种数据恢复方法和装置 | |
CN109597717B (zh) | 一种数据备份、恢复方法、装置、电子设备及存储介质 | |
KR100843652B1 (ko) | 데이터 동기화 방법 및 시스템 | |
US8214612B1 (en) | Ensuring consistency of replicated volumes | |
US20230041089A1 (en) | State management methods, methods for switching between master application server and backup application server, and electronic devices | |
US20170206135A1 (en) | Data Reconstruction Method in Distributed Storage System, Apparatus, and System | |
US8060714B1 (en) | Initializing volumes in a replication system | |
CN106776130B (zh) | 一种日志恢复方法、存储装置和存储节点 | |
CN108322533A (zh) | 基于操作日志的分布式集群节点间配置同步方法 | |
CN105159795A (zh) | 数据同步方法、装置和系统 | |
CN105446829A (zh) | 客户端程序的修复方法、装置、系统及服务器 | |
US7849355B2 (en) | Distributed object sharing system and method thereof | |
CN113190620B (zh) | Redis集群之间数据的同步方法、装置、设备及存储介质 | |
CN111045865A (zh) | 一种基于块复制的实时同步方法及系统 | |
CN113590049A (zh) | 一种存储卷跨节点克隆的方法、装置、设备及可读介质 | |
CN111400248B (zh) | 写数据、恢复数据的方法及文件系统 | |
WO2024037104A1 (zh) | 数据存储方法、子系统、分布式存储系统及存储介质 | |
CN107045426B (zh) | 一种多副本读取方法和系统 | |
CN115883533A (zh) | 文件同步方法、装置、计算机设备及存储介质 | |
CN112698926B (zh) | 数据处理方法、装置、设备、存储介质及系统 | |
CN112947847B (zh) | 用于存储数据的方法、设备和计算机程序产品 | |
US10684922B2 (en) | Enhanced data storage using compressed data | |
CN108599982B (zh) | 数据恢复方法及相关设备 | |
CN112988461B (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 |
Application publication date: 20200825 |
|
RJ01 | Rejection of invention patent application after publication |