CN113722150B - 云硬盘数据压缩备份及恢复方法、装置、设备及存储介质 - Google Patents
云硬盘数据压缩备份及恢复方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN113722150B CN113722150B CN202110838010.2A CN202110838010A CN113722150B CN 113722150 B CN113722150 B CN 113722150B CN 202110838010 A CN202110838010 A CN 202110838010A CN 113722150 B CN113722150 B CN 113722150B
- Authority
- CN
- China
- Prior art keywords
- target
- data block
- hard disk
- data
- backup
- 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.)
- Active
Links
- 238000011084 recovery Methods 0.000 title claims abstract description 97
- 238000000034 method Methods 0.000 title claims abstract description 53
- 238000013144 data compression Methods 0.000 title claims abstract description 27
- 238000007906 compression Methods 0.000 claims description 40
- 230000006835 compression Effects 0.000 claims description 40
- 238000001514 detection method Methods 0.000 claims description 34
- 230000011218 segmentation Effects 0.000 claims description 21
- 238000004590 computer program Methods 0.000 claims description 6
- 230000006837 decompression Effects 0.000 claims description 5
- 238000012163 sequencing technique Methods 0.000 claims description 5
- 230000008569 process Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 230000005236 sound signal Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000009434 installation Methods 0.000 description 3
- 230000009469 supplementation Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000011895 specific detection Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- KLDZYURQCUYZBL-UHFFFAOYSA-N 2-[3-[(2-hydroxyphenyl)methylideneamino]propyliminomethyl]phenol Chemical compound OC1=CC=CC=C1C=NCCCN=CC1=CC=CC=C1O KLDZYURQCUYZBL-UHFFFAOYSA-N 0.000 description 1
- 241000700605 Viruses Species 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 201000001098 delayed sleep phase syndrome Diseases 0.000 description 1
- 208000033921 delayed sleep phase type circadian rhythm sleep disease Diseases 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
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/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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种云硬盘数据压缩备份及恢复方法、装置、电子设备及计算机可读存储介质,该方法包括:将源云硬盘切分得到若干个初始数据块,并确定各个初始数据块在源云硬盘中的起始偏移量;对初始数据块中的非零数据块进行压缩,得到压缩数据块,并计算各个压缩数据块的数据体积;利用压缩数据块对应的起始偏移量和数据体积生成对应的备份信息,并确定备份信息对应的预设顺序;向备份卷中写入压缩数据块;在检测到恢复请求时,利用恢复请求指定的目标备份信息和对应的目标预设顺序进行数据恢复;该方法可以在保证正确恢复数据的前提下减少存储空间的占用量。
Description
技术领域
本申请涉及云平台技术领域,特别涉及一种云硬盘数据压缩备份及恢复方法、云硬盘数据压缩备份及恢复装置、电子设备及计算机可读存储介质。
背景技术
云计算平台也称为云平台,是指基于硬件资源和软件资源的服务,提供计算、网络和存储能力。云硬盘是一种可以挂载到云主机上,作为物理硬盘使用的设备。为了使数据更加安全可靠,通常需要对云硬盘进行备份,当云硬盘出现故障或云硬盘中的数据发生逻辑错误时(如误删数据、遭遇黑客攻击或病毒危害等),可利用备份的数据快速恢复数据。相关技术在进行云硬盘备份时,通常会将源云硬盘中的数据直接写入到备份卷,备份卷实际占用的存储容量和源云硬盘占用的存储容量是一致的,这使得备份数据占用了大量的存储空间,提高了备份业务成本。
因此,相关技术存在的存储空间占用较多,业务成本较高的问题,是本领域技术人员需要解决的技术问题。
发明内容
有鉴于此,本申请的目的在于提供一种云硬盘数据压缩备份及恢复方法、云硬盘数据压缩备份及恢复装置、电子设备及计算机可读存储介质,在保证正确恢复数据的前提下减少存储空间的占用量,降低业务成本。
为解决上述技术问题,本申请提供了一种云硬盘数据压缩备份及恢复方法,包括:
将源云硬盘切分得到若干个初始数据块,并确定各个所述初始数据块在所述源云硬盘中的起始偏移量;
对所述初始数据块中的非零数据块进行压缩,得到压缩数据块,并计算各个所述压缩数据块的数据体积;
利用所述压缩数据块对应的所述起始偏移量和所述数据体积生成对应的备份信息,并确定所述备份信息对应的预设顺序;
向备份卷中写入所述压缩数据块;
在检测到恢复请求时,利用所述恢复请求指定的目标备份信息、目标备份卷和对应的目标预设顺序进行数据恢复。
可选地,所述在检测到恢复请求时,利用所述恢复请求指定的目标备份信息、目标备份卷和对应的目标预设顺序进行数据恢复,包括
若检测到恢复请求,则确定所述恢复请求指定的所述目标备份信息和所述目标备份卷;所述目标备份信息包括若干个预设数据体积和对应的若干个预设起始偏移量;
利用各个所述预设数据体积,按照所述目标预设顺序从所述目标备份卷中读取对应的目标压缩数据块;
对所述目标压缩数据块进行解压缩,得到候选非零数据块;
按照所述目标预设顺序在所述候选非零数据块中确定目标非零数据块,并确定所述目标非零数据块对应的目标预设起始偏移量;
基于所述目标预设起始偏移量与所述目标云硬盘的当前写入位置的匹配情况,将所述目标非零数据块写入所述目标云硬盘。
可选地,所述基于所述目标预设起始偏移量与所述目标云硬盘的当前写入位置的匹配情况,将所述目标非零数据块写入所述目标云硬盘,包括:
若所述目标预设起始偏移量与所述当前写入位置相匹配,则将所述目标非零数据块按照所述目标预设起始偏移量写入所述目标云硬盘;
若所述目标预设起始偏移量与所述当前写入位置不匹配,则将所述目标非零数据块按照所述目标预设起始偏移量写入所述目标云硬盘,并将所述目标云硬盘从所述目标非零数据块写入前的所述当前写入位置,到所述目标预设起始偏移量之间的数据清零。
可选地,在确定所述恢复请求指定的所述目标备份信息和目标备份卷之后,还包括:
判断所述目标备份信息是否具有压缩标识;
若具有所述压缩标识,则确定执行利用各个所述预设数据体积,按照所述目标预设顺序从所述目标备份卷中读取对应的目标压缩数据块的步骤;
若不具有所述压缩标识,则利用各个所述预设数据体积,按照所述目标预设顺序从所述目标备份卷中读取对应的目标数据块,并将所述目标数据块进行拼接,完成所述数据恢复。
可选地,所述确定所述备份信息对应的预设顺序,包括:
根据各个所述压缩数据块对应的所述起始偏移量的大小关系对所述压缩数据块进行排序,并将所述压缩数据块的先后顺序确定为所述预设顺序。
可选地,所述对所述初始数据块中的非零数据块进行压缩,得到压缩数据块,包括:
对各个所述初始数据块进行零数据块检测,得到检测结果;
将检测结果表示为非零的所述初始数据块确定为非零数据块进行压缩,得到所述压缩数据块。
可选地,所述对各个所述初始数据块进行零数据块检测,得到检测结果,包括:
读取所述初始数据块的数据内容,并将所述数据内容与二进制空标志位比对;
若存在任一所述数据内容不为所述二进制空标志位,则确定所述初始数据块对应的检测结果表示为非零。
可选地,所述将源云硬盘切分得到若干个初始数据块,包括:
获取切分粒度;所述切分粒度能够等分1GB;
根据所述切分粒度对所述源云硬盘进行平均切分,得到所述初始数据块。
可选地,所述利用所述压缩数据块对应的所述起始偏移量和所述数据体积生成对应的备份信息,包括:
利用所述压缩数据块对应的所述起始偏移量和所述数据体积组成键值对;
按照所述起始偏移量的大小顺序对各个所述键值对排序,得到键值对序列;
利用所述源云硬盘的硬盘标志、所述备份卷的卷标志对所述键值对序列进行标识,得到所述备份信息。
可选地,所述利用所述压缩数据块对应的所述起始偏移量和所述数据体积生成对应的备份信息,包括:
利用所述压缩数据块对应的所述起始偏移量和所述数据体积生成初始备份信息;
利用压缩标识对所述初始备份信息进行标识,得到所述备份信息。
本申请还提供了一种云硬盘数据压缩备份及恢复装置,包括:
切分模块,用于将源云硬盘切分得到若干个初始数据块,并确定各个所述初始数据块在所述源云硬盘中的起始偏移量;
压缩模块,用于对所述初始数据块中的非零数据块进行压缩,得到压缩数据块,并计算各个所述压缩数据块的数据体积;
信息生成模块,用于利用所述压缩数据块对应的所述起始偏移量和所述数据体积生成对应的备份信息,并确定所述备份信息对应的预设顺序;
写入模块,用于向备份卷中写入所述压缩数据块;
恢复模块,用于在检测到恢复请求时,利用所述恢复请求指定的目标备份信息、目标备份卷和对应的目标预设顺序进行数据恢复。
本申请提供的云硬盘数据压缩备份及恢复方法,将源云硬盘切分得到若干个初始数据块,并确定各个初始数据块在源云硬盘中的起始偏移量;对初始数据块中的非零数据块进行压缩,得到压缩数据块,并计算各个压缩数据块的数据体积;利用压缩数据块对应的起始偏移量和数据体积生成对应的备份信息,并确定备份信息对应的预设顺序;向备份卷中写入压缩数据块;在检测到恢复请求时,利用恢复请求指定的目标备份信息和对应的目标预设顺序进行数据恢复。
可见,该方法在进行云硬盘备份时,对其进行切分,并对其中的非零数据块进行压缩。非零数据块为记录有非零数据的数据块,与零数据块不同,在数据恢复时,其具体内容无法确定,因此需要将其进行压缩和保存,以便基于其进行数据恢复。由于不同的非零数据块在被压缩后的体积不同,且压缩数据块之间连续存储,因此为了能够进行准确地恢复,对压缩数据块的数据体积进行记录,以便能够正确地读出压缩数据块。为了表征数据块在源云硬盘中的位置,利用压缩数据块对应的起始偏移量,即非零数据块对应的起始偏移量与对应的数据体积生成备份信息,并确定其对应的预设顺序。预设顺序为数据恢复时用于指示选择压缩数据块的顺序。通过将压缩数据块写入备份卷,可以完成对源云硬盘的压缩备份。在检测到恢复请求时,说明想要对某一个源云硬盘进行恢复,此时可以利用恢复请求指定的目标备份信息、目标备份卷和目标预设顺序准确地读出压缩数据块、解压缩并进行数据块拼接,完成数据恢复。通过将全零数据块去除,并对非零数据块进行压缩存储,同时生成其对应的备份信息和预设顺序,可以大大减少压缩备份所需的存储空间,提高了存储空间的利用效率,解决了相关技术存在的存储空间占用较多,业务成本较高的问题。
此外,本申请还提供了一种云硬盘数据压缩备份及恢复装置、电子设备及计算机可读存储介质,同样具有上述有益效果。
附图说明
为了更清楚地说明本申请实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种云硬盘数据压缩备份及恢复方法流程图;
图2为本申请实施例提供的一种具体的云硬盘备份流程图;
图3为本申请实施例提供的一种备份耗时对比图;
图4为本申请实施例提供的一种备份卷容量对比图;
图5为本申请实施例提供的一种云硬盘数据压缩备份及恢复装置的结构示意图;
图6为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参考图1,图1为本申请实施例提供的一种云硬盘数据压缩备份及恢复方法流程图。该方法包括:
S101:将源云硬盘切分得到若干个初始数据块,并确定各个初始数据块在源云硬盘中的起始偏移量。
在对源云硬盘进行备份时,需要先对其进行切分,切分可以为平均切分,或者可以为非平均切分。为了提高压缩的效果,尽可能地降低对存储空间的占用,可以对整个源云硬盘进行平均切分。由于源云硬盘的大小以GB(千兆字节)为单位,因此切分粒度应当能够等分1GB。在进行切分时,可以获取能够等分1GB的切分粒度,并根据该切分粒度对源云硬盘进行平均切分,得到初始数据块。
在得到各个初始数据块后,需要记录各个初始数据块在源云硬盘中的起始偏移量,起始偏移量,是指表示初始数据块中的第一位数据在源云硬盘中的位置偏移量。
S102:对初始数据块中的非零数据块进行压缩,得到压缩数据块,并计算各个压缩数据块的数据体积。
由于对源云硬盘拆分后得到的初始数据块中可能存在零数据块,为了提高存储空间利用率,本申请仅对其中的非零数据块进行存储,对于零数据块,由于其中没有记录有任何有效数据,且其数据内容是唯一确定的,因此可以不用将其进行备份。
为了实现上述效果,得到压缩数据块的过程包括如下步骤:
步骤11:对各个所述初始数据块进行零数据块检测,得到检测结果。
步骤12:将检测结果表示为非零的所述初始数据块确定为非零数据块进行压缩,得到所述压缩数据块。
可以理解的是,本申请在对非零数据块进行压缩之前,必须确定哪些数据块为非零数据块,哪些为零数据块。在一种实施方式中,可以获取对应的数据块身份信息,其具体是在确定切分方式后指示各个数据块是否为零数据块的身份信息。在另一种实施方式中,可以进行零数据块检测,并将未通过零数据块检测的初始数据块确定为非零数据块。本实施例并不限定零数据块的具体检测方式,在一种实施方式中,对各个初始数据块进行零数据块检测,得到检测结果的步骤可以包括:
步骤21:读取初始数据块的数据内容,并将数据内容与二进制空标志位比对。
步骤22:若存在任一数据内容不为二进制空标志位,则确定初始数据块对应的检测结果表示为非零。
其中,二进制空标志位即为“\x00”,数据内容,是指初始数据块中记录的具体内容,通过将其与二进制空标志位比对,可以确定其是否全部为空。若任一数据内容不为二进制空标志位,则说明初始数据块中并不是全零,因此可以确定其为非零数据块,即确定初始数据块对应的检测结果表示为非零。
在确定非零数据块后,可以对其进行压缩得到压缩数据块,具体的,可以采用gzip、zip或snappy等压缩算法对非零数据块进行压缩,得到压缩数据块。此外,由于各个数据块经过压缩后的体积通常不相同,为了能够正确地读出各个压缩数据块,需要统计各个压缩数据块的数据体积,以便在后续生成备份信息,用于进行正确地数据恢复。
S103:利用压缩数据块对应的起始偏移量和数据体积生成对应的备份信息,并确定备份信息对应的预设顺序。
在得到起始偏移量和数据体积后,可以利用其生成备份信息,并存储备份信息。此外,还需要将压缩数据块存入备份卷,实现对源云硬盘的备份。需要说明的是,步骤S103和步骤S104的具体执行顺序不做限定,例如可以先执行步骤S103,后执行步骤S104;或者可以先执行步骤S104,后执行步骤S103;或者可以同时执行步骤S103和步骤S104。
本实施例并不限定备份信息的具体形式和内容,具体的,在一种实施方式中,备份信息生成的过程可以包括如下步骤:
步骤31:利用压缩数据块对应的起始偏移量和数据体积组成键值对。
步骤32:按照起始偏移量的大小顺序对各个键值对排序,得到键值对序列。
步骤33:利用源云硬盘的硬盘标志、备份卷的卷标志对键值对序列进行标识,得到备份信息。
在本实施方式中,可以采用键值对的方式表示起始偏移量与数据体积之间的相关关系,得到对应的键值对。在得到键值对后,可以按照起始偏移量的大小对其进行排序,得到键值对序列。键值对序列中键值对的顺序即可作为前述的预设顺序,即本实施方式中的预设顺序具体为起始偏移量大小顺序,同样为非零数据块在源云硬盘中的位置先后顺序。在得到键值对序列后,可以利用源云硬盘的硬盘标志和备份卷的卷标志对键值对序列进行标识,进而建立源云硬盘、备份卷和备份信息之间的对应关系,得到备份数据。需要说明的是,本实施例并不限定硬盘标标志和卷标志的具体形式,例如可以采用UUID形式。UUID是通用唯一识别码(Universally Unique Identifier)的缩写,是一种软件建构的标准。其目的,是让分布式***中的所有元素,都能有唯一的辨识信息,而不需要通过中央控制端来做辨识信息的指定。
在另一种实施方式中,***可以对不同的源云硬盘采用不同的备份策略进行备份,例如某些源云硬盘需要按照上述备份方式进行备份,而另外一些源云硬盘不需要,而是直接进行复制备份。因此为了表明备份的方式,备份信息的生成过程可以包括:
步骤41:利用压缩数据块对应的起始偏移量和数据体积生成初始备份信息。
步骤42:利用压缩标识对初始备份信息进行标识,得到备份信息。
在本实施方式中,利用起始偏移量和数据体积直接生成的是初始备份信息。压缩标识,是指能够表明备份方式的标识,其具体形式不做限定,例如可以为初始备份信息设置状态标志位compress,若将该标志位设置为true,则true即为压缩标识。利用压缩标识对初始备份信息进行标识,即可得到能够表示备份方式的备份信息。
由于进行本申请中的压缩数据块为非零数据块压缩后的结果,生成的备份信息也是非零数据块对应的内容。因此在进行数据恢复时,为了准确确定在何处***零数据块以便得到正确且完整的源云硬盘,需要预设有一个判断规则,而该判断规则通常与硬盘的写入位置和非零数据块的偏移量相关,即当二者不匹配时,确定需要补充零数据块。而每次将非零数据块写入云硬盘中时,都需要按照一定的顺序选择特定的非零数据块,并利用其对应的起始偏移量与硬盘的写入位置进行匹配,只有该特定的非零数据块对应的起始偏移量与写入位置的匹配结果才能够表示是否需要***零数据块。可以理解的是,该顺序必然与判断规则的内容相关,因此在判断规则的内容确定后,即在判断起始偏移量与写入位置是否匹配的规则确定后,在进行数据备份时,则需要生成各个压缩数据块对应的预设顺序,以便在进行数据恢复时基于该预设顺序依次选取非零数据块。
本实施例并不限定该预设顺序的具体内容,根据匹配规则的改变,预设顺序可以适应改变。在一种具体的实施方式中,源云硬盘的恢复过程为从数据首端开始向尾端依次恢复,为了降低匹配规则的复杂程度,可以将其设置为判断起始偏移量是否大于硬盘的当前写入位置且与当前写入位置紧邻,若是则确定二者匹配,否则不匹配。在这种情况下,生成预设顺序的过程可以包括如下步骤:
步骤51:根据各个压缩数据块对应的起始偏移量的大小关系对压缩数据块进行排序,并将压缩数据块的先后顺序确定为预设顺序。
通过按照起始偏移量的大小顺序对压缩数据块进行排序,并在排序后将压缩数据块的先后顺序确定为预设顺序。按照该顺序,可以逐次选择到起始偏移量变大的压缩数据块,即得到起始偏移量依次变大的非零数据块,在写入过程中,可以基于上述的匹配规则判断是否需要进行零数据块的补充。
S104:向备份卷中写入压缩数据块。
备份卷是指用于存储压缩数据块的备份卷。
S105:在检测到恢复请求时,利用恢复请求指定的目标备份信息、目标备份卷和对应的目标预设顺序进行数据恢复。
恢复请求,是指表明对指定云硬盘中的数据进行恢复的请求,其具体形式和内容不做限定。可以理解的是,基于恢复请求必然能够确定需要对哪些云硬盘的数据进行恢复,因而可以进一步确定进行数据恢复时所需的数据,其中包括目标备份信息(也可以称为目标信息)、目标预设顺序和目标备份卷。
目标备份卷,是指恢复请求指定的存储有备份数据的数据卷,其中存储有对源云硬盘(即经过备份的云硬盘)进行备份时所生成的备份数据。目标信息,是指恢复请求指定的备份数据情况的备份信息。可以理解的是,由于对源云硬盘备份时通常需要对数据进行分块处理,并将分块后的数据连续写入目标备份卷。因此,目标备份信息至少应当能够表明目标备份卷中各个数据块的体积,以便能够读出准确的备份数据,同时还应当能够表明各个备份数据在源云硬盘中的位置,以便正确地重构源云硬盘中的数据。
具体的,S105步骤可以进一步包括:
步骤61:若检测到恢复请求,则确定恢复请求指定的目标备份信息和目标备份卷。
步骤62:利用各个预设数据体积,按照目标预设顺序从目标备份卷中读取对应的目标压缩数据块。
步骤63:对目标压缩数据块进行解压缩,得到候选非零数据块。
步骤64:按照目标预设顺序在候选非零数据块中确定目标非零数据块,并确定目标非零数据块对应的目标预设起始偏移量。
步骤65:基于目标预设起始偏移量与目标云硬盘的当前写入位置的匹配情况,将目标非零数据块写入目标云硬盘。
在本实施例中,目标信息包括若干个预设数据体积和对应的若干个预设起始偏移量。预设数据体积,是指目标备份卷中各个压缩数据块的数据体积。预设起始偏移量,是指目标备份卷中各个压缩数据块对应的非零数据块在源云硬盘中的位置。二者为一一对应的关系,且分别与目标备份卷中的各个压缩数据块相对应。
可以理解的是,不同的源云硬盘进行备份后得到的备份卷和备份信息不同,为了能够表明备份与源云硬盘之间的关系,还可以生成并保存源云硬盘、备份卷以及备份信息三者之间的对应关系。因此,在一种可行的实施方式中,恢复请求中可以包括源云硬盘信息,在得到源云硬盘信息后,利用上述对应关系确定对应的目标备份信息和目标备份卷。在另一种实施方式中,若不存在源云硬盘、备份卷以及备份信息三者之间的对应关系,则恢复请求中可以直接指定目标备份信息和目标备份卷。
在得到目标信息后对其进行解析,得到预设数据体积和预设起始偏移量,通常情况下,预设数据体积和预设起始偏移量的数量相同且为多个,当然,二者的数量也可以为一个。在本实施例中,为了尽可能地提高备份存储空间的利用效率,在对源云硬盘进行备份时对切分得到的各个数据块进行压缩,得到压缩数据块。因此,预设数据体积即为目标压缩数据块的体积,目标压缩数据块是指目标备份卷中存储的压缩数据块。
在本实施例中,目标预设顺序可以为目标压缩数据块在目标备份卷中的存储顺序,通常情况下,其同样为目标压缩数据块在源云硬盘中的位置先后顺序,即对应的起始偏移量的大小顺序。按照目标预设顺序,可以在进行数据恢复时确定某一阶段要读取哪一个目标压缩数据块,进而确定需要基于哪一个预设数据体积进行读取。
在准确读出各个目标压缩数据块后,对其进行解压缩的处理,得到对应的候选非零数据块。零数据块,是指仅包括零数据的数据块,相应的,非零数据块,是指包括非零数据的数据块。对于解压缩方式,其需要与目标压缩数据块的压缩方式相对应,对于压缩方式和解压缩方式的具体内容本实施例不做限定,可以选择任意可逆的压缩方式和对应的解压缩方式。其中,可逆是指数据内容经过压缩和解压缩处理后不会发生变化。
可以理解的是,由于仅对非零数据块进行了压缩备份,而源云硬盘中,相邻的候选非零数据块之间可能存在零数据。因此在进行数据恢复时,无法直接将全部的候选非零数据块直接相邻地写入目标云硬盘,而是需要逐一写入,因此需要在各个候选非零数据块中确定目标非零数据块。目标非零数据块,是指在当前阶段中需要被写入目标云硬盘的数据块。本实施例中,需要按照预设顺序确定目标非零数据块。在确定目标非零数据块后,其对应的预设起始偏移量即为目标预设起始偏移量,其能够表示目标非零数据块在源云硬盘中的数据位置。
在写入目标非零数据块时,需要判断其与前一次写入的候选非零数据块之间是否具有零数据,进而确定是否需要同时进行零数据的补充,以便对源云硬盘的数据进行准确地恢复。即,需要基于目标预设起始偏移量与目标云硬盘的当前写入位置的匹配情况,将目标非零数据块写入目标云硬盘。
具体的,基于目标预设起始偏移量与目标云硬盘的当前写入位置的匹配情况,将目标非零数据块写入目标云硬盘的过程包括如下步骤:
步骤71:若目标预设起始偏移量与当前写入位置相匹配,则将目标非零数据块按照目标预设起始偏移量写入目标云硬盘。
步骤72:若目标预设起始偏移量与当前写入位置不匹配,则将目标非零数据块按照目标预设起始偏移量写入目标云硬盘,并将目标云硬盘从目标非零数据块写入前的当前写入位置,到目标预设起始偏移量之间的数据清零。
具体的,目标云硬盘的当前写入位置,是指目标云硬盘在上一次写入数据后数据指针指定的位置,数据指针指向的位置会随着数据的写入而变化,其一直指向最后写入数据的位置。若目标云硬盘中没有写入数据,则数据指针指向目标云硬盘的初始起始偏移量位置。
若目标预设起始偏移量与当前写入位置相匹配,则说明上一次写入的候选非零数据块与目标非零数据块首尾相接,二者为紧邻的关系,中间不存在空白数据。在这种情况下,可以直接将目标非零数据块顺序写入目标云硬盘。本实施例并不限定目标预设起始偏移量与当前写入位置是否匹配的具体检测方式,例如可以判断当前写入位置是否比目标预设起始偏移量小且紧邻目标预设起始偏移量,若是,则可以确定二者相匹配。或者可以判断当前写入位置和目标预设起始偏移量是否均为初始起始偏移量位置,即整个云硬盘的第一个存储位置,若是,则可以确定二者相匹配。
若目标预设起始偏移量和当前写入位置不匹配,则说明上一次写入的候选非零数据块和目标非零数据块之间存在零数据块,或者,源云硬盘的前若干个数据块为非零数据块。在这种情况下,需要按照目标预设起始偏移量将目标非零数据块写入目标云硬盘,且还需要进行零数据的补充。可以理解的是,由于目标非零数据块的写入会引起当前写入位置的变化,因此需要利用目标非零数据块写入前的当前写入位置为区间起点,利用目标预设起始偏移量为区间终点,对该区间内的数据进行清零,完成对零数据的补充。
基于上述实施例,由于可能采用不同的备份策略进行备份,因此,在确定所述恢复请求指定的所述目标备份信息和目标备份卷之后,还可以包括如下步骤:
步骤81:判断目标备份信息是否具有压缩标识。
步骤82:若具有压缩标识,则确定执行利用各个预设数据体积,按照目标预设顺序从目标备份卷中读取对应的目标压缩数据块的步骤。
步骤83:若不具有压缩标识,则利用各个预设数据体积,按照目标预设顺序从目标备份卷中读取对应的目标数据块,并将目标数据块进行拼接,完成数据恢复。
若不具有压缩标识,则说明其没有采用本申请提供的备份方式进行备份,没有经过压缩,因此可以利用各个预设数据体积从目标备份卷中直接读出对应的目标数据块并进行拼接。目标数据块可以包括全零数据块和非零数据块。
应用本申请实施例提供的云硬盘数据压缩备份及恢复方法,在进行云硬盘备份时,对其进行切分,并对其中的非零数据块进行压缩。非零数据块为记录有非零数据的数据块,与零数据块不同,在数据恢复时,其具体内容无法确定,因此需要将其进行压缩和保存,以便基于其进行数据恢复。由于不同的非零数据块在被压缩后的体积不同,且压缩数据块之间连续存储,因此为了能够进行准确地恢复,对压缩数据块的数据体积进行记录,以便能够正确地读出压缩数据块。为了表征数据块在源云硬盘中的位置,利用压缩数据块对应的起始偏移量,即非零数据块对应的起始偏移量与对应的数据体积生成备份信息,并确定其对应的预设顺序。预设顺序为数据恢复时用于指示选择压缩数据块的顺序。通过将压缩数据块写入备份卷,可以完成对源云硬盘的压缩备份。在检测到恢复请求时,说明想要对某一个源云硬盘进行恢复,此时可以利用恢复请求指定的目标备份信息、目标备份卷和目标预设顺序准确地读出压缩数据块、解压缩并进行数据块拼接,完成数据恢复。通过将全零数据块去除,并对非零数据块进行压缩存储,同时生成其对应的备份信息和预设顺序,可以大大减少压缩备份所需的存储空间,提高了存储空间的利用效率,解决了相关技术存在的存储空间占用较多,业务成本较高的问题。
基于上述实施例,请参考图2,图2为本申请实施例提供的一种具体的云硬盘备份流程图。该源云硬盘备份流程描述如下:
1)将源云硬盘划分为n个chunk,n为正整数。chunk即为初始数据块。
2)将各个chunk与二进制空标志位“\x00”比对,识别出空chunk。在本实施例中,可以假设第1,3,4…n-1个chunk为非空chunk(即非零数据块),以2,n代表空chunk。
3)对于非空chunk,使用gzip工具压缩,得到压缩后的数据块(即压缩数据块),并计算其对应的容量大小size(即压缩数据块的数据体积)。具体的,chunk1经过压缩后,其容量缩小为size1。chunk2由于被识别为空chunk(即零数据块),将跳过压缩步骤,同样就不会计算压缩后的数据块大小。chunk3经过压缩后,得到的数据块的大小为size3。后续的压缩数据块以此类推。
4)将chunk1经过压缩得到的数据块1写入备份卷,并在数据库中记录一个键值对来对应此数据块。键值对的key值为:从源云硬盘读取此chunk时的起始起始偏移量offset1。其value值为:该chunk经过压缩后的数据块1的大小size1。
5)由于chunk2被识别为空chunk,故将掉过压缩,写入备份卷,数据库记录键值对的步骤,后续的所有空chunk均以此方式处理。
6)开始处理数据块3,由于此前数据块1已经首次写入了备份卷,备份卷当前的写入偏移量已经由起始的0变为size1(因为数据块1的大小为size1),数据块3将从偏移量size1开始继续写入,直到将压缩后的chunk3的数据块3完全写完。写完之后,备份卷的偏移量变为size1+size3,以便作为下一个数据块开始写入的起始位置。完成数据块3的写入后,数据库新增一个新的键值对,其key值为:chunk3从源云硬盘读取时的起始偏移量,value值为:chunk3经过压缩后的数据块3的大小size3。
7)后续的数据块均以上述处理方式进行处理,完成数据写入以及数据库的键值对记录。
云硬盘经过压缩备份后,不仅没有向备份卷写入空chunk,而且对非空chunk进行了压缩,极大的缩小了备份卷占用的容量大小,而且在数据库内记录了完整的各个chunk的源卷起始读取起始偏移量,以及各个chunk压缩后得到的数据块的大小size信息。
云硬盘数据压缩备份及恢复流程如下:
1)先从数据库内读取记录的键值对(即目标信息),轮询处理各个键值对对应的数据块。
2)以图2为例,先处理offset1:size1,即先从备份卷从0起始偏移量开始,向后读取size1的数据块,然后将数据块使用gzip工具反向解压,得到新的解压后的数据块(即候选非零数据块)。
3)将恢复的云硬盘(即目标云硬盘)的起始偏移量定位到offset1,然后开始写入解压后的数据块。
4)由于之前chunk2为空数据块,故数据块并未记录相关信息,将直接开始chunk3的恢复流程。
5)处理offset3:size3,备份卷从起始读取起始偏移量size1开始,再向后读取大小为size3的数据块,然后解压得到新数据块。由于offset3一定大于恢复云硬盘当前的起始偏移量offset2(即当前写入位置,由于之前写入了解压后的chunk1,将当前写入位置从offset1增加至offset2)。故将此数据块(解压后的chunk3)写入恢复云硬盘之前,需要将offset2至offset3这个空间,进行清零。以保障恢复后的数据和当初备份时是一致的。
6)后续的处理流程以此类推,直到完成对数据库内所有键值对的处理,即完成了云硬盘备份的恢复。
在实测中,对五个源云硬盘进行对比,各源云硬盘情况如下:
A、imageA:创建配额大小为10G的空云硬盘,挂载到虚拟机格式化为ext4文件***,向文件***内通过dd命令,创建大小为2G的全零文件。
B、imageB:创建配额大小为10G的空云硬盘,挂载到虚拟机格式化为ext4文件***,向文件***内通过dd命令,创建大小为5G的全零文件.
C、imageC:创建配额大小为10G的镜像卷,即该云硬盘内包含一个***镜像,此镜像大小为39MB,是一个linux最小安装***。
D、imageD:创建配额大小为10G的镜像卷,即该云硬盘内包含一个***镜像,此镜像大小为2404MB,是一个centos7安装***。
E、imageE:创建配额大小为10G的镜像卷,即该云硬盘内包含一个***镜像,此镜像大小为396MB,是一个win最小安装***。
以上5种云硬盘分别在以下三种场景下执行云硬盘备份,并记录完成备份后,所消耗的时间以及备份卷占用的真实容量大小。场景如下:
1、使用社区备份驱动,即未开启空chunk检测,未开启备份压缩。
2、使用本发明优化后的驱动,仅开启空chunk检测,未开启备份压缩。
3、使用本发明优化后的驱动,开启空chunk检测,开启备份压缩。
请参考图3和图4,图3为本申请实施例提供的一种备份耗时对比图,图4为本申请实施例提供的一种备份卷容量对比图。对图3分析可知,相关技术采用的云硬盘备份机制,备份消耗的时间较高;开启空chunk检测(备份加速)后备份相同的卷消耗的时间明显降低;再开启备份压缩后,消耗的时间总体上比仅开启空chunk检测要高,因为多了chunk压缩的时间,但是仍然比相关技术采用的机制备份耗时低。
需要注意的是,图4的纵坐标是指数分布的。由图4可知,相关技术采用的云硬盘备份逻辑(场景1),备份卷的容量占用和源云硬盘的配额大小一样,均为10G,严重消耗了备份存储容量。开启空chunk检测后(场景2),可以看出备份卷的容量占用已经有了大幅降低。而同时开启备份压缩后(场景3),备份卷的容量占用将进一步降低(场景3)。需要说明的是,场景3比场景2进一步节省的容量大小,与源云硬盘内数据的稀疏程度有关(例如imageA和imageB为dd命令生成的全零文件,稀疏程度很高),也与使用的压缩算法有关。本申请实施例采用了gzip压缩算法得到图3和图4中的测试结果。
下面对本申请实施例提供的云硬盘数据压缩备份及恢复装置进行介绍,下文描述的云硬盘数据压缩备份及恢复装置与上文描述的云硬盘数据压缩备份及恢复方法可相互对应参照。
请参考图5,图5为本申请实施例提供的一种云硬盘数据压缩备份及恢复装置的结构示意图,包括:
切分模块110,用于将源云硬盘切分得到若干个初始数据块,并确定各个初始数据块在源云硬盘中的起始偏移量;
压缩模块120,用于对初始数据块中的非零数据块进行压缩,得到压缩数据块,并计算各个压缩数据块的数据体积;
信息生成模块130,用于利用压缩数据块对应的起始偏移量和数据体积生成对应的备份信息,并确定备份信息对应的预设顺序;
写入模块140,用于向备份卷中写入压缩数据块;
恢复模块150,用于在检测到恢复请求时,利用恢复请求指定的目标备份信息、目标备份卷和对应的目标预设顺序进行数据恢复。
可选地,恢复模块150,包括
确定单元,用于若检测到恢复请求,则确定恢复请求指定的目标备份信息和目标备份卷;目标备份信息包括若干个预设数据体积和对应的若干个预设起始偏移量;
读取单元,用于利用各个预设数据体积,按照目标预设顺序从目标备份卷中读取对应的目标压缩数据块;
解压单元,用于对目标压缩数据块进行解压缩,得到候选非零数据块;
目标确定单元,用于按照目标预设顺序在候选非零数据块中确定目标非零数据块,并确定目标非零数据块对应的目标预设起始偏移量;
写入单元,用于基于目标预设起始偏移量与目标云硬盘的当前写入位置的匹配情况,将目标非零数据块写入目标云硬盘。
可选地,写入单元,包括:
第一写入子单元,用于若目标预设起始偏移量与当前写入位置相匹配,则将目标非零数据块按照目标预设起始偏移量写入目标云硬盘;
第二写入子单元,用于若目标预设起始偏移量与当前写入位置不匹配,则将目标非零数据块按照目标预设起始偏移量写入目标云硬盘,并将目标云硬盘从目标非零数据块写入前的当前写入位置,到目标预设起始偏移量之间的数据清零。
可选地,还包括:
压缩判断单元,用于判断目标备份信息是否具有压缩标识;
确定执行单元,用于若具有压缩标识,则确定执行利用各个预设数据体积,按照目标预设顺序从目标备份卷中读取对应的目标压缩数据块的步骤;
拼接恢复单元,用于若不具有压缩标识,则利用各个预设数据体积,按照目标预设顺序从目标备份卷中读取对应的目标数据块,并将目标数据块进行拼接,完成数据恢复。
可选地,信息生成模块130,包括:
排序单元,用于根据各个压缩数据块对应的起始偏移量的大小关系对压缩数据块进行排序,并将压缩数据块的先后顺序确定为预设顺序。
可选地,压缩模块120,包括:
零数据块检测单元,用于对各个初始数据块进行零数据块检测,得到检测结果;
压缩单元,用于将检测结果表示为非零的初始数据块确定为非零数据块进行压缩,得到压缩数据块。
可选地,零数据块检测单元,包括:
内容匹配子单元,用于读取初始数据块的数据内容,并将数据内容与二进制空标志位比对;
非零确定子单元,用于若存在任一数据内容不为二进制空标志位,则确定初始数据块对应的检测结果表示为非零。
可选地,切分模块110,包括:
粒度获取单元,用于获取切分粒度;切分粒度能够等分1GB;
平均切分单元,用于根据切分粒度对源云硬盘进行平均切分,得到初始数据块。
可选地,信息生成模块130,包括:
键值对生成单元,用于利用压缩数据块对应的起始偏移量和数据体积组成键值对;
键值对排序单元,用于按照起始偏移量的大小顺序对各个键值对排序,得到键值对序列;
标识单元,用于利用源云硬盘的硬盘标志、备份卷的卷标志对键值对序列进行标识,得到备份信息。
可选地,信息生成模块130,包括:
初始生成单元,用于利用压缩数据块对应的起始偏移量和数据体积生成初始备份信息;
压缩标识单元,用于利用压缩标识对初始备份信息进行标识,得到备份信息。
下面对本申请实施例提供的电子设备进行介绍,下文描述的电子设备与上文描述的云硬盘数据压缩备份及恢复方法可相互对应参照。
请参考图6,图6为本申请实施例提供的一种电子设备的结构示意图。其中电子设备100可以包括处理器101和存储器102,还可以进一步包括多媒体组件103、信息输入/信息输出(I/O)接口104以及通信组件105中的一种或多种。
其中,处理器101用于控制电子设备100的整体操作,以完成上述的云硬盘数据压缩备份及恢复方法中的全部或部分步骤;存储器102用于存储各种类型的数据以支持在电子设备100的操作,这些数据例如可以包括用于在该电子设备100上操作的任何应用程序或方法的指令,以及应用程序相关的数据。该存储器102可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random AccessMemory,SRAM)、电可擦除可编程只读存储器(Electrically Erasable ProgrammableRead-Only Memory,EEPROM)、可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,EPROM)、可编程只读存储器(Programmable Read-Only Memory,PROM)、只读存储器(Read-Only Memory,ROM)、磁存储器、快闪存储器、磁盘或光盘中的一种或多种。
多媒体组件103可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器102或通过通信组件105发送。音频组件还包括至少一个扬声器,用于输出音频信号。I/O接口104为处理器101和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件105用于电子设备100与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near Field Communication,简称NFC),2G、3G或4G,或它们中的一种或几种的组合,因此相应的该通信组件105可以包括:Wi-Fi部件,蓝牙部件,NFC部件。
电子设备100可以被一个或多个应用专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、数字信号处理器(Digital Signal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field ProgrammableGate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述实施例给出的云硬盘数据压缩备份及恢复方法。
下面对本申请实施例提供的计算机可读存储介质进行介绍,下文描述的计算机可读存储介质与上文描述的云硬盘数据压缩备份及恢复方法可相互对应参照。
本申请还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述的云硬盘数据压缩备份及恢复方法的步骤。
该计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本领域技术人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应该认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系属于仅仅用来将一个实体或者操作与另一个实体或者操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语包括、包含或者其他任何变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (8)
1.一种云硬盘数据压缩备份及恢复方法,其特征在于,包括:
将源云硬盘切分得到若干个初始数据块,并确定各个所述初始数据块在所述源云硬盘中的起始偏移量;
对各个所述初始数据块进行零数据块检测,得到检测结果;
将所述检测结果表示为非零的所述初始数据块确定为非零数据块,并进行压缩,得到压缩数据块,以及计算各个所述压缩数据块的数据体积;
将所述检测结果表示为零的所述初始数据块确定为零数据块,不对零数据块进行压缩以及不将零数据块写入备份卷;
利用所述压缩数据块对应的所述起始偏移量和所述数据体积生成对应的备份信息,并确定所述备份信息对应的预设顺序;
向备份卷中写入所述压缩数据块;
若检测到恢复请求,则确定所述恢复请求指定的目标备份信息和目标备份卷;所述目标备份信息包括若干个预设数据体积和对应的若干个预设起始偏移量;
利用各个所述预设数据体积,按照目标预设顺序从所述目标备份卷中读取对应的目标压缩数据块;
对所述目标压缩数据块进行解压缩,得到候选非零数据块;
按照所述目标预设顺序在所述候选非零数据块中确定目标非零数据块,并确定所述目标非零数据块对应的目标预设起始偏移量;
若所述目标预设起始偏移量与目标云硬盘的当前写入位置相匹配,则将所述目标非零数据块按照所述目标预设起始偏移量写入所述目标云硬盘;
若所述目标预设起始偏移量与所述当前写入位置不匹配,则将所述目标非零数据块按照所述目标预设起始偏移量写入所述目标云硬盘,并将所述目标云硬盘从所述目标非零数据块写入前的所述当前写入位置到所述目标预设起始偏移量之间的数据清零。
2.根据权利要求1所述的云硬盘数据压缩备份及恢复方法,其特征在于,所述确定所述备份信息对应的预设顺序,包括:
根据各个所述压缩数据块对应的所述起始偏移量的大小关系对所述压缩数据块进行排序,并将所述压缩数据块的先后顺序确定为所述预设顺序。
3.根据权利要求1所述的云硬盘数据压缩备份及恢复方法,其特征在于,所述对各个所述初始数据块进行零数据块检测,得到检测结果,包括:
读取所述初始数据块的数据内容,并将所述数据内容与二进制空标志位比对;
若存在任一所述数据内容不为所述二进制空标志位,则确定所述初始数据块对应的所述检测结果表示为非零。
4.根据权利要求1所述的云硬盘数据压缩备份及恢复方法,其特征在于,所述将源云硬盘切分得到若干个初始数据块,包括:
获取切分粒度;所述切分粒度能够等分1GB;
根据所述切分粒度对所述源云硬盘进行平均切分,得到所述初始数据块。
5.根据权利要求1所述的云硬盘数据压缩备份及恢复方法,其特征在于,所述利用所述压缩数据块对应的所述起始偏移量和所述数据体积生成对应的备份信息,包括:
利用所述压缩数据块对应的所述起始偏移量和所述数据体积组成键值对;
按照所述起始偏移量的大小顺序对各个所述键值对排序,得到键值对序列;
利用所述源云硬盘的硬盘标志、所述备份卷的卷标志对所述键值对序列进行标识,得到所述备份信息。
6.一种云硬盘数据压缩备份及恢复装置,其特征在于,包括:
切分模块,用于将源云硬盘切分得到若干个初始数据块,并确定各个所述初始数据块在所述源云硬盘中的起始偏移量;
压缩模块,用于对所述初始数据块中的非零数据块进行压缩,得到压缩数据块,并计算各个所述压缩数据块的数据体积;
信息生成模块,用于利用所述压缩数据块对应的所述起始偏移量和所述数据体积生成对应的备份信息,并确定所述备份信息对应的预设顺序;
写入模块,用于向备份卷中写入所述压缩数据块;
恢复模块,用于在检测到恢复请求时,利用所述恢复请求指定的目标备份信息、目标备份卷和对应的目标预设顺序进行数据恢复;
压缩模块包括:
零数据块检测单元,用于对各个初始数据块进行零数据块检测,得到检测结果;
压缩单元,用于将检测结果表示为非零的初始数据块确定为非零数据块,并进行压缩,得到压缩数据块;所述检测结果表示为零的所述初始数据块为零数据块,不对零数据块进行压缩以及不将零数据块写入备份卷;
恢复模块包括:
确定单元,用于若检测到恢复请求,则确定恢复请求指定的目标备份信息和目标备份卷;目标备份信息包括若干个预设数据体积和对应的若干个预设起始偏移量;
读取单元,用于利用各个预设数据体积,按照目标预设顺序从目标备份卷中读取对应的目标压缩数据块;
解压单元,用于对目标压缩数据块进行解压缩,得到候选非零数据块;
目标确定单元,用于按照目标预设顺序在候选非零数据块中确定目标非零数据块,并确定目标非零数据块对应的目标预设起始偏移量;
写入单元,用于基于目标预设起始偏移量与目标云硬盘的当前写入位置的匹配情况,将目标非零数据块写入目标云硬盘;
写入单元包括:
第一写入子单元,用于若目标预设起始偏移量与当前写入位置相匹配,则将目标非零数据块按照目标预设起始偏移量写入目标云硬盘;
第二写入子单元,用于若目标预设起始偏移量与当前写入位置不匹配,则将目标非零数据块按照目标预设起始偏移量写入目标云硬盘,并将目标云硬盘从目标非零数据块写入前的当前写入位置到目标预设起始偏移量之间的数据清零。
7.一种电子设备,其特征在于,包括存储器和处理器,其中:
所述存储器,用于保存计算机程序;
所述处理器,用于执行所述计算机程序,以实现如权利要求1至5任一项所述的云硬盘数据压缩备份及恢复方法。
8.一种计算机可读存储介质,其特征在于,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述的云硬盘数据压缩备份及恢复方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110838010.2A CN113722150B (zh) | 2021-07-23 | 2021-07-23 | 云硬盘数据压缩备份及恢复方法、装置、设备及存储介质 |
PCT/CN2022/078491 WO2023000674A1 (zh) | 2021-07-23 | 2022-02-28 | 云硬盘数据压缩备份及恢复方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110838010.2A CN113722150B (zh) | 2021-07-23 | 2021-07-23 | 云硬盘数据压缩备份及恢复方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113722150A CN113722150A (zh) | 2021-11-30 |
CN113722150B true CN113722150B (zh) | 2023-08-22 |
Family
ID=78673874
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110838010.2A Active CN113722150B (zh) | 2021-07-23 | 2021-07-23 | 云硬盘数据压缩备份及恢复方法、装置、设备及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN113722150B (zh) |
WO (1) | WO2023000674A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113722150B (zh) * | 2021-07-23 | 2023-08-22 | 苏州浪潮智能科技有限公司 | 云硬盘数据压缩备份及恢复方法、装置、设备及存储介质 |
CN115865097B (zh) * | 2023-02-17 | 2023-05-23 | 浪潮电子信息产业股份有限公司 | 一种数据压缩方法、***、设备及计算机可读存储介质 |
CN115982398B (zh) * | 2023-03-13 | 2023-05-16 | 苏州浪潮智能科技有限公司 | 图结构数据处理方法、***、计算机设备和存储介质 |
CN117971612B (zh) * | 2024-03-29 | 2024-06-04 | 苏州元脑智能科技有限公司 | 一种硬盘监控方法、装置、设备及介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109597717A (zh) * | 2018-12-07 | 2019-04-09 | 北京金山云网络技术有限公司 | 一种数据备份、恢复方法、装置、电子设备及存储介质 |
CN109614268A (zh) * | 2018-12-10 | 2019-04-12 | 浪潮(北京)电子信息产业有限公司 | 一种云备份数据的恢复方法、装置及*** |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9542397B1 (en) * | 2013-03-14 | 2017-01-10 | EMC IP Holding Company LLC | File block addressing for backups |
CN109582653B (zh) * | 2018-11-14 | 2020-12-08 | 网易(杭州)网络有限公司 | 文件的压缩、解压缩方法及设备 |
CN111104063A (zh) * | 2019-12-06 | 2020-05-05 | 浪潮电子信息产业股份有限公司 | 一种数据存储方法、装置及电子设备和存储介质 |
CN111104258A (zh) * | 2019-12-23 | 2020-05-05 | 北京金山云网络技术有限公司 | MongoDB数据库的备份方法、装置及电子设备 |
CN111723053A (zh) * | 2020-06-24 | 2020-09-29 | 北京航天数据股份有限公司 | 一种数据的压缩方法及装置、解压方法及装置 |
CN112214359A (zh) * | 2020-10-30 | 2021-01-12 | 上海爱数信息技术股份有限公司 | 一种Oracle数据库的备份恢复***及其方法 |
CN113064760B (zh) * | 2021-04-06 | 2022-02-15 | 广州鼎甲计算机科技有限公司 | 数据库合成备份方法、装置、计算机设备和存储介质 |
CN113722150B (zh) * | 2021-07-23 | 2023-08-22 | 苏州浪潮智能科技有限公司 | 云硬盘数据压缩备份及恢复方法、装置、设备及存储介质 |
-
2021
- 2021-07-23 CN CN202110838010.2A patent/CN113722150B/zh active Active
-
2022
- 2022-02-28 WO PCT/CN2022/078491 patent/WO2023000674A1/zh unknown
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109597717A (zh) * | 2018-12-07 | 2019-04-09 | 北京金山云网络技术有限公司 | 一种数据备份、恢复方法、装置、电子设备及存储介质 |
CN109614268A (zh) * | 2018-12-10 | 2019-04-12 | 浪潮(北京)电子信息产业有限公司 | 一种云备份数据的恢复方法、装置及*** |
Also Published As
Publication number | Publication date |
---|---|
WO2023000674A1 (zh) | 2023-01-26 |
CN113722150A (zh) | 2021-11-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113722150B (zh) | 云硬盘数据压缩备份及恢复方法、装置、设备及存储介质 | |
CN106844102B (zh) | 数据恢复方法和装置 | |
CN107229420B (zh) | 数据存储方法、读取方法、删除方法和数据操作*** | |
CN106681862B (zh) | 数据的增量恢复方法和装置 | |
CN110413439B (zh) | 用于检测数据的不完整写入的方法、设备和计算机可读介质 | |
US20160034201A1 (en) | Managing de-duplication using estimated benefits | |
CN111125033B (zh) | 一种基于全闪存阵列的空间回收方法及*** | |
CN112579327B (zh) | 一种故障检测方法、装置及设备 | |
US9727309B2 (en) | Computer-readable recording medium, encoding apparatus, and encoding method | |
CN115562905A (zh) | 一种备份方法、***、装置及计算机可读存储介质 | |
WO2009091411A1 (en) | Generation of a representative data string | |
CN111338759A (zh) | 虚拟磁盘校验码生成方法、装置、设备及存储介质 | |
CN113254267B (zh) | 分布式数据库的数据备份方法和装置 | |
CN111324295B (zh) | 数据迁移的方法、装置、设备及介质 | |
CN108108467B (zh) | 数据删除方法及装置 | |
CN108089942B (zh) | 一种数据备份、恢复方法及装置 | |
CN115328696A (zh) | 一种数据库中的数据备份方法 | |
CN113868026A (zh) | 一种云备份的方法和相关装置 | |
CN105138429B (zh) | 一种写时拷贝快照方法和*** | |
CN110209530B (zh) | 一种恢复cdp***io数据的方法及*** | |
CN114896641A (zh) | 数据校验方法、装置、电子设备及计算机可读存储介质 | |
CN114138786A (zh) | 一种联机交易消息去重方法、装置、介质、产品和设备 | |
CN111125012A (zh) | 一种快照生成方法、装置、设备及可读存储介质 | |
CN112162883A (zh) | 一种副本数据恢复方法、***、电子设备及存储介质 | |
CN112328433A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |