CN114816856A - 一种数据备份方法、装置、设备及可读存储介质 - Google Patents
一种数据备份方法、装置、设备及可读存储介质 Download PDFInfo
- Publication number
- CN114816856A CN114816856A CN202210467136.8A CN202210467136A CN114816856A CN 114816856 A CN114816856 A CN 114816856A CN 202210467136 A CN202210467136 A CN 202210467136A CN 114816856 A CN114816856 A CN 114816856A
- Authority
- CN
- China
- Prior art keywords
- cluster
- disk
- determining
- character
- distribution
- 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
- 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
- G06F11/1451—Management of the data involved in backup or backup restore by selection of backup contents
-
- 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- 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/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—Disk device
- G06F3/0676—Magnetic disk device
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种数据备份方法、装置、设备及可读存储介质,该方法包括:获取qcow文件的头部信息;利用头部信息,确定磁盘的各簇分配状态;利用各簇分配状态,跳过磁盘空洞拷贝磁盘中的已分配簇;在将拷贝数据存入备份存储空间后,确定完成qcow文件的全量备份。相对于对磁盘进行从头到尾的拷贝而言,由于本申请可以跳过磁盘空洞拷贝,可以大大加快qcow文件的全量备份速度。
Description
技术领域
本申请涉及存储技术领域,特别是涉及一种数据备份方法、装置、设备及可读存储介质。
背景技术
在云平台中,对于虚拟机的管理,备份策略是很重要的一环,可以有效防止系统崩溃造成的数据缺失。一般地,备份可以分为全量备份、增量备份和差异备份。而增量备份和差异备份都基于全量备份。
通常,全量备份意味着要将磁盘从头到尾都进行拷贝,而采用qcow格式的磁盘,由于其格式规则的特殊性,导致磁盘中很多空隙是空数据,即磁盘空洞。其中,qcow(QEMUCopy On Write Disk Image),一种磁盘镜像格式,支持写时复制,最小单位为簇。这些磁盘空洞对数据备份而言,并没有实质价值,而拷贝磁盘空洞反而浪费时间。
综上所述,如何有效地解决在全量备份时避开拷贝磁盘空洞等问题,是目前本领域技术人员急需解决的技术问题。
发明内容
本申请的目的是提供一种数据备份方法、装置、设备及可读存储介质,以实现在全量备份时,避开拷贝磁盘空洞,加快备份速度。
为解决上述技术问题,本申请提供如下技术方案:
一种数据备份方法,包括:
获取qcow文件的头部信息;
利用所述头部信息,确定磁盘的各簇分配状态;
利用所述各簇分配状态,跳过磁盘空洞拷贝所述磁盘中的已分配簇;
在将拷贝数据存入备份存储空间后,确定完成所述qcow文件的全量备份。
优选地,利用所述各簇分配状态,跳过磁盘空洞拷贝所述磁盘中的已分配簇,包括:
利用所述磁盘的空间大小和簇大小,确定分配标识字符串的长度;其中,在所述分配标识字符串中一个字符唯一对应所述磁盘中的一个簇,字符顺序对应所述磁盘中的簇顺序;
利用所述各簇分配状态,为所述分配标识字符串中的各个字符进行赋值;
在赋值完成后,参照所述分配标识字符串,仅对所述磁盘中所述已分配簇进行拷贝。
优选地,在利用所述各簇分配状态,为所述分配标识字符串中的各个字符进行赋值之后,还包括:
判断所述qcow文件是否有外部快照;
如果是,则获取快照点对应的历史分配标识字符串;
参照所述历史分配标识字符串对所述分配标识字符串进行补充赋值。
优选地,所述参照所述历史分配标识字符串对所述分配标识字符串进行补充赋值,包括:
对所述历史分配标识字符串和所述分配标识字符串进行或逻辑处理;其中,字符值为1对应已分配,字符值为0对应未分配。
优选地,所述参照所述分配标识字符串,仅对所述磁盘中所述已分配簇进行拷贝,包括:
查找出所述分配标识字符串中字符值为1的位置;
利用所述位置确定已分配簇的偏移量;
按照所述偏移量,并以所述簇大小为缓冲大小,进行数据拷贝。
优选地,利用所述各簇分配状态,为所述分配标识字符串中的各个字符进行赋值,包括:
对所述各簇分配状态按照簇顺序进行排序;
按照排序结果,依次对所述分配标识字符串中的各个字符进行赋值;
在所述分配标识字符串中的各个字符均对应赋值后,若存在未对应字符的簇分配状态,则进行舍弃。
优选地,利用所述头部信息,确定磁盘的各簇分配状态,包括:
利用所述头部信息,获取簇偏移表;
遍历所述簇偏移表中各个元素,确定各个所述元素是否为空;
若所述元素为空,则确定对应簇未分配;
若所述元素不为空,则确定对应簇已分配。
一种数据备份装置,包括:
信息获取模块,用于获取qcow文件的头部信息;
状态确定模块,用于利用所述头部信息,确定磁盘的各簇分配状态;
拷贝模块,用于利用所述各簇分配状态,跳过磁盘空洞拷贝所述磁盘中的已分配簇;
备份模块,用于在将拷贝数据存入备份存储空间后,确定完成所述qcow文件的全量备份。
一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现上述数据备份方法的步骤。
一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述数据备份方法的步骤。
应用本申请实施例所提供的方法,获取qcow文件的头部信息;利用头部信息,确定磁盘的各簇分配状态;利用各簇分配状态,跳过磁盘空洞拷贝磁盘中的已分配簇;在将拷贝数据存入备份存储空间后,确定完成qcow文件的全量备份。
在本申请中,首先获取qcow文件的头部信息,基于该头部信息可以确定出磁盘中每一个簇的分配状态。一般地,簇已分配,则表明在该簇内存储有数据,而若簇未分配,则表明该簇内没有存储数据。因而,可以基于该各簇分配状态,从而实现跳过磁盘空洞拷贝磁盘中的已分配簇,得到拷贝数据。然后,将拷贝数据存入备份存储空间即可完成qcow文件的全量备份。相对于对磁盘进行从头到尾的拷贝而言,由于本申请可以跳过磁盘空洞拷贝,可以大大加快qcow文件的全量备份速度。
相应地,本申请实施例还提供了与上述数据备份方法相对应的数据备份装置、设备和可读存储介质,具有上述技术效果,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例中一种数据备份方法的实施流程图;
图2为本申请实施例中一种数据备份装置的结构示意图;
图3为本申请实施例中一种电子设备的结构示意图;
图4为本申请实施例中一种电子设备的具体结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面结合附图和具体实施方式对本申请作进一步的详细说明。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参考图1,图1为本申请实施例中一种数据备份方法的流程图,该方法包括以下步骤:
S101、获取qcow文件的头部信息。
在本申请中,磁盘格式可以具体为数据时会产生磁盘空洞的任意一版qcow。
簇(cluster)由相邻的多个扇区组成。文件在磁盘中存储是以簇(块)为单位,且一般文件在磁盘上存储的簇是不连续的。扇区(sector),磁盘驱动器从磁盘中读取写入数据的时候都是以sector为单位,一个扇区通常是512字节。因而,在磁盘中有的簇中存有数据,而有的簇中没有数据,没有数据的簇对应的空间即磁盘空洞。或者说,磁盘空洞对应空数据。
在qcow文件创立时,便会对应创建好文件头,因而可以直接基于qcow的读取规则,直接读取qcow文件的头部信息。该头部信息的具体内容可以具体参照qcow各个版本的具体格式规则。
下面以qcow2镜像文件格式为例,对头部信息进行说明:
每一个qcow2文件都以一个大端(big-endian)格式的头开始,结构如下:
具体的,前4个比特包含了字符Q,F,I,然后是0xfb,实例中的514649fb是magic字段。接下来的4个比特包含了该镜像文件的版本号,实例中的00000002对应version字段,表示使用qcow2版本。
backing_file_offset占用8个字节,实例中0000 0000 0000 0000,给出相对于qcow2文件起始位置的偏移,指出一个字符串的位置,该字符串为backing file文件的绝对路径。该字符串为backing file文件的绝对路径。由于该字符串不是以'\0'结束,所以backing_file_size指出字符串的长度。如果当前镜像是一个copy-on-write镜像,则存在backing file文件,否则没有。
backing_file_size给出了一个不以null结尾的字符串的长度,实例中为00000000。如果这个镜像文件是一个写时拷贝的,那么它是原始文件的路径。
cluster_bits,32位(0000 0010),描述了如何映射一个镜像的地址到一个本地文件,它决定了在一个cluster中,偏移地址的低位是如何作为索引的。因为L2表(同本文中的簇偏移表)占用了一个单独的cluster并且包含8字节的表项(entry),所以cluster_bits只有不足3个位,作为L2表的索引。
接下来的size,8字节代表了该镜像文件所表示的块设备的大小,单位字节;实例中为0000 0002 8000 0000字节,也就是10G的空间。
crypt_method如果为1代表使用AES加密,0表示没有加密。
l1_size(0000 0014)和l1_table_offset(0000 0000 0003 0000::)分别给出了L1表(同本文中的表偏移表)大小和偏移量。
refcount_table_offset给出refcount表的偏移量(0000 0000 0001 0000)而refcount_table_clusters描述了以cluster为单位的refcount表的大小(0000 0001)。
nb_snapshots给出了该镜像包含的快照数量(0000 0000),snapshots_offset给出每个快照到QCowSnapshotHeader的偏移量(0000 0000 0000 0000),每个快照都会有这样一个header。
得到有头部信息之后,可以进入步骤S102。
S102、利用头部信息,确定磁盘的各簇分配状态。
基于头部信息中记录的数据内容,可以确定出磁盘中各个簇的分配状态。具体的,在qcow文件格式中,其虚拟空间偏移量到镜像空间偏移量需要二级表寻址,分别为L1表和L2表,L1表记录L2表在磁盘镜像空间中的偏移量,L2表记录数据簇在磁盘镜像空间中的偏移量。而在头部信息中记录有L1表的地址(偏移量)和L1表数量。而L1表中记录了L2表在磁盘镜像空间中的便宜量,且L2表记录数据簇在磁盘镜像空间中的偏移量。因而,基于头部信息可以明确磁盘中各个簇的分配状态。
在本申请中的一种具体实施方式中,步骤S102利用头部信息,确定磁盘的各簇分配状态,包括:
步骤一、利用头部信息,获取簇偏移表;
步骤二、遍历簇偏移表中各个元素,确定各个元素是否为空;
步骤三、若元素为空,则确定对应簇未分配;
步骤四、若元素不为空,则确定对应簇已分配。
为便于描述,下面将上述四个步骤结合起来进行说明。
可以通过查询头部信息的方式,首先,确定表偏移表的偏移,即L1表的地址。在L1表中,其元素即对应L2表,具体的,一个元素对应一个L2表的地址。通过遍历L1表中的各个元素,即可确定每一个L2表的地址。
得到L2表的地址后,访问对应的地址,即可得到各个L2表。在L2表中记录的元素对应簇,具体的,一个元素对应一个簇。当某元素为空,则表明对应的簇未分配,当某元素不为空,则表明对应的簇已分配。
因而通过遍历每一个L2表中的各个元素,即可确定出各个簇的分配情况。
S103、利用各簇分配状态,跳过磁盘空洞拷贝磁盘中的已分配簇。
确定了各簇的分配状态后,便可以在拷贝磁盘时,基于该各簇分配状态,跳过磁盘空洞,从而仅拷贝磁盘中的已分配簇,即拷贝已分配簇中的数据。
在本申请中的一种具体实施方式中,步骤S103利用各簇分配状态,跳过磁盘空洞拷贝磁盘中的已分配簇,可包括:
步骤一、利用磁盘的空间大小和簇大小,确定分配标识字符串的长度。其中,在分配标识字符串中一个字符唯一对应磁盘中的一个簇,字符顺序对应磁盘中的簇顺序。
其中,磁盘的空间大小和簇大小可以基于创建磁盘时的设定中获取。在一个磁盘中,簇的大小通常是固定的,空间大小也是固定的,因而基于二者,可以确定出簇总数。若查询到的磁盘的虚拟空间大小为size,簇大小为cluster_size,则簇总数=size÷cluster_size。
在本申请中采用分配标识字符串来对簇进行表示,从而实现快速定位有效数据对应的簇的偏移,以便拷贝有效数据。具体的,使用一个字符来表示磁盘中的一个簇,当然,在实际应用中可以采用多个字符来表示一个簇。此外,字符顺序即对应簇顺序,即相邻的簇对应表示的字符也为相邻。
步骤二、利用各簇分配状态,为分配标识字符串中的各个字符进行赋值。
具体的,利用各簇分配状态,为分配标识字符串中的各个字符进行赋值,包括:
步骤1、对各簇分配状态按照簇顺序进行排序;
步骤2、按照排序结果依次对分配标识字符串中的各个字符进行赋值;
步骤3、在分配标识字符串中的各个字符均对应赋值后,若存在未对应字符的簇分配状态,则进行舍弃。
举例说明:其中簇顺序即为磁盘中簇先后顺序,对各簇分配状态按照簇顺序进行排序,即将磁盘中的簇分配状态,按照簇先后顺序进行排列。然后,基于排序结果,依次对分配标识字符串中的各个字符进行赋值。需要注意的是,从头部信息中获取的簇的分配状态的数量可能会超出磁盘的簇总数,因而,在对分配标识字符串进行赋值时,可以按序仅将磁盘对应的簇进行一次赋值,对于多余的簇分配状态则进行舍弃。例如,当从头部信息中确定出了F个簇分分别对应的簇分配状态,而磁盘的簇总量为H,当F大于H时,则认为超出(H,F]对应的簇状态信息是多余的,而将其进行舍弃。
具体的,可以预先定义不同的字符值对应不同的分配状态。例如,可以用0来表示相应簇未分配,用1来表示相应簇已分配。当然,也可以用1来表示相应簇未分配,用0来表示相应簇已分配。
在本申请中的一种具体实施方式中,当qcow文件存在外部快照时,对qcow文件进行全量备份,还需要结合外部快照进行备份处理。具体的,在执行上述步骤三在利用各簇分配状态,为分配标识字符串中的各个字符进行赋值之后,还可包括:
步骤1、判断qcow文件是否有外部快照;
步骤2、如果是,则获取快照点对应的历史分配标识字符串;
步骤3、参照历史分配标识字符串对分配标识字符串进行补充赋值。
为便于描述,下面将上述三个步骤结合起来进行说明。
具体的,可以通过快照统计信息等确定qcow文件是否对应有外部快照,当存在外部快照时,则可获取快照点对应的历史分配标识字符串。其中,历史分配标识字符串可以是在进行快照时,将该时刻对应的分配标识字符串进行存储所得,也可以参照分配标识字符串的确定过程,针对各个快照点对应生成。然后,再参照历史分配标识字符串对分配标识字符串进行补充赋值。
其中,补充赋值可具体根据字符值的与分配状态的对应关系,确定出对应的处理逻辑。例如,对历史分配标识字符串和分配标识字符串进行或逻辑处理;其中,字符值为1对应已分配,字符值为0对应未分配。
步骤三、在赋值完成后,参照分配标识字符串,仅对磁盘中已分配簇进行拷贝。
在完成赋值之后,直接基于分配标识字符串中的各个字符的位置和字符值,便可确定哪个簇是已分配的,哪个簇是未分配的,以及簇的偏移。因而,参照分配标识字符串便可仅对已分配簇进行拷贝。
在实际应用中,为了更加分别存储和读取,可以将分配标识字符串写入一个文本文件中,还可以在该文本文件中还可以指明磁盘的虚拟空间的大小,然后指出了磁盘的簇大小。
在本申请中的一种具体实施方式中,步骤S103在完成赋值之后,参照分配标识字符串,仅对磁盘中已分配簇进行拷贝,包括:
步骤一、查找出分配标识字符串中字符值为1的位置;
步骤二、利用位置确定已分配簇的偏移量;
步骤三、按照偏移量,并以簇大小为缓冲大小,进行数据拷贝。
举例说明:通过遍历分配标识字符串,若字符值为1对应簇未已分配,则记字符为1在分配标识字符串中所在的位置为i,则偏移量offset为:offset=i×cluster_size,如此,便可以offset为偏移量,cluster_size为缓冲大小,进行数据拷贝。
S104、在将拷贝数据存入备份存储空间后,确定完成qcow文件的全量备份。
得到拷贝数据后,即可将该拷贝数据存入存储空间。该存储空间可以为本地空间,也可以为云空间。存储好拷贝数据后,即完成了qcow文件的全量备份。
应用本申请实施例所提供的方法,获取qcow文件的头部信息;利用头部信息,确定磁盘的各簇分配状态;利用各簇分配状态,跳过磁盘空洞拷贝磁盘中的已分配簇;在将拷贝数据存入备份存储空间后,确定完成qcow文件的全量备份。
在本申请中,首先获取qcow文件的头部信息,基于该头部信息可以确定出磁盘中每一个簇的分配状态。一般地,簇已分配,则表明在该簇内存储有数据,而若簇未分配,则表明该簇内没有存储数据。因而,可以基于该各簇分配状态,从而实现跳过磁盘空洞拷贝磁盘中的已分配簇,得到拷贝数据。然后,将拷贝数据存入备份存储空间即可完成qcow文件的全量备份。相对于对磁盘进行从头到尾的拷贝而言,由于本申请可以跳过磁盘空洞拷贝,可以大大加快qcow文件的全量备份速度。
为便于本领域技术人员更好地理解本申请所述所提供的数据备份方法,下面以qcow2格式对该数据备份方法的具体应用步骤进行详细说明。具体实施过程如下:
获取qcow文件的头部信息,查询磁盘的虚拟空间大小size,簇大小cluster_size,L1表的地址和L1表中的元素个数M;
获取每一个L2表的偏移量,L2表占用一个簇,L2表中的每个每个元素占用8字节。则每个L2表可以表示的簇的数量N为:N=cluster_size÷8。即,从qcow文件的头部信息的头部信息中最多可以获取到M*N个簇的分配状态信息。
遍历每个L2表的每个元素,如果该元素不为空,则表示该元素指定的数据簇被分配,否则表示没有被分配,组成字符串,字符串的长度length为:length=size÷cluster_size。
然后,查询是否有外部快照,如果有则对每个节点进行位图查询(即历史分配标识字符串)并与分配标识字符串进行合并。
如此,通过遍历分配标识字符串,记字符串中1所在的位置为i,则偏移量offset为:offset=i×cluster_size。
以offset为偏移量,cluster_size为缓冲大小,进行数据拷贝,即可完成全量拷贝。
相应于上面的方法实施例,本申请实施例还提供了一种数据备份装置,下文描述的数据备份装置与上文描述的数据备份方法可相互对应参照。
参见图2所示,该装置包括以下模块:
信息获取模块101,用于获取qcow文件的头部信息;
状态确定模块102,用于利用头部信息,确定磁盘的各簇分配状态;
拷贝模块103,用于利用各簇分配状态,跳过磁盘空洞拷贝磁盘中的已分配簇;
备份模块104,用于在将拷贝数据存入备份存储空间后,确定完成qcow文件的全量备份。
应用本申请实施例所提供的装置,获取qcow文件的头部信息;利用头部信息,确定磁盘的各簇分配状态;利用各簇分配状态,跳过磁盘空洞拷贝磁盘中的已分配簇;在将拷贝数据存入备份存储空间后,确定完成qcow文件的全量备份。
在本申请中,首先获取qcow文件的头部信息,基于该头部信息可以确定出磁盘中每一个簇的分配状态。一般地,簇已分配,则表明在该簇内存储有数据,而若簇未分配,则表明该簇内没有存储数据。因而,可以基于该各簇分配状态,从而实现跳过磁盘空洞拷贝磁盘中的已分配簇,得到拷贝数据。然后,将拷贝数据存入备份存储空间即可完成qcow文件的全量备份。相对于对磁盘进行从头到尾的拷贝而言,由于本申请可以跳过磁盘空洞拷贝,可以大大加快qcow文件的全量备份速度。
在本申请的一种具体实施方式中,拷贝模块103,具体用于利用磁盘的空间大小和簇大小,确定分配标识字符串的长度;其中,在分配标识字符串中一个字符唯一对应磁盘中的一个簇,字符顺序对应磁盘中的簇顺序;
利用各簇分配状态,为分配标识字符串中的各个字符进行赋值;
在赋值完成后,参照分配标识字符串,仅对磁盘中已分配簇进行拷贝。
在本申请的一种具体实施方式中,还包括:
快照备份处理模块,具体用于:在利用各簇分配状态,为分配标识字符串中的各个字符进行赋值之后,判断qcow文件是否有外部快照;
如果是,则获取快照点对应的历史分配标识字符串;
参照历史分配标识字符串对分配标识字符串进行补充赋值。
在本申请的一种具体实施方式中,快照备份处理模块,具体用于:对历史分配标识字符串和分配标识字符串进行或逻辑处理;其中,字符值为1对应已分配,字符值为0对应未分配。
在本申请的一种具体实施方式中,拷贝模块103,具体用于查找出分配标识字符串中字符值为1的位置;
利用位置确定已分配簇的偏移量;
按照偏移量,并以簇大小为缓冲大小,进行数据拷贝。
在本申请的一种具体实施方式中,拷贝模块103,具体用于对各簇分配状态按照簇顺序进行排序;
按照排序结果,依次对分配标识字符串中的各个字符进行赋值;
在分配标识字符串中的各个字符均对应赋值后,若存在未对应字符的簇分配状态,则进行舍弃。
在本申请的一种具体实施方式中,状态确定模块102,用于利用头部信息,获取簇偏移表;
遍历簇偏移表中各个元素,确定各个元素是否为空;
若元素为空,则确定对应簇未分配;
若元素不为空,则确定对应簇已分配。
相应于上面的方法实施例,本申请实施例还提供了一种电子设备,下文描述的一种电子设备与上文描述的一种数据备份方法可相互对应参照。
参见图3所示,该电子设备包括:
存储器332,用于存储计算机程序;
处理器322,用于执行计算机程序时实现上述方法实施例的数据备份方法的步骤。
具体的,请参考图4,图4为本实施例提供的一种电子设备的具体结构示意图,该电子设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)322(例如,一个或一个以上处理器)和存储器332,存储器332存储有一个或一个以上的计算机应用程序342或数据344。其中,存储器332可以是短暂存储或持久存储。存储在存储器332的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对数据处理设备中的一系列指令操作。更进一步地,中央处理器322可以设置为与存储器332通信,在电子设备301上执行存储器332中的一系列指令操作。
电子设备301还可以包括一个或一个以上电源326,一个或一个以上有线或无线网络接口350,一个或一个以上输入输出接口358,和/或,一个或一个以上操作系统341。
上文所描述的数据备份方法中的步骤可以由电子设备的结构实现。
相应于上面的方法实施例,本申请实施例还提供了一种可读存储介质,下文描述的一种可读存储介质与上文描述的一种数据备份方法可相互对应参照。
一种可读存储介质,可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例的数据备份方法的步骤。
该可读存储介质具体可以为U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可存储程序代码的可读存储介质。
本领域技术人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
Claims (10)
1.一种数据备份方法,其特征在于,包括:
获取qcow文件的头部信息;
利用所述头部信息,确定磁盘的各簇分配状态;
利用所述各簇分配状态,跳过磁盘空洞拷贝所述磁盘中的已分配簇;
在将拷贝数据存入备份存储空间后,确定以完成所述qcow文件的全量备份。
2.根据权利要求1所述的数据备份方法,其特征在于,利用所述各簇分配状态,跳过磁盘空洞拷贝所述磁盘中的已分配簇,包括:
利用所述磁盘的空间大小和簇大小,确定分配标识字符串的长度;其中,在所述分配标识字符串中一个字符唯一对应所述磁盘中的一个簇,字符顺序对应所述磁盘中的簇顺序;
利用所述各簇分配状态,为所述分配标识字符串中的各个字符进行赋值;
在赋值完成后,参照所述分配标识字符串,仅对所述磁盘中所述已分配簇进行拷贝。
3.根据权利要求2所述的数据备份方法,其特征在于,在利用所述各簇分配状态,为所述分配标识字符串中的各个字符进行赋值之后,还包括:
判断所述qcow文件是否有外部快照;
如果是,则获取快照点对应的历史分配标识字符串;
参照所述历史分配标识字符串对所述分配标识字符串进行补充赋值。
4.根据权利要求3所述的数据备份方法,其特征在于,所述参照所述历史分配标识字符串对所述分配标识字符串进行补充赋值,包括:
对所述历史分配标识字符串和所述分配标识字符串进行或逻辑处理;其中,字符值为1对应已分配,字符值为0对应未分配。
5.根据权利要求4所述的数据备份方法,其特征在于,所述参照所述分配标识字符串,仅对所述磁盘中所述已分配簇进行拷贝,包括:
查找出所述分配标识字符串中字符值为1的位置;
利用所述位置确定已分配簇的偏移量;
按照所述偏移量,并以所述簇大小为缓冲大小,进行数据拷贝。
6.根据权利要求2所述的数据备份方法,其特征在于,利用所述各簇分配状态,为所述分配标识字符串中的各个字符进行赋值,包括:
对所述各簇分配状态按照簇顺序进行排序;
按照排序结果,依次对所述分配标识字符串中的各个字符进行赋值;
在所述分配标识字符串中的各个字符均对应赋值后,若存在未对应字符的簇分配状态,则进行舍弃。
7.根据权利要求1所述的数据备份方法,其特征在于,利用所述头部信息,确定磁盘的各簇分配状态,包括:
利用所述头部信息,获取簇偏移表;
遍历所述簇偏移表中各个元素,确定各个所述元素是否为空;
若所述元素为空,则确定对应簇未分配;
若所述元素不为空,则确定对应簇已分配。
8.一种数据备份装置,其特征在于,包括:
信息获取模块,用于获取qcow文件的头部信息;
状态确定模块,用于利用所述头部信息,确定磁盘的各簇分配状态;
拷贝模块,用于利用所述各簇分配状态,跳过磁盘空洞拷贝所述磁盘中的已分配簇;
备份模块,用于在将拷贝数据存入备份存储空间后,确定完成所述qcow文件的全量备份。
9.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述数据备份方法的步骤。
10.一种可读存储介质,其特征在于,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述数据备份方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210467136.8A CN114816856A (zh) | 2022-04-29 | 2022-04-29 | 一种数据备份方法、装置、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210467136.8A CN114816856A (zh) | 2022-04-29 | 2022-04-29 | 一种数据备份方法、装置、设备及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114816856A true CN114816856A (zh) | 2022-07-29 |
Family
ID=82509591
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210467136.8A Pending CN114816856A (zh) | 2022-04-29 | 2022-04-29 | 一种数据备份方法、装置、设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114816856A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115543688A (zh) * | 2022-09-29 | 2022-12-30 | 广州鼎甲计算机科技有限公司 | 备份方法、装置、代理端和存储介质 |
-
2022
- 2022-04-29 CN CN202210467136.8A patent/CN114816856A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115543688A (zh) * | 2022-09-29 | 2022-12-30 | 广州鼎甲计算机科技有限公司 | 备份方法、装置、代理端和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10977124B2 (en) | Distributed storage system, data storage method, and software program | |
EP0249091B1 (en) | Parity spreading to enhance storage access | |
US5559991A (en) | Incremental computer file backup using check words | |
US6636941B1 (en) | Enhanced stable disk storage | |
JP4206586B2 (ja) | データベース管理方法および装置並びにデータベース管理プログラムを記録した記憶媒体 | |
US10289336B1 (en) | Relocating data from an end of life storage drive based on storage drive loads in a data storage system using mapped RAID (redundant array of independent disks) technology | |
JP3612339B2 (ja) | データ処理方法および装置 | |
US6874062B1 (en) | System and method for utilizing a hierarchical bitmap structure for locating a set of contiguous ordered search items having a common attribute | |
JP2007133471A (ja) | ストレージ装置及びスナップショットのリストア方法 | |
CN110096218B (zh) | 用于为存储对象提供raid数据保护的方法、系统和介质 | |
KR20060103219A (ko) | 메모리 카드 | |
JP4983474B2 (ja) | 仮想ライブラリ装置、仮想ライブラリシステム、仮想ライブラリ装置の論理ボリューム複写方法。 | |
CN108268344B (zh) | 一种数据处理方法和装置 | |
CN111124262B (zh) | 独立盘冗余阵列(raid)的管理方法、设备和计算机可读介质 | |
Douglis et al. | Content-aware load balancing for distributed backup | |
CN110399333B (zh) | 删除快照的方法、设备和计算机程序产品 | |
CN114816856A (zh) | 一种数据备份方法、装置、设备及可读存储介质 | |
US10977130B2 (en) | Method, apparatus and computer program product for managing raid storage in data storage systems | |
EP0694831A2 (en) | Computer system having storage unit provided with data compression function andmethod of management of storage area thereof | |
US20030145180A1 (en) | Method and system for providing direct access recovery using seekable tape device | |
EP0351109A2 (en) | Reducing resources in a high reliability data storage subsystem | |
CN112988696B (zh) | 文件整理方法、装置及相关设备 | |
CN111026890A (zh) | 基于索引表的图片数据存储方法、系统、装置和存储介质 | |
JP6853506B2 (ja) | ストレージシステム、データソート方法及びプログラム | |
US7466443B2 (en) | Method of and device for and computer program for accessing data |
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 |