CN110941511B - 一种快照合并方法、装置、设备及存储介质 - Google Patents

一种快照合并方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN110941511B
CN110941511B CN201911149745.3A CN201911149745A CN110941511B CN 110941511 B CN110941511 B CN 110941511B CN 201911149745 A CN201911149745 A CN 201911149745A CN 110941511 B CN110941511 B CN 110941511B
Authority
CN
China
Prior art keywords
data
data file
file
snapshot
merged
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
Application number
CN201911149745.3A
Other languages
English (en)
Other versions
CN110941511A (zh
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.)
Sangfor Technologies Co Ltd
Original Assignee
Sangfor Technologies 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 Sangfor Technologies Co Ltd filed Critical Sangfor Technologies Co Ltd
Priority to CN201911149745.3A priority Critical patent/CN110941511B/zh
Publication of CN110941511A publication Critical patent/CN110941511A/zh
Application granted granted Critical
Publication of CN110941511B publication Critical patent/CN110941511B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • 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
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Library & Information Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种快照合并方法、装置、设备及存储介质,该方法的步骤包括:获取目标快照时刻;读取在目标快照时刻产生的第一数据文件以及在目标快照时刻之后产生的第二数据文件;对第一数据文件与第二数据文件执行合并操作并生成合并文件;在合并文件的生成过程中,若第二数据文件与第一数据文件在相同的数据偏移位置上的数据内容存在差异,保留第二数据文件在数据偏移位置的数据内容。本方法能够确保合并文件中数据内容的时效性以及可用性,进而相对确保了存储系统业务运行的稳定性。此外,本申请还提供一种快照合并装置、设备及存储介质,有益效果同上所述。

Description

一种快照合并方法、装置、设备及存储介质
技术领域
本申请涉及数据存储领域,特别是涉及一种快照合并方法、装置、设备及存储介质。
背景技术
为降低快照对于存储系统的性能影响,当前大部分分布式存储系统均采用写时重定向(ROW,Redirect-on-Write)快照原理。如图1是虚拟机磁盘创建快照示意图,ROW的实现原理是首先对分布式存储系统的原文件进行写操作,并在快照时刻新建快照文件,并将写操作重定向至新建的快照文件,进而在下一快照时刻再次新建快照文件,并将写操作重新定向至最新的快照文件,以此类推,最终确保每一个快照文件均保存有相应时间段内基于写操作写入的数据内容。
在实际应用中,快照文件在存储系统运行的特定时刻产生,随着存储系统的运行,快照文件的数量将不断增多,当前往往需要在存储系统的业务运行的同时不断对历史快照时刻前后相邻的快照文件进行合并操作。
由此可见,提供一种快照合并方法,以相对确保存储系统业务运行的稳定性,是本领域技术人员需要解决的问题。
发明内容
本申请的目的是提供一种快照合并方法、装置、设备及存储介质,以相对确保存储系统业务运行的稳定性。
为解决上述技术问题,本申请提供一种快照合并方法,包括:
获取目标快照时刻;
读取在目标快照时刻产生的第一数据文件以及在目标快照时刻之后产生的第二数据文件;
对第一数据文件与第二数据文件执行合并操作并生成合并文件;
在合并文件的生成过程中,若第二数据文件与第一数据文件在相同的数据偏移位置上的数据内容存在差异,保留第二数据文件在数据偏移位置的数据内容。
优选地,对第一数据文件与第二数据文件执行合并操作并生成合并文件,包括:
若第一数据文件以及第二数据文件均为只读状态的快照文件,获取第一数据文件的第一数据量以及第二数据文件的第二数据量;
判断第一数据量与第二数据量之间的大小关系;
如果第一数据量大于第二数据量,则将第二数据文件迁移至第一数据文件,并将第二数据文件删除,生成合并文件;
如果第二数据量大于第一数据量,则将第一数据文件迁移至第二数据文件,并将第一数据文件删除,生成合并文件。
优选地,对第一数据文件与第二数据文件执行合并操作并生成合并文件,包括:
若第一数据文件为只读状态的快照文件,且第二数据文件为当前处于可写入状态的快照文件,将第一数据文件迁移至第二数据文件,并将第一数据文件删除,生成合并文件。
优选地,对第一数据文件与第二数据文件执行合并操作并生成合并文件,包括:
若第一数据文件为只读状态的原文件,将第二数据文件迁移至第一数据文件,并将第二数据文件删除,生成合并文件。
优选地,在对第一数据文件与第二数据文件执行合并操作并生成合并文件之后,方法还包括:
根据合并操作后的数据文件更新快照元数据链。
优选地,在对第一数据文件与第二数据文件执行合并操作并生成合并文件之前,方法还包括:
获取任务属性,并判断任务属性是否为合并重试属性;
如果任务属性为合并重试属性,则获取第一数据文件与第二数据文件的已合并进度;
对第一数据文件与第二数据文件执行合并操作并生成合并文件,包括:
基于已合并进度继续对第一数据文件与第二数据文件执行合并操作并生成合并文件。
优选地,获取目标快照时刻,包括:
获取写时重定向快照机制下的目标快照时刻。
此外,本申请还提供一种快照合并装置,包括:
时刻获取模块,用于获取目标快照时刻;
文件读取模块,用于读取在目标快照时刻产生的第一数据文件以及在目标快照时刻之后产生的第二数据文件;
快照合并模块,用于对第一数据文件与第二数据文件执行合并操作并生成合并文件;在合并文件的生成过程中,若第二数据文件与第一数据文件在相同的数据偏移位置上的数据内容存在差异,保留第二数据文件在数据偏移位置的数据内容。
此外,本申请还提供一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行计算机程序时实现如上述的快照合并方法的步骤。
此外,本申请还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述的快照合并方法的步骤。
本申请所提供的快照合并方法,首先获取目标快照时刻,进而读取目标快照时刻产生的第一数据文件以及目标快照时刻之后产生的第二数据文件,进而对第一数据文件以及第二数据文件执行合并操作,并生成合并快照,在合并操作过程中,若第二数据文件与第一数据文件在相同数据偏移位置的数据内容存在差异,保留第二数据文件在该数据偏移位置的数据内容。由于第二数据文件相较于第一数据文件而言,包含了更新的数据内容,因此若第二数据文件与第一数据文件在相同的数据偏移位置上的数据内容存在差异,仅保留最新的数据内容,即第二数据文件在该数据偏移位置的数据内容,以此能够确保合并文件中数据内容的时效性以及可用性,进而相对确保了存储系统业务运行的稳定性。此外,本申请还提供一种快照合并装置、设备及存储介质,有益效果同上所述。
附图说明
为了更清楚地说明本申请实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为虚拟机磁盘创建快照的示意图。
图2为本申请实施例公开的一种快照合并方法的流程图;
图3为本申请实施例公开的一种具体的快照合并方法的流程图;
图4.a为本申请实施例提供的具体场景下的快照合并的示意图;
图4.b为本申请实施例提供的具体场景下的另一种快照合并的示意图;
图5为本申请实施例公开的一种具体的快照合并方法的流程图;
图6为本申请实施例提供的具体场景下的快照合并的示意图;
图7为本申请实施例公开的一种具体的快照合并方法的流程图;
图8为本申请实施例提供的具体场景下的快照合并的示意图;
图9为本申请实施例公开的一种具体的快照合并方法的流程图;
图10为本申请实施例公开的一种快照合并装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本申请保护范围。
在实际应用中,快照文件在存储系统运行的特定时刻产生,随着存储系统的运行,快照文件的数量将不断增多,当前往往需要在存储系统的业务运行的同时不断对历史快照时刻前后相邻的快照文件进行合并操作。
为此,本申请的核心是提供一种快照合并方法,以相对确保存储系统业务运行的稳定性。
请参见图2所示,本申请实施例公开了一种快照合并方法,包括:
步骤S10:获取目标快照时刻。
需要说明的是,根据图1所示的存储系统的虚拟机磁盘创建快照的示意图可以明确的是,在快照时刻下存储系统会产生相应的原文件或快照文件,在此统称为数据文件,并且不再对其进行写操作,因此对于快照的合并,本质上是在对快照时刻产生的数据文件进行释放的同时,确保存储系统的虚拟机磁盘中的数据完整性,进而本步骤中获取目标快照时刻的目的是在后续步骤中释放该目标快照时刻下产生的文件内容。获取目标快照时刻,可以具体是获取写时重定向快照机制下的目标快照时刻,以此基于写时重定向(Row)快照技术,在删除快照时迅速释放占用空间,降低了对于存储系统存储空间的占用。
步骤S11:读取在目标快照时刻产生的第一数据文件以及在目标快照时刻之后产生的第二数据文件。
在获取到目标快照时刻后,进一步读取目标快照时刻产生的第一数据文件,以及目标快照时刻之后产生的第二数据文件。第一数据文件即为需要在快照合并过程中被释放的数据文件,而第二数据文件是在第一数据文件产生之后,存储系统的虚拟机磁盘中新写入数据的文件,第二数据文件相比于第一数据文件而言,内容的时效性更高,因此可能存在第一数据文件与第二数据文件在相同数据存储位置中的数据内容不同的情况,在此情况说明,第一数据文件生成的过程中,对该数据存储位置完成了一次写入操作,而在第二数据文件生成的过程中,存储系统重新对该数据存储位置进行了不同内容的写入操作。
步骤S12:对第一数据文件与第二数据文件执行合并操作并生成合并文件;在合并文件的生成过程中,若第二数据文件与第一数据文件在相同的数据偏移位置上的数据内容存在差异,保留第二数据文件在数据偏移位置的数据内容。
在获取到第一数据文件以及第二数据文件之后,进一步对第一数据文件与第二数据文件进行合并操作,而在合并的过程中,若第一数据文件以及第二数据文件之间在相同数据偏移位置上的数据内容存在差异,以最新的数据内容为准,即保留第二数据文件在数据偏移位置的数据内容,进而将第一数据文件以及第二数据文件合并生成为合并文件。
假设在开始数据合并时,依据时间顺序先后而产生的数据文件1、2、3的0~4k数据偏移位置都写有数据,则查询数据文件视图表示只需要将数据文件3中0~4K的数据合并到数据文件1(因为数据文件3是最新数据文件,存有最新数据);假设数据文件1、2、3分别在4k~8k,8k~12k,12k~16k拥有各自的数据,则需要将数据文件2的8k~12k,数据文件3的12k~16k的数据合并到数据文件1,将数据内容从对应数据文件读出并写入到目的数据文件对应偏移位置。
本申请所提供的快照合并方法,首先获取目标快照时刻,进而读取目标快照时刻产生的第一数据文件以及目标快照时刻之后产生的第二数据文件,进而对第一数据文件以及第二数据文件执行合并操作,并生成合并快照,在合并操作过程中,若第二数据文件与第一数据文件在相同数据偏移位置的数据内容存在差异,保留第二数据文件在该数据偏移位置的数据内容。由于第二数据文件相较于第一数据文件而言,包含了更新的数据内容,因此若第二数据文件与第一数据文件在相同的数据偏移位置上的数据内容存在差异,仅保留最新的数据内容,即第二数据文件在该数据偏移位置的数据内容,以此能够确保合并文件中数据内容的时效性以及可用性,进而相对确保了存储系统业务运行的稳定性。
在上述实施例的基础上,作为一种优选的实施方式,在对第一数据文件与第二数据文件执行合并操作并生成合并文件之后,方法还包括:
根据合并操作后的数据文件更新快照元数据链。
需要说明的是,本实施方式是在进行第一数据文件与第二数据文件之间的合并操作之后,进一步根据合并操作后的数据文件更新快照元数据链,目的是确保产生合并文件之后,存储系统能够正常读取到合并文件的数据内容,确保了存储系统运行时的稳定性。
参见图3所示,本申请实施例公开了一种快照合并方法,包括:
步骤S20:获取目标快照时刻。
步骤S21:读取在目标快照时刻产生的第一数据文件以及在目标快照时刻之后产生的第二数据文件。
步骤S22:若第一数据文件以及第二数据文件均为只读状态的快照文件,获取第一数据文件的第一数据量以及第二数据文件的第二数据量。
步骤S23:判断第一数据量与第二数据量之间的大小关系。
步骤S24:如果第一数据量大于第二数据量,则将第二数据文件迁移至第一数据文件,并将第二数据文件删除,生成合并文件。
步骤S25:如果第二数据量大于第一数据量,则将第一数据文件迁移至第二数据文件,并将第一数据文件删除,生成合并文件。
在合并文件的生成过程中,若第二数据文件与第一数据文件在相同的数据偏移位置上的数据内容存在差异,保留第二数据文件在数据偏移位置的数据内容。
需要说明的是,本实施例限定的是目标快照时刻产生的第一数据文件以及在所述目标快照时刻之后产生的第二数据文件均为只读状态的快照文件的情况,在此情况下,由于快照文件之间的合并本质上是将一个快照文件中的数据内容传递至另一个快照文件中,传入数据的快照文件成为最终的合并文件,考虑到数据的传递需要占用存储系统中的资源,对存储系统中正常业务的运行性能可能会造成影响,因此本实施例第一数据文件与第二数据文件之间进行合并操作的方向由第一数据文件与第二数据文件各自的数据量决定,因此若第一数据文件以及第二数据文件均为只读状态的快照文件,进一步获取第一数据文件的第一数据量以及第二数据文件的第二数据量,并判断第一数据量与第二数据量之间的大小关系,并将数据量较小的数据文件迁移至数据量较大的数据文件中,进而释放数据量较小的数据文件所占用的空间资源,以此相对减少对于存储系统的空间资源以及运算资源两方面的占用,相对确保存储系统的性能稳定。
下面通过一个具体的场景实施例对上述实施例进行说明,图4.a以及图4.b分别为本申请实施例提供的具体场景下的快照合并的示意图。
图4.a以及图4.b所示的均为目标快照时刻为snap2_t,即对只读状态的快照文件snap1和snap2文件进行合并,即可以向snap1合也可以向snap2合,主要由向谁合并的数据量小决定。例如,snap1的数据量为1GB,snap2的数据量为1B,则显然将snap2的数据向snap1进行合并要快些,因此合并过程中的数据流动方向如图4.a所示;同理,当snap1的数据量为1B,snap2的数据量为1GB,则显然将snap1的数据向snap2进行合并要快些,因此合并过程中的数据流动方向如图4.b所示。
参见图5所示,本申请实施例公开了一种快照合并方法,包括:
步骤S30:获取目标快照时刻。
步骤S31:读取在目标快照时刻产生的第一数据文件以及在目标快照时刻之后产生的第二数据文件。
步骤S32:若第一数据文件为只读状态的快照文件,且第二数据文件为当前处于可写入状态的快照文件,将第一数据文件迁移至第二数据文件,并将第一数据文件删除,生成合并文件。
在合并文件的生成过程中,若第二数据文件与第一数据文件在相同的数据偏移位置上的数据内容存在差异,保留第二数据文件在数据偏移位置的数据内容。
需要说明的是,本实施例限定的是目标快照时刻产生的第一数据文件为只读状态的快照文件,而目标快照时刻之后产生的第二数据文件为处于可写入状态的快照文件,可写入状态的快照文件指的是当前存储系统中的写入操作所作用于的目标文件,在本实施例限定的情况下,考虑到可能不断会有数据写入第二数据文件,并且由于第二数据文件中数据内容的时效性较高而导致存储系统业务的正常工作往往需要频繁获取第二数据文件的数据内容,在此基础上,应首先确保存储系统业务的正常进行,因此本实施方式在不改变存储系统的写入对第二数据文件进行读写操作的基础上,将第一数据文件迁移至第二数据文件,以此确保存储系统的业务对第二数据文件的正常读写,相对确保了存储系统的性能稳定。
下面通过一个具体的场景实施例对上述实施例进行说明,图6为本申请实施例提供的具体场景下的快照合并的示意图。
图6所示的目标快照时刻为snap3_t,当删除snap3_t时刻时,需要将处于可写入状态的快照文件cur与snap2快照文件合并。如果要将cur文件向快照合并合并,则需要切换业务的写请求发向快照文件,切换业务“写源”会卡IO,到之业务写性能断崖式下降,为减少业务影响,采用snap2快照文件向cur合并的策略。
参见图7所示,本申请实施例公开了一种快照合并方法,包括:
步骤S40:获取目标快照时刻。
步骤S41:读取在目标快照时刻产生的第一数据文件以及在目标快照时刻之后产生的第二数据文件。
步骤S42:若第一数据文件为只读状态的原文件,将第二数据文件迁移至第一数据文件,并将第二数据文件删除,生成合并文件。
在合并文件的生成过程中,若第二数据文件与第一数据文件在相同的数据偏移位置上的数据内容存在差异,保留第二数据文件在数据偏移位置的数据内容。
需要说明的是,本实施例限定的是目标快照时刻产生的第一数据文件为只读状态的原文件的情况,而对于第二数据文件的类型没有做特殊限定,因此第二数据文件的类型可以为只读状态的快照文件或可写入状态的快照文件,在此情况下,由于考虑到存储系统中的原文件与快照文件之间的文件格式不同,而存储系统往往对于原文件的格式读写效率更高,因此将第二数据文件迁移至第一数据文件,并将第二数据文件删除,生成合并文件,以此确保合并文件的格式与原文件的格式相同,进而确保了存储系统读取合并文件名过程的整体效率。
下面通过一个具体的场景实施例对上述实施例进行说明,图8为本申请实施例提供的具体场景下的快照合并的示意图。
图8所示的为第一数据文件为只读状态的原文件base,且第二数据文件为可写入状态的快照文件cur的场景,目标快照时刻为snap1_t,当删除snap1_t时刻时,将cur文件向base文件合并。
参见图9所示,本申请实施例公开了一种快照合并方法,包括:
步骤S50:获取目标快照时刻。
步骤S51:读取在目标快照时刻产生的第一数据文件以及在目标快照时刻之后产生的第二数据文件。
步骤S52:获取任务属性,并判断任务属性是否为合并重试属性。
步骤S53:如果任务属性为合并重试属性,则获取第一数据文件与第二数据文件的已合并进度。
步骤S54:基于已合并进度继续对第一数据文件与第二数据文件执行合并操作并生成合并文件。
在合并文件的生成过程中,若第二数据文件与第一数据文件在相同的数据偏移位置上的数据内容存在差异,保留第二数据文件在数据偏移位置的数据内容。
需要说明的是,获取任务属性的目的是确定该合并任务是否为处于重试状态的合并任务,如果是重试的合并任务则从扩展属性中获取对应已合并的进度(即已合并文件大小)。合并进度的记录可以方便合并任务失败重试后进行“断点续传”,以达到尽快合并完成释放存储空间的目的。
请参见图10所示,本申请实施例公开了一种快照合并装置,包括:
时刻获取模块10,用于获取目标快照时刻;
文件读取模块11,用于读取在目标快照时刻产生的第一数据文件以及在目标快照时刻之后产生的第二数据文件;
快照合并模块12,用于对第一数据文件与第二数据文件执行合并操作并生成合并文件;在合并文件的生成过程中,若第二数据文件与第一数据文件在相同的数据偏移位置上的数据内容存在差异,保留第二数据文件在数据偏移位置的数据内容。
本申请所提供的快照合并装置,首先获取目标快照时刻,进而读取目标快照时刻产生的第一数据文件以及目标快照时刻之后产生的第二数据文件,进而对第一数据文件以及第二数据文件执行合并操作,并生成合并快照,在合并操作过程中,若第二数据文件与第一数据文件在相同数据偏移位置的数据内容存在差异,保留第二数据文件在该数据偏移位置的数据内容。由于第二数据文件相较于第一数据文件而言,包含了更新的数据内容,因此若第二数据文件与第一数据文件在相同的数据偏移位置上的数据内容存在差异,仅保留最新的数据内容,即第二数据文件在该数据偏移位置的数据内容,以此能够确保合并文件中数据内容的时效性以及可用性,进而相对确保了存储系统业务运行的稳定性。
在前述实施例的基础上,本申请实施例对快照合并装置进行进一步的说明和优化。具体的:
在一种具体实施方式中,快照合并模块12包括:
数据量获取模块,用于若第一数据文件以及第二数据文件均为只读状态的快照文件,获取第一数据文件的第一数据量以及第二数据文件的第二数据量;
关系判断模块,用于判断第一数据量与第二数据量之间的大小关系;
第一生成模块,用于如果第一数据量大于第二数据量,则将第二数据文件迁移至第一数据文件,并将第二数据文件删除,生成合并文件;
第二生成模块,用于如果第二数据量大于第一数据量,则将第一数据文件迁移至第二数据文件,并将第一数据文件删除,生成合并文件。
在一种具体实施方式中,快照合并模块12包括:
第三生成模块,用于若第一数据文件为只读状态的快照文件,且第二数据文件为当前处于可写入状态的快照文件,将第一数据文件迁移至第二数据文件,并将第一数据文件删除,生成合并文件。
在一种具体实施方式中,快照合并模块12包括:
第四生成模块,用于若第一数据文件为只读状态的原文件,将第二数据文件迁移至第一数据文件,并将第二数据文件删除,生成合并文件。
在一种具体实施方式中,所述装置还包括:
元数据更新模块,用于根据所述合并操作后的数据文件更新快照元数据链。
在一种具体实施方式中,所述装置还包括:
属性判断模块,用于获取任务属性,并判断所述任务属性是否为合并重试属性;
进度获取模块,用于如果所述任务属性为合并重试属性,则获取所述第一数据文件与所述第二数据文件的已合并进度;
快照合并模块12包括:
断点合并模块,用于基于所述已合并进度继续对所述第一数据文件与所述第二数据文件执行所述合并操作并生成所述合并文件。
在一种具体实施方式中,时刻获取模块10,包括:
重定向时刻获取模块,用于获取写时重定向快照机制下的目标快照时刻。
此外,本实施例还公开了一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行计算机程序,以实现以下步骤:
获取目标快照时刻;读取在目标快照时刻产生的第一数据文件以及在目标快照时刻之后产生的第二数据文件;对第一数据文件与第二数据文件执行合并操作并生成合并文件;在合并文件的生成过程中,若第二数据文件与第一数据文件在相同的数据偏移位置上的数据内容存在差异,保留第二数据文件在数据偏移位置的数据内容。
本申请所提供的电子设备,首先获取目标快照时刻,进而读取目标快照时刻产生的第一数据文件以及目标快照时刻之后产生的第二数据文件,进而对第一数据文件以及第二数据文件执行合并操作,并生成合并快照,在合并操作过程中,若第二数据文件与第一数据文件在相同数据偏移位置的数据内容存在差异,保留第二数据文件在该数据偏移位置的数据内容。由于第二数据文件相较于第一数据文件而言,包含了更新的数据内容,因此若第二数据文件与第一数据文件在相同的数据偏移位置上的数据内容存在差异,仅保留最新的数据内容,即第二数据文件在该数据偏移位置的数据内容,以此能够确保合并文件中数据内容的时效性以及可用性,进而相对确保了存储系统业务运行的稳定性。
在前述实施例的基础上,本申请实施例对电子设备进行进一步的说明和优化。具体的:
本实施例中,处理器执行存储器中保存的计算机子程序时,可以具体实现以下步骤:若第一数据文件以及第二数据文件均为只读状态的快照文件,获取第一数据文件的第一数据量以及第二数据文件的第二数据量;判断第一数据量与第二数据量之间的大小关系;如果第一数据量大于第二数据量,则将第二数据文件迁移至第一数据文件,并将第二数据文件删除,生成合并文件;如果第二数据量大于第一数据量,则将第一数据文件迁移至第二数据文件,并将第一数据文件删除,生成合并文件。
本实施例中,处理器执行存储器中保存的计算机子程序时,可以具体实现以下步骤:若第一数据文件为只读状态的快照文件,且第二数据文件为当前处于可写入状态的快照文件,将第一数据文件迁移至第二数据文件,并将第一数据文件删除,生成合并文件。
本实施例中,处理器执行存储器中保存的计算机子程序时,可以具体实现以下步骤:若第一数据文件为只读状态的原文件,将第二数据文件迁移至第一数据文件,并将第二数据文件删除,生成合并文件。
本实施例中,处理器执行存储器中保存的计算机子程序时,可以具体实现以下步骤:根据合并操作后的数据文件更新快照元数据链。
本实施例中,处理器执行存储器中保存的计算机子程序时,可以具体实现以下步骤:获取任务属性,并判断任务属性是否为合并重试属性;如果任务属性为合并重试属性,则获取第一数据文件与第二数据文件的已合并进度;基于已合并进度继续对第一数据文件与第二数据文件执行合并操作并生成合并文件。
本实施例中,处理器执行存储器中保存的计算机子程序时,可以具体实现以下步骤:获取写时重定向快照机制下的目标快照时刻。
进一步的,本申请还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述的快照合并方法的步骤。关于该方法的具体步骤可以参考前述实施例公开的快照合并方法。关于该方法的具体步骤可以参考前述实施例中公开的相应内容,在此不再进行赘述。
本申请所提供的计算机可读存储介质,首先获取目标快照时刻,进而读取目标快照时刻产生的第一数据文件以及目标快照时刻之后产生的第二数据文件,进而对第一数据文件以及第二数据文件执行合并操作,并生成合并快照,在合并操作过程中,若第二数据文件与第一数据文件在相同数据偏移位置的数据内容存在差异,保留第二数据文件在该数据偏移位置的数据内容。由于第二数据文件相较于第一数据文件而言,包含了更新的数据内容,因此若第二数据文件与第一数据文件在相同的数据偏移位置上的数据内容存在差异,仅保留最新的数据内容,即第二数据文件在该数据偏移位置的数据内容,以此能够确保合并文件中数据内容的时效性以及可用性,进而相对确保了存储系统业务运行的稳定性。
以上对本申请所提供的一种快照合并方法、装置、设备及存储介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

Claims (7)

1.一种快照合并方法,其特征在于,包括:
获取目标快照时刻;
读取在所述目标快照时刻产生的第一数据文件以及在所述目标快照时刻之后产生的第二数据文件;
对所述第一数据文件与所述第二数据文件执行合并操作并生成合并文件;其中,合并操作为将一个数据文件中的数据传入至另一个数据文件中;
在所述合并文件的生成过程中,若所述第二数据文件与所述第一数据文件在相同的数据偏移位置上的数据内容存在差异,保留所述第二数据文件在所述数据偏移位置的数据内容;
所述对所述第一数据文件与所述第二数据文件执行合并操作并生成合并文件,包括:
若所述第一数据文件以及所述第二数据文件均为只读状态的快照文件,获取所述第一数据文件的第一数据量以及所述第二数据文件的第二数据量;
判断所述第一数据量与所述第二数据量之间的大小关系;
如果所述第一数据量大于所述第二数据量,则将所述第二数据文件迁移至所述第一数据文件,并将所述第二数据文件删除,生成所述合并文件;
如果所述第二数据量大于所述第一数据量,则将所述第一数据文件迁移至所述第二数据文件,并将所述第一数据文件删除,生成所述合并文件;
若所述第一数据文件为只读状态的快照文件,且所述第二数据文件为当前处于可写入状态的快照文件,将所述第一数据文件迁移至所述第二数据文件,并将所述第一数据文件删除,生成所述合并文件;
若所述第一数据文件为只读状态的原文件,将所述第二数据文件迁移至所述第一数据文件,并将所述第二数据文件删除,生成所述合并文件。
2.根据权利要求1所述的快照合并方法,其特征在于,在所述对所述第一数据文件与所述第二数据文件执行合并操作并生成合并文件之后,所述方法还包括:
根据所述合并操作后的数据文件更新快照元数据链。
3.根据权利要求1所述的快照合并方法,其特征在于,在所述对所述第一数据文件与所述第二数据文件执行合并操作并生成合并文件之前,所述方法还包括:
获取任务属性,并判断所述任务属性是否为合并重试属性;
如果所述任务属性为合并重试属性,则获取所述第一数据文件与所述第二数据文件的已合并进度;
所述对所述第一数据文件与所述第二数据文件执行合并操作并生成合并文件,包括:
基于所述已合并进度继续对所述第一数据文件与所述第二数据文件执行所述合并操作并生成所述合并文件。
4.根据权利要求1至3任意一项所述的快照合并方法,其特征在于,所述获取目标快照时刻,包括:
获取写时重定向快照机制下的目标快照时刻。
5.一种快照合并装置,其特征在于,包括:
时刻获取模块,用于获取目标快照时刻;
文件读取模块,用于读取在所述目标快照时刻产生的第一数据文件以及在所述目标快照时刻之后产生的第二数据文件;
快照合并模块,用于对所述第一数据文件与所述第二数据文件执行合并操作并生成合并文件;在所述合并文件的生成过程中,若所述第二数据文件与所述第一数据文件在相同的数据偏移位置上的数据内容存在差异,保留所述第二数据文件在所述数据偏移位置的数据内容;其中,合并操作为将一个数据文件中的数据传入至另一个数据文件中;
所述快照合并模块包括:
数据量获取模块,用于若第一数据文件以及第二数据文件均为只读状态的快照文件,获取第一数据文件的第一数据量以及第二数据文件的第二数据量;
关系判断模块,用于判断第一数据量与第二数据量之间的大小关系;
第一生成模块,用于如果第一数据量大于第二数据量,则将第二数据文件迁移至第一数据文件,并将第二数据文件删除,生成合并文件;
第二生成模块,用于如果第二数据量大于第一数据量,则将第一数据文件迁移至第二数据文件,并将第一数据文件删除,生成合并文件;
第三生成模块,用于若第一数据文件为只读状态的快照文件,且第二数据文件为当前处于可写入状态的快照文件,将第一数据文件迁移至第二数据文件,并将第一数据文件删除,生成合并文件;
第四生成模块,用于若第一数据文件为只读状态的原文件,将第二数据文件迁移至第一数据文件,并将第二数据文件删除,生成合并文件。
6.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至4任一项所述的快照合并方法的步骤。
7.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至4任一项所述的快照合并方法的步骤。
CN201911149745.3A 2019-11-21 2019-11-21 一种快照合并方法、装置、设备及存储介质 Active CN110941511B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911149745.3A CN110941511B (zh) 2019-11-21 2019-11-21 一种快照合并方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911149745.3A CN110941511B (zh) 2019-11-21 2019-11-21 一种快照合并方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN110941511A CN110941511A (zh) 2020-03-31
CN110941511B true CN110941511B (zh) 2023-03-21

Family

ID=69907259

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911149745.3A Active CN110941511B (zh) 2019-11-21 2019-11-21 一种快照合并方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN110941511B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108351821A (zh) * 2016-02-01 2018-07-31 华为技术有限公司 数据恢复方法及存储设备
CN109189756A (zh) * 2018-06-29 2019-01-11 平安科技(深圳)有限公司 电子装置、数据迁移的方法及存储介质

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103699459A (zh) * 2013-12-31 2014-04-02 汉柏科技有限公司 基于qcow2快照的虚拟机数据增量备份方法及系统
CN103761159B (zh) * 2014-01-23 2017-05-24 天津中科蓝鲸信息技术有限公司 增量快照处理的方法及系统
CN103942011B (zh) * 2014-03-04 2017-06-09 中国科学院计算技术研究所 一种差量快照系统及其使用方法
CN105260264A (zh) * 2015-09-23 2016-01-20 浪潮(北京)电子信息产业有限公司 一种快照实现方法及快照系统
US11119978B2 (en) * 2016-06-08 2021-09-14 Red Hat Israel, Ltd. Snapshot version control
CN107688508A (zh) * 2016-08-03 2018-02-13 深圳市深信服电子科技有限公司 一种镜像文件空间优化方法以及系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108351821A (zh) * 2016-02-01 2018-07-31 华为技术有限公司 数据恢复方法及存储设备
CN109189756A (zh) * 2018-06-29 2019-01-11 平安科技(深圳)有限公司 电子装置、数据迁移的方法及存储介质

Also Published As

Publication number Publication date
CN110941511A (zh) 2020-03-31

Similar Documents

Publication Publication Date Title
US11550675B2 (en) Remote data replication method and system
CN114341792B (zh) 存储集群之间的数据分区切换
JP6039655B2 (ja) 分散記憶環境における同期複製
US10642694B2 (en) Monitoring containers in a distributed computing system
US8918362B2 (en) Replication processes in a distributed storage environment
US9311002B1 (en) Systems, methods, and computer readable media for compressing data at a virtually provisioned storage entity
US9996421B2 (en) Data storage method, data storage apparatus, and storage device
CN108460045B (zh) 一种快照的处理方法及分布式块存储系统
CN106569738B (zh) 一种删除级联快照的方法及装置
CN113220729B (zh) 数据存储方法、装置、电子设备及计算机可读存储介质
CN102938784A (zh) 应用于分布式存储系统中的数据存储方法和系统
US10620871B1 (en) Storage scheme for a distributed storage system
JP2006268139A (ja) データ複製装置、方法及びプログラム並びに記憶システム
CN103037004A (zh) 云存储系统操作的实现方法和装置
CN109582686B (zh) 分布式元数据管理一致性保证方法、装置、系统及应用
US20240028568A1 (en) Data migration method and apparatus, device, distributed system and storage medium
CN113467719B (zh) 数据写入方法及装置
US11442663B2 (en) Managing configuration data
US11210024B2 (en) Optimizing read-modify-write operations to a storage device by writing a copy of the write data to a shadow block
CN110941511B (zh) 一种快照合并方法、装置、设备及存储介质
CN110119389B (zh) 虚拟机块设备的写操作方法、快照创建方法及装置
CN115391337A (zh) 数据库分区的方法、装置、存储介质及电子设备
KR102456017B1 (ko) 응용 프로그램간 파일 공유 장치 및 방법
CN111435302A (zh) 一种应用程序的处理方法及装置
CN112667161B (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