本申请实施例涉及数据处理技术领域,尤其涉及一种数据处理方法、装置及计算设备。
背景技术:
为了方便备份和容灾等,在不同时间点可以对一块磁盘创建多个快照,形成快照链,每个快照记录了磁盘中某一个时间点存储的磁盘数据,因此基于快照链中,可以将磁盘恢复至任一个快照记录的磁盘数据。
目前的快照功能实现,会将磁盘空间划分成多个存储区间,每个存储区间中的数据即作为快照的一个切片(又称数据块)。由于磁盘数据有冷热之分,很多数据很久才会改动,因此为了节省快照存储空间,快照通常会进行去重存放,具体是每创建一个新快照时,会检查当前磁盘的每个存储区间,如果某一个存储区间的数据与老快照(已创建快照)对应切片相比有改动,则新快照使用新数据创建新切片,否则新快照将继续使用老快照的切片,也即新快照中可以只保留新切片,但新快照的快照元数据中记录其用到所有切片的切片信息,若某个切片为老快照中的切片,其文件切片信息也即为老快照中切片的切片信息。
通过去重存放虽然可以节省大量存储空间,但是涉及对快照链的多个快照进行综合处理时,处理效率就会大大降低。比如进行快照计量时,需要统计快照链中正在使用的切片总数,且由于单个节点内存资源有限,进行快照计量时往往会将磁盘空间划分为多个任务区间分配给多个节点,每个节点统计每个快照在其对应任务区间的切片使用总数,再汇总多个节点的统计结果即可获得快照链中正在使用的切片总数。而每个快照的快照元数据是作为一个数据文件进行存储,每个节点每处理一个快照就需要请求获取一次其对应快照元数据,请求次数较多,影响处理效率。
技术实现要素:
本申请实施例提供一种数据处理方法、快照处理方法、装置及计算设备。
第一方面,本申请实施例中提供了一种数据处理方法,包括:
基于单个节点的最大处理切片数量,将设备存储空间划分为多个空间范围;
确定每个快照分别对应所述多个空间范围的子快照;
将每个子快照的子快照元数据分别存储至其对应空间范围的子数据文件中;
其中,所述子数据文件用于单个节点分析处理其对应空间范围的子快照。
第二方面,本申请实施例中提供了一种快照处理方法,包括:
接收处理任务;
确定所述处理任务中分配的空间范围;其中,所述空间范围为基于最大处理切片数量,将设备存储空间划分获得;
请求获取所述空间范围的子数据文件中的多个子快照元数据;其中,所述多个子快照元数据分别对应多个快照在所述空间范围的子快照;
基于所述多个子快照元数据,综合处理所述空间范围对应的多个子快照。
第三方面,本申请实施例中提供了一种快照处理方法,包括:
确定待处理的多个快照;
基于设备存储空间划分获得的多个空间范围,确定分别对应所述多个空间范围的处理任务;
将所述多个处理任务分别分配至多个节点,以由每个节点请求获取其分配的空间范围的子数据文件中的多个子快照元数据,并综合处理所述多个子快照元数据对应的子快照;
汇总所述多个节点获得的处理结果,获得所述多个快照对应的处理结果。
第四方面,本申请实施例中提供了一种数据处理装置,包括:
空间划分模块,用于基于单个节点的最大处理切片数量,将设备存储空间划分为多个空间范围;
数据确定模块,用于确定每个快照分别对应所述多个空间范围的子快照;
数据存储模块,用于将每个子快照的子快照元数据分别存储至其对应空间范围的子数据文件中;
其中,所述子数据文件用于单个节点分析处理其对应空间范围的子快照。
第五方面,本申请实施例中提供了一种快照处理装置,包括:
任务接收模块,用于接收处理任务;
空间确定模块,用于确定所述处理任务中分配的空间范围;其中,所述空间范围为基于最大处理切片数量,将设备存储空间划分获得;
数据获取模块,用于请求获取所述空间范围的子数据文件中的多个子快照元数据;其中,所述多个子快照元数据分别对应多个快照在所述空间范围的子快照;
处理模块,用于基于所述多个子快照元数据,综合处理所述空间范围对应的多个子快照。
第六方面,本申请实施例中提供了一种快照处理装置,包括:
快照确定模块,用于确定待处理的多个快照;
任务生成模块,用于基于设备存储空间划分获得的多个空间范围,确定分别对应所述多个空间范围的处理任务;
任务分配模块,用于将所述多个处理任务分别分配至多个节点,以由每个节点请求获取其分配的空间范围的子数据文件中的多个子快照元数据,并综合处理所述多个子快照元数据对应的子快照;
结果汇总模块,用于汇总所述多个节点获得的处理结果,获得所述多个快照对应的处理结果。
第七方面,本申请实施例中提供了一种计算设备,包括处理组件以及存储组件;
所述存储组件存储一个或多个计算机指令;所述一个或多个计算机指令用以被所述处理组件调用执行;
所述处理组件用于:
基于单个节点的最大处理切片数量,将设备存储空间划分为多个空间范围;
确定每个快照分别对应所述多个空间范围的子快照;
将每个子快照的子快照元数据分别存储至其对应空间范围的子数据文件中;
其中,所述子数据文件用于单个节点分析处理其对应空间范围的子快照。
第八方面,本申请实施例中提供了一种计算设备,包括处理组件以及存储组件;
所述存储组件存储一个或多个计算机指令;所述一个或多个计算机指令用以被所述处理组件调用执行;
所述处理组件用于:
接收处理任务;
确定所述处理任务中分配的空间范围;其中,所述空间范围为基于最大处理切片数量,将设备存储空间划分获得;
请求获取所述空间范围的子数据文件中的多个子快照元数据;其中,所述多个子快照元数据分别对应多个快照在所述空间范围的子快照;
基于所述多个子快照元数据,综合处理所述空间范围对应的多个子快照。
第九方面,本申请实施例中提供了一种计算设备,包括处理组件以及存储组件;
所述存储组件存储一个或多个计算机指令;所述一个或多个计算机指令用以被所述处理组件调用执行;
所述处理组件用于:
确定待处理的多个快照;
基于设备存储空间划分获得的多个空间范围,确定分别对应所述多个空间范围的处理任务;
将所述多个处理任务分别分配至多个节点,以由每个节点请求获取其分配的空间范围的子数据文件中的多个子快照元数据,并综合处理所述多个子快照元数据对应的子快照;
汇总所述多个节点获得的处理结果,获得所述多个快照对应的处理结果。
本申请实施例中,基于单个节点的最大处理切片数量,将设备存储空间划分为多个空间范围,并将每个快照按照所述多个空间范围分为多个子快照,使得可以将属于同一空间范围的多个子快照的子快照元数据存储在同一个子数据文件,单个空间范围基于单个节点的最大处理切片数量划分,保证了单个节点可以完整读取一个子数据文件,在需要对多个快照进行综合处理时,单个节点只需请求获取一次子数据文件,即可以获得为其处理的空间范围的多个子快照元数据,进而实现对多个子快照的处理,汇总多个节点的处理结果,即可以获得多个快照的处理结果,减少了数据请求次数,从而可以提高处理效率。
本申请的这些方面或其他方面在以下实施例的描述中会更加简明易懂。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本申请提供的一种数据处理方法一个实施例的流程图;
图2示出了本申请实施例在一个实际应用中的子快照元数据存储格式示意图;
图3示出了本申请提供的一种快照处理方法又一个实施例的流程图;
图4示出了本申请提供的一种快照处理方法又一个实施例的流程图;
图5示出了本申请实施例在一个实际应用中的快照处理交互示意图;
图6示出了本申请提供的一种数据处理装置一个实施例的结构示意图;
图7示出了本申请提供的一种计算设备一个实施例的结构示意图;
图8示出了本申请提供的一种快照处理装置一个实施例的结构示意图;
图9示出了本申请提供的一种计算设备又一个实施例的结构示意图;
图10示出了本申请提供的一种快照处理装置又一个实施例的结构示意图;
图11示出了本申请提供的一种计算设备又一个实施例的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
在本申请的说明书和权利要求书及上述附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如101、102等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
本申请实施例的技术方案主要应用于对多个快照进行综合分析处理场景中,以优化快照处理效率。本申请实施例中的快照具体是指存储设备的快照,存储设备例如为磁盘,特别是网络磁盘,如云磁盘等,在实际应用中,网络磁盘通常会采用快照机制来进行备份以及容灾等。
为了便于理解,下面对本申请实施例中可能出现的技术术语进行相应解释。
存储区间:是指将存储设备按照一定偏移量如2mb(mbyte,兆字节),将设备存储空间划分获得,一个存储设备可以划分获得多个存储区间,每个存储区间的内存空间大小相同,每个存储区间中存储的磁盘数据被称为切片(也叫数据块),存储设备的多个存储区间可以按照地址大小排序,并可以采用阿拉伯数字设定排序编号,例如,假设磁盘存储空间划分为4个存储区间,4个存储区间按照地址大小排列,并可以采用阿拉伯数字设定排序编号即1、2、3、4,排序标号即可以作为存储区间的标识,如编号1即表示第1个存储区间,依次类推。
快照元数据:是指快照的元数据,也即描述快照的数据,其记录了快照中各个切片的切片信息;每生成一个快照,即会对应生成该快照的快照元数据。
其中,切片信息可以包括所属快照的快照标识及所在存储区间等元数据信息,在实际应用中,可以根据每个切片所属快照的快照标识及所在存储区间标识,设定切片标识,例如,磁盘存储空间划分为4个存储区间,4个存储区间的标识分别为1、2、3、4,假设存在快照a,a为其快照标识,其也即包括4个切片,则4个切片标识可以分别为“1-a”、“2-a”、“3-a”以及“4-a”,“1-a”即表示快照a位于第1个存储区间的切片,此时,切片信息包括切片标识即可。
去重存放:为了节省快照存储空间,每创建一个新快照时,会检查当前存储设备的每个存储区间,如果某一个存储区间的数据与老快照(已创建快照)对应切片相比有改动,则新快照使用新数据创建新切片,否则新快照将继续使用老快照的切片。
比如,假设磁盘存储空间划分为4个存储区间,假设已创建的快照a包括4个切片,也即“1-a”、“2-a”、“3-a”以及“4-a”,创建快照b时,通过比对快照a,假设只有第1个存储区间以及第3个存储区间的数据存在改的,则快照b只创建第1个存储区间以及第3个存储区间对应的切片,也即,快照b中只创建了“1-b”及“3-b”,快照b的第2个切片及第4个切片可以使用快照a的“1-a”以及“4-a”,为了方便使用,即在快照b的快照元数据中记录其所使用的所有切片的切片信息,因此,上例中快照b的快照元数据中即存储了“1-b”、“2-a”、“3-b”以及“4-a”这4个切片的切片标识。
最大切片处理数量:由于单个节点的内存资源有限,最大切片处理数量是指单个节点基于其内存资源,最多可以处理的切片总数量。
空间范围:是指将存储设备的设备存储空间划分获得的一段空间区域,一个存储设备可以划分为多个空间范围,具体划分方式会在下述实施例中详细介绍。
其中,该空间范围所占空间大小可以大于存储区间所占空间大小,其具体可以是存储区间的整数倍。由于每个存储区间所占空间区域已知,因此空间范围可以采用存储区间范围表示,例如空间范围可以表示为[1,4],即是指该空间范围是从第1个存储区间到第4个存储区间范围内的4个存储区间所占的空间区域,当然,该空间范围也可以采用存储地址范围表示,本申请实施例对此不进行具体限定。
子快照:是指快照分别对应存储设备划分的多个空间范围的数据信息。
子快照元数据:是指子快照的元数据,记录子快照中包含各个切片的切片信息。
数据文件:存储一个快照元数据的文件,每个快照的快照元数据存储在一个文件中;
子数据文件:存储同一空间范围对应的多个子快照的子快照元数据的文件。
快照计量:多个快照的一种综合处理场景,用于统计快照链中正在使用的切片总量,由于采用去重存放方式,无法清楚获知每个快照所在存储空间,因此需要通过快照计量方式,来统计快照链中当前正在使用的切片总量。
快照回收:多个快照的一种综合处理场景,由于采用去重存放方式,一个切片可能不止被一个快照使用,因此进行快照删除时,会将快照先设定删除标记,需要通过快照回收统计设置有删除标记且未被任意快照使用的切片,之后仅将统计获得的切片删除,以清除垃圾空间。
现有技术中,以磁盘为例对多个快照进行综合处理时,通常会采用分布式处理方式,将磁盘存储空间划分为多个任务区间,将多个任务区间分别分配给多个节点,由单个节点处理多个快照中属于该任务区间的数据信息,之后,再汇总多个节点的处理结果即可获得对多个快照的处理结果,对多个快照的综合处理通过分析快照元数据即可,无需对快照进行实际处理,假设总共需要处理m个快照,划分获得n个任务区间,单个节点处理m个快照中属于其对应任务区间的数据信息时,针对每个快照,均会请求获取其快照元数据中属于该任务区间的数据信息,再基于该数据信息进行处理,m个快照需要请求获取m次,由于存在n个任务区间,总共需要请求获取m*n次,当需要处理的快照总量非常多时,请求获取总次数也会非常庞大,且在实际应用中,存放快照元数据的存储系统与处理节点不在同一区域,请求时间进一步延长,处理效率大大降低,而且,过多的请求次数对于存在快照元数据的存储系统也会造成很大压力。
为了提高处理效率,发明人经过一系列研究提出了本申请实施例的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1为本申请实施例提供的一种数据处理方法一个实施例的流程图,该方法可以包括以下几个步骤:
101:基于单个节点的最大处理切片数量,将设备存储空间划分为多个空间范围。
其中,可以是将设备存储空间均匀划分出多个空间范围,多个空间范围的内存空间大小相同,多个空间范围地址连续。
作为一种可选方式,所述基于单个节点的最大切片处理数量,将设备存储空间划分为多个空间范围可以包括:
基于单个节点的最大切片处理数量,确定目标空间大小;
将设备存储空间按照所述目标空间大小划分为地址连续的多个空间范围。
可选地,该目标空间大小可以小于或者等于该最大处理切片数量的切片所占存储空间大小。
因此,作为又一个实施例,所述基于单个节点的最大切片处理数量,确定目标空间大小可以包括:
将单个节点的最大切片处理数量的切片所占存储空间大小,作为目标空间大小。
由于每个切片所占存储空间大小已知,每个切片所占存储空间大小也即存储区间的空间大小,因此具体可以是将最大切片处理数量个存储区间的总空间大小,作为目标空间大小。
例如,单个节点的最大处理切片数量为10,每个存储区间的空间大小为2mb,则该目标空间大小可以为10*2=20mb,划分获得的每个空间范围的空间大小也即该20mb。
由于,对多个快照进行综合处理划分的任务区间也基于单个节点的最大处理切片数量确定,因此,该空间范围需与对多个快照进行综合处理划分的任务区间相同。
如上文中的技术解释,每个空间范围可以采用存储区间范围表示,当然,也可以采用存储地址范围表示,在此不再赘述。
102:确定每个快照分别对应所述多个空间范围的子快照。
103:将每个子快照的子快照元数据分别存储至其对应空间范围的子数据文件中。
其中,所述子数据文件用于单个节点分析处理其对应空间范围的子快照。
若需要综合处理多个快照,则每个快照即可以按照步骤102以及步骤103的方式,存储子快照元数据,使得一个空间范围的子数据文件中可以包括多个快照中属于该空间范围的子快照的子快照元数据。
本实施例中,将每个快照按照多个空间范围分为多个子快照,使得可以将属于同一空间范围的多个子快照的子快照元数据存储在一个子数据文件,且单个空间范围基于单个节点的最大处理切片数量划分,保证单个节点可以完整读取一个子数据文件。因此,在需要多个快照进行处理时,单个节点只需请求获取一次子数据文件,即可以获得其所处理的空间范围的多个子快照元数据,进而实现对多个子快照的处理,大大减少了元数据请求次数,从而可以提高处理效率,并降低元数据存储系统的处理压力。
例如,对m个快照进行综合处理,划分为n个任务,由n个节点执行,该设备存储空间也划分为n个空间范围,每个快照的每个子快照的子快照元数据存储至各自对应空间范围的子数据文件中,单个节点对快照的某个空间范围的数据信息进行处理时,只需请求获取一次子数据文件即可,n个节点总供请求n次,请求数量大大降低,有效提高了处理效率。
为了方便理解子数据文件,如图2中所示,示出了空间范围[1,t]以及空间范围[t 1,2t]的子数据文件中分别存储的各个快照(图2示出了两个快照,快照a以及快照b)的子快照元数据。其中,t表示第t个存储区间,空间范围采用存储区域范围表示。采用存储区域范围表示空间范围,可以清楚获知,每个空间范围内的子快照包括t个切片。
如图2中所示,[1,t]空间范围内:快照a的子快照元数据包括t个切片的切片标识:1-a、2-a、3-a……t-a;快照b的子快照元数据包括t个切片的切片标识:1-a、2-a、3-b……t-b,可知,快照b的该子快照中,至少第1个切片和第2个切片与快照a的相应切片相同。
[t 1,2t]空间范围:快照a的子快照元数据包括t个切片的切片标识:t 1-a、t 2-a、t 3-a……2t-a;快照b的子快照元数据包括t个切片的切片标识:t 1-b、t 1-b、t 3-b……2t-b,
对于其它空间范围与此类似,在此不再赘述。
其中,同一空间范围的多个子快照元数据可以按照创建顺序依次存放在子数据文件中,多个子快照元数据并列存放。
因此,在某些实施例中,所述将每个子快照的子快照元数据分别存储至其对应空间范围的子数据文件中可以包括:
将每个子快照的子快照元数据分别存储至其对应空间范围的子数据文件中,并将对应同一空间范围的多个子快照元数据按照创建顺序依次存放。
在实际应用中,存在对单个快照的处理,因此,每个快照仍可以按照现有流程创建快照元数据并进行存储,本申请实施例只是在原有元数据创建方案基础之上,新增一种元数据格式,即如图2中所示,将不同快照属于同一空间范围的数据信息,也即子快照的子快照元数据存储在一个子数据文件中,使得单个节点可以完整读取该子数据文件。
每次创建或删除快照时,除了现有流程创建、删除快照元数据,还可以在相应子数据文件中创建或删除子快照元数据,图1所示实施例即描述了子快照元数据的创建过程。
因此,在某些实施例中,所述方法还可以包括:
响应于快照删除指令,将待删除快照的各个子快照的子快照元数据,从各自对应空间范围的子数据文件中删除。
按照上述各个实施例创建的子数据文件,在需要对多个快照进行综合处理时,即可以按照划分获得多个空间范围进行任务分配,单个节点进行任务处理时,只需请求获取一次子数据文件。即可以获得其所处理的空间范围的多个子快照元数据。如图3所示,为本申请实施例提供的一种快照处理方法一个实施例的流程图,本实施例从单个节点的处理角度对快照处理方式进行描述,该方法可以包括以下几个步骤:
301:接收处理任务。
302:确定所述处理任务中分配的空间范围。
其中,所述空间范围为基于最大处理切片数量,将设备存储空间划分获得,设备存储空间可以划分获得多个空间范围,具体划分方式可以参见上文实施例中所示。
303:请求获取所述空间范围的子数据文件中的多个子快照元数据;其中,所述多个子快照元数据分别对应多个快照在所述空间范围的子快照。
304:基于所述多个子快照元数据,综合处理所述空间范围对应的多个子快照。
其中,子数据文件的生成可以具体参见上文实施例中所述,在此不再赘述。
其中,该多个快照可以是指存储设备的快照链中的全部数量的快照,当然也可以为是基于处理需求而确定的快照链中的部分数量的快照。
本实施例中,多个快照的属于同一空间范围的子快照的子快照元数据存储在同一个子数据文件,且单个空间范围基于单个节点的最大处理切片数量划分,保证单个节点可以完整读取一个子数据文件。因此,接收到处理任务之后,即可以基于该处理任务分配的空间范围,请求获取所述空间范围的子数据文件中的多个子快照元数据,进而基于该多个子快照元数据,对所述空间范围对应的子快照进行综合处理;由于只需请求获取一次子数据文件,即可以获得属于其分配的空间范围对应的多个子快照元数据,进而实现对多个子快照的处理,大大减少了请求次数,从而可以提高处理效率,并降低了元数据存储系统的处理压力。
在一个实际应用中,该处理任务可以具体是指快照计量任务,因此,在某些实施例中,所述基于所述多个子快照元数据,综合处理所述空间范围对应的多个子快照可以包括:
统计所述多个子快照元数据对应的多个子快照中,属于所述空间范围且不重复的切片总数量,并将所述切片总数量作为所述空间范围的当前使用切片数量。
可选地,所述统计所述多个子快照元数据对应的多个子快照中,属于所述空间范围且不重复的切片总数量,并将所述切片总数量作为所述空间范围的当前使用切片数量可以包括:
创建数据集合并设置初始值为空集;
遍历处理所述多个子快照元数据对应的多个子快照,将每一个子快照使用的切片中未加入所述数据集合中的切片,加入所述数据集合;
统计所述数据集合加入的切片总数量,并将所述切片总数量作为所述空间范围的当前使用切片数量。
需要说明的是,由于是基于子快照元数据进行分析,因此将属于所述空间范围且未加入所述数据集合中的切片,加入所述数据集合,并不是对切片进行物理处理,而是一种逻辑处理,具体的来说,可以是将属于所述空间范围且未加入所述数据集合中的切片的切片标识加入所述数据集合。从而统计该数据集合中切片标识的总数量,即可以确定所述空间范围的当前使用切片数量。
此外,由于去重存放,不同子快照元数据索引的切片中可能存在重复切片,因此对每个子快照进行处理时,仅将其使用的切片中未加入数据集合中的切片加入数据集合,保证数据集合中不包括重复的切片。
在又一个实际应用中,该处理任务可以具体是指快照回收任务,因此,在某些实施例中,所述基于所述多个子快照元数据,综合处理所述空间范围对应的多个子快照可以包括:
从所述多个子快照元数据对应的多个子快照中,统计设置有删除标记的子快照使用的切片中,未被其它任意子快照使用的目标切片。
其中,子快照设置有删除标记具体是指其对应快照设置有切片标记。其中。
统计获得的目标切片即可以从快照链中删除。
可选地,所述从所述多个子快照元数据对应的多个子快照中,统计设置有删除标记的子快照使用的切片中,未被其它任意子快照使用的目标切片可以包括:
遍历处理所述多个子快照元数据对应的多个子快照,若任一个子快照设置有删除标记,将其使用的每个切片的统计数值加0;若未设置有删除标记,将其使用的每个切片的统计数值加1;
将统计数值为0的切片作为目标切片。
其中,每个切片的统计数值的初始值即为0;每个子快照使用的切片可以基于其子快照元数据确定。
图4为本申请实施例提供的一种快照处理方法又一个实施例的流程图,本实施例从任务调度设备角度进行描述,该方法可以包括以下几个步骤:
401:确定待处理的多个快照。
该待处理的多个快照可以是指存储设备的快照链中的全部快照。
402:基于设备存储空间划分获得的多个空间范围,确定分别对应所述多个空间范围的处理任务。
403:将所述多个处理任务分别分配至多个节点,以由每个节点请求获取其分配的空间范围的子数据文件中多个快照对应的多个子快照元数据,并综合处理所述多个子快照元数据对应的子快照;
404:汇总所述多个节点获得的处理结果,获得所述多个快照对应的处理结果。
其中,每个节点对其分配到处理任务的处理操作可以参见图3所示实施例中所述,在此不再赘述。
每个节点处理多个快照中属于一个空间范围的子快照,获得一个空间范围的处理结果,从而汇总多个节点的处理结果,也即汇总多个空间范围的处理结果,即可以得到对该多个快照的处理结果。
其中,该处理任务可以是快照计量任务,则每个节点的处理结果即为其分配的空间范围内多个子快照的当前使用切片数量,汇总多个节点的处理结果,即可以获得该多个快照的当前使用切片数量。
其中,该处理任务可以是快照回收任务,则每个节点的处理结果即为其分配的空间范围内多个子快照对应的目标切片,汇总多个节点的处理结果,即可以获得该多个快照对应的所有目标切片,从而即可以从多个快照中将该目标切片删除。
在一个实际应用中,进行快照处理时可以是由分布式系统执行,分布式系统中包括多个节点,其中,每个节点可以是一个物理机器。多个节点中的主节点可以负责处理任务分配,由从节点负责执行处理任务。
如图5所示的快照处理示意图中,节点50作为主节点,执行确定快照链中的快照501;基于设备存储空间划分获得的多个空间范围,确定分别对应所述多个空间范围的处理任务,并将所述多个处理任务分别分配至多个节点502;
每个节点51作为从节点,从元数据存储系统52中请求获取分配的空间范围的子数据文件中的多个子快照元数据503,并综合处理所述多个子快照元数据对应的子快照,获得处理结果504。
节点50汇总多个节点51获得的处理结果,即可以获得所述快照链对应的处理结果505。
图6为本申请实施例提供的一种数据处理装置一个实施例的结构示意图,该装置可以包括:
空间划分模块601,用于基于单个节点的最大处理切片数量,将设备存储空间划分为多个空间范围;
数据确定模块602,用于确定每个快照分别对应所述多个空间范围的子快照;
数据存储模块603,用于将每个子快照的子快照元数据分别存储至其对应空间范围的子数据文件中;
其中,所述子数据文件用于单个节点分析处理其对应空间范围的子快照。
在某些实施例中,所述空间划分模块具体用于基于单个节点的最大切片处理数量,确定目标空间大小;将设备存储空间按照所述目标空间大小划分为地址连续的多个空间范围。
可选地,所述空间划分模块基于单个节点的最大切片处理数量,确定目标空间大小可以是将单个节点的最大切片处理数量的切片所占存储空间大小,作为目标空间大小。
在某些实施例中,该装置还可以包括:
数据删除模块,用于响应于快照删除指令,将待删除快照中的各个子快照的子快照元数据,从各自对应空间范围的子数据文件中删除。
在某些实施例中,所述数据存储模块具体用于将每个子快照的子快照元数据分别存储至其对应空间范围的子数据文件中,并将对应同一空间范围的多个子快照元数据按照创建顺序依次存放。
图6所述的数据处理装置可以执行图1所示实施例所述的数据处理方法,其实现原理和技术效果不再赘述。对于上述实施例中的数据处理装置其中各个模块、单元执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
在一个可能的设计中,图6所示实施例的数据处理装置可以实现为一计算设备,如图7所示,该计算设备可以包括存储组件601及处理组件602;
所述存储组件601存储一条或多条计算机指令,其中,所述一条或多条计算机指令供所述处理组件602调用执行。
所述处理组件602用于:
基于单个节点的最大处理切片数量,将设备存储空间划分为多个空间范围;
确定每个快照分别对应所述多个空间范围的子快照;
将每个子快照的子快照元数据分别存储至其对应空间范围的子数据文件中;
其中,所述子数据文件用于单个节点分析处理其对应空间范围的子快照。
其中,处理组件602可以包括一个或多个处理器来执行计算机指令,以完成上述的方法中的全部或部分步骤。当然处理组件也可以为一个或多个应用专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理设备(dspd)、可编程逻辑器件(pld)、现场可编程门阵列(fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
存储组件601被配置为存储各种类型的数据以支持在计算设备中的操作。存储组件可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。
当然,计算设备必然还可以包括其他部件,例如输入/输出接口、通信组件等。输入/输出接口为处理组件和外围接口模块之间提供接口,上述外围接口模块可以是输出设备、输入设备等。信组件被配置为便于计算设备和其他设备之间有线或无线方式的通信等。
本申请实施例还提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被计算机执行时可以实现上述图1所示实施例的数据处理方法。
图8为本申请实施例提供一种快照处理装置一个实施例的结构示意图,该装置可以包括:
任务接收模块801,用于接收处理任务;
空间确定模块802,用于确定所述处理任务中分配的空间范围;其中,所述空间范围为基于最大处理切片数量,将设备存储空间划分获得;
数据获取模块803,用于请求获取所述空间范围的子数据文件中的多个子快照元数据;其中,所述多个子快照元数据分别对应多个快照在所述空间范围的子快照;
处理模块804,用于基于所述多个子快照元数据,综合处理所述空间范围对应的多个子快照。
在某些实施例中,所述处理任务为快照计量任务;所述处理模块具体用于统计所述多个子快照元数据对应的多个子快照中,属于所述空间范围且不重复的切片总数量,并将所述切片总数量作为所述空间范围的当前使用切片数量。
可选地,所述处理模块可以具体用于创建数据集合并设置初始值为空集;遍历处理所述多个子快照元数据对应的多个子快照,将每一个子快照使用的切片中未加入所述数据集合中的切片,加入所述数据集合;统计所述数据集合加入的切片总数量,并将所述切片总数量作为所述空间范围的当前使用切片数量。
在某些实施例中,所述处理任务为快照回收任务;
所述处理模块可以具体用于所述多个子快照元数据对应的多个子快照中,统计设置有删除标记的子快照使用的切片中,未被其它任意子快照使用的目标切片。
可选地,所述处理模块可以具体是遍历处理所述多个子快照元数据对应的多个子快照,若任一个子快照设置有删除标记,将其使用的每个切片的统计数值加0;若未设置有删除标记,将其使用的每个切片的统计数值加1;将统计数值为0的切片作为目标切片。
图8所述的数据处理装置可以执行图3所示实施例所述的快照处理方法,其实现原理和技术效果不再赘述。对于上述实施例中的快照处理装置其中各个模块、单元执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
在一个可能的设计中,图8所示实施例的快照处理装置可以实现为一计算设备,如图9所示,该计算设备可以包括存储组件901及处理组件902;
所述存储组件901存储一条或多条计算机指令,其中,所述一条或多条计算机指令供所述处理组件902调用执行。
所述处理组件902用于:
接收处理任务;
确定所述处理任务中分配的空间范围;其中,所述空间范围为基于最大处理切片数量,将设备存储空间划分获得;
请求获取所述空间范围的子数据文件中的多个子快照元数据;其中,所述多个子快照元数据分别对应多个快照在所述空间范围的子快照;
基于所述多个子快照元数据,综合处理所述空间范围对应的多个子快照。
其中,处理组件902可以包括一个或多个处理器来执行计算机指令,以完成上述的方法中的全部或部分步骤。当然处理组件也可以为一个或多个应用专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理设备(dspd)、可编程逻辑器件(pld)、现场可编程门阵列(fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
存储组件901被配置为存储各种类型的数据以支持在计算设备中的操作。存储组件可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。
当然,计算设备必然还可以包括其他部件,例如输入/输出接口、通信组件等。
本申请实施例还提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被计算机执行时可以实现上述图3所示实施例的数据处理方法。
图10为本申请实施例提供的一种快照处理装置又一个实施例的结构示意图,该装置可以包括:
快照确定模块1001,用于确定待处理的多个快照;
任务生成模块1002,用于基于设备存储空间划分获得的多个空间范围,确定分别对应所述多个空间范围的处理任务;
任务分配模块1003,用于将所述多个处理任务分别分配至多个节点,以由每个节点请求获取其分配的空间范围的子数据文件中的多个子快照元数据,并综合处理所述多个子快照元数据对应的子快照;
结果汇总模块1004,用于汇总所述多个节点获得的处理结果,获得所述多个快照对应的处理结果。
图10所述的数据处理装置可以执行图4所示实施例所述的快照处理方法,其实现原理和技术效果不再赘述。对于上述实施例中的快照处理装置其中各个模块、单元执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
在一个可能的设计中,图10所示实施例的快照处理装置可以实现为一计算设备,如图11所示,该计算设备可以包括存储组件1101及处理组件1102;
所述存储组件1101存储一条或多条计算机指令,其中,所述一条或多条计算机指令供所述处理组件1102调用执行。
所述处理组件1102用于:
确定待处理的多个快照;
基于设备存储空间划分获得的多个空间范围,确定分别对应所述多个空间范围的处理任务;
将所述多个处理任务分别分配至多个节点,以由每个节点请求获取其分配的空间范围的子数据文件中的多个子快照元数据,并综合处理所述多个子快照元数据对应的子快照;
汇总所述多个节点获得的处理结果,获得所述多个快照对应的处理结果。
其中,处理组件1102可以包括一个或多个处理器来执行计算机指令,以完成上述的方法中的全部或部分步骤。当然处理组件也可以为一个或多个应用专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理设备(dspd)、可编程逻辑器件(pld)、现场可编程门阵列(fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
存储组件1101被配置为存储各种类型的数据以支持在计算设备中的操作。存储组件可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。
当然,计算设备必然还可以包括其他部件,例如输入/输出接口、通信组件等。
本申请实施例还提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被计算机执行时可以实现上述图4所示实施例的数据处理方法。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
1.一种数据处理方法,其特征在于,包括:
基于单个节点的最大处理切片数量,将设备存储空间划分为多个空间范围;
确定每个快照分别对应所述多个空间范围的子快照;
将每个子快照的子快照元数据分别存储至其对应空间范围的子数据文件中;
其中,所述子数据文件用于单个节点分析处理其对应空间范围的子快照。
2.根据权利要求1所述的方法,其特征在于,所述基于单个节点的最大切片处理数量,将设备存储空间划分为多个空间范围包括:
基于单个节点的最大切片处理数量,确定目标空间大小;
将设备存储空间按照所述目标空间大小划分为地址连续的多个空间范围。
3.根据权利要求2所述的方法,其特征在于,所述基于单个节点的最大切片处理数量,确定目标空间大小包括:
将单个节点的最大切片处理数量的切片所占存储空间大小,作为目标空间大小。
4.根据权利要求1所述的方法,其特征在于,还包括:
响应于快照删除指令,将待删除快照中的各个子快照的子快照元数据,从各自对应空间范围的子数据文件中删除。
5.根据权利要求1所述的方法,其特征在于,所述将每个子快照的子快照元数据分别存储至其对应空间范围的子数据文件中包括:
将每个子快照的子快照元数据分别存储至其对应空间范围的子数据文件中,并将对应同一空间范围的多个子快照元数据按照创建顺序依次存放。
6.一种快照处理方法,其特征在于,包括:
接收处理任务;
确定所述处理任务中分配的空间范围;其中,所述空间范围为基于最大处理切片数量,将设备存储空间划分获得;
请求获取所述空间范围的子数据文件中的多个子快照元数据;其中,所述多个子快照元数据分别对应多个快照在所述空间范围的子快照;
基于所述多个子快照元数据,综合处理所述空间范围对应的多个子快照。
7.根据权利要求6所述的方法,其特征在于,所述处理任务为快照计量任务;
所述基于所述多个子快照元数据,综合处理所述空间范围对应的多个子快照包括:
统计所述多个子快照元数据对应的多个子快照中,属于所述空间范围且不重复的切片总数量,并将所述切片总数量作为所述空间范围的当前使用切片数量。
8.根据权利要求7所述的方法,其特征在于,所述统计所述多个子快照元数据对应的多个子快照中,属于所述空间范围且不重复的切片总数量,并将所述切片总数量作为所述空间范围的当前使用切片数量包括:
创建数据集合并设置初始值为空集;
遍历处理所述多个子快照元数据对应的多个子快照,将每一个子快照使用的切片中未加入所述数据集合中的切片,加入所述数据集合;
统计所述数据集合加入的切片总数量,并将所述切片总数量作为所述空间范围的当前使用切片数量。
9.根据权利要求6所述的方法,其特征在于,所述处理任务为快照回收任务;
所述基于所述多个子快照元数据,综合处理所述空间范围对应的多个子快照包括:
从所述多个子快照元数据对应的多个子快照中,统计设置有删除标记的子快照使用的切片中,未被其它任意子快照使用的目标切片。
10.根据权利要求9所述的方法,其特征在于,所述从所述多个子快照元数据对应的多个子快照中,统计设置有删除标记的子快照使用的切片中,未被其它任意子快照使用的目标切片包括:
遍历处理所述多个子快照元数据对应的多个子快照,若任一个子快照设置有删除标记,将其使用的每个切片的统计数值加0;若未设置有删除标记,将其使用的每个切片的统计数值加1;
将统计数值为0的切片作为目标切片。
11.一种快照处理方法,其特征在于,包括:
确定待处理的多个快照;
基于设备存储空间划分获得的多个空间范围,确定分别对应所述多个空间范围的处理任务;
将所述多个处理任务分别分配至多个节点,以由每个节点请求获取其分配的空间范围的子数据文件中的多个子快照元数据,并综合处理所述多个子快照元数据对应的子快照;
汇总所述多个节点获得的处理结果,获得所述多个快照对应的处理结果。
12.一种数据处理装置,其特征在于,包括:
空间划分模块,用于基于单个节点的最大处理切片数量,将设备存储空间划分为多个空间范围;
数据确定模块,用于确定每个快照分别对应所述多个空间范围的子快照;
数据存储模块,用于将每个子快照的子快照元数据分别存储至其对应空间范围的子数据文件中;
其中,所述子数据文件用于单个节点分析处理其对应空间范围的子快照。
13.一种快照处理装置,其特征在于,包括:
任务接收模块,用于接收处理任务;
空间确定模块,用于确定所述处理任务中分配的空间范围;其中,所述空间范围为基于最大处理切片数量,将设备存储空间划分获得;
数据获取模块,用于请求获取所述空间范围的子数据文件中的多个子快照元数据;其中,所述多个子快照元数据分别对应多个快照在所述空间范围的子快照;
处理模块,用于基于所述多个子快照元数据,综合处理所述空间范围对应的多个子快照。
14.一种快照处理装置,其特征在于,包括:
快照确定模块,用于确定待处理的多个快照;
任务生成模块,用于基于设备存储空间划分获得的多个空间范围,确定分别对应所述多个空间范围的处理任务;
任务分配模块,用于将所述多个处理任务分别分配至多个节点,以由每个节点请求获取其分配的空间范围的子数据文件中的多个子快照元数据,并综合处理所述多个子快照元数据对应的子快照;
结果汇总模块,用于汇总所述多个节点获得的处理结果,获得所述多个快照对应的处理结果。
15.一种计算设备,其特征在于,包括处理组件以及存储组件;
所述存储组件存储一个或多个计算机指令;所述一个或多个计算机指令用以被所述处理组件调用执行;
所述处理组件用于:
基于单个节点的最大处理切片数量,将设备存储空间划分为多个空间范围;
确定每个快照分别对应所述多个空间范围的子快照;
将每个子快照的子快照元数据分别存储至其对应空间范围的子数据文件中;
其中,所述子数据文件用于单个节点分析处理其对应空间范围的子快照。
16.一种计算设备,其特征在于,包括处理组件以及存储组件;
所述存储组件存储一个或多个计算机指令;所述一个或多个计算机指令用以被所述处理组件调用执行;
所述处理组件用于:
接收处理任务;
确定所述处理任务中分配的空间范围;其中,所述空间范围为基于最大处理切片数量,将设备存储空间划分获得;
请求获取所述空间范围的子数据文件中的多个子快照元数据;其中,所述多个子快照元数据分别对应多个快照在所述空间范围的子快照;
基于所述多个子快照元数据,综合处理所述空间范围对应的多个子快照。
17.一种计算设备,其特征在于,包括处理组件以及存储组件;
所述存储组件存储一个或多个计算机指令;所述一个或多个计算机指令用以被所述处理组件调用执行;
所述处理组件用于:
确定待处理的多个快照;
基于设备存储空间划分获得的多个空间范围,确定分别对应所述多个空间范围的处理任务;
将所述多个处理任务分别分配至多个节点,以由每个节点请求获取其分配的空间范围的子数据文件中的多个子快照元数据,并综合处理所述多个子快照元数据对应的子快照;
汇总所述多个节点获得的处理结果,获得所述多个快照对应的处理结果。
技术总结