一种数据恢复方法、装置及备份系统的制作方法
【专利摘要】本发明实施例公开了数据恢复方法、装置及备份系统,应用于信息处理【技术领域】。本实施例的数据恢复装置在进行数据恢复时,主要通过判断当前最新的第二版本中第二数据块,是否与第一版本中对应位置的第一数据块一致,从而可以知道哪些数据块更新过,需要对哪些数据块进行恢复,而不需要对主机或存储设备中目标磁盘,或主机的虚拟机上储存的全部数据块进行恢复,使得可以减少数据恢复时恢复的数据,进而减少了数据恢复的时间;同时备份服务器不需要与主机或存储设备之间传输整个磁盘的数据块,也不需要与主机之间传输虚拟机上储存的所有数据块,减少了本实施例的备份服务器与主机之间传输的数据量。
【专利说明】一种数据恢复方法、装置及备份系统
【技术领域】
[0001]本发明涉及信息处理【技术领域】,特别涉及数据恢复方法、装置及备份系统。
【背景技术】
[0002]备份系统是具有备份和还原的功能系统,主要是用来备份生产主机中的数据,如果主机中的数据丢失,需要进行数据恢复,使得主机恢复到未丢失数据之前的状态。通常是将备份系统中某一版本的备份集内数据从备份系统中提取出来,然后全部写入到主机中,以实现数据恢复的目的。
[0003]在现有的数据恢复过程中,需要做磁盘的全盘恢复,即将目标磁盘中的全部数据重新写入到原磁盘上,这样将会有大量的数据通过网络传输到主机的存储中,使得需要花费较长时间才能实现数据恢复的过程。
【发明内容】
[0004]本发明实施例提供数据恢复方法、装置及备份系统,减少了数据恢复时恢复的数据。
[0005]本发明实施例第一方面提供一种数据恢复方法,包括:
[0006]接收数据恢复请求,所述数据恢复请求中包括所请求恢复的数据版本信息;
[0007]如果当前的第二版本中某一第二数据块,与所述数据版本信息对应第一版本中对应位置的第一数据块不一致,则将所述第一数据块和所述第一数据块的位置信息发送给主机或存储设备,以使得所述主机或存储设备用所述第一数据块替换所述第二版本中所述位置信息所指示位置的第二数据块以进行数据恢复。
[0008]本发明实施例第一方面的第一种可能实现方式中,所述将所述第一数据块和所述第一数据块的位置信息发送给主机之前,还包括:
[0009]分别获取所述数据版本信息对应第一版本中第一数据块对应的数据指纹及当前的第二版本中第二数据块对应的数据指纹;
[0010]如果所述第二版本中某一第二数据块对应的数据指纹,与第一版本中对应位置的第一数据块对应的数据指纹不一致,则所述当前的第二版本中某一第二数据块,与所述数据版本信息对应第一版本中对应位置的第一数据块不一致。
[0011]结合本发明实施例第一方面的第一种可能实现方式,在本发明实施例第一方面的第二种可能实现方式中,所述接收数据恢复请求之前,还包括:
[0012]获取待备份数据块,及所述待备份数据块的数据指纹;
[0013]将所述待备份数据块储存成所述第一版本数据块,并储存所述第一版本中各个数据块的索引信息,所述索引信息中包括所述待备份数据块的位置和数据指纹。
[0014]结合本发明实施例第一方面的第二种可能实现方式,在本发明实施例第一方面的第三种可能实现方式中:
[0015]如果所述第一版本中某一第一数据块与备份服务器中已储存的第三版本中对应位置的第三数据块相同,则所述将所述待备份数据块储存成所述第一版本数据块具体包括:储存所述某一第一数据块的第一重定向信息,所述第一重定向信息用于将所述第一版本中某一第一数据块重定向到所述第三版本中对应位置的第三数据块;和/或,
[0016]如果所述第一版本中某一第一数据块与备份服务器中已储存的第三版本中对应位置的第三数据块相同,则所述储存所述第一版本的某一第一数据块的索引信息具体包括:储存所述第一版本中所述某一第一数据块的索引信息的第二重定向信息,所述第二重定向信息用于将所述第一版本中某一第一数据块的索引信息重定向到所述第三版本中对应位置的第三数据块的索引信息。
[0017]本发明实施例第二方面提供一种数据恢复方法,包括:
[0018]发送数据恢复请求给备份服务器,所述数据恢复请求中包括所请求恢复的数据版本信息;
[0019]接收所述备份服务器发送的第一数据块和所述第一数据块的位置信息,用所述第一数据块替换当前的第二版本中所位置信息所指示位置的第二数据块以进行数据恢复;
[0020]其中,所述第一数据块和第一数据块的位置信息是在所述第二版本中某一第二数据块,与所述数据恢复请求中包括的数据版本信息对应第一版本中对应位置的第一数据块不一致时,由所述备份服务器发送的。
[0021]本发明实施例第二方面的第一种可能实现方式中,所述发送数据恢复请求给备份服务器之前,还包括:
[0022]将待备份的数据按照预定的大小划分成待备份数据块,并计算所述待备份数据块的数据指纹;
[0023]将所述计算的数据指纹及所述待备份数据块发送给所述备份服务器,以使得所述备份服务器将所述待备份数据块储存成所述第一版本数据块,并储存所述第一版本中各个数据块的索引信息,所述索引信息中包括所述待备份数据块的位置和数据指纹。
[0024]本发明实施例第三方面提供一种数据恢复装置,包括:
[0025]请求接收单元,用于接收数据恢复请求,所述数据恢复请求中包括所请求恢复的数据版本信息;
[0026]发送单元,用于如果当前的第二版本中某一第二数据块,与所述请求接收单元接收的数据恢复请求中的数据版本信息对应第一版本中对应位置的第一数据块不一致,则将所述第一数据块和所述第一数据块的位置信息发送给主机或存储设备,以使得所述主机或存储设备用所述第一数据块替换所述第二版本中所述位置信息所指示位置的第二数据块以进行数据恢复。
[0027]本发明实施例的第三方面的第一种可能实现方式中,所述装置还包括:
[0028]指纹获取单元,用于分别获取所述请求接收单元接收的数据恢复请求中包括的数据版本信息对应第一版本中第一数据块对应的数据指纹及当前的第二版本中第二数据块对应的数据指纹;
[0029]所述发送单元,具体用于如果所述指纹获取单元获取的第二版本中某一第二数据块对应的数据指纹,与第一版本中对应位置的第一数据块对应的数据指纹不一致,则将所述第一数据块和所述第一数据块的位置信息发送给主机或存储设备。
[0030]结合本发明实施例第三方面的第一种可能实现方式,在本发明实施例第三方面的第二种可能实现方式中,所述装置还包括:
[0031]待备份获取单元,用于获取待备份数据块,及所述待备份数据块的数据指纹;
[0032]储存单元,用于将所述待备份获取单元获取的待备份数据块储存成所述第一版本数据块,并储存所述第一版本中各个数据块的索引信息,所述索引信息中包括所述待备份数据块的位置和数据指纹。
[0033]结合本发明实施例第三方面的第二种可能实现方式,在本发明实施例第三方面的第三种可能实现方式中:
[0034]所述储存单元,具体用于如果所述第一版本中某一第一数据块与所述储存单元中已储存的第三版本中对应位置的第三数据块相同,则储存所述某一第一数据块的第一重定向信息,所述第一重定向信息用于将所述第一版本中某一第一数据块重定向到所述第三版本中对应位置的第三数据块;和/或,
[0035]具体用于如果所述第一版本中某一第一数据块与储存单元中已储存的第三版本中对应位置的第三数据块相同,则储存所述第一版本中所述某一第一数据块的索引信息的第二重定向信息,所述第二重定向信息用于将所述第一版本中某一第一数据块的索引信息重定向到所述第三版本中对应位置的第三数据块的索引信息。
[0036]本发明实施例第四方面提供一种数据恢复装置,包括:
[0037]请求发送单元,用于发送数据恢复请求给备份服务器,所述数据恢复请求中包括所请求恢复的数据版本信息;
[0038]接收恢复单元,用于接收所述备份服务器发送的第一数据块和所述第一数据块的位置信息,用所述第一数据块替换当前的第二版本中所位置信息所指示位置的第二数据块以进行数据恢复;
[0039]其中,所述第一数据块和第一数据块的位置信息是在所述第二版本中某一第二数据块,与所述数据恢复请求中包括的数据版本信息对应第一版本中对应位置的第一数据块不一致时,由所述备份服务器发送的。
[0040]本发明实施例第四方面的一种可能实现方式中,所述装置还包括:
[0041]指纹计算单元,用于将待备份的数据按照预定的大小划分成待备份数据块,并计算所述待备份数据块的数据指纹;
[0042]备份发送单元,用于将所述计算的数据指纹及所述待备份数据块发送给所述备份服务器,以使得所述备份服务器将所述待备份数据块储存成所述第一版本数据块,并储存所述第一版本中各个数据块的索引信息,所述索引信息中包括所述待备份数据块的位置和数据指纹。
[0043]本发明实施例第五方面提供一种备份系统,其特征在于,包括备份服务器和至少一个主机;
[0044]所述备份服务器是如本发明实施例第三方面,或第三方面的第一种到第三种可能实现方式中任一可能实现方式所述的数据恢复装置,所述主机是本发明实施例第四方面或第四方面的一种可能实现方式所述的数据恢复装置。
[0045]本发明实施例第六方面提供一种备份系统,其特征在于,包括备份服务器和至少一个存储设备;
[0046]所述备份服务器是如本发明实施例第三方面,或第三方面的第一种到第三种可能实现方式中任一可能实现方式所述的数据恢复装置。
[0047]可见,本发明实施例的备份服务器,可以遍历当前的第二版本中的所有第二数据块,判断第二数据块是否与第一版本中对应位置的第一数据块一致,从而可以知道需要对哪些数据块进行恢复,而不需要对主机或存储设备中目标磁盘,或主机的虚拟机储存的全部数据块进行恢复,使得可以减少数据恢复时恢复的数据,减少了数据恢复的时间;同时不需要在备份服务器与主机(或存储设备)之间传输整个磁盘的数据块,也不需要在备份服务器与主机之间传输主机所包括的虚拟机中的所有数据块,减少了备份服务器与主机(或存储设备)之间传输的数据量。
【专利附图】
【附图说明】
[0048]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0049]图1a到图1c是本发明实施例中数据恢复方法应用于的备份系统的结构示意图;
[0050]图2是本发明实施例提供的备份服务器侧执行的一种数据恢复方法的流程图;
[0051]图3是本发明实施例提供的备份服务器侧执行的另一种数据恢复方法的流程图;
[0052]图4是本发明实施例提供的主机所执行的一种数据恢复方法的流程图;
[0053]图5是本发明实施例提供的主机所执行的另一种数据恢复方法的流程图;
[0054]图6a是本发明实施例中备份服务器在时刻I备份主机中数据块的示意图;
[0055]图6b是本发明实施例中备份服务器在时刻2备份主机中数据块的示意图;
[0056]图6c是本发明实施例中备份服务器在时刻2备份主机中数据块的另一示意图;
[0057]图6d是本发明实施例中备份服务器在时刻2备份主机中数据块的另一示意图;
[0058]图7是本发明实施例中主机恢复数据的示意图;
[0059]图8是本发明实施例提供的一种数据恢复装置的结构示意图;
[0060]图9是本发明实施例提供的另一种数据恢复装置的结构示意图;
[0061]图10是本发明实施例提供的一种备份服务器的结构示意图;
[0062]图11是本发明实施例提供的另一种数据恢复装置的结构示意图;
[0063]图12是本发明实施例提供的一种主机的结构示意图。
【具体实施方式】
[0064]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0065]本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三” “第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排它的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0066]本发明实施例提供一种数据恢复方法,主要可以应用于如图1a到图1c所示的备份系统中,在图1a所示的备份系统中包括备份服务器和多个主机,其中,各个主机分别与备份服务器之间进行网络通信连接,备份服务器主要用来备份主机中磁盘上的数据;在主机中可以运行备份客户端,用户可以通过该备份客户端向备份服务器发起数据备份的流程,和数据恢复的流程。在另一种情况下,在主机中可以不运行备份客户端,而是包括多个虚拟机,则备份服务器可以备份各个虚拟机上的数据。
[0067]在如图1b所示的备份系统中包括备份服务器和多个存储设备,这样备份服务器就不需要采用与主机之间进行网络传输,而只是在存储层与存储设备进行传输,由备份服务器主动对存储设备上的数据块进行备份。这种情况下,需要在存储设备上提供与服务器之间的接口。
[0068]在如图1c所示的备份系统中包括备份服务器、至少一个存储设备和备份存储,其中存储设备和备份存储都连接到备份服务器,备份服务器用于控制备份存储通过存储层接收存储设备传输的数据并进行备份。
[0069]本实施例的方法是备份系统中的备份服务器所执行的方法,流程图如图2所示,包括:
[0070]步骤101,接收数据恢复请求,在数据恢复请求中包括所请求恢复的数据版本信息,这里数据版本信息一般采用时间来标识,比如某一时刻的数据等;还可以用编号来标识,比如将各个时刻获取的数据按照顺序进行编号,则某一个时刻的数据(一个版本的数据)就用一个编号来标识。
[0071]可以理解,备份服务器可以定期或不定期地向主机或存储设备主动获取数据并备份,或是被动地接收主机中备份客户端发送的数据进行备份,而由于主机或存储设备中储存的数据会不断变化,这样备份服务器在不同时刻获取的数据就会不同,而在某一时刻备份服务器备份的数据即为一个版本的数据。
[0072]在如图1a所示的情况下,用户可以通过主机中运行的备份客户端发起数据恢复的流程,使得备份客户端向备份服务器发送数据恢复请求,或是用户通过操作备份服务器来发起对主机的虚拟机进行数据恢复流程;而在如图1b和图1c所示的情况下,用户可以通过操作备份服务器来发起数据恢复流程,对存储设备上的数据进行恢复。该数据恢复请求用于请求备份服务器向主机或存储设备返回该备份服务器备份的某一个版本的数据,在数据恢复请求中具体可以包括需要恢复哪个时刻的数据的信息等,即上述的数据版本信息。
[0073]步骤102,对当前的第二版本中的某一第二数据块,判断当前的第二版本中该第二数据块,与上述数据版本信息对应第一版本中对应位置的第一数据块是否一致,如果不一致,说明主机中对应位置处的数据块发生了变化,需要进行恢复,则备份服务器会执行步骤103 ;如果一致,则对第二版本中另一个第二数据块,返回执行步骤103。
[0074]其中,在如图1a和图1b所示的情况下,当前的第二版本的第二数据块是指备份服务器最新备份的目标磁盘或虚拟机上的数据块,在如图1c所示的情况下,当前的第二版本的第二数据块是指在备份存储中最新备份的目标磁盘上的数据块;且上述第一版本中对应位置是指与第二版本中第二数据块一致的位置,比如都处在开头或结尾等位置。
[0075]在本实施例中,备份服务器在进行数据备份时,是将主机或存储设备的目标磁盘,或主机中的虚拟机在某一时刻储存的数据按照预置的大小分成多个数据块进行备份的,且在备份各个数据块时,需要储存各个数据块的数据指纹,其中该数据指纹可以唯一标识某一个数据块,具体可以将数据块进行一定计算得到该数据指纹,比如将数据块通过哈希算法校验后,生成的能够唯一标识该数据块的哈希值,则该哈希值即为数据指纹。
[0076]本实施例中,可以分别获取数据版本信息对应第一版本中第一数据块对应的数据指纹及当前的第二版本中第二数据块对应的数据指纹,然后将获取的第一版本中第一数据块的数据指纹,与第二版本中第二数据块的数据指纹进行比较,如果第二版本中某一第二数据块对应的数据指纹与第一版本中对应位置的第一数据块对应的数据指纹不一致,则当前的第二版本中某一第二数据块,与数据版本信息对应第一版本中对应位置的第一数据块不一致。在这里可以由备份服务器在获取到主机或存储设备的数据后,来计算数据指纹,或是直接接收主机发送的已经计算好的数据指纹。
[0077]其中,每个版本中的数据块都是按照同一个规则来划分的,比如都是按照预置大小划分的,这样每个版本中包括的数据块的个数一样。
[0078]需要说明的是,上述第一数据块和第二数据块并不表示具有顺序关系的数据块,本实施例中,将第一版本中的数据块都称为第一数据块,第二版本中的数据块都称为第二数据块,这里的“第一”和“第二”是为了说明不同版本中的数据块,并依此类推。
[0079]步骤103,将该第一版本中的第一数据块和第一数据块的位置信息发送给主机或存储设备,以使得该主机或存储设备用该第一数据块替换第二版本中该位置信息所指示位置处的第二数据块以进行数据恢复。
[0080]其中一个数据块的位置信息可以用来指示该数据块在主机或存储设备的目标磁盘,或指示该数据块在主机所包括的虚拟机中的位置,一般采用数据块的编号来表示,则该数据块的位置为该数据块的编号与数据块大小的乘积。且需要说明的是,在执行上述步骤102和103时,可以当确定某一个数据块的数据指纹不一致时,就马上将该数据块发送给主机或存储设备;或者是确定第二版本与第一版本中数据块的数据指纹不一致的所有数据块后,再将这些所有不一致的第一数据块发送给主机或存储设备。
[0081]可见,通过步骤102和103的循环操作,可以遍历当前的第二版本中的所有第二数据块,判断第二数据块是否与第一版本中对应位置的第一数据块一致,从而可以知道需要对哪些数据块进行恢复,而不需要对主机或存储设备中目标磁盘,或主机的虚拟机储存的全部数据块进行恢复,使得可以减少数据恢复时恢复的数据,减少了数据恢复的时间;同时不需要在备份服务器与主机(或存储设备)之间传输整个磁盘的数据块,也不需要在备份服务器与主机之间传输主机所包括的虚拟机中的所有数据块,减少了备份服务器与主机(或存储设备)之间传输的数据量。
[0082]需要说明的是,上述步骤101到103是当备份服务器在数据恢复过程中所执行的方法,这就需要备份服务器在上述步骤101之前执行数据备份的步骤,以便后续的数据恢复过程,具体地,备份服务器可以通过如下步骤来实现数据备份,流程图如图3所示,包括:
[0083]步骤105,获取待备份数据块,及待备份数据块的数据指纹。这里获取的待备份数据块是指在某一个时刻,主机或存储设备的目标磁盘,或主机的虚拟机中储存的数据划分得到的所有数据块,且这些数据块是按照预置规则划分的,每个数据块对应一个数据指纹。
[0084]步骤106,将步骤105中获取的待备份数据块储存成第一版本数据块,还可以用数据版本信息来标识该第一版本数据块是哪一版本的,比如用时间或编号来标识该第一版本数据块;并储存第一版本中各个数据块的索引信息,该索引信息中包括待备份数据块的位置和数据指纹,其中如果各个版本中的数据块都是按照相同的数据大小来划分,则一个版本中某一个数据块的位置可以用该数据块的编号来表示,这样该数据块的位置即为数据块的编号与数据大小的乘积。
[0085]其中,如果第一版本中某一第一数据块与该备份服务器中已储存的第三版本中对应位置的第三数据块相同,为了不用重复储存相同的信息,在将该第一数据块储存成第一版本中某一个第一数据块时,可以储存该第一数据块的第一重定向信息,该第一重定向信息用于将第一版本中该第一数据块重定向到第三版本中对应位置的第三数据块。
[0086]进一步地,在储存该第一数据块的索引信息时,具体可以储存第一版本中该第一数据块的索引信息的第二重定向信息,该第二重定向信息用于将第一版本中该第一数据块的索引信息重定向到第三版本中对应位置的第三数据块的索引信息。
[0087]这样通过上述步骤105和106就可以将任意一个时刻主机或存储设备的目标磁盘上储存的数据,储存成一个版本数据块。
[0088]需要说明的是,如果是在如图1c所示的场景下时,备份服务器具体是将获取的待备份数据块储存到备份存储中,并储存成第一版本数据块。
[0089]本发明实施例还提供另一种数据恢复方法,主要可以应用于如图1a所示的备份系统中,本实施例的方法是由备份系统中的主机所执行的方法,流程图如图4所示,包括:
[0090]步骤201,发送数据恢复请求给备份服务器,该数据恢复请求中包括所请求恢复的数据版本信息,这里数据版本信息可以是某一个时刻的信息,也可以版本编号等信息。
[0091]可以理解,用户可以操作主机中运行的备份客户端,来发起数据恢复的流程,则用户可以选择恢复某一个时刻的数据进行恢复;或者在主机为虚拟化的环境下,当主机检测到有些虚拟机的数据丢失时,会主动发起数据恢复的流程,并按照预置的策略恢复之前某一时刻的数据。这样当备份服务器在接收到数据恢复请求后,就可以按照上述步骤101到103执行数据恢复流程,并将需要恢复的数据块和数据块的位置信息发送给主机,在此不进行赘述。
[0092]步骤202,接收备份服务器发送的第一数据块和第一数据块的位置信息,用第一数据块替换当前的第二版本中位置信息所指示位置处的第二数据块以进行数据恢复。
[0093]其中,该第一数据块和第一数据块的位置信息是在第二版本中某一版本数据块,与所述数据恢复请求中包括的数据版本信息对应第一版本中对应位置的第一数据块的数据指纹不一致时,由所述备份服务器发送的。这里第一数据块和第二数据块并不表示具有顺序关系的数据块,本实施例中,将第一版本中的数据块都称为第一数据块,第二版本中的数据块都称为第二数据块,这里的“第一”和“第二”是为了说明不同版本中的数据块。
[0094]可见,本实施例中的数据恢复方法中,当主机发起数据恢复流程时,由备份服务器将发生变化的第一数据块和第一数据块的位置信息返回给主机,让主机恢复这些第一数据块,而不需要对主机中目标磁盘或虚拟机上储存的所有数据块进行恢复,使得可以减少数据恢复时恢复的数据,进而减少了数据恢复的时间;同时不需要在备份服务器与主机之间传输整个磁盘的数据块或虚拟机上储存的所有数据,减少了备份服务器与主机之间传输的
数据量。
[0095]需要说明的是,上述步骤201到202是在数据恢复过程中主机所执行的方法,而在数据恢复之前,主机可以通过如下的步骤来进行数据备份,参考图如图5所示,包括:
[0096]步骤203,将待备份的数据按照预定的大小划分成多个待备份数据块,并计算待备份数据块的数据指纹,具体地,是分别对各个待备份数据块进行一定计算得到数据指纹。其中,由于主机的目标磁盘或虚拟机中储存的数据是不断变化的,而主机在获取数据时需要一段时间,则为了实现获取的数据的一致性,主机可以采用快照的形式获取数据,即主机生成目的磁盘快照或目标卷快照或虚拟机快照,主要是获取目标磁盘或目标卷上数据的副本,或虚拟机储存数据的副本。
[0097]步骤204,将步骤203中计算的数据指纹及待备份数据块发送给备份服务器,这样备份服务器可以按照上述步骤105和106进行数据备份,即备份服务器将待备份数据块储存成第一版本数据块,并储存第一版本中各个数据块的索引信息,索引信息中包括待备份数据块的位置和数据指纹,其中索引信息中待备份数据块的位置可以是待备份数据块的编号,这样根据编号就能知道该待备份数据块的位置,即为编号与数据块大小的乘积。
[0098]以下以一个具体的实施例来说明本发明实施例的数据恢复方法,本实施例中的数据恢复方法应用于如图1a所示的备份系统中,在主机中运行有备份客户端,具体地:
[0099]一、在进行数据备份时
[0100](I)用户通过主机中运行的备份客户端发起对时刻I目标磁盘上数据的备份流程,则主机会按照预置的大小将目标磁盘中储存的数据分成多个数据块,具体可以如图6a所示,将目标磁盘中的数据分成5*7个数据块(图6a中的一个虚线框为一个数据块);然后计算目标磁盘在时刻I的每个数据块的数据指纹,并将该时刻I目标磁盘的各个数据块及各个数据块对应的数据指纹传输给备份服务器进行备份。
[0101]备份服务器会将时刻I目标磁盘上的各个数据块储存成版本I数据块,且备份服务器还要储存各个数据块对应的索引信息,在索引信息中包括数据块的数据指纹和位置信息比如编号等信息。
[0102](2)目标磁盘上储存的数据在不断变化,主机中运行的备份客户端可以按照预置的策略发起时刻2目标磁盘上数据的备份流程,则备份客户端获得时刻2目标磁盘的各个数据块及各个数据块的数据指纹后,发送给备份服务器。
[0103]参考图6b和6c所示,由于在时刻I到时刻2之间,目标磁盘上除了数据块I和2位置的数据块之外,其它位置的数据块都没有改变,则备份服务器在将时刻2目标磁盘的各个数据块储存成版本2数据块时,会储存变化后的数据块I和2位置的数据块,并储存其它数据块的重定向信息,将这些数据块分别重定向到版本I中对应位置的数据块;同时储存变化后的数据块I和2的索引信息,并储存其它数据块的索引信息的重定向信息,将其它数据块的索引信息重定向到版本I中对应位置的数据块的索引信息。这样在储存版本2数据块时,就可以不用重复储存相同的信息。
[0104]其中,某一个数据块的索引信息中可以包括该数据块的编号和数据指纹,用数据块的编号来指示数据块的位置,具体为数据块分块大小(预先设定值)X数据块编号。例如,假设按照4MB将目标磁盘进行分块,数据块从O开始编号,则第一个位置上数据块的位置为起始地址为O的位置;第二个位置上数据块的编号为I,则第二个位置上数据块的位置为起始地址为4*1的位置,如果第一个数据块的逻辑寻址块(Logical Block Addressing, LBA)为O?(4*1024*1024-1),则第二个数据块就从4*1024*1024开始,即4194304。
[0105](3)目标磁盘上储存的数据在不断变化,主机中运行的备份客户端可以按照预置的策略发起时刻3目标磁盘上数据的备份流程,则备份客户端获得时刻3目标磁盘的各个数据块及各个数据块的数据指纹后,发送给备份服务器。
[0106]参考图6d所示,由于在时刻2到时刻3之间,目标磁盘上除了数据块2和3位置之外,其它位置的数据块都没有改变,则备份服务器在将时刻3目标磁盘的各个数据块储存成版本3数据块时,会储存变化后的数据块2和3位置上的数据块,并储存数据块I的重定向信息,将数据块I重定向到版本I中对应位置的数据块,且储存其它位置数据块的重定向信息,将这些数据块分别重定向到版本2中对应位置的数据块;同时储存变化后的数据块2和3的索引信息,并储存数据块I的重定向信息,将数据块I的索引信息重定向到版本I中对应位置的数据块的索引信息,且储存其它位置数据块的索引信息的重定向信息,将其它数据块的索引信息重定向到版本2中对应位置的数据块的索引信息。
[0107]二、在进行数据恢复时
[0108]用户通过操作主机中运行的备份客户端,发起数据恢复的流程,要求备份服务器恢复时刻2主机的目标磁盘上的数据,备份客户端会发送数据恢复请求给备份服务器。
[0109]参考图7所示,备份服务器会获取最新备份的主机目标磁盘的版本4中各个数据块的数据指纹,及时刻2的版本2中各个数据块的数据指纹,将版本4数据块的数据指纹与版本2数据块的数据指纹进行比较,得出只有数据块2、3、4和5位置上的数据块不一致,则将版本2中数据块2到5位置上的数据块,及这些数据块的位置发送给主机;主机运行的备份客户端根据接收的数据块的位置,会将当前磁盘中的数据块2到5用接收的数据块2到5替换,以实现数据恢复。
[0110]可见,通过上述数据的备份和恢复可以实现:
[0111]1、在数据恢复时,可以在备份服务器与主机之间传输具有差别的数据块,并由主机进行恢复,而不用传输整个磁盘上的数据块,提高了备份系统的数据恢复效率。
[0112]2、对于备份服务器与主机之间的带宽资源占用下降,将带宽资源留给其它业务使用,降低了对其它业务的影响。
[0113]3、主机在数据恢复时,只将具有差别的数据块写入到磁盘中进行数据恢复,减少了对磁盘读写传输的发起次数,降低磁盘损耗,同时降低了在恢复过程中磁盘设备损坏造成的次生糟害。
[0114]本发明实施例提供一种数据恢复装置,主要是上述的备份服务器,本实施例的其结构示意图如图8所示,包括:
[0115]请求接收单元10,用于接收数据恢复请求,所述数据恢复请求中包括所请求恢复的数据版本信息;
[0116]发送单元12,用于如果当前的第二版本中某一第二数据块,与所述请求接收单元10接收的数据恢复请求中的数据版本信息对应第一版本中对应位置的第一数据块不一致,则将所述第一数据块和所述第一数据块的位置信息发送给主机或存储设备,以使得所述主机或存储设备用所述第一数据块替换所述第二版本中所述位置信息所指示位置的第二数据块以进行数据恢复。
[0117]可见,在本实施例的数据恢复装置在进行数据恢复时,如果当前的第二版本中某一第二数据块,与第一版本中对应位置的第一数据块不一致,从而可以知道哪些数据块更新过,需要对哪些数据块进行恢复,而不需要对主机或存储设备中目标磁盘,或主机的虚拟机上储存的全部数据块进行恢复,使得可以减少数据恢复时恢复的数据,进一步地减少了数据恢复的时间;同时发送单元12不需要与主机或存储设备之间传输整个磁盘的数据块,也不需要与主机传输虚拟机储存的所有数据块,减少了本实施例的数据恢复装置与主机之间传输的数据量。
[0118]参考图9所示,在一个具体的实施例中,数据恢复装置除了可以包括图8所示的结构外,还可以包括指纹获取单元11、待备份获取单元13和储存单元14,其中:
[0119]指纹获取单元11,用于分别获取所述请求接收单元10接收的数据恢复请求中包括的数据版本信息对应第一版本中第一数据块对应的数据指纹及当前的第二版本中第二数据块对应的数据指纹;
[0120]待备份获取单元13,用于获取待备份数据块,及所述待备份数据块的数据指纹;该待备份获取单元13可以从主机或存储设备获取。
[0121]储存单元14,用于将所述待备份获取单元13获取的待备份数据块储存成所述第一版本数据块,并储存所述第一版本中各个数据块的索引信息,所述索引信息中包括所述待备份数据块的位置和数据指纹。
[0122]其中,储存单元14,具体用于如果所述第一版本中某一第一数据块与该数据恢复装置中储存单元14已储存的第三版本中对应位置的第三数据块相同,则储存所述某一第一数据块的第一重定向信息,所述第一重定向信息用于将所述第一版本中某一第一数据块重定向到所述第三版本中对应位置的第三数据块;和/或,具体用于如果所述第一版本中某一第一数据块与该数据恢复装置中储存单元14已储存的第三版本中对应位置的第三数据块相同,则所述储存所述第一版本某一第一数据块的索引信息具体包括:储存所述第一版本中所述某一第一数据块的索引信息的第二重定向信息,所述第二重定向信息用于将所述第一版本中某一第一数据块的索引信息重定向到所述第三版本中对应位置的第三数据块的索引信息。
[0123]本实施例中,当指纹获取单元11获取数据指纹后,发送单元12,具体用于如果所述指纹获取单元11获取的第二版本中某一第二数据块对应的数据指纹,与第一版本中对应位置的第一数据块对应的数据指纹不一致,则将所述第一数据块和所述第一数据块的位置信息发送给主机或存储设备。且本实施例中通过待备份获取单元13和储存单元14就可以将任意一个时刻主机或存储设备的目标磁盘上,或主机的虚拟机上储存的数据,储存成一个版本数据块。
[0124]本实施例中还提供一种备份服务器,结构示意图如图10所示,包括分别连接到总线上的处理器21、发射机22和接收机23,且还可以包括连接在总线上的存储器24,其中:
[0125]存储器24中用来储存从接收机23接收的数据,且还可以储存处理器21处理数据的必要文件等信息;发射机22和接收机23是备份服务器与其它设备通信的端口。
[0126]接收机23用于接收数据恢复请求,所述数据恢复请求中包括所请求恢复的数据版本信息;处理器21用于当前的第二版本中某一第二数据块,与第一版本中对应位置的第一数据块不一致,则发射机22用于将所述第一数据块和所述第一数据块的位置信息发送给主机或存储设备,以使得所述主机或存储设备用所述第一数据块替换所述第二版本中所述位置信息所指示位置的第二数据块以进行数据恢复。其中,处理器21具体可以获取接收机23接收的数据恢复请求中包括的数据版本信息对应第一版本中第一数据块对应的数据指纹及当前的第二版本中第二数据块对应的数据指纹,如果第二版本中某一第二数据块对应的数据指纹,与第一版本中对应位置的第一数据块对应的数据指纹不一致,则第二版本中某一第二数据块,与第一版本中对应位置的第一数据块不一致。
[0127]这样处理器21就可以知道哪些数据块更新过,需要对哪些数据块进行恢复,而不需要对主机或存储设备中目标磁盘,或主机的虚拟机上储存的全部数据块进行恢复,使得可以减少数据恢复时恢复的数据,进一步地减少了数据恢复的时间;同时发射机22不需要与主机或存储设备之间传输整个磁盘的数据块,也不需要发射机22与主机传输虚拟机储存的所有数据块,减少了本实施例的备份服务器与主机之间传输的数据量。
[0128]进一步地,处理器21还用于获取待备份数据块,及所述待备份数据块的数据指纹;所述存储器24将所述处理器21获取的待备份数据块储存成所述第一版本数据块,并储存所述第一版本中各个数据块的索引信息,所述索引信息中包括所述待备份数据块的位置和数据指纹。
[0129]其中,该存储器24具体用于如果所述第一版本某一中第一数据块与该存储器24已储存的第三版本中对应位置的第三数据块相同,则储存所述某一第一数据块的第一重定向信息,所述第一重定向信息用于将所述第一版本中某一第一数据块重定向到所述第三版本中对应位置的第三数据块;和/或,具体用于如果所述第一版本中某一第一数据块与该存储器24已储存的第三版本中对应位置的第三数据块相同,则所述储存所述第一版本某一第一数据块的索引信息具体包括:储存所述第一版本中所述某一第一数据块的索引信息的第二重定向信息,所述第二重定向信息用于将所述第一版本中某一第一数据块的索引信息重定向到所述第三版本中对应位置的第三数据块的索引信息。
[0130]这样通过处理器21和存储器24就可以将任意一个时刻主机或存储设备的目标磁盘,或主机的虚拟机上储存的数据,储存成一个版本数据块。
[0131]本实施例中还提供一种数据恢复装置,即上述的主机,其结构示意图如图11所示,包括:
[0132]请求发送单元30,用于发送数据恢复请求给备份服务器,所述数据恢复请求中包括所请求恢复的数据版本信息;
[0133]接收恢复单元31,用于接收所述备份服务器发送的第一数据块和所述第一数据块的位置信息,用所述第一数据块替换当前的第二版本中所位置信息所指示位置的第二数据块以进行数据恢复;
[0134]其中,所述第一数据块和第一数据块的位置信息是在所述第二版本中某一第二数据块,与所述数据恢复请求中包括的数据版本信息对应第一版本中对应位置的第一数据块不一致时,由所述备份服务器发送的。
[0135]本实施例的数据恢复装置中,当发起数据恢复流程时,由备份服务器将发生变化的第一数据块和第一数据块的位置信息返回给接收恢复单元31,让数据恢复装置恢复这些数据块,而不需要对该数据恢复装置的目标磁盘或虚拟机上储存的数据进行恢复,使得可以减少数据恢复时恢复的数据,进一步地减少了数据恢复的时间;同时不需要在备份服务器与该数据恢复装置之间传输整个磁盘的数据块或传输虚拟机上的所有数据块,减少了备份服务器与数据恢复装置之间传输的数据量。
[0136]进一步地,数据恢复装置还可以包括指纹计算单元32,用于将待备份的数据按照预定的大小划分成待备份数据块,并计算所述待备份数据块的数据指纹;备份发送单元33,用于将所述指纹计算单元32计算的数据指纹及所述待备份数据块发送给所述备份服务器,以使得所述备份服务器将所述待备份数据块储存成所述第一版本数据块,并储存所述第一版本中各个数据块的索引信息,所述索引信息中包括所述待备份数据块的位置和数据指纹。
[0137]本实施例中还提供一种主机,比如交换机或路由器等,结构示意图如图12所示,包括分别连接到总线上的处理器41、发射机42和接收机43,且还可以包括连接在总线上的存储器,其中:
[0138]存储器中用来储存从接收机43接收的数据,且还可以储存处理器41处理数据的必要文件等信息;发射机42和接收机43是主机与其它设备通信的端口。
[0139]发射机42用于发送数据恢复请求给备份服务器,所述数据恢复请求中包括所请求恢复的数据版本信息;接收机43用于接收所述备份服务器发送的第一数据块和所述第一数据块的位置信息;处理器41用于用所述第一数据块替换当前的第二版本中所位置信息所指示位置的第二数据块以进行数据恢复,其中,所述第一数据块和第一数据块的位置信息是在所述第二版本中某一第二数据块,与所述数据恢复请求中包括的数据版本信息对应第一版本中对应位置的第一数据块不一致时,由所述备份服务器发送的。这样就不需要对该主机的目标磁盘或虚拟机上储存的所有数据块进行恢复,使得可以减少数据恢复时恢复的数据,进一步地减少了数据恢复的时间;同时不需要在备份服务器与该主机之间传输整个磁盘的数据块或虚拟机上储存的所有数据块,减少了备份服务器与主机之间传输的数据量。
[0140]进一步地,主机中的处理器41还用于将待备份的数据按照预定的大小划分成待备份数据块,并计算所述待备份数据块的数据指纹;发射机42还用于将所述处理器41计算的数据指纹及所述待备份数据块发送给所述备份服务器,以使得所述备份服务器将所述待备份数据块储存成所述第一版本数据块,并储存所述第一版本中各个数据块的索引信息,所述索引信息中包括所述待备份数据块的位置和数据指纹。
[0141]本发明实施例还提供一种备份系统,结构示意图如图1a所示,主要可以包括备份服务器和至少一个主机,其中,备份服务器的结构可以如上述图8或9所述的数据恢复装置的结构,或如上述图10所述的备份服务器的结构;主机的结构可以如上述图11所述的数据恢复装置的结构,也可以如上述图12所述的主机的结构,在此不进行赘述。
[0142]本发明实施例还提供另一种备份系统,结构示意图如图1b所示,主要可以包括备份服务器和至少一个存储设备,其中,备份服务器的结构可以如上述图8或9所述的数据恢复装置的结构,或如上述图10所述的备份服务器的结构,在此不进行赘述。
[0143]本发明实施例还提供另一种备份系统,结构示意图如图1c所示,主要可以包括备份服务器和至少一个存储设备和存储备份,其中,备份服务器的结构可以如上述图8或9所述的数据恢复装置的结构,或如上述图10所述的备份服务器的结构,在此不进行赘述。其中,存储备份是用来备份存储设备上的数据的;而备份服务器是用来控制存储备份和存储设备,并将备份相关的数据都储存到存储备份中。
[0144]本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM)、随机存取存储器(RAM)、磁盘或光盘等。
[0145]以上对本发明实施例所提供的数据恢复方法、装置及备份系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在【具体实施方式】及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
【权利要求】
1.一种数据恢复方法,其特征在于,包括: 接收数据恢复请求,所述数据恢复请求中包括所请求恢复的数据版本信息; 如果当前的第二版本中某一第二数据块,与所述数据版本信息对应第一版本中对应位置的第一数据块不一致,则将所述第一数据块和所述第一数据块的位置信息发送给主机或存储设备,以使得所述主机或存储设备用所述第一数据块替换所述第二版本中所述位置信息所指示位置的第二数据块以进行数据恢复。
2.如权利要求1所述的方法,其特征在于,所述将所述第一数据块和所述第一数据块的位置信息发送给主机或存储设备之前,还包括: 分别获取所述数据版本信息对应第一版本中第一数据块对应的数据指纹及当前的第二版本中第二数据块对应的数据指纹; 如果所述第二版本中某一第二数据块对应的数据指纹,与第一版本中对应位置的第一数据块对应的数据指纹不一致,则所述当前的第二版本中某一第二数据块,与所述数据版本信息对应第一版本中对应位置的第一数据块不一致。
3.如权利要求2所述的方法,其特征在于,所述接收数据恢复请求之前,还包括: 获取待备份数据块,及所述待备份数据块的数据指纹; 将所述待备份数据块储存成所述第一版本数据块,并储存所述第一版本中各个数据块的索引信息,所述索引信息中包括所述待备份数据块的位置和数据指纹。
4.如权利要求3所述的方法,其特征在于, 如果所述第一版本中某 一第一数据块与备份服务器中已储存的第三版本中对应位置的第三数据块相同,则所述将所述待备份数据块储存成所述第一版本数据块具体包括:储存所述某一第一数据块的第一重定向信息,所述第一重定向信息用于将所述第一版本中某一第一数据块重定向到所述第三版本中对应位置的第三数据块;和/或, 如果所述第一版本中某一第一数据块与备份服务器中已储存的第三版本中对应位置的第三数据块相同,则所述储存所述第一版本的某一第一数据块的索引信息具体包括:储存所述第一版本中所述某一第一数据块的索引信息的第二重定向信息,所述第二重定向信息用于将所述第一版本中某一第一数据块的索引信息重定向到所述第三版本中对应位置的第三数据块的索引信息。
5.一种数据恢复方法,其特征在于,包括: 发送数据恢复请求给备份服务器,所述数据恢复请求中包括所请求恢复的数据版本信息; 接收所述备份服务器发送的第一数据块和所述第一数据块的位置信息,用所述第一数据块替换当前的第二版本中所位置信息所指示位置的第二数据块以进行数据恢复; 其中,所述第一数据块和第一数据块的位置信息是在所述第二版本中某一第二数据块,与所述数据恢复请求中包括的数据版本信息对应第一版本中对应位置的第一数据块不一致时,由所述备份服务器发送的。
6.如权利要求5所述的方法,其特征在于,所述发送数据恢复请求给备份服务器之前,还包括: 将待备份的数据按照预定的大小划分成待备份数据块,并计算所述待备份数据块的数据指纹;将所述计算的数据指纹及所述待备份数据块发送给所述备份服务器,以使得所述备份服务器将所述待备份数据块储存成所述第一版本数据块,并储存所述第一版本中各个数据块的索引信息,所述索引信息中包括所述待备份数据块的位置和数据指纹。
7.一种数据恢复装置,其特征在于,包括: 请求接收单元,用于接收数据恢复请求,所述数据恢复请求中包括所请求恢复的数据版本信息; 发送单元,用于如果当前的第二版本中某一第二数据块,与所述请求接收单元接收的数据恢复请求中的数据版本信息对应第一版本中对应位置的第一数据块不一致,则将所述第一数据块和所述第一数据块的位置信息发送给主机或存储设备,以使得所述主机或存储设备用所述第一数据块替换所述第二版本中所述位置信息所指示位置的第二数据块以进行数据恢复。
8.如权利要求7所述的装置,其特征在于,还包括: 指纹获取单元,用于分别获取所述请求接收单元接收的数据恢复请求中包括的数据版本信息对应第一版本中第一数据块对应的数据指纹及当前的第二版本中第二数据块对应的数据指纹; 所述发送单元,具体用于如果所述指纹获取单元获取的第二版本中某一第二数据块对应的数据指纹,与第一版本中对应位置的第一数据块对应的数据指纹不一致,则将所述第一数据块和所述第一数据块的位置信息发送给主机或存储设备。
9.如权利要求8所述的装置,其特征在于,还包括: 待备份获取单元,用于获取待备份数据块,及所述待备份数据块的数据指纹; 储存单元,用于将所述待备份获取单元获取的待备份数据块储存成所述第一版本数据块,并储存所述第一版本中各个数据块的索引信息,所述索引信息中包括所述待备份数据块的位置和数据指纹。
10.如权利要求9所述的装置,其特征在于, 所述储存单元,具体用于如果所述第一版本中某一第一数据块与所述储存单元中已储存的第三版本中对应位置的第三数据块相同,则储存所述某一第一数据块的第一重定向信息,所述第一重定向信息用于将所述第一版本中某一第一数据块重定向到所述第三版本中对应位置的第三数据块;和/或, 具体用于如果所述第一版本中某一第一数据块与储存单元中已储存的第三版本中对应位置的第三数据块相同,则储存所述第一版本中所述某一第一数据块的索引信息的第二重定向信息,所述第二重定向信息用于将所述第一版本中某一第一数据块的索引信息重定向到所述第三版本中对应位置的第三数据块的索引信息。
11.一种数据恢复装置,其特征在于,包括: 请求发送单元,用于发送数据恢复请求给备份服务器,所述数据恢复请求中包括所请求恢复的数据版本信息; 接收恢复单元,用于接收所述备份服务器发送的第一数据块和所述第一数据块的位置信息,用所述第一数据块替换当前的第二版本中所位置信息所指示位置的第二数据块以进行数据恢复; 其中,所述第一数据块和第一数据块的位置信息是在所述第二版本中某一第二数据块,与所述数据恢复请求中包括的数据版本信息对应第一版本中对应位置的第一数据块不一致时,由所述备份服务器发送的。
12.如权利要求11所述的装置,其特征在于,还包括: 指纹计算单元,用于将待备份的数据按照预定的大小划分成待备份数据块,并计算所述待备份数据块的数据指纹; 备份发送单元,用于将所述计算的数据指纹及所述待备份数据块发送给所述备份服务器,以使得所述备份服务器将所述待备份数据块储存成所述第一版本数据块,并储存所述第一版本中各个数据块的索引信息,所述索引信息中包括所述待备份数据块的位置和数据指纹。
13.一种备份系统,其特征在于,包括备份服务器和至少一个主机,所述备份服务器是如权利要求7至10任一项所述的数据恢复装置,所述主机是如权利要求11或12所述的数据恢复装置。
14.一种备份系统,其特征在于,包括备份服务器和至少一个存储设备,所述备份服务器是如权利要求7至10任一项所述的数据恢复装置。
【文档编号】G06F11/14GK103870362SQ201410109548
【公开日】2014年6月18日 申请日期:2014年3月21日 优先权日:2014年3月21日
【发明者】陈炯 申请人:华为技术有限公司