CN114942863A - 一种级联快照处理方法、装置、设备及存储介质 - Google Patents

一种级联快照处理方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN114942863A
CN114942863A CN202210465677.7A CN202210465677A CN114942863A CN 114942863 A CN114942863 A CN 114942863A CN 202210465677 A CN202210465677 A CN 202210465677A CN 114942863 A CN114942863 A CN 114942863A
Authority
CN
China
Prior art keywords
snapshot
data block
target
data
upstream
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
Application number
CN202210465677.7A
Other languages
English (en)
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.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent Technology 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 Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN202210465677.7A priority Critical patent/CN114942863A/zh
Publication of CN114942863A publication Critical patent/CN114942863A/zh
Priority to PCT/CN2022/121130 priority patent/WO2023206950A1/zh
Pending legal-status Critical Current

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/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • 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/1456Hardware arrangements for backup
    • 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/1458Management of the backup or restore process

Abstract

本发明公开了一种级联快照处理方法、装置、设备及存储介质;在本方案中,确定源卷及目标卷之后,需要设置级联快照中每个快照的数据块尺寸,根据源卷的总尺寸及每个快照的数据块尺寸创建每个快照的位图;根据每个快照的数据块尺寸及位图对源卷或者目标卷执行处理操作。可见,本方案中的各数据块尺寸不完全相同,因此本方案可根据实际使用情况对每个快照设置不同的数据块尺寸,以降低对主机读写性能影响的同时升级联快照的后台拷贝速度,如:针对有主机读写的快照,可设置小数据块尺寸,以减少对主机读写的影响,提升存储系统性能;而针对有后台拷贝的快照,则设置大数据块尺寸,以提高后台拷贝速度。

Description

一种级联快照处理方法、装置、设备及存储介质
技术领域
本发明涉及存储技术领域,更具体地说,涉及一种级联快照处理方法、装置、设备及存储介质。
背景技术
目前,快照技术将卷划分成同等大小的数据块(grain),对某个卷生成快照之后,会进行源卷到目标卷的数据同步,分为写时拷贝(Copy On Write,COW)和后台拷贝两种拷贝方式。数据块的大小(grainsize)对写时拷贝和后台拷贝来说,有着不同的影响。越大的grainsize意味着快照每做一次数据同步需要从源卷拷贝到目标卷的数据量越大。写时拷贝被触发的场景是主机对源卷有IO(Input Output,输入输出),不管IO对应的数据是多少,都需要将整个数据块进行COW,越大的grainsize意味着需要拷贝更多的数据。假设grainsize是256KB,主机下发的IO是4KB,在做COW时,则需要将256KB的数据从源卷拷贝到目标卷;在后台拷贝场景中,存储系统同一时间内能够支持的后台拷贝任务是有限的,因此越大的grainsize意味着在同一个后台拷贝任务中拷贝更多的数据,就意味着能支持更大的后台拷贝速度。
在实际应用场景中,源卷生成快照后,可对快照的目标卷继续生成快照。级联快照在存储系统中是以链表的形式存在的;大部分场景中,源卷会持续有主机读写,因此源卷的快照通常不会进行后台拷贝,且需要有较小的grainsize来保证源卷的性能;而快照的快照一般会设置后台拷贝速度,从而更快得到一份独立的数据拷贝,且目前的数据同步机制要求级联快照中所有快照的位图bit个数一致,且每个bit对应相同grainsize,这必然会影响系统性能,如:若grainsize设置过小,则会影响后台拷贝速度,若grainsize设置过大,则会影响主机读写性能。
因此,如何降低对主机读写性能的影响、保障存储系统性能的同时,提升级联快照的后台拷贝速度,是本领域技术人员需要解决的问题。
发明内容
本发明的目的在于提供一种级联快照处理方法、装置、设备及存储介质,以实现在低对主机读写性能的影响、保障存储系统性能的同时,提升级联快照的后台拷贝速度。
为实现上述目的,本发明提供一种级联快照处理方法,包括:
确定源卷,以及所述源卷进行级联快照时创建的各个目标卷;
设置级联快照中每个快照的数据块尺寸,各数据块尺寸不完全相同;
根据所述源卷的总尺寸及每个快照的数据块尺寸,创建每个快照的位图;
根据每个快照的数据块尺寸及位图对源卷或者目标卷执行处理操作。
其中,所述根据每个快照的数据块尺寸及位图对源卷或者目标卷执行处理操作,包括:
接收对目标数据块的后台拷贝指令;所述目标数据块为位于源卷或者目标卷上的数据块;
将与所述目标数据块相邻的上游快照作为目标快照,并判断所述目标快照的位图中与所述目标数据块的位置对应的位值是否为一;
若是,则判定完成拷贝;
若否,则根据所述目标快照的各上游快照查找与所述目标数据块对应的依赖数据块,并将依赖数据块中存储的数据拷贝至所述目标数据块。
其中,所述根据每个快照的数据块尺寸及位图对源卷或者目标卷执行处理操作,包括:
接收主机发送的针对目标数据块的数据读取指令;所述目标数据块为位于源卷或者目标卷上的数据块;
将与所述目标数据块相邻的上游快照作为目标快照,并判断所述目标快照的位图中与所述目标数据块的位置对应的位值是否为一;
若是,则直接从所述目标数据块读取数据并发送给所述主机;
若否,则根据所述目标快照的各上游快照查找与所述目标数据块对应的依赖数据块,并将依赖数据块中存储的数据发送给所述主机。
其中,根据所述目标快照的各上游快照查找与所述目标数据块对应的依赖数据块,包括:
判断所述目标快照是否具有上游快照;
若没有上游快照,则将所述源卷中与所述目标数据块相同位置的数据块作为依赖数据块;
若有上游快照,则根据各上游快照的位图及数据块尺寸,确定所述目标数据块在各上游快照的位图中的相应位置的位值,及位值个数最大值;
对所述目标数据块在各上游快照的位图中的相应位置的位值进行等值扩充,并将所述目标数据块分为若干个数据小块;其中,等值扩充后的位值的个数与所述数据小块的个数均为所述位值个数最大值;
根据快照链表依次从各上游快照的位图中,查找与每个数据小块相同位置的位值为一的依赖数据小块。
其中,所述根据每个快照的数据块尺寸及位图对源卷或者目标卷执行处理操作,包括:
接收主机发送的针对目标数据块的数据写指令;
判断所述目标数据块是否有上游快照;
若没有上游快照,则判断所述目标数据块是否有下游快照;
若有上游快照,则根据相邻上游快照确定与所述目标数据块对应的第一目标位置,并判断相邻上游快照的位图中所述第一目标位置的位值是否为一;
若位值为一,则继续执行所述判断所述目标数据块是否有下游快照的步骤;若位值不为一,则根据各上游快照查找与所述第一目标位置对应的依赖数据块,并将依赖数据块中存储的数据拷贝至所述第一目标位置,并继续执行所述判断所述目标数据块是否有下游快照的步骤;
若所述目标数据块有下游快照,则根据相邻下游快照确定与所述目标数据块对应的第二目标位置;判断相邻下游快照的位图中所述第二目标位置的位值是否为一;若位值为一,则将所述数据写指令中携带的主机数据写入所述目标数据块;若位值不为一,则将所述目标数据块中的数据拷贝至相邻的下游目标卷的第二目标位置,并继续执行将所述数据写指令中携带的主机数据写入所述目标数据块的步骤;
若所述目标数据块没有下游快照,将所述数据写指令中携带的主机数据写入所述目标数据块。
其中,所述根据各上游快照查找与所述第一目标位置对应的依赖数据块,包括:
根据各上游快照的位图及数据块尺寸,确定所述第一目标位置在各上游快照的位图中的相应位置的位值,及位值个数最大值;
对所述第一目标位置在各上游快照的位图中的相应位置的位值进行等值扩充,并将所述目标数据块分为若干个数据小块;其中,等值扩充后的位值的个数与所述数据小块的个数均为所述位值个数最大值;
根据快照链表依次从各上游快照的位图中,查找与每个数据小块相同位置的位值为一的依赖数据小块。
其中,所述设置级联快照中每个快照的数据块尺寸,包括:
确定执行主机处理操作的卷所在的第一快照,以及执行后台拷贝处理操作的卷所在的第二快照;
设置所述第一快照的数据块尺寸小于所述第二快照的数据块尺寸;其中,在任意两个数据块尺寸中,小数值的数据块尺寸能整除大数值的数据块尺寸。
为实现上述目的,本发明进一步提供一种级联快照处理装置,包括:
确定模块,用于确定源卷,以及所述源卷进行级联快照时创建的各个目标卷;
设置模块,用于设置级联快照中每个快照的数据块尺寸,各数据块尺寸不完全相同;
创建模块,用于根据所述源卷的总尺寸及每个快照的数据块尺寸,创建每个快照的位图;
处理模块,用于根据每个快照的数据块尺寸及位图对源卷或者目标卷执行处理操作。
为实现上述目的,本发明进一步提供一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现上述级联快照处理方法的步骤。
为实现上述目的,本发明进一步提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述级联快照处理方法的步骤。
通过以上方案可知,本发明实施例提供的一种级联快照处理方法、装置、设备及存储介质;在本方案中,确定源卷以及源卷进行级联快照时创建的各个目标卷之后,需要设置级联快照中每个快照的数据块尺寸,根据源卷的总尺寸及每个快照的数据块尺寸创建每个快照的位图;根据每个快照的数据块尺寸及位图对源卷或者目标卷执行处理操作。可见,本方案中,各数据块尺寸不完全相同,因此本方案可根据实际使用情况对每个快照设置不同的数据块尺寸,以降低对主机读写性能影响的同时升级联快照的后台拷贝速度,如:针对有主机读写的快照,可设置小数据块尺寸,以减少对主机读写的影响,提升存储系统性能;而针对有后台拷贝的快照,则设置大数据块尺寸,以提高后台拷贝速度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例公开的一种级联快照处理方法流程示意图;
图2为本发明实施例公开的一种拷贝流程示意图;
图3为本发明实施例公开的另一种拷贝流程示意图;
图4为本发明实施例公开的一数据操作流程示意图;
图5为本发明实施例公开的另一数据操作流程示意图;
图6为本发明实施例公开的另一数据操作流程示意图;
图7为本发明实施例公开的另一数据操作流程示意图;
图8为本发明实施例公开的一种级联快照处理装置结构示意图;
图9为本发明实施例公开的一种电子设备结构示意图。
具体实施方式
快照是指定数据集合在某一特定时间点的复制,它是一个完全可用的拷贝。快照技术可以实现对数据的保护,在灾备领域得到广泛应用。写时拷贝是指源卷的某个数据块的数据第一次被修改的时候,将源卷的这个数据块的数据拷贝到目标卷之后,再对源卷中的数据块进行修改;后台拷贝是指根据指定的速率将源卷的数据块按照在卷中的位置从小到大的顺序依次拷贝到目标卷中。不管是写时拷贝还是后台拷贝,都需要一个位图,每一位对应卷的一个数据块,来标记每个数据块是否已经被拷贝过(拷贝过表示目标卷的数据可以独立使用,未拷贝过表示目标卷的数据依赖于源卷),从而避免同一数据块的重复拷贝。源卷生成快照后,可对快照的目标卷继续生成快照。级联快照在存储系统中是以链表的形式存在的。
比如,卷A生成快照1得到目标卷B,再对卷B生成快照2得到目标卷C,然后卷C再生成快照3得到目标卷D,则卷上数据的依赖关系为A←B←C←D,即卷D依赖卷C、卷C依赖卷B、卷B依赖卷A,快照链表为快照1←快照2←快照3。在进行快照3卷C到卷D的数据同步时,需要先判断当前grain是否需要拷贝,如果需要拷贝的话从哪个卷上拷贝数据。具体地,先判断快照3的位图对应bit是否为1,如果为1则表明不需要拷贝,数据现在就在卷D上;否则认为需要拷贝,继续向上游追溯,直到找到某个位图对应bit为1的快照,就从该快照的目标卷上拷贝数据到卷D;如果一直上游追溯,所有快照的位图bit都为0,就从源卷A上拷贝数据到卷D。这种数据同步机制就要求级联快照中所有快照的位图bit个数一致,且每个bit对应相同的grain大小(grainsize),这必然会影响系统性能。
因此在本发明实施例中,针对当前技术中级联快照中所有快照的grainsize必须相同的问题,提供了一种级联快照处理方法、装置、设备及存储介质,在本方案中,支持一个级联快照中的不同快照设置不同的grainsize,这样可以满足不同的需求,不仅降低了源卷在接收主机IO时的影响、保障了源卷的性能,同时也可以提升级联快照的后台拷贝速度。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1,本发明实施例提供的一种级联快照处理方法流程示意图,包括:
S101、确定源卷以及源卷进行级联快照时创建的各个目标卷;
在本实施例中,首先需要确定源卷及进行级联快照时创建的各个目标卷,如:源卷A生成快照1得到目标卷B,对卷B生成快照2得到目标卷C,对卷C再生成快照3得到目标卷D,对卷D再生成快照4得到目标卷E。
S102、设置级联快照中每个快照的数据块尺寸,各数据块尺寸不完全相同;
在本实施例中,设置每个快照的数据块尺寸时,可设置各数据块尺寸不完全相同,此处的不完全相同是指:各数据块尺寸中至少存在两种数据块尺寸,如:若存在4个快照,则本方案可设置4个快照的数据块尺寸均不相同,也即在这4个快照中存在4种数据块尺寸;或者,设置4个快照中有3种数据块尺寸,或者,设置4个快照中有2种数据块尺寸;并且,本方案在设置级联快照中每个快照的数据块尺寸时,可确定执行主机处理操作的卷所在的第一快照,以及执行后台拷贝处理操作的卷所在的第二快照,然后设置第一快照的数据块尺寸小于第二快照的数据块尺寸。通过这种对有主机IO的卷所在的快照设置较小的grainsize的方式,可减小进行COW操作时的写放大,减小对主机IO的影响,提升存储系统的性能;而对于开启后台拷贝的快照,通过设置较大grainsize的方式,可在一个grain的后台拷贝动作中拷贝更多的数据,避免频繁的线程切换,从而支持更大的后台拷贝速度。
需要说明的是,在实际应用场景中,通常情况下级联快照中只有链表头部的源卷需要接收主机IO,更关心源卷的读写IO性能;对于快照卷则希望更快得到一份独立于源卷的数据拷贝,因此更关心快照的后台拷贝速度。本方案通过支持多grainsize的级联快照,可以在级联快照中既满足高后台拷贝速度的需求,又尽可能降低对主机性能的影响,大大提高了存储系统的灵活性。
进一步,本方案在数据块尺寸时,需要保证任意两个数据块尺寸中,小数值的数据块尺寸能整除大数值的数据块尺寸。如:设置快照1的数据块尺寸为8、快照2的数据块尺寸为16、快照3的数据块尺寸为4、快照4的数据块尺寸为8,通过该设置方式,可保证后续处理操作过程顺利执行。
S103、根据源卷的总尺寸及每个快照的数据块尺寸,创建每个快照的位图;
在本实施例中,创建源卷和目标卷的快照映射关系后,还需要根据卷的总尺寸大小和设置的每个快照的数据块尺寸grainsize计算每个位图的大小,即位图中bit个数,位图的大小表示在拷贝数据时,将数据卷划分为多少个数据块进行数据拷贝;并且,不同快照允许grainsize不同,但同一链表中的级联快照grainsize必须能够整除,然后根据计算好的位图大小创建位图,并将位图中所有bit全部初始化为0。如:源卷的总尺寸为64,设置快照1的数据块尺寸为8、快照2的数据块尺寸为16、快照3的数据块尺寸为4、快照4的数据块尺寸为8,则快照1的位图大小为64/8=8、快照2的位图大小为64/16=4、快照3的位图大小为64/4=16、快照4的位图大小为64/8=16,并根据各个位图大小创建对应的位图,将位图中所有bit全部初始化为0。
需要说明的是,位图中bit的数值是根据拷贝状态实时更新的,该过程与相关技术中的更新过程一致,也即:若该bit对应的数据块被拷贝,则将该bit的位值设置为1,如:源卷A生成快照1得到目标卷B的过程中,位图1是与快照1对应的位图,若快照1的数据块尺寸为8,位图大小为8,则说明需要将尺寸64的源卷A分为8个数据块进行数据拷贝,每个数据块的尺寸为8,那么源卷A在向卷B拷贝第3个尺寸为8的数据块的数据时,位图1中第三个位置的值应该为1,表示数据已完成拷贝。
S104、根据每个快照的数据块尺寸及位图对源卷或者目标卷执行处理操作。
在本实施例中,基于不同数据块尺寸的级联快照可执行不同的处理操作,如:执行后台拷贝处理操作、主机读IO处理操作、主机写IO处理操作等等。并且,执行操作的数据卷可以是源卷,也可以是目标卷,在此并不具体限定。具体来说,对于主机下发的IO,将接收IO的卷定义为client卷。对于读IO,查询到client卷对应的依赖数据,然后向主机返回依赖数据;对于写IO,查询client卷作为源卷对应的快照和作为目标卷对应的快照,完成两个快照对应grain的数据拷贝,如果没有查询到对应快照则不做数据拷贝,然后向clinet卷中写入主机下发的数据;对于后台拷贝,每次拷贝一个grain,完成该grain的数据拷贝即可。
综上可见,在本方案中,各快照的数据块尺寸不完全相同,因此本方案可根据实际使用情况对每个快照设置不同的数据块尺寸,以降低对主机读写性能影响的同时升级联快照的后台拷贝速度,如:针对有主机读写的快照,可设置小数据块尺寸,以减少对主机读写的影响,提升存储系统性能;而针对有后台拷贝的快照,则设置大数据块尺寸,以提高后台拷贝速度。
基于上述实施例,在本实施例中,根据每个快照的数据块尺寸及位图对源卷或者目标卷执行处理操作时,将处理操作具体分为后台拷贝处理操作、数据读取处理操作、数据写处理操作为例进行说明。
一、若处理操作为后台拷贝处理操作,则本方案接收到对目标数据块的后台拷贝指令后,要将与目标数据块相邻的上游快照作为目标快照,并判断目标快照的位图中与目标数据块的位置对应的位值是否为一;若是,则判定完成拷贝;若否,则根据目标快照的各上游快照查找与目标数据块对应的依赖数据块,并将依赖数据块中存储的数据拷贝至所述目标数据块;该目标数据块为位于源卷或者目标卷上的数据块。
在本实施例中,接收到对目标数据块的后台拷贝指令后,需要执行如下步骤:
1)开启一个线程,用于拷贝快照中某个数据块grain,在本实施例中,将需要拷贝的数据块称为目标数据块;
2)假设需要拷贝的目标数据块为第i个grain(i范围是0~n-1,n为grain的总个数),则定义要拷贝的目标快照为tgtMap、目标卷为tgtLun、对应的位置为tgtGrain,并定义一个tgtGrainsize大小的缓存空间。参见图2,为本发明实施例提供的一种拷贝流程示意图,通过图2可以看出,源卷A生成快照1得到目标卷B,对卷B生成快照2得到目标卷C,对卷C再生成快照3得到目标卷D,对卷D再生成快照4得到目标卷E,在每个快照下标注了数据块尺寸以及对应的位图;并且,此次需要拷贝的目标数据块为快照卷E中的第3个数据块,i=2,则要将与目标数据块相邻的上游快照作为目标快照,也即:要拷贝的目标快照tgtMap为快照4,目标卷tgtLun为快照卷E,对应的位置tgtGrain为第3个数据块位置。
3)读取目标快照tgtMap位图中tgtGrain对应的bit值,如果bit值等1则说明依赖数据就在目标卷上,认为拷贝完成,结束数据拷贝;如果bit值0,则说明该目标数据块未拷贝数据,继续执行步骤4)。
4)判断目标快照tgtMap是否具有上游快照;若没有上游快照,则将源卷中与目标数据块相同位置的数据块作为依赖数据块,将依赖数据块中的数据存储至缓存空间,并执行步骤8),若有上游快照,则继续执行步骤5)。
需要说明的是,在本方案中,判断目标快照是否具有上游快照时,会沿着链表寻找目标快照tgtMap是否有上游快照upMap,如图2所示,该链表是指快照1、快照2、快照3、快照4,若目标快照为快照1,则说明目标快照没有上游快照,则从目标快照tgtMap的源卷A指中读取与目标数据块位置tgtGrain对应位置的数据块作为依赖数据块,并将依赖数据块中的数据到缓存空间中,并继续执行步骤8);若目标快照为快照4,则说明目标快照具有上游快照,此时可继续执行步骤5)。
5)若有上游快照,则根据各上游快照的位图及数据块尺寸,确定目标数据块在各上游快照的位图中的相应位置的位值及位值个数最大值。
在本实施例中,若目标快照tgtMap有上游快照,但是由于上游快照的数量可以为多个,因此本实施例为了方便说明,将目标快照tgtMap作为curMap,并确定curMap的上游快照upMap位图中对应tgtGrain位置,并读取该位置的bit值;其中,在确定上游快照upMap中与目标数据块对应的位置时,该位置的具体确定方式可根据上游快照upMap的位图及数据块尺来确定。如果上游快照upMap的grainsize等于目标快照tgtMap的grainsize,则直接读取第i个bit的值;如果上游快照upMap的grainsize小于目标快照tgtMap的grainsize,则定义ratio=tgtGrainsize/upGrainsize,读取第i×ratio~(i+1)×ratio-1个bit的值;如果上游快照upMap的grainsize大于目标快照tgtMap的grainsize,则定义ratio=upGrainsize/tgtGrainsize,读取第i/ratio(向下取整)个bit的值。
如图2所示,目标快照tgtMap为快照4,也即:curMap为快照4,curMap的上游快照upMap为快照3,表示目标数据块位置的i为2,此时目标快照tgtMap的grainsize为8,上游快照upMap的grainsize为4,也即:上游快照upMap的grainsize(4)小于目标快照tgtMap的grainsize(8),那么ratio=tgtGrainsize/upGrainsize=8/4=2,则目标数据块在上游快照对应位置的i的数值应该为:2×2~(2+1)×2-1=4~5,通过图2快照3的位图可以看出,该目标数据块在上游快照(快照3)的位图中的相应位置的位值为[0 1],位值个数为2个,以此类推,可以读取出目标数据块在各上游快照的位图中的相应位置的位值,并确定出位值个数最大值;在图2中,在快照4中读取的位值为[0],在快照3中读取的位值为[0 1],在快照2中读取的位值为[0],在快照1中读取的位值为[1]。
6)判断读取的upMap位图bit值是否为1,如果读取的upMap位图bit值为多个,则判断多个bit值是否全都为1,保存读取的upMap索引以及对应的bit值,若curMap不再有上游快照或读到的bit值都为1,进行步骤7),否则,继续步骤5),将upMap作为curMap继续执行后续步骤。
7)由于本方案中的每个快照的grainsize不同,因此在本方案需要对目标数据块在各上游快照的位图中的相应位置的位值进行等值扩充,并将目标数据块分为若干个数据小块;其中,等值扩充后的位值的个数与数据小块的个数均为位值个数最大值;根据快照链表依次从各上游快照的位图中,查找与每个数据小块相同位置的位值为一的依赖数据小块,并从各依赖数据小块中读取数据作为目标数据块的依赖数据,将各依赖数据存储至缓存空间;
如图2所示,在快照4中读取的位值为[0],在快照3中读取的位值为[0 1],在快照2中读取的位值为[0],在快照1中读取的位值为[1],那么所有upMap的bit值个数中的最大值为2,因此将位置为tgtGrain的目标数据块拆分为r个小块时,r具体为2,扩充方法为等值填充,因此需要将快照4读取的位值扩充为[0 0],将快照2读取的位值扩充为[0 0],将快照1读取的位值扩充为[11],参见图3,为本发明实施例提供的另一种拷贝流程示意图,如图3所示,已在各个快照下补充了扩充后的bit值。
进一步,本方案针对每个数据小块,需要寻找第一个对应位置bit值为1的upMap(按照读取upMap的顺序),将该upMap目标卷中对应tgtGrain位置的数据读取到缓存空间中第r个小块;如果所有upMap对应位置的bit值均为0,则将链表头部源卷对应tgtGrain位置的数据读取到缓存空间中第r个小块。遍历结束则r个小块的依赖数据都被读取到了缓存空间中。如图3所示,若将目标数据块分为2个数据小块,则针对第1个数据数据小块,根据快照链表依次从各上游快照的位图中查找位值为1的位图,其中,快照4中与第1个数据小块相同位置的位值为0,快照3中与第1个数据小块相同位置的位值为0,快照2中与第1个数据小块相同位置的位值为0,快照1中与第1个数据小块相同位置的位值为1,因此将快照1中与第1个数据小块相同位置的依赖数据小块内存储的数据A作为依赖数据存储至缓存中;针对第2个数据数据小块,根据快照链表依次从各上游快照的位图中查找位值为1的位图,其中,快照4中与第2个数据小块相同位置的位值为0,快照3中与第2个数据小块相同位置的位值为1,因此将快照3中与第2个数据小块相同位置的依赖数据小块内存储的数据C作为依赖数据存储至缓存中,如图3所示,缓存空间中缓存的数据为AC。
8)将缓存空间中的数据写到tgtMap的目标卷对应tgtGrain的位置。也就是说:通过上述流程,即可将数据AC拷贝至目标数据块中。
二、若处理操作为数据读取处理操作,则本方案接收到主机发送的针对目标数据块的数据读取指令后,要将与目标数据块相邻的上游快照作为目标快照,并判断目标快照的位图中与目标数据块的位置对应的位值是否为一;若是,则直接从目标数据块读取数据并发送给主机;若否,则根据目标快照的各上游快照查找与目标数据块对应的依赖数据块,并将依赖数据块中存储的数据发送给主机;该目标数据块为位于源卷或者目标卷上的数据块。
在本实施例中,接收到主机发送的数据读取指令后,可将要读取的数据所在的卷作为tgtLun,以该卷为目标卷的快照作为tgtMap,读取数据对应的grain位置为tgtGrain。后续执行的过程与前文所述的后台拷贝流程类似,需要继续执行后台拷贝流程中的步骤3)~7),也即本方案接收到主机发送的数据读取指令后,需要执行如下流程:
1)接收主机发送的针对目标数据块的数据读取指令,将与目标数据块相邻的上游快照作为目标快照;
2)将要读取的数据所在的卷作为tgtLun,以该卷为目标卷的快照作为目标快照tgtMap,目标快照为与目标数据块相邻的上游快照,并将读取数据对应的grain位置为tgtGrain。
3)读取目标快照位图中tgtGrain对应的bit值,如果bit值等1则说明依赖数据就在目标卷上,则直接从tgtGrain位置读取数据发送给主机,结束流程;如果bit值0,则说明该目标数据块未拷贝数据,不能直接从目标数据块中读取对应的数据,则继续执行步骤4)。
4)判断目标快照tgtMap是否具有上游快照;若没有上游快照,则将源卷中与目标数据块相同位置的数据块作为依赖数据块,读取依赖数据块中的数据发送给主机,结束流程;若有上游快照,则继续执行步骤5)。
5)若有上游快照,则根据各上游快照的位图及数据块尺寸,确定目标数据块在各上游快照的位图中的相应位置的位值及位值个数最大值。具体来说,本步骤中,若目标快照tgtMap有上游快照,但是由于上游快照的数量可以为多个,因此本实施例为了方便说明,将目标快照tgtMap作为curMap,并确定curMap的上游快照upMap位图中对应tgtGrain位置,并读取该位置的bit值;其中,在确定上游快照upMap中与目标数据块对应的位置时,该位置的具体确定方式可根据上游快照upMap的位图及数据块尺来确定。如果上游快照upMap的grainsize等于目标快照tgtMap的grainsize,则直接读取第i个bit的值;如果上游快照upMap的grainsize小于目标快照tgtMap的grainsize,则定义ratio=tgtGrainsize/upGrainsize,读取第i×ratio~(i+1)×ratio-1个bit的值;如果上游快照upMap的grainsize大于目标快照tgtMap的grainsize,则定义ratio=upGrainsize/tgtGrainsize,读取第i/ratio(向下取整)个bit的值。
6)判断读取的upMap位图bit值是否为1,如果读取的upMap位图bit值为多个,则判断多个bit值是否全都为1,保存读取的upMap索引以及对应的bit值,若curMap不再有上游快照或读到的bit值都为1,进行步骤7),否则,继续步骤5),将upMap作为curMap继续执行后续步骤。
7)由于本方案中的每个快照的grainsize不同,因此在本方案需要对目标数据块在各上游快照的位图中的相应位置的位值进行等值扩充,并将目标数据块分为若干个数据小块;其中,等值扩充后的位值的个数与数据小块的个数均为位值个数最大值;根据快照链表依次从各上游快照的位图中,查找与每个数据小块相同位置的位值为一的依赖数据小块,并从各依赖数据小块中读取数据作为目标数据块的依赖数据,并发送给主机,结束流程。
三、若处理操作为数据写处理操作,则本方案接收到主机发送的针对目标数据块的数据写指令后,判断目标数据块是否有上游快照;若没有上游快照,则判断所述目标数据块是否有下游快照;若有上游快照,则根据相邻上游快照确定与目标数据块对应的第一目标位置,判断相邻上游快照的位图中第一目标位置的位值是否为一;若位值为一,则继续执行判断目标数据块是否有下游快照的步骤;若位值不为一,则根据各上游快照查找与第一目标位置对应的依赖数据块,并将依赖数据块中存储的数据拷贝至第一目标位置,并继续执行判断目标数据块是否有下游快照的步骤;
若目标数据块有下游快照,则根据相邻下游快照确定与目标数据块对应的第二目标位置;判断相邻下游快照的位图中第二目标位置的位值是否为一;若位值为一,则将数据写指令中携带的主机数据写入目标数据块;若位值不为一,则将目标数据块中的数据拷贝至相邻的下游目标卷的第二目标位置,并继续执行将数据写指令中携带的主机数据写入目标数据块的步骤;若目标数据块没有下游快照,将数据写指令中携带的主机数据写入目标数据块。
需要说明的是,本实施例在处理主机发送的数据写指令时,总的处理原则为:判断当前待写入位置是否已写入数据,若没写入数据,则从上游的各数据卷中查找依赖数据并拷贝至待写入位置;若写入数据,则判断当前已写入的数据是否已拷贝至下游的数据卷中,如果已拷贝至下游的数据卷中,或者没有下游数据卷,则直接将主机发送的数据写入待写入位置。基于上述原则,本实施例提供了一种具体的处理流程,该流程的各步骤如下:
1)1.1:定义要写数据的卷作为client卷,确定client卷有没有上游快照,如果client卷是链表中的第一个卷,没有上游快照,则跳过步骤1)执行步骤2),如果有上游快照,则继续执行步骤1.2。
参见图4,为本发明实施例提供的一数据操作流程示意图,通过该图可以看出,共有5个卷,卷A~卷E,共有4个快照(卷A->卷B为快照①,卷B->卷C为快照②,卷C->卷D为快照③,卷D->卷E为快照④),所有卷的总size=64,快照①的grainsize=8,快照②的grainsize=16,快照③的grainsize=4,快照④的grainsize=8,每个快照下方的是快照的位图。如图4所示,若要写数据的卷为卷A,则其没有上游快照,则执行步骤2),若要写数据的卷为卷C,则其有上游快照,其上游快照为快照②,继续执行步骤1.2。
1.2:如果有上游快照,则根据client卷的上游快照确认与目标数据块对应的第一目标位置(tgtGrain位置)。判断上游快照对应tgtGrain的位图bit值,如果bit=1,则表明源卷上的数据已经拷贝到client卷上,可以跳过步骤1)去执行步骤2);如果bit不为1,则执行步骤1.3;
如图4所示,若client卷为卷C,则其上游快照为快照②,参见图5,为本发明实施例提供的另一数据操作流程示意图,此时要写的目标数据块为卷C中深色颜色标注的四个目标数据块,并且,此时快照②的grainsize=16,因此与目标数据块对应的第一目标位置即为卷C中黑色方框标注的16个数据块所在的位置,且快照②中与第一目标位置对应的位图bit值为0,执行步骤1.3;
1.3:如果bit为0,则需要根据各上游快照查找与第一目标位置对应的依赖数据块,并将依赖数据块中存储的数据拷贝至第一目标位置,并继续执行判断目标数据块是否有下游快照的步骤。
在本实施例中,根据各上游快照查找与第一目标位置对应的依赖数据块时,具体需要执行如下操作:根据各上游快照的位图及数据块尺寸,确定第一目标位置在各上游快照的位图中的相应位置的位值,及位值个数最大值;对第一目标位置在各上游快照的位图中的相应位置的位值进行等值扩充,并将目标数据块分为若干个数据小块;其中,等值扩充后的位值的个数与数据小块的个数均为位值个数最大值;根据快照链表依次从各上游快照的位图中,查找与每个数据小块相同位置的位值为一的依赖数据小块。
如图5所示,在向上寻找依赖数据并将其拷贝到client卷时,需要将client卷的所有上游快照中tgtGrain位置对应的位图数据进行扩充,得到扩充后的tgtGrain位图。在本实施例中,首先根据各上游快照的位图及数据块尺寸,确定第一目标位置在各上游快照的位图中的相应位置的位值,及位值个数最大值,如在图5中,快照②和快照①为上游快照,快照②中与第一目标位置对应的位置为[0],位值个数为1,快照①中与第一目标位置对应的位置为[1 0],位值个数为2,因此位值个数最大值为2。
在对第一目标位置在各上游快照的位图中的相应位置的位值进行等值扩充,并将目标数据块分为若干个数据小块时,由于位值个数最大值为2,因此需要将第一目标位置在各上游快照的位图中的相应位置的位值等值扩充为两位,并将目标数据块分为2个数据小块。参见图6,为本发明实施例提供的另一数据操作流程示意图,图6对扩充后的tgtGrain位图进行了标注,其中,快照②中与第一目标位置对应的位置为[0],因此等值扩充后得到[00],快照①中与第一目标位置对应的位置为[1 0],便不需要扩充。
在本实施例中,还提供了另一种扩充方法,具体为:查找上游所有快照中grainsize最小的快照,并以其为基准grainsize进行等值扩充,如果某一上游快照的grainsize大于基准grainsize,则将该上游快照的位图进行等值扩充,比如1个0扩充成两个0;如果某一上游快照的grainsize小于等于基准grainsize,则直接将该上游快照的位置对应bit值赋给扩充后的tgtGrain位图值。如在图6中,所有上游快照中最小的grainsize是8,则以grainsize=8为基准进行扩充,快照②的grainsize为16,也即快照②的grainsize(16)大于基准grainsize(8),此时需要扩充,并且保证扩充后的位图bit个数应该等于client卷紧邻上游快照的grainsize(16)除以所有上有快照中的最小grainsize(8),也即扩充个数应该为:16/8=2,因此将快照②的位值[0]扩充得到[0 0],如果快照②的grainsize=32的,则需要扩充为32/8=4个。在图6中快照①的grainsize为8,因此直接将快照①的bit值赋给扩充后的tgtGrain位图值。在本实施例中,扩充后tgtGrain位图大小为2,记为graincount,并将client卷上的tgtGrain等分为graincount个小块。
进一步,在本实施例中,根据快照链表依次从各上游快照的位图中,查找与每个数据小块相同位置的位值为一的依赖数据小块后,需要将依赖数据小块中存储的依赖数据拷贝至client卷对应的数据小块中。在本实施例中,寻找依赖数据的方法就是一直向上游遍历寻找到的第一个位图(指扩充后tgtGrain位图)bit=1的upMap,则依赖数据就在该upMap的目标卷上,如果所有upMap的bit都为0,则依赖数据就在链表头上的第一个卷(源卷)上。如图6所示,根据扩充后的位图可以看出,第一个数据小块向上游寻找到第一个位图的bit值为1的快照为快照①,因此第一个数据小块的依赖数据就在卷B上,并将其拷贝至第一个数据小块的对应位置中;第二个数据小块向上游寻找后,发现没有位图的bit值为1的快照,则说明第二个数据小块的依赖数据就在卷A上,并将卷A的依赖数据拷贝至第二个数据小块的对应位置中。
2)2.1:查看client卷有没有下游快照;如果client卷是链表中最后一个卷,则说明没有下游快照,则跳过步骤2)直接执行步骤3)。如果client卷不是最后一个卷,则说明有下游快照,则执行步骤2.2。如图4所示,若client卷为卷E,则说明没有下游快照,此时执行步骤3),若client卷为卷C,则说明有下游快照,则执行步骤2.2。
2.2:若有下游快照,则首先根据相邻下游快照确定与目标数据块对应的第二目标位置的bit值,如果bit=1,则表明client卷上的数据已经拷贝到下游快照的目标卷上了,直接执行步骤3);如果bit不为1,则说明还没有拷贝至目标卷,此时执行步骤2.3。
参见图7,为本发明实施例提供的另一数据操作流程示意图,通过图7可以看出,client卷的下游快照为快照③,此时要写的目标数据块为卷C中深色颜色标注的四个目标数据块,并且快照③的grainsize=4,因此与目标数据块对应的第二目标位置即为卷C中四个目标数据块所在的位置,且快照③中与第二目标位置对应的位图bit值为1,则执行步骤3)。
2.3:将目标数据块中的数据拷贝至相邻的下游目标卷的第二目标位置。如图7所示,若快照③中与第二目标位置对应的位图bit值为0,此时需要将四个目标数据块中的数据拷贝至卷D中对应位置的数据块中。
3)将数据写指令中携带的主机数据写入目标数据块的步骤。如图7所示,需要将主机下发的待写入数据写入卷C中的四个目标数据块中。
综上可以看出,本方案提供了一种多grainsize的级联快照处理方法,旨在支持一个级联快照中的不同快照设置不同的grainsize。在本方案中,基于对不同grainsize的位图进行扩充的方式,可实现快照链表中对依赖数据的查询和合并,从而支持不同grainsize、不同大小位图的级联快照处理。通过该方式,可使得本方案可根据实际使用情况对每个快照设置不同的数据块尺寸,以降低对主机读写性能影响的同时升级联快照的后台拷贝速度。
下面对本发明实施例提供的处理装置、设备及介质进行介绍,下文描述的处理装置、设备及介质与上文描述的处理方法可以相互参照。
参见图8,本发明实施例提供的一种级联快照处理装置结构示意图,包括:
确定模块11,用于确定源卷,以及所述源卷进行级联快照时创建的各个目标卷;
设置模块12,用于设置级联快照中每个快照的数据块尺寸,各数据块尺寸不完全相同;
创建模块13,用于根据所述源卷的总尺寸及每个快照的数据块尺寸,创建每个快照的位图;
处理模块14,用于根据每个快照的数据块尺寸及位图对源卷或者目标卷执行处理操作。
其中,所述处理模块包括:
第一接收单元,用于接收对目标数据块的后台拷贝指令;所述目标数据块为位于源卷或者目标卷上的数据块;
第一判断单元,用于将与所述目标数据块相邻的上游快照作为目标快照,并判断所述目标快照的位图中与所述目标数据块的位置对应的位值是否为一;若是,则判定完成拷贝;若否,则触发第一查找单元;
第一查找单元,用于根据所述目标快照的各上游快照查找与所述目标数据块对应的依赖数据块;
第一拷贝单元,用于将依赖数据块中存储的数据拷贝至所述目标数据块。
其中,所述处理模块包括:
第二接收单元,用于接收主机发送的针对目标数据块的数据读取指令;所述目标数据块为位于源卷或者目标卷上的数据块;
第二判断单元,用于将与所述目标数据块相邻的上游快照作为目标快照,并判断所述目标快照的位图中与所述目标数据块的位置对应的位值是否为一;若是,则触发第一发送单元;若否,则触发第二查找单元;
第一发送单元,用于从所述目标数据块读取数据并发送给所述主机;
第二查找单元,用于根据所述目标快照的各上游快照查找与所述目标数据块对应的依赖数据块,并触发第二发送单元;
第二发送单元,用于将依赖数据块中存储的数据发送给所述主机。
其中,所述第一查找单元和第二查找单元均包括:
判断子单元,用于判断所述目标快照是否具有上游快照;若没有上游快照,则将所述源卷中与所述目标数据块相同位置的数据块作为依赖数据块;若有上游快照,则触发第一确定子单元;
第一确定子单元,用于根据各上游快照的位图及数据块尺寸,确定所述目标数据块在各上游快照的位图中的相应位置的位值,及位值个数最大值;
第一扩充子单元,用于对所述目标数据块在各上游快照的位图中的相应位置的位值进行等值扩充,并将所述目标数据块分为若干个数据小块;其中,等值扩充后的位值的个数与所述数据小块的个数均为所述位值个数最大值;
第一查找子单元,用于根据快照链表依次从各上游快照的位图中,查找与每个数据小块相同位置的位值为一的依赖数据小块。
其中,所述处理模块包括:
第三接收单元,用于接收主机发送的针对目标数据块的数据写指令;
第三判断单元,用于判断所述目标数据块是否有上游快照;若没有上游快照,则触发第五判断单元;若有上游快照,则触发第一确定单元;
第一确定单元,用于根据相邻上游快照确定与所述目标数据块对应的第一目标位置,并触发第四判断单元;
第四判断单元,用于判断相邻上游快照的位图中所述第一目标位置的位值是否为一;若位值为一,则触发第五判断单元;若位值不为一,则触发第三查找单元;
第三查找单元,用于根据各上游快照查找与所述第一目标位置对应的依赖数据块,并触发第二拷贝单元;
第二拷贝单元,用于将依赖数据块中存储的数据拷贝至所述第一目标位置,并触发第五判断单元;
第五判断单元,用于判断所述目标数据块是否有下游快照;若所述目标数据块有下游快照,则触发第二确定单元;若所述目标数据块没有下游快照,则触发数据写入单元;
第二确定单元,用于根据相邻下游快照确定与所述目标数据块对应的第二目标位置;
第六判断单元,用于判断相邻下游快照的位图中所述第二目标位置的位值是否为一;若位值为一,则触发数据写入单元;若位值不为一,则触发第三拷贝单元;
第三拷贝单元,用于将所述目标数据块中的数据拷贝至相邻的下游目标卷的第二目标位置,并触发数据写入单元;
数据写入单元,用于将所述数据写指令中携带的主机数据写入所述目标数据块。
其中,第三查找单元包括:
第二确定子单元,用于根据各上游快照的位图及数据块尺寸,确定所述第一目标位置在各上游快照的位图中的相应位置的位值,及位值个数最大值;
第二扩充子单元,对所述第一目标位置在各上游快照的位图中的相应位置的位值进行等值扩充,并将所述目标数据块分为若干个数据小块;其中,等值扩充后的位值的个数与所述数据小块的个数均为所述位值个数最大值;
第二查找子单元,用于根据快照链表依次从各上游快照的位图中,查找与每个数据小块相同位置的位值为一的依赖数据小块。
其中,设置模块具体用于:确定执行主机处理操作的卷所在的第一快照,以及执行后台拷贝处理操作的卷所在的第二快照;设置所述第一快照的数据块尺寸小于所述第二快照的数据块尺寸;其中,在任意两个数据块尺寸中,小数值的数据块尺寸能整除大数值的数据块尺寸。
参见图9,本发明实施例还提供了一种电子设备结构示意图,包括:
存储器21,用于存储计算机程序;
处理器22,用于执行所述计算机程序时实现上述任意方法实施例所述的级联快照处理方法的步骤。
在本实施例中,设备可以是PC(Personal Computer,个人电脑),也可以是智能手机、平板电脑、掌上电脑、便携计算机等终端设备。
该设备可以包括存储器21、处理器22和总线23。
其中,存储器21至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、磁性存储器、磁盘、光盘等。存储器21在一些实施例中可以是设备的内部存储单元,例如该设备的硬盘。存储器21在另一些实施例中也可以是设备的外部存储设备,例如设备上配备的插接式硬盘,智能存储卡(SmartMedia Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器21还可以既包括设备的内部存储单元也包括外部存储设备。存储器21不仅可以用于存储安装于设备的应用软件及各类数据,例如执行处理方法的程序代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
处理器22在一些实施例中可以是一中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器21中存储的程序代码或处理数据,例如执行处理方法的程序代码等。
该总线23可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图9中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
进一步地,设备还可以包括网络接口24,网络接口24可选的可以包括有线接口和/或无线接口(如WI-FI接口、蓝牙接口等),通常用于在该设备与其他电子设备之间建立通信连接。
可选地,该设备还可以包括用户接口25,用户接口25可以包括显示器(Display)、输入单元比如键盘(Keyboard),可选的用户接口25还可以包括标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在设备中处理的信息以及用于显示可视化的用户界面。
图9仅示出了具有组件21-25的设备,本领域技术人员可以理解的是,图9示出的结构并不构成对设备的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意方法实施例所述的级联快照处理方法的步骤。
其中,该存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种级联快照处理方法,其特征在于,包括:
确定源卷,以及所述源卷进行级联快照时创建的各个目标卷;
设置级联快照中每个快照的数据块尺寸,各数据块尺寸不完全相同;
根据所述源卷的总尺寸及每个快照的数据块尺寸,创建每个快照的位图;
根据每个快照的数据块尺寸及位图对源卷或者目标卷执行处理操作。
2.根据权利要求1所述的级联快照处理方法,其特征在于,所述根据每个快照的数据块尺寸及位图对源卷或者目标卷执行处理操作,包括:
接收对目标数据块的后台拷贝指令;所述目标数据块为位于源卷或者目标卷上的数据块;
将与所述目标数据块相邻的上游快照作为目标快照,并判断所述目标快照的位图中与所述目标数据块的位置对应的位值是否为一;
若是,则判定完成拷贝;
若否,则根据所述目标快照的各上游快照查找与所述目标数据块对应的依赖数据块,并将依赖数据块中存储的数据拷贝至所述目标数据块。
3.根据权利要求1所述的级联快照处理方法,其特征在于,所述根据每个快照的数据块尺寸及位图对源卷或者目标卷执行处理操作,包括:
接收主机发送的针对目标数据块的数据读取指令;所述目标数据块为位于源卷或者目标卷上的数据块;
将与所述目标数据块相邻的上游快照作为目标快照,并判断所述目标快照的位图中与所述目标数据块的位置对应的位值是否为一;
若是,则直接从所述目标数据块读取数据并发送给所述主机;
若否,则根据所述目标快照的各上游快照查找与所述目标数据块对应的依赖数据块,并将依赖数据块中存储的数据发送给所述主机。
4.根据权利要求2或3所述的级联快照处理方法,其特征在于,根据所述目标快照的各上游快照查找与所述目标数据块对应的依赖数据块,包括:
判断所述目标快照是否具有上游快照;
若没有上游快照,则将所述源卷中与所述目标数据块相同位置的数据块作为依赖数据块;
若有上游快照,则根据各上游快照的位图及数据块尺寸,确定所述目标数据块在各上游快照的位图中的相应位置的位值,及位值个数最大值;
对所述目标数据块在各上游快照的位图中的相应位置的位值进行等值扩充,并将所述目标数据块分为若干个数据小块;其中,等值扩充后的位值的个数与所述数据小块的个数均为所述位值个数最大值;
根据快照链表依次从各上游快照的位图中,查找与每个数据小块相同位置的位值为一的依赖数据小块。
5.根据权利要求1所述的级联快照处理方法,其特征在于,所述根据每个快照的数据块尺寸及位图对源卷或者目标卷执行处理操作,包括:
接收主机发送的针对目标数据块的数据写指令;
判断所述目标数据块是否有上游快照;
若没有上游快照,则判断所述目标数据块是否有下游快照;
若有上游快照,则根据相邻上游快照确定与所述目标数据块对应的第一目标位置,并判断相邻上游快照的位图中所述第一目标位置的位值是否为一;
若位值为一,则继续执行所述判断所述目标数据块是否有下游快照的步骤;若位值不为一,则根据各上游快照查找与所述第一目标位置对应的依赖数据块,并将依赖数据块中存储的数据拷贝至所述第一目标位置,并继续执行所述判断所述目标数据块是否有下游快照的步骤;
若所述目标数据块有下游快照,则根据相邻下游快照确定与所述目标数据块对应的第二目标位置;判断相邻下游快照的位图中所述第二目标位置的位值是否为一;若位值为一,则将所述数据写指令中携带的主机数据写入所述目标数据块;若位值不为一,则将所述目标数据块中的数据拷贝至相邻的下游目标卷的第二目标位置,并继续执行将所述数据写指令中携带的主机数据写入所述目标数据块的步骤;
若所述目标数据块没有下游快照,将所述数据写指令中携带的主机数据写入所述目标数据块。
6.根据权利要求5所述的级联快照处理方法,其特征在于,所述根据各上游快照查找与所述第一目标位置对应的依赖数据块,包括:
根据各上游快照的位图及数据块尺寸,确定所述第一目标位置在各上游快照的位图中的相应位置的位值,及位值个数最大值;
对所述第一目标位置在各上游快照的位图中的相应位置的位值进行等值扩充,并将所述目标数据块分为若干个数据小块;其中,等值扩充后的位值的个数与所述数据小块的个数均为所述位值个数最大值;
根据快照链表依次从各上游快照的位图中,查找与每个数据小块相同位置的位值为一的依赖数据小块。
7.根据权利要求1至6中任意一项所述的级联快照处理方法,其特征在于,所述设置级联快照中每个快照的数据块尺寸,包括:
确定执行主机处理操作的卷所在的第一快照,以及执行后台拷贝处理操作的卷所在的第二快照;
设置所述第一快照的数据块尺寸小于所述第二快照的数据块尺寸;其中,在任意两个数据块尺寸中,小数值的数据块尺寸能整除大数值的数据块尺寸。
8.一种级联快照处理装置,其特征在于,包括:
确定模块,用于确定源卷,以及所述源卷进行级联快照时创建的各个目标卷;
设置模块,用于设置级联快照中每个快照的数据块尺寸,各数据块尺寸不完全相同;
创建模块,用于根据所述源卷的总尺寸及每个快照的数据块尺寸,创建每个快照的位图;
处理模块,用于根据每个快照的数据块尺寸及位图对源卷或者目标卷执行处理操作。
9.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述的级联快照处理方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的级联快照处理方法的步骤。
CN202210465677.7A 2022-04-29 2022-04-29 一种级联快照处理方法、装置、设备及存储介质 Pending CN114942863A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202210465677.7A CN114942863A (zh) 2022-04-29 2022-04-29 一种级联快照处理方法、装置、设备及存储介质
PCT/CN2022/121130 WO2023206950A1 (zh) 2022-04-29 2022-09-23 一种级联快照处理方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210465677.7A CN114942863A (zh) 2022-04-29 2022-04-29 一种级联快照处理方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
CN114942863A true CN114942863A (zh) 2022-08-26

Family

ID=82907061

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210465677.7A Pending CN114942863A (zh) 2022-04-29 2022-04-29 一种级联快照处理方法、装置、设备及存储介质

Country Status (2)

Country Link
CN (1) CN114942863A (zh)
WO (1) WO2023206950A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023206950A1 (zh) * 2022-04-29 2023-11-02 苏州元脑智能科技有限公司 一种级联快照处理方法、装置、设备及存储介质
CN117687844A (zh) * 2024-01-30 2024-03-12 苏州元脑智能科技有限公司 定时快照的实现方法、装置、计算机设备及存储介质
CN117687844B (zh) * 2024-01-30 2024-05-03 苏州元脑智能科技有限公司 定时快照的实现方法、装置、计算机设备及存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4581518B2 (ja) * 2003-12-19 2010-11-17 株式会社日立製作所 スナップショット取得方法
CN105988723A (zh) * 2015-02-12 2016-10-05 中兴通讯股份有限公司 一种快照处理方法及装置
CN113608672A (zh) * 2021-06-20 2021-11-05 苏州浪潮智能科技有限公司 一种数据同步的方法、装置、设备及可读介质
CN114942863A (zh) * 2022-04-29 2022-08-26 苏州浪潮智能科技有限公司 一种级联快照处理方法、装置、设备及存储介质

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023206950A1 (zh) * 2022-04-29 2023-11-02 苏州元脑智能科技有限公司 一种级联快照处理方法、装置、设备及存储介质
CN117687844A (zh) * 2024-01-30 2024-03-12 苏州元脑智能科技有限公司 定时快照的实现方法、装置、计算机设备及存储介质
CN117687844B (zh) * 2024-01-30 2024-05-03 苏州元脑智能科技有限公司 定时快照的实现方法、装置、计算机设备及存储介质

Also Published As

Publication number Publication date
WO2023206950A1 (zh) 2023-11-02

Similar Documents

Publication Publication Date Title
USRE49875E1 (en) Memory system having high data transfer efficiency and host controller
US7774316B2 (en) Filesystem snapshot enhancement to improve system performance
US11086638B2 (en) Method and apparatus for loading application
CN114942863A (zh) 一种级联快照处理方法、装置、设备及存储介质
CN104572638A (zh) 数据读写方法及装置
CN112181596B (zh) 一种虚拟机克隆方法、装置、设备及存储介质
US11461225B2 (en) Storage device, control method of storage device, and storage medium
CN110866203B (zh) 页面跳转方法、装置、设备及计算机可读存储介质
CN107368393B (zh) 一种存储快照的方法及装置
TWI633437B (zh) 偵測使用中邏輯頁面之資料儲存裝置與資料儲存方法
CN113806107B (zh) 一种对象拷贝方法、装置、设备及存储介质
CN115658351B (zh) 2d拷贝方法、装置、电子设备和计算机可读存储介质
CN111817895B (zh) 一种主控节点切换方法、装置、设备及存储介质
CN111880743B (zh) 一种数据存储方法、装置、设备及存储介质
US11755425B1 (en) Methods and systems for synchronous distributed data backup and metadata aggregation
CN107391029B (zh) 一种文件存储、读取方法及其对应的系统
CN110688103B (zh) 代码编写方法、装置、电子设备及计算机可读存储介质
US20040254986A1 (en) Information processing apparatus and program
CN116610636A (zh) 一种文件系统的数据处理方法、装置、电子设备及存储介质
CN117687704A (zh) 显卡初始化方法、装置、设备及存储介质
CN117349558A (zh) 页面静态资源更新方法、装置、设备及存储介质
CN113849346A (zh) 一种数据备份方法、装置及设备
CN113742140A (zh) 一种文件备份方法、装置及计算设备
CN112015586A (zh) 一种数据重构计算的方法以及相关装置
KR20140073152A (ko) 메모리 폴트 정보를 이용한 스냅샷 이미지 처리 장치 및 방법

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