一种数据处理方法和装置与流程

文档序号:14910990发布日期:2018-07-10 23:24阅读:175来源:国知局
本申请涉及计算机
技术领域
,尤其涉及一种数据处理方法和装置。
背景技术
:随着计算机技术的发展,数据的安全性和可靠性越来越引起行业的重视,因此带动了备份业务的兴起和快速发展。备份业务,是指将一个存储节点(下文中称为第一存储节点)中的待备份数据备份至另一个存储节点(下文中称为第二存储节点)的业务。在备份业务中,第一存储节点存储数据的基本单位是数据块,通常一个数据块的大小可以是4M。待备份数据是以数据文件的方式被备份至第二存储节点中的。目前,最常见的是技术方案是将待备份数据的每个数据块作为一个数据文件。这样,当待备份数据较大时,数据文件的数量会很大。例如,假设待备份数据的大小是100G,则这100G数据可分为25600个数据块,因此,会生成25600个数据文件。由于每次向第二存储节点写入一个数据文件,因此共需要写入25600次。这会导致备份性能下降。技术实现要素:为了达到上述目的,本申请提供了一种数据处理方法和装置,有助于提高备份性能。第一方面,本申请提供了一种数据处理方法,该方法可以包括:从第一存储节点中读取待备份数据;将待备份数据分成m个第二类数据块;其中,m是大于等于2的整数,第二类数据块是数据处理装置存储数据的基本单位;将m个第二类数据块中的n个第二类数据块聚合成一个数据文件,并将数据文件写入第二存储节点;其中,2≤n<m,n是整数;数据文件是数据处理装置单流一次向第二存储节点写入的第二类数据块构成的集合。如此一来,一方面,由于第二类数据块通常是第一类数据块的整数倍,其中,第一类数据块是第一存储节点存储数据的基本单位,因此,相比现有技术中,将一个第一类数据块作为一个数据文件的技术方案相比,本实施例提供的技术方案可以减少数据文件的数量,从而提高备份性能。另一方面,由于本实施例中,待备份数据至少会被分成2个数据文件,因此支持数据文件并发写入第二存储节点,因此,可以提高备份性能。在一种可能的设计中,在将m个第二类数据块中的n个第二类数据块聚合成一个数据文件之前,该方法还可以包括:根据公式are=min{W/min{K1,p1},a0},确定数据文件的大小的参考值are;以及,根据数据文件的大小的参考值are和第二类数据块的大小,确定数据文件中包括的第二类数据块的个数n。其中,W表示待备份数据的大小,K1表示数据处理装置并发向第二存储节点写数据的流数的预设值,p1表示数据处理装置根据当前备份业务情况确定的待备份数据的可用并发流数,a0表示向第二存储节点中单流一次写入的数据量的预设值。该可能的设计提供了一种确定数据文件的大小的参考值以及n的取值的方式,其中,数据文件的大小的参考值与数据处理装置并发向第二存储节点写数据的流数的预设值,以及当前备份业务情况等相关,如此一来,通过合理设置数据文件的大小的参考值,有助于提高第二存储节点的写性能,从而提高备份性能。在一种可能的设计中,该方法还可以包括:生成待备份数据的元数据文件;其中,元数据文件包括以下信息中的至少一种:根据待备份数据生成的每一数据文件的标识、每一数据文件中的第二类数据块的标识,以及每一数据文件中的第二类数据块在相应数据文件中的位置信息;并将该元数据文件写入第二存储节点。可选的,元数据文件还可以包括:第二类数据块的大小。另外,元数据文件中还可以包括:元数据文件的标识,目标虚拟机对应的磁盘的个数,目标虚拟机对应的磁盘的标识等,具体可参见本申请具体实施方式部分。在一种可能的设计中,从第一存储节点中读取待备份数据,可以包括:根据第一存储节点的读性能指标和第一类数据块的大小,确定从第一存储节点中一次读取的连续的第一类数据块的个数的参考值r;其中,第一类数据块是第一存储节点存储数据的基本单位;r是大于等于2的整数;根据从第一存储节点中一次读取的连续的第一类数据块的个数的参考值r,从第一存储节点中读取待备份数据。相比现有技术中一次读取一个第一类数据块的技术方案,该可能的设计提供的技术方案中,一次可以读取连续的多个第一类数据块,这样,可以减少读取第一类数据块的次数,从而提高系统性能。另外,由于待备份数据中的第一类数据块通常是连续的,因此本实施例具有较强的实用性。并且,该可能的设计中,r的取值与第一存储节点的读性能指标相关,如此一来,通过合理设置r的取值,有助于提高第一存储节点的读性能,从而有助于提高备份性能。在一种可能的设计中,该方法还可以包括:接收恢复请求后,确定待恢复第二类数据块的标识,并根据公式bre=min{are,b0},确定从第二存储节点中单流一次读取的数据量的参考值bre;其中待恢复第二类数据块是待备份数据中的部分或全部第二类数据块;are表示数据文件的大小的参考值,b0表示从第二存储节点中单流一次读取的数据量的预设值;从第二存储节点中获取元数据文件;根据待恢复第二类数据块的标识,从元数据文件中确定待恢复第二类数据块所在的目标数据文件的标识;根据从第二存储节点中单流一次读取的数据量的参考值bre和目标数据文件的标识,确定从目标数据文件中一次读取的连续的多个待恢复第二类数据块的标识;根据连续的多个待恢复第二类数据块的标识,在目标数据文件中一次读取连续的多个待恢复第二类数据块;将连续的多个待恢复第二类数据块写入第一存储节点。该可能的设计提供了一种恢复业务的流程,通过合理设置单次读取的数据量,有助于提高恢复性能。在一种可能的设计中,将多个待恢复第二类数据块写入第一存储节点,可以包括:根据第一存储节点的写性能指标,确定向第一存储节点中一次写入的数据量的参考值;若向第一存储节点中一次写入的数据量的参考值小于第二类数据块的大小,则根据向第一存储节点中一次写入的数据量的参考值,将从一个或多个目标数据文件中读取的待恢复第二类数据块进行分片,得到第三类数据块;或,若向第一存储节点中一次写入的数据量的参考值大于第二类数据块的大小,则根据向第一存储节点中一次写入的数据量的参考值,将从一个或多个目标数据文件中读取的待恢复第二类数据块进行聚合,得到第三类数据块;或,若向第一存储节点中一次写入的数据量的参考值等于第二类数据块的大小,则将从一个或多个数据文件中读取的每个待恢复第二类数据块作为一个第三类数据块,得到第三类数据块;其中,从一个或多个目标数据文件中读取的待恢复第二类数据块包括连续多个待恢复第二类数据块;将第三类数据块写入第一存储节点。该可能的设计中,根据第一存储节点的写性能,向第一存储节点中写入待恢复数据。由于写入数据的过程与第一存储节点相关,因此,通过合理设置单次读取和/或写入的数据量,有助于提高恢复性能。第二方面,本申请提供了一种数据处理装置,用于执行上述第一方面提供的任一种方法。该数据处理装置具体可以是上述第一方面中描述的数据处理装置。在一种可能的设计中,可以根据上述第一方面提供的方法对该数据处理装置进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。在另一种可能的设计中,该装置可以包括:存储器和处理器,存储器用于存储计算机程序,该计算机程序被处理器执行时,使得第一方面面提供的任一方法被执行。本申请实施例还提供了一种处理装置,用以实现上述数据处理装置的功能,该处理装置包括处理器和接口;处理装置可以是一个芯片,处理器可以通过硬件来实现也可以通过软件来实现,当通过硬件实现时,该处理器可以是逻辑电路、集成电路等;当通过软件来实现时,该处理器可以是一个通用处理器,通过读取存储器中存储的软件代码来实现,该存储器可以集成在处理器中,可以位于处理器之外,独立存在。本申请还提供了一种计算机可读存储介质,其上储存有计算机程序,当该程序在计算机上运行时,使得计算机执行上述第一方面的任一种可能的方法。本申请还提供了一种计算机程序产品,当其在计算机上运行时,使得第一方面提供的任一方法被执行。可以理解的,上述提供的任一种数据处理装置或处理装置或计算机存储介质或计算机程序产品均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考对应的方法中的有益效果,此处不再赘述。附图说明图1为本申请实施例提供的一种数据处理方法所适用的系统架构示意图;图2为本申请实施例提供的一种备份业务的方法的交互示意图;图3为本申请实施例提供的一种备份业务的过程示意图一;图4为本申请实施例提供的一种备份业务的过程示意图二;图5为本申请实施例提供的一种备份业务的过程示意图三;图6为本申请实施例提供的一种备份业务的过程示意图四;图7为本申请实施例提供的一种恢复业务的方法的交互示意图;图8为本申请实施例提供的一种数据处理装置的结构示意图一;图9为本申请实施例提供的一种数据处理装置的结构示意图二。具体实施方式以下,对本申请中涉及的术语进行解释,以方便读者理解:第一类数据块,是第一存储节点存储数据的基本单位。不同第一存储节点的第一类数据块的大小可以相等,也可以不相等。第二类数据块,是数据处理装置存储数据的基本单位。可选的,第二类数据块的大小是第一类数据块的大小的整数倍。例如,第一类数据块和第二类数据块的大小可以均是4M。又如,第一类数据块的大小是4M,第二类数据块的大小是8M。第一类数据块的大小和第二类数据块的大小中的任意一个或多个可以是预定义的,本申请不限于此。数据文件,是数据处理装置单流一次向第二存储节点写入的第二类数据块的集合。执行一次备份业务的过程中,可以生成一个或多个数据文件。元数据文件,是描述备份数据的数据(dataaboutdata),主要是描述数据属性(property)的信息,可以用来支持如指示存储位置、历史数据、资源查找、文件记录等功能。执行一次备份业务的过程中,可以生成一个元数据文件。增量备份(incrementalbackup),是备份业务的一种类型,是指在进行一次全量备份或增量备份后,每次执行备份业务时,只需备份与前一次备份相比增加或被修改的第一类数据块。本申请中的术语“和/或”,仅仅用于描述关联对象的关联关系,表示关联对象之间可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B。符号“/”表示关联对象是或者的关系,例如A/B表示A或者B。术语“第一”、“第二”等是用于区别不同的对象,而不是用于描述对象的特定顺序。“多个”是指两个或两个以上。本申请实施例提供的技术方案可以应用于如图1所示的系统架构中。参见图1,该系统架构可以包括:至少一个第一存储节点11,至少一个第二存储节点12,数据处理装置13,以及客户机14。数据处理装置13与每一个第一存储节点11、每一个第二存储节点12,以及客户机14连接。本申请对第一存储节点11的数量和第二存储节点12的数量不作限制。其中:第一存储节点11,是用于提供待备份数据和/或对数据进行恢复的节点。第二存储节点12,是用于备份待备份数据和/或提供已备份的数据的节点。数据处理装置13,可以用于执行备份业务和/或恢复业务等。数据处理装置13中可以安装一个软件,并具体由这个软件执行备份业务和/或恢复业务。其中,执行备份业务,是指数据处理装置读取第一存储节点中的待备份数据,并将该待备份数据存储至第二存储节点的过程。执行恢复业务,是指数据处理装置读取第二存储节点中的备份数据,并将该备份数据存储至第一存储节点,以用于第一存储节点恢复数据的过程。客户机14,可以用于接收用户的指示,从而开始执行备份业务和/或恢复业务。当然,数据处理装置13执行备份业务和/或恢复业务的触发条件不限于此。客户机14中可以设置一个或多个虚拟机,通常,每一个虚拟机与一个第一存储节点11中的一个或多个磁盘之间存在对应关系(或称为映射关系),或者与多个第一存储节点11中的一个或多个磁盘之间存在对应关系。不同虚拟机对应的磁盘不同。同一个虚拟机对应的磁盘可以更新。不同虚拟机对应的磁盘可以属于同一个第一存储节点,也可以属于不同的第一存储节点。例如,假设客户机14中设置了虚拟机1~4,则虚拟机、磁盘和第一存储节点之间的对应关系可以如表1所示:表1一次备份业务是针对一个虚拟机对应的磁盘中可存储或已存储的第一类数据块而言的。换句话说,一次备份业务的执行对象是一个虚拟机对应的磁盘中的数据。针对一个虚拟机对应的磁盘中的数据执行不同备份业务的过程中,生成的数据文件的标识不同。例如,对虚拟机1对应的磁盘中的数据执行多次备份业务后所生成的数据文件可以如表2所示:表2数据处理装置执行一次备份业务之后,会生成一个元数据文件。在执行一次备份业务时,除了以数据文件的形式向第二存储节点写入待备份数据之外,还会向第二存储节点写入元数据文件。关于元数据文件的具体示例可参考下文。执行不同备份业务,生成的元数据文件不同,该不同备份业务的执行对象可以相同,也可以不同。例如,假设客户机中设置有虚拟机1、2,某一时刻。虚拟机、备份业务与元数据文件的标识之间的对应关系可以如表3所示。表3一次恢复业务是针对一个虚拟机对应的磁盘中已存储的第一类数据块而言的。在恢复业务中,数据处理装置通过元数据文件在第二存储节点中读取待恢复数据,然后将待恢复数据发送给第一存储节点,以使得第一存储节点根据待恢复数据进行数据恢复。以下,结合附图对本申请提供的数据处理方法进行说明。如图2所示,为本申请实施例提供的一种备份业务的方法的交互示意图。图2所示的方法可以应用于如图1所示的系统架构中。图2所示的方法包括如下步骤S101~S112:S101:数据处理装置获取本次备份业务的相关信息。其中,本次备份业务的相关信息可以包括:本次备份业务所针对的目标虚拟机的标识、第一存储节点的标识,以及第二存储节点的标识。其中,该目标虚拟机可以是客户机中设置的任意一个虚拟机,第二存储节点可以是系统(例如如图1所示的系统)中的任意一个第二存储节点。在云计算领域中,通常,定期或不定期地会有大量的数据需要从一个存储节点备份至另一个存储节点。作为一个示例,在每次备份业务中,需要先触发数据处理装置获取本次备份业务的相关信息。本申请对如何触发数据处理装置获取本次备份业务的相关信息的实现方式不进行限定,例如,可以是用户通过客户机向数据处理装置指示的,也可以是预先设置好的。例如,在定期备份场景中,可以预先设置在某一时刻数据处理装置需要执行一次备份业务。数据处理装置可以同时执行多个备份业务,例如同时执行对虚拟机1对应的磁盘中的数据进行备份的业务,以及对虚拟机2对应的磁盘中的数据进行备份的业务。其中,虚拟机1对应的磁盘和虚拟机2对应的磁盘可以属于同一个第一存储节点,也可以属于不同的第一存储节点。S101中描述的本次备份业务可以是数据处理装置执行的任意一个备份业务。在一种实现方式中,目标虚拟机的标识、第一存储节点的标识,以及第二存储节点的标识,可以均是用户通过客户机向数据处理装置指示的。在另一种实现方式中,目标虚拟机的标识以及第二存储节点的标识,可以是用户通过客户机向数据处理装置指示的。第一存储节点的标识可以是数据处理装置根据目标虚拟机的标识,以及客户机中设置的虚拟机与第一存储节点之间的对应关系获取到的。例如,参见表1,若目标虚拟机的标识是虚拟机1,则S101中获取到的第一存储节点的标识是第一存储节点1;若目标虚拟机的标识是虚拟机3,则S101中获取到的第一存储节点的标识是第一存储节点2。在另一种实现方式中,目标虚拟机的标识可以是用户通过客户机向数据处理装置指示的。第一存储节点的标识可以是数据处理装置根据目标虚拟机的标识,以及客户机中设置的虚拟机与第一存储节点之间的对应关系获取到的。第二存储节点的标识可以是数据处理装置为本次备份业务分配的第二存储节点的标识,例如但不限于根据各存储节点的剩余存储空间,已用存储空间等信息分配的。需要说明的是,在一次备份业务中,第一存储节点的个数和第二存储节点的个数均可以是一个或多个,为了方便描述,下文中均以一次备份业务中,第一存储节点的个数是1,且第二存储节点的个数是1为例进行说明。S102:数据处理装置根据目标虚拟机的标识,确定本次备份业务对应的磁盘;然后,根据本次备份业务对应的磁盘,向第一存储节点发送快照操作,以获取本次备份业务的差量位图(bitmap)信息或变化块(changeblocktracking,CBT)信息。具体的,快照操作可以包括目标虚拟机对应的磁盘的标识,用于指示第一存储节点对目标虚拟机对应的磁盘中存储的第一类数据块打快照。第一存储节点接收到该快照操作后,对目标虚拟机对应的磁盘中存储的第一类数据块打快照,然后获取本次快照操作所指定的第一类数据块与上一次快照操作所指定的第一类数据块之间的差异数据块,并根据该差异数据块构建差量位图信息或CBT信息,将所构建的差量位图信息或CBT信息发送给数据处理装置。快照,是关于指定数据集合的一个完全可用拷贝,该拷贝包括相应数据在某个时间点(即拷贝开始的时间点)的映像。快照可以是其所指定的数据集合的一个副本。从技术角度来讲,快照是指向保存在存储系统中的数据的引用标记或指针。第一存储节点每接收到一个快照操作,即可得到该快照操作所指定的数据。其中,第一存储节点接收到的第1个快照操作所指定的数据,是时间标签早于或等于第1个快照操作的时间标签的IO操作(具体是指写操作)所携带的待写数据构成的集合;第一存储节点接收到的第i个快照操作所指定的数据,是时间标签晚于第i-1个快照操作的时间标签,且早于或等于第i个快照操作的时间标签的IO操作所携带的待写数据构成的集合。S103:数据处理装置根据该差量位图信息或CBT信息,以及第一类数据块与第二类数据块之间的大小关系,确定本次备份业务的待备份数据。可选的,第二类数据块的大小是第一类数据块的大小的整数倍。若第二类数据块的大小与第一类数据块的大小相等,则本次备份业务的待备份数据即是差量位图信息或CBT信息所指示的第一类数据块。例如,若本次备份业务的差量位图信息是110001,则说明目标虚拟机对应的磁盘中的第1、2、6个第一类数据块有数据增加或修改,该情况下,待备份数据即是目标虚拟机对应的磁盘中的第1、2、6个第一类数据块。若第二类数据块的大小大于第一类数据块的大小,则由于在备份业务中,元数据文件中通常不会包含第一类数据块的信息,因此,为了使数据处理装置在执行恢复业务时,能够得出第一类数据块与第二类数据块之间的对应关系,通常需要强制备份一些数据块。例如,若本次备份业务的差量位图信息是110001,则说明目标虚拟机对应的磁盘中的第1、2、3、6个第一类数据块有数据增加或修改,该情况下,假设第二类数据块的大小是第一类数据块的大小的2倍,则通常除了需要备份第1、2、6个第一类数据块之外,还需要备份第5个第一类数据块。因此,该情况下,待备份数据是第1、2、5、6个第一类数据块。S104:数据处理装置根据第一存储节点的读性能指标和第一类数据块的大小,确定从第一存储节点中一次读取的连续的第一类数据块的个数的参考值r。其中,r是大于等于2的整数。第一存储节点的读性能指标是表示第一存储节点的读性能与从第一存储节点中一次读取的数据量之间的关系的指标。不同第一存储节点的读性能指标可以相同,也可以不相同。第一存储节点的读性能是可以更新的,例如,第一存储节点的读性能可能随着第一存储节点的升级而更新。作为一个示例,可以使用数据读取速率来表征第一存储节点的读性能,其中,数据读取速率是指数据处理装置从第一存储节点中读取数据的速率。示例的,第一存储节点的读性能指标,可以用于表示:当一次读取的数据量是12M时,第一存储节点的数据读取速率最大,即读性能最高。通常,当一次读取的数据量小于等于一阈值时,一次读取的数据量越大,第一存储节点的读性能越高;当一次读取的数据量大于该阈值时,第一存储节点的读性能不再随着一次读取的数据量的增大而增高。因此,第一存储节点的读性能指标,可以是数据处理装置根据历史读取记录确定的。例如,数据处理装置可以记录多次从第一存储节点中读取数据的过程中,数据读取速率与一次读取的数据量之间的对应关系,然后将数据读取速率最大时,一次读取的数据量的最小值与第一类数据块的大小的比值取整后得到的值作为r,或者,将出现频率最高的数据量与第一类数据块的大小的比值取整后得到的值作为r。例如,假设记录了3次历史读取记录,且分别是:一次读取的数据量是4M时,第一存储节点的数据读取速率是4M/s;一次读取的数据量是8M时,第一存储节点的数据读取速率是8M/s;一次读取的数据量是12M时,第一存储节点的数据读取速率是8M/s。该情况下,一次读取的数据量可以是8M;若第一类数据块的大小是4M,则r=8M/4M=2。另外,第一存储节点的读性能指标,也可以是预先存储在数据处理装置中的。例如,由于第一存储节点的读性能指标通常在第一存储节点出厂时即标记在设备说明书中。因此可以在部署如图1所示的系统架构时,即将第一存储节点的读性能指标均记录在数据处理装置中。在一种可选的实现方式中,由于一次读取的数据量增大时,第一存储节点中需要设置较大的缓存空间来缓存这些数据。因此,具体实现时,数据处理装置可以根据自身缓存空间的大小,以及同时可执行/实际执行的备份业务的个数来预先设置或后期配置一次读取的数据量的最大值。该情况下,数据处理装置可以根据一次读取的数据量的最大值和第一存储节点的读性能指标,确定一次读取的连续的第一类数据块的个数的参考值r。例如,假设第一存储节点的读性能指标用于表示:当一次读取的数据量是8M时,第一存储节点的读性能最高;而数据处理装置中设置的一次读取的数据量的最大值是4M,则取8M和4M的最小值(即4M)作为一次读取的数据量;若第一类数据块的大小是4M,则一次读取的连续的第一类数据块的个数r=4M/4M=1。需要说明的是,由于对于一个第一存储节点来说,其读性能指标可以是固定的,或者在一段时间内可以是固定的,因此,实际实现时,S104可以是可选的步骤,即并非每一次执行备份业务时,均需要根据第一存储节点的读性能指标,确定一次读取的连续的第一类数据块的个数的参考值r的取值。另外需要说明的是,本申请中描述的“连续”具体是指在第一存储节点中的存储地址连续。为了便于理解和方便描述,本申请中的具体示例中,均使用第一类数据块的标识(具体可以是编号)是否连续来表征第一类数据块在第一存储节点中的存储地址是否连续。另外,由于数据处理装置读取数据通常是基于首地址和偏移量来读取的,因此,数据处理装置可以一次读取连续的多个第一类数据块。S105:数据处理装置基于r,从第一存储节点中尽量聚合读取待备份数据中的第一类数据块。具体的,数据处理装置尽量一次读取待备份数据中的r个连续的第一类数据块。可以理解的,数据处理装置一次可以读取多少个第一类数据块,除了与r的取值有关外,还与待备份数据中的第一类数据块的连续情况有关,例如,由于待备份数据中的第一类数据块可能是不连续的,或者连续的第一类数据块的个数小于r等于r或者大于r,因此一次读取第一类数据块的个数可以小于或等于r。尽量聚合待备份数据中的第一类数据块是指:若待备份数据中连续的第一类数据块的个数大于或等于r,则一次读取待备份数据中的r个连续的第一类数据块;若待备份数据中连续的第一类数据块的个数小于r,则一次读取待备份数据中的这些连续的第一类数据块。示例的,假设r=2,第一类数据块的大小是4M,本次备份业务的待备份数据是:第一类数据块1、2、3、6,则数据处理装置可以第1次读取第一类数据块1~2,即将第一类数据块1~2进行聚合读取,共8M;第2次读取第一类数据块3,共4M;第3次读取第一类数据块6,共4M。如图3或图4所示。相比现有技术中每次读取一个第一类数据块的技术方案,本实施例中,每次可以读取连续的多个第一类数据块,这样,可以减少读取第一类数据块的次数,从而提高系统性能。另外,由于待备份数据中的第一类数据块通常是连续的,因此本实施例具有较强的实用性。S106:数据处理装置根据待备份数据,生成若干个第二类数据块,并缓存第二类数据块。数据处理装置读取到待备份数据之后,通常先缓存待备份数据,然后再对缓存的待备份数据进行处理(例如生成数据文件等),因此需要根据待备份数据,生成若干个第二类数据块。例如,如图3所示,若第二类数据块的大小是4M,则数据处理装置可以将每个第一类数据块作为一个第二类数据块,第一类数据块与其对应的第二类数据块的编号相同。又如,如图4所示,若第二类数据块的大小是8M,则数据处理装置可以将第一类数据块1、2作为第二类数据块1,将第一类数据块3、4作为第二类数据块2,将第一类数据块5、6作为第二类数据块3。需要说明的是,由于在备份业务中,元数据文件中通常不会包含第一类数据块的信息,因此,为了使数据处理装置在执行恢复业务时,能够得出第一类数据块与第二类数据块之间的对应关系(具体分析过程可参考下文中关于恢复业务的流程),在第二类数据块与第一类数据块的大小相等的情况下,例如图3所示的示例,可以将第一类数据块的编号作为其对应的第二类数据块的编号。在第二类数据块与第一类数据块的大小不相等的情况下,可以强制备份一些数据块。例如,在图4所示的示例中,除了备份第一类数据块1、2、3、6之外,还备份了第一类数据块4、5。S107:数据处理装置根据并发向第二存储节点写数据的流数的预设值、待备份数据的可用并发流数、向第二存储节点中单流一次写入的数据量的预设值,以及待备份数据的大小,确定一个数据文件的大小的参考值。例如,根据如下公式are=min{W/min{K1,p1},a0},确定一个数据文件的大小的参考值are。其中W表示待备份数据的大小,K1表示数据处理装置并发向第二存储节点写数据的流数的预设值,p1表示数据处理装置根据当前备份业务情况确定的待备份数据的可用并发流数,a0表示向第二存储节点中单流一次写入的数据量的预设值。其中,待备份数据的可用并发流数p1,是指数据处理装置分配给该待备份数据的并发流数。可以理解的,数据处理装置同时执行多个备份业务时,可以根据一定的策略,为每一备份业务分配并发流数。本申请对该策略不进行限定,例如,可以是平均分配策略等。当前备份业务的情况可以例如但不限于包括数据处理装置当前执行的备份业务的个数,当前执行的备份业务的优先级等。例如,若数据处理装置的可用并发总流数是20,且同时执行4个备份业务,并且数据处理装置使用平均分配策略为分配每个备份业务的可用并发流数,则这4个备份业务中的每个备份业务的可用并发流数是20/4=5。K1可以是在“数据处理装置以并发流数是K1,且单流一次写入的数据量是a0,向第二存储节点中写数据时,第二存储节点的写性能最高”的情况下所确定的K1。a0可以是在该情况下确定的a0。例如,假设数据处理装置以并发流数是10流,且单流一次写入的数据量是8M向第二存储节点中写数据时,第二存储节点的写性能最高,则K1=10,a0=8M。例如,假设K1=10,a0=8M,并且,待备份数据的可用并发流数是5(即p1=5),待备份数据的大小是100M(即W=100M),则根据上述公式,可知are=min{100M/min{10,5},8M}=8M,因此数据文件的大小的参考值是8M。K1和a0的取值可以是预设的,例如在第二存储节点出厂时,即将K1和a0的取值标记在设备说明书中,从而在部署如图1所示的系统架构时,将第一存储节点的读性能指标均记录在数据处理装置中。当然本申请不限于此。例如,可以通过历史信息记录,设置K1和a0的值。其设置方式可类似于上述确定存储节点的读性能指标的设置方式,此处不再赘述。可以理解的,S107是可选的步骤。S108:数据处理装置根据数据文件的大小的参考值和第二类数据块的大小,确定一个数据文件包括的第二类数据块的个数的参考值n,其中,n是大于等于2的整数。例如,n=floor(are/b),其中,b表示第二类数据块的大小,floor()表示向下取整。S109:数据处理装置基于n,将S106中得到的若干个第二类数据块聚合成若干个数据文件。其中,每个数据文件中尽量包括n个第二类数据块。可以理解的,由于S106中生成的第二类数据块的个数不一定被n整除,因此,可能有一个数据文件中包含的第二类数据块的个数小于n。例如,如图3所示,若n=2,则数据处理装置可以将第二类数据块1、2聚合成一个数据文件,将第二类数据块3、6作为聚合成一个数据文件。又如,如图4所示,若n=2,则数据处理装置可以将第二类数据块1、2聚合成一个数据文件,将第二类数据块3作为一个数据文件。S110:数据处理装置向第二存储节点中写入该若干个数据文件。其中,单流一次向第二存储节点写入一个数据文件。本申请中,数据处理装置可以并发向第二存储节点中写入数据文件。S111:数据处理装置生成元数据文件。其中,元数据文件可以包括以下信息中的至少一种:根据待备份数据生成的每一数据文件的标识、每一数据文件中的第二类数据块的标识,以及每一数据文件中的第二类数据块在相应数据文件中的位置信息。可选的,元数据文件还可以包括第二类数据块的大小。可以理解的,若第二类数据块的大小是预定义的,则元数据文件中可以不包含第二类数据块。另外,元数据文件中还可以包括:元数据文件的标识,目标虚拟机对应的磁盘的个数,目标虚拟机对应的磁盘的标识等,具体的示例可参考下文。S112:数据处理装置向第二存储节点中写入将该元数据文件。需要说明的是,数据处理装置在执行S111之后,还可以生成磁盘快照标识(snapshotip)与该元数据文件之间的对应关系,并将该对应关系写入第二存储节点。其中,该磁盘快照标识,是指S102的示例中,数据处理装置向第一存储节点发送的快照操作的标识。不同元数据文件对应的快照操作的标识不同。另外需要说明的是,数据处理装置在执行S111之后,还可以存储第二存储节点的标识与该元数据文件之间的对应关系,从而有利于在数据恢复流程中,确定第二存储节点的标识,具体可以参考下文。另外需要说明的是,上述各步骤仅为一个示例,其不构成对本申请技术方案的先后顺序的限定。例如,数据处理装置可以在执行S101之后,即获取元数据文件的头部信息,如元数据文件的标识,目标虚拟机对应的磁盘的个数,目标虚拟机对应的磁盘的标识等。然后在执行S109之后,即获取每一数据文件对应的元数据。又如,数据处理装置可以先将元数据文件写入第二存储节点,再依次将每一数据文件写入第二存储节点等。其他示例不再一一列举。本申请提供的数据处理方法中,数据处理装置在执行备份业务时,先从第一存储节点中读取待备份数据;然后,将该待备份数据分成m个第二类数据块,m是大于等于2的整数;接着,按照如下方式生成部分或全部数据文件:将m个第二类数据块中的n个第二类数据块聚合成一个数据文件,2≤n<m,n是整数,然后,将该数据文件写入第二存储节点。如此一来,一方面,由于第二类数据块通常是第一类数据块的整数倍,因此,相比现有技术中,将一个第一类数据块作为一个数据文件的技术方案相比,本实施例提供的技术方案可以减少数据文件的数量,从而提高备份性能。另一方面,由于本实施例中,待备份数据至少会被分成2个数据文件,因此支持数据文件并发写入第二存储节点,因此,可以提高备份性能。以下说明本申请提供的数据文件的格式,以及元数据文件的格式:本申请对数据文件的格式不进行限定,一种数据文件的格式可以如表4所示:表4数据文件的标识(filename)第二类数据块1第二类数据块2第二类数据块3……本申请对元数据文件的格式不进行限定。一种元数据文件的格式可以如表5所示:表5snapheader:表示备份数据的头部信息。disks:表示备份数据所针对的磁盘的数量。该数量可以在S101中获得,例如,参见表1,若目标虚拟机是虚拟机1,则本次备份业务所针对的磁盘数量是1;若目标虚拟机是虚拟机2,则本次备份业务所针对的磁盘数量是3。snapid:表示元数据文件的标识,全球唯一。backendtype:表示备份业务中使用的数据缩减算法,例如:普通(即非压缩非重删)、压缩、重删等。需要说明的是,在备份业务中,数据处理装置可以对第二类数据块的数据量进行缩减,从而减少向第二存储节点传输的数据量,节省带宽资源。当然,也可以不缩减第二类数据块的数据量。snapversion:表示备份业务的版本号,用于指定解析diskheader和blockarray的算法。reserved:表示保留字段。diskheader:表示备份业务所针对的磁盘的元数据头部信息。blocks:表示第二类数据块的个数。diskid:表示备份业务所针对的磁盘的标识。例如,参见表1,若目标虚拟机是虚拟机1,则本次备份业务所针对的磁盘的标识是磁盘1;若目标虚拟机是虚拟机2,则本次备份业务所针对的磁盘的标识是磁盘2、3、4。chuncksize:表示第二类数据块的大小。其中,第二类数据块的大小可以是预定义或自定义的块大小,其可以与第一类数据块的大小相等,也可以不相等。第二类数据块可以是第一类数据块的整数倍。blockarray:表示第二类数据块的元数据构成的集合。filename:表示当前第二类数据块所在的数据文件的标识。startoffset:表示当前第二类数据块在数据文件中的偏移位置。blocksize:表示被压缩后的第二类数据块的大小。blockcrc:表示第二类数据块的循环冗余校验(cyclicredundancycheck,CRC)值。snapproperty:表示块数据属性。unit32:是一种数据类型,表示无符号int型共32位;unit64表示无符号int型共64位。uuid:是一种标识类型。byte:表示字节。需要说明的是,上述unit32、uuid、byte、byte*3等均是一种示例,其不构成对元数据文件的格式的限定。另外若实际实现时,不压缩第二类数据块,则blocksize与chunksize相等。以下,通过一个示例,对本申请提供的元数据文件进行示例性说明。假设客户机的一个虚拟机对应一个磁盘,该磁盘上可用于存储第一类数据块1~6,每个第一类数据块的大小是4M,从第一存储节点中一次读取的连续的第一类数据块的个数的参考值r=2;并且,第二类数据块的大小(即chunksize)是4M,数据文件的大小的参考值是12M,即一个数据文件包括的第二类数据块的个数的参考值n=3。那么:第一次创建备份,即创建全量备份时,若差量位图是110101,则需要备份第1、2、4、6个第一类数据块。该情况下,数据处理装置从第一存储节点中读取第一类数据块时,可以第1次读取第一类数据块1、2,第2次读取第一类数据块4,第3次读取第一类数据块6;然后,将第一类数据块1、2、4、6分别作为第二类数据块。然后,将第二类数据块1、2、4聚合成数据文件1,将第二类数据块6作为数据文件2。如图5所示。本次备份业务中生成的数据文件是:数据文件1、数据文件2。假设本次备份业务中,没有压缩第二类数据块,即blocksize与chunksize相等,则本次备份业务得到的元数据文件可以如表6所示。其中,在全量备份中,没有被备份的第一类数据块(如第一类数据块3、5)所在的数据文件的标识为空。表6其中,表6中的backendtype对应的“0”表示本次备份业务中使用的数据缩减算法是普通(即非压缩非重删)。“snapversion”对应的“3”表示本次备份业务的版本号。其中,本申请对该版本号的标记不进行限定。第二次创建备份,即创建增量备份时,若差量位图是011101,则需要备份第2、3、4、6个第一类数据块。该情况下,数据处理装置从第一存储节点中读取第一类数据块时,可以第1次读取第一类数据块2、3,第2次读取第一类数据块4,第3次读取第一类数据块6;然后,将第一类数据块2、3、4、6分别作为第二类数据块。然后,将第二类数据块2、3、4聚合成数据文件3,将第二类数据块6作为数据文件4。如图6所示。本次备份业务中生成的数据文件是:数据文件3、数据文件4。假设本次备份业务中,没有压缩第二类数据块,即blocksize与chunksize相等,并且,第一次全量备份到本次增量备份的过程中,snapheader和diskheader均未发生改变,则本次备份业务的元数据文件可以是在上述表6的基础上,对block2、3、4、6对应的元数据进行修改得到。本次备份业务得到的元数据文件可以如表7所示。表7如图7所示,为本申请提供的一种恢复业务的方法的交互示意图。图7所示的方法可以应用于如图1所示的系统架构中。本实施例中相关内容的解释可以参考上述实施例,此处不再赘述。图7所示的方法包括如下步骤S201~S209:S201:数据处理装置获取本次恢复业务的相关信息。其中,本次恢复业务的相关信息可以包括:本次恢复业务对应的目标虚拟机的标识、第一存储节点的标识、第二存储节点的标识,以及元数据文件的标识(即snapid)。在云计算领域中,定期或不定期地需要对第一存储节点中的数据进行恢复。作为一个示例,在每次恢复业务中,需要先触发数据处理装置获取本次恢复业务的相关信息。本申请对如何触发数据处理装置获取本次恢复业务的相关信息的实现方式不进行限定,例如,可以是用户通过客户机向数据处理装置指示的,也可以是预先设置好的。例如,在接收到恢复请求后,开始执行恢复业务。又如,在定期恢复场景中,可以预先设置在某一时刻数据处理装置需要执行一次恢复业务,然后在该时刻开始执行恢复业务。数据处理装置可以同时执行多个恢复业务,S201中描述的本次恢复业务可以是数据处理装置执行的任意一个恢复业务。在一种实现方式中,数据处理装置可以接收用户通过客户机下发的目标虚拟机的标识和元数据文件的标识;然后,根据目标虚拟机的标识与第一存储节点之间的对应关系(例如表1),确定本次恢复业务中所涉及的第一存储节点的标识,并且,根据元数据文件的标识和第二存储节点的标识之间的对应关系(例如可参考上述S112),确定本次恢复业务中所涉及的第二存储节点的标识。当然本申请不限于此。需要说明的是,在一次备份业务中,第一存储节点的个数和第二存储节点的个数均可以是一个或多个,为了方便描述,下文中均以一次恢复业务中,第一存储节点的个数是1,且第二存储节点的个数是1为例进行说明。S202:数据处理装置根据目标虚拟机的标识,确定当前时刻目标虚拟机对应的磁盘;并根据元数据文件的标识得到该元数据文件对应的磁盘快照标识,根据当前时刻目标虚拟机对应的磁盘和磁盘快照标识,向第一存储节点获取本次恢复业务的差量位图信息或CBT信息。具体的,数据处理装置可以向第一存储节点发送当前时刻目标虚拟机对应的磁盘的标识和该磁盘快照标识;第一存储节点接收到这些信息后,确定当前时刻目标虚拟机对应的磁盘存储的第一类数据块,与该磁盘快照标识所指示的快照操作所指定的第一类数据块之间的差异数据块,并根据该差异数据块构建差量位图信息或CBT信息,将所构建的差量位图信息或CBT信息发送给数据处理装置。可以理解的,由于一个虚拟机对应的磁盘是可以更新的,因此,不同时刻,同一虚拟机对应的磁盘可以相同也可以不同,在S202中,获取差异数据块时,需要获取某一时刻目标虚拟机对应的磁盘,例如当前时刻目标虚拟机对应的磁盘。在执行一次备份业务的过程中,会生成磁盘快照标识与该元数据文件之间的对应关系,具体可参考上述S112,因此,在执行恢复业务的过程中,可以根据元数据文件的标识得到该元数据文件对应的磁盘快照标识。S203:数据处理装置根据该差量位图信息或CBT信息,以及第一类数据块与第二类数据块之间的大小关系,确定本次恢复业务的待恢复数据。具体的,本次恢复业务的待恢复数据可以是包含差量位图信息或CBT信息所指示的第一类数据块的一个或多个第二类数据块(即待恢复第二类数据块)。可以理解的,由于元数据文件中通常不会记录第一类数据块的相关信息,因此,在恢复业务中,需要使用第二类数据块表示待恢复业务。可选的,第二类数据块的大小是第一类数据块的大小的整数倍。若第二类数据块的大小与第一类数据块的大小相等,则本次恢复业务的待恢复数据即是差量位图信息或CBT信息所指示的第一类数据块。例如,假设差量位图信息是110101,则说明需要恢复第一类数据块1、2、3、6,参见图3,可知,为了获取第一类数据块1、2、3、6,需要读取第二类数据块1、2、3、6,因此,待恢复数据是第二类数据块1、2、3、6。若第二类数据块的大小大于第一类数据块的大小,则本次恢复业务的待恢复数据可以是包含差量位图信息或CBT信息所指示的第一类数据块的第二类数据块。例如,假设差量位图信息是110101,则说明需要恢复第一类数据块1、2、3、6。参见图4,可知,为了获取第一类数据块1、2,需要读取第二类数据块1;为了获取第一类数据块4,需要读取第二类数据块2;为了获取第一类数据块6,需要读取第二类数据块3。因此,待恢复数据是第二类数据块是:第二类数据块1、2、3。S204:数据处理装置根据元数据文件的标识,向第二存储节点获取元数据文件,然后,从元数据文件中确定待恢复第二类数据块所在的目标数据文件的标识。例如,假设元数据文件如表7所示,且待恢复第二类数据块是第二类数据块1、2、3、6,则第二类数据块1所在的目标数据文件是数据文件1,第二类数据块2所在的目标数据文件是数据文件3,第二类数据块3所在的目标数据文件是数据文件3,第二类数据块6所在的目标数据文件是数据文件4。S205:数据处理装置根据第二存储节点的读性能指标和数据文件的大小的参考值,确定从第二存储节点中单流一次读取的数据量的参考值。第二存储节点的读性能指标是表示第二存储节点的读性能与从第二存储节点中单流一次读取的数据量的预设值之间的关系的指标。例如,根据公式bre=min{are,b0},确定从第二存储节点中单流一次读取的数据量的参考值bre;其中,are表示数据文件的大小的参考值,b0表示从第二存储节点中单流一次读取的数据量的预设值。其中,b0可以表示第二存储节点的读性能最高时,第二存储节点单流一次读取的数据量。例如,第二存储节点的读性能指标表示第二存储节点单流一次读取的数据量b0=10M时,读性能最高;且数据文件的大小的参考值是are=8M,则bre=min{8M,10M}=8M。需要说明的是,本申请提供的技术方案支持并发从第二存储节点中读取数据。基于此,在一个实施例中,可以根据数据处理装置并发从第二存储节点写数据的流数的预设值K2和待恢复数据的可用并发流数p2,确定实际并发流数,其中,实际并发流数=min{K2,p2}。待恢复数据的可用并发流数,是指数据处理装置分配给该待恢复数据的并发流数。可以理解的,在数据处理装置同时执行多个恢复业务时,数据处理装置可以根据一定的策略,为每一恢复业务分配并发流数。本申请对该策略不进行限定,例如,可以是平均分配策略等。类似于第一存储节点的读性能指标的相关说明,第二存储节点的读性能指标,可以是预先存储在数据处理装置中的,也可以是根据从第二存储节点中读取数据的历史记录确定的。另外,S205是可选的步骤。S206:数据处理装置根据单流一次读取的数据量的参考值和目标数据文件的标识,确定单流一次读取的第二类数据块的个数t。根据t,针对S204中确定的每个目标数据文件,数据处理装置从第二存储节点中尽量聚合读取待恢复第二类数据块。具体的,根据从第二存储节点中单流一次读取的数据量的参考值和目标数据文件的标识,确定从该目标数据文件中一次读取的连续的多个待恢复第二类数据块的标识,然后,根据该连续的多个待恢复第二类数据块的标识,在该目标数据文件中一次读取该连续的多个待恢复第二类数据块。可以理解的,数据处理装置一次可以读取多少个第二类数据块,除了与t的取值有关外,还与每个目标数据文件中的待恢复第二类数据块的连续情况有关,例如,由于在任意一个目标数据文件中,待恢复第二类数据块可能是不连续的,或者连续的第二类数据块的个数小于t等于t或者大于t,因此单流一次读取第二类数据块的个数可以小于或等于t。尽量聚合待恢复第二类数据块是指:若连续的待恢复第二类数据块的个数大于或等于t,则一次读取t个连续的待恢复第二类数据块;若连续的待恢复第二类数据块的个数小于t,则一次读取这些连续的待恢复第二类数据块。例如,假设元数据文件如表7所示,那么,若待恢复第二类数据块是:第二类数据块1、2、3、6。假设一次读取的数据量是8M,则数据处理装置可以第1次读取数据文件1中的第二类数据块1,第2次读取数据文件3中的第二类数据块2、3,第3次读取数据文件4中的第二类数据块6。或者,并发读取第二类数据块1,第二类数据块2、3,第二类数据块6。S207:数据处理装置根据第一存储节点的写性能指标,确定向第一存储节点中一次写入的数据量的参考值。其中,第一存储节点的写性能指标是表示第一存储节点的写性能与向第一存储节点中一次写入的数据量之间的关系的指标。例如,假设第一存储节点的写性能指标是一次写入的数据量是12M时,数据处理装置的写性能最高,那么,一次写入的数据量的参考值即是12M。又如,假设第一存储节点的写性能指标是一次写入的数据量是2M时,数据处理装置的写性能最高,那么,一次写入的数据量的参考值即是2M。类似于第一存储节点的读性能指标的相关说明,第一存储节点的写性能指标,可以是预先存储在数据处理装置中的,也可以是根据向第一存储节点中写入数据的历史记录确定的。另外,S207是可选的步骤。S208:数据处理装置根据向第一存储节点中一次写入的数据量的参考值,若向第一存储节点中一次写入的数据量的参考值小于第二类数据块的大小,则根据向第一存储节点中一次写入的数据量的参考值,将从一个或多个目标数据文件中读取的待恢复第二类数据块进行分片,得到若干个第三类数据块;或,若向第一存储节点中一次写入的数据量的参考值大于第二类数据块的大小,则根据向第一存储节点中一次写入的数据量的参考值,将从一个或多个目标数据文件中读取的待恢复第二类数据块进行聚合,得到若干个第三类数据块;或,若向第一存储节点中一次写入的数据量的参考值等于第二类数据块的大小,则将从一个或多个数据文件中读取的每个待恢复第二类数据块作为一个第三类数据块,得到若干个第三类数据块。例如,若一次写入的数据量的参考值是12M,则基于S206中的示例,由于第二类数据块的大小是4M,因此,可以将第二类数据块1、2、3进行聚合得到一个第三类数据块,将第二类数据块4作为一个第三类数据块。又如,若一次写入的数据量的参考值是2M,则基于S206中的示例,由于第二类数据块的大小是4M,因此,可以将第二类数据块1、2、3、6分别切分为2个第三类数据块。S209:数据处理装置向第一存储节点中写入该若干个第三类数据块。例如,每次向第一存储节点中写入一个第三类数据块。例如,基于S206中的示例,若在S208中,将第二类数据块1、2、3聚合成第三类数据块1,第二类数据块6作为第三类数据块2,则依次向第一存储节点写入第三类数据块1、2。又如,基于S206中的示例,若在S208中,将第二类数据块1、2、3、6分别切分为2个第三类数据块,则可以依次向第一存储节点中写入这些第三类数据块。本申请提供的数据处理方法中,数据处理装置在执行恢复业务时,先根据第二存储节点的读性能指标从第二存储节点中读取待恢复数据,再根据第一存储节点的写性能,向第一存储节点中写入待恢复数据。由于读取和写入数据的过程均与相应的存储节点相关,因此,通过合理设置单次读取和/或写入的数据量,有助于提高恢复性能。上述主要从方法的角度对本申请实施例提供的方案进行了介绍。为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。本申请实施例可以根据上述方法示例对数据处理装置进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。如图8所示,为本申请实施例提供的一种数据处理装置8的结构示意图。该数据处理装置8可以用于执行上文提供的任一种数据处理方法。该数据处理装置8可以包括:读取单元801、处理单元802和写入单元803。其中,读取单元801,用于从第一存储节点中读取待备份数据。处理单元802,用于将待备份数据分成m个第二类数据块,以及将m个第二类数据块中的n个第二类数据块聚合成一个数据文件;其中,m是大于等于2的整数,第二类数据块是数据处理装置存储数据的基本单位。写入单元803,用于将数据文件写入第二存储节点;其中,2≤n<m,n是整数;数据文件是数据处理装置单流一次向第二存储节点写入的第二类数据块构成的集合。例如,参见图2,数据处理装置8可以是图2中的数据处理装置。读取单元801可以用于执行S105。处理单元802可以用于执行S106中的生成步骤和S109。写入单元803可以用于执行S110。在一种可能的设计中,处理单元802还可以用于:根据公式are=min{W/min{K1,p1},a0},确定数据文件的大小的参考值are;以及,根据数据文件的大小的参考值are和第二类数据块的大小,确定数据文件中包括的第二类数据块的个数n;其中,W表示待备份数据的大小,K1表示数据处理装置并发向第二存储节点写数据的流数的预设值,p1表示数据处理装置根据当前备份业务情况确定的待备份数据的可用并发流数,a0表示向第二存储节点中单流一次写入的数据量的预设值。例如,参见图2,处理单元802可以用于执行S107和S108。在一种可能的设计中,处理单元802还可以用于:生成待备份数据的元数据文件;元数据文件包括以下信息中的至少一种:根据待备份数据生成的每一数据文件的标识、每一数据文件中的第二类数据块的标识,以及每一数据文件中的第二类数据块在相应数据文件中的位置信息。该情况下,写入单元803还可以用于,将元数据文件写入第二存储节点。可选的,元数据文件还包括:第二类数据块的大小。例如,参见图2,处理单元802可以用于执行S111。写入单元803可以用于执行S112。在一种可能的设计中,处理单元802还可以用于:根据第一存储节点的读性能指标和第一类数据块的大小,确定从第一存储节点中一次读取的连续的第一类数据块的个数的参考值r;其中,第一类数据块是第一存储节点存储数据的基本单位;r是大于等于2的整数。该情况下,读取单元801具体可以用于:根据从第一存储节点中一次读取的连续的第一类数据块的个数的参考值r,从第一存储节点中读取待备份数据。例如,参见图2,处理单元802可以用于执行S104。读取单元801可以用于执行S105。在一种可能的设计中,处理单元802还可以用于:在接收恢复请求后,确定待恢复第二类数据块的标识,并根据公式bre=min{are,b0},确定从第二存储节点中单流一次读取的数据量的参考值bre;其中,待恢复第二类数据块是待备份数据中的部分或全部第二类数据块;are表示数据文件的大小的参考值,b0表示从第二存储节点中单流一次读取的数据量的预设值;从第二存储节点中获取元数据文件;根据待恢复第二类数据块的标识,从元数据文件中确定待恢复第二类数据块所在的目标数据文件的标识;以及,根据从第二存储节点中单流一次读取的数据量的参考值bre和目标数据文件的标识,确定从目标数据文件中一次读取的连续的多个待恢复第二类数据块的标识。该情况下,读取单元801还可以用于:根据从第二存储节点中单流一次读取的数据量的参考值,从第二存储节点的一个数据文件中读取连续的多个第二类数据块。写入单元803还可以用于,将多个第二类数据块写入第一存储节点。例如,参见图7,数据处理装置8可以是图7中的数据处理装置。处理单元802可以用于执行S205。读取单元801可以用于执行S206。写入单元803可以用于执行S209。在一种可能的设计中,处理单元802还可以用于:根据第一存储节点的写性能指标,确定向第一存储节点中一次写入的数据量的参考值;以及,若向第一存储节点中一次写入的数据量的参考值小于第二类数据块的大小,则根据向第一存储节点中一次写入的数据量的参考值,将从一个或多个目标数据文件中读取的待恢复第二类数据块进行分片,得到第三类数据块;或,若向第一存储节点中一次写入的数据量的参考值大于第二类数据块的大小,则根据向第一存储节点中一次写入的数据量的参考值,将从一个或多个目标数据文件中读取的待恢复第二类数据块进行聚合,得到第三类数据块;或,若向第一存储节点中一次写入的数据量的参考值等于第二类数据块的大小,则将从一个或多个数据文件中读取的每个待恢复第二类数据块作为一个第三类数据块,得到第三类数据块;其中,从一个或多个目标数据文件中读取的待恢复第二类数据块包括连续多个待恢复第二类数据块。该情况下,写入单元803还可以用于,将第三类数据块写入第一存储节点。例如,参见图7,处理单元802可以用于执行S208,写入单元803可以用于执行S209。由于本申请实施例提供的数据处理装置可以用于执行上述数据处理方法,因此其所能获得的技术效果可参考上述方法实施例,本申请实施例在此不再赘述。在硬件实现上,处理单元802可以以硬件形式内嵌于或独立于数据处理装置8的存储器中,以便于处理器调用以上各单元对应的操作。数据处理装置8的硬件实体的示例可以参考图9。具体的,处理单元802可以是处理器,读取单元801和/或写入单元803可以是接口。如图9所示,为本申请实施例提供的一种数据处理装置9的结构示意图。该数据处理装置9可以用于执行上文提供的任一种数据处理方法。该数据处理装置9可以包括至少一个处理器901、通信总线902、存储器903,以及接口904。其中,至少一个处理器901、存储器903和接口904通过通信总线902连接。处理器901可以是一个通用中央处理器(centralprocessingunit,CPU),微处理器,特定应用集成电路(application-specificintegratedcircuit,ASIC),或一个或多个用于控制本申请方案程序执行的集成电路。通信总线902可包括一通路,在上述组件之间传送信息。存储器903可以是只读存储器(read-onlymemory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(randomaccessmemory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electricallyerasableprogrammableread-onlymemory,EEPROM)、只读光盘(compactdiscread-onlymemory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器903可以是独立存在,通过总线与处理器相连接。存储器903也可以和处理器901集成在一起。接口904可以用于数据处理装置9与其他设备,例如上文中描述的第一存储节点和/或第二存储节点,进行通信。其中,存储器903用于存储执行本申请方案的计算机程序,并由处理器901来控制执行。处理器901用于执行这些计算机程序,从而实现本申请实施例提供的数据处理方法。其中,在执行读取或写入步骤时,具体可以理解为:由处理器901来控制执行。处理器901用于执行这些计算机程序,并经接口804与其他设备,例如上文中描述的第一存储节点和/或第二存储节点,进行通信,从而实现本申请实施例提供的数据处理方法。在具体实现中,作为一种实施例,处理器901可以包括一个或多个CPU,例如图9中的CPU0和CPU1。在具体实现中,作为一种实施例,数据处理装置9可以包括多个处理器,例如图9中的处理器901和处理器905。这些处理器中的每一个可以是一个单核(single-CPU)处理器,也可以是一个多核(multi-CPU)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序)的处理核。上述的数据处理装置9可以是一个通用设备或者是一个专用设备。在具体实现中,数据处理装置9可以是图9所示的设备,或者是有图9中类似结构的设备。本申请实施例不限定数据处理装置9的类型。由于本申请实施例提供的数据处理装置可以用于执行上述数据处理方法,因此其所能获得的技术效果可参考上述方法实施例,本申请实施例在此不再赘述。上述提供的任一种数据处理装置中相关内容的解释及有益效果均可参考上文提供的对应的方法实施例,此处不再赘述。在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式来实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机执行指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(digitalsubscriberline,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可以用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带),光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solidstatedisk,SSD))等。尽管在此结合各实施例对本申请进行了描述,然而,在实施所要求保护的本申请过程中,本领域技术人员通过查看所述附图、公开内容、以及所附权利要求书,可理解并实现所述公开实施例的其他变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。单个处理器或其他单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。尽管结合具体特征及其实施例对本申请进行了描述,显而易见的,在不脱离本申请的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本申请的示例性说明,且视为已覆盖本申请范围内的任意和所有修改、变化、组合或等同物。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1