本发明涉及数据处理技术领域,特别是涉及一种数据备份、恢复方法、装置、电子设备及存储介质。
背景技术:
私有云(privateclouds)是为一个用户单独使用而构建的云端的存储空间。当前,在私有云场景下,当云磁盘的硬件出现故障或者云磁盘中的数据发生逻辑错误时,会造成数据不可逆的损失。其中,导致数据发生逻辑错误的原因包括:发生误删数据的操作、云磁盘遭遇黑客攻击或病毒危害等。
为了使云磁盘中的数据不受到损失,目前的方法是:将云磁盘中的数据备份至用户的本地数据中心。具体的,本地数据中心可以通过部署一些存储设备来实现,即可以将云磁盘中的数据备份至一些存储设备。
然而,本地数据中心中的存储设备通常需要用户自己购买,这样会增加存储数据的设备成本。
技术实现要素:
本发明实施例的目的在于提供一种数据备份、恢复方法、装置、电子设备及存储介质,以降低数据备份的设备成本。具体技术方案如下:
第一方面,本发明实施例提供了一种数据备份方法,应用于服务器,所述方法包括:
接收针对目标云磁盘的数据备份指令;其中,所述数据备份指令中携带有对所述目标云磁盘的待备份数据进行备份的备份类型;
按照所述备份类型,将所述待备份数据备份至公有云数据中心。
可选地,按照所述备份类型,将所述待备份数据备份至公有云数据中心包括:
在所述备份类型为全量备份的情况下,将所述待备份数据全量备份至所述公有云数据中心;
在所述备份类型为增量备份的情况下,确定所述待备份数据中进行增量备份的数据块,将进行增量备份的数据块备份至所述公有云数据中心。
可选地,确定所述待备份数据中进行增量备份的数据块包括:
针对所述待备份数据中的每个数据块,执行以下步骤:
将所述数据块对应的哈希值与所述公有云数据中心中存储的与所述数据块对应的父备份数据块的哈希值进行比较;
在比较结果为不同的情况下,确定所述数据块为所述进行增量备份的数据块。
可选地,在接收针对目标云磁盘的数据备份指令之后,所述方法还包括:
将所述待备份数据划分为第一预设数量个数据块;
计算所述第一预设数量个数据块中每个数据块对应的哈希值;
将每个数据块对应的哈希值存储至所述公有云数据中心。
可选地,在将所述待备份数据备份至公有云数据中心之后,所述方法还包括:
将所述待备份数据对应的备份信息,记录在所述待备份数据对应的备份链中,所述备份链存储于所述服务器或者所述公有云数据中心中;
其中,所述备份信息包括:将所述待备份数据备份至公有云数据中心的备份时间和相应的备份内容的标识。
可选地,在接收针对目标云磁盘的数据备份指令之后,所述方法还包括:
将所述待备份数据的元数据,以及所述待备份数据的每个数据块的元数据存储至所述公有云数据中心,其中,所述待备份数据的元数据至少包括:所述待备份数据的名称、大小和所述待备份数据在所述目标云磁盘中的位置,所述待备份数据的每个数据块的元数据至少包括:该数据块的名称、大小和该数据块在所述待备份数据中的位置。
第二方面,本发明实施例提供了一种数据恢复方法,应用于服务器,所述方法包括:
接收针对目标云磁盘的数据恢复指令;
确定针对所述目标云磁盘中的待恢复数据的恢复类型;
在所述恢复类型为全量数据恢复的情况下,从公有云数据中心中,读取与所述待恢复数据对应的全量备份内容,将所述全量备份内容作为所述待恢复数据对应的目标备份数据,并将所述待恢复数据对应的目标备份数据恢复至所述目标云磁盘的相应位置;
在所述恢复类型为增量数据恢复的情况下,从所述公有云数据中心中,读取所述待恢复数据对应的所有备份内容,基于所述所有备份内容,对所述待恢复数据进行数据恢复,得到所述待恢复数据对应的目标备份数据,并将所述待恢复数据对应的目标备份数据恢复至所述目标云磁盘的相应位置;
其中,所述待恢复数据的所有备份内容包括:所述待恢复数据对应的全量备份内容,以及,所述待恢复数据对应的各个增量备份内容。
可选地,所述待恢复数据对应有一个备份链,所述备份链存储于所述服务器或者所述公有云数据中心中,所述备份链记录有:所述待恢复数据对应的全量备份内容的标识和所述全量备份内容的备份时间,以及所述待恢复数据对应的各个增量备份内容的标识和所述各个增量备份内容的备份时间;
从所述公有云数据中心中,读取所述待恢复数据对应的所有备份内容包括:
基于所述全量备份内容的标识,从所述公有云数据中心中读取所述全量备份内容,以及基于每个增量备份内容的标识,从所述公有云数据中心中读取该增量备份内容。
可选地,基于所述所有备份内容,对所述待恢复数据进行数据恢复,得到所述待恢复数据对应的目标备份数据包括:
恢复所述待恢复数据对应的全量备份内容,并在所恢复的所述全量备份内容的基础上,按照增量备份的先后顺序,依次恢复所述待恢复数据对应的增量备份内容,得到所述待恢复数据对应的目标备份数据。
可选地,将所述待恢复数据对应的目标备份数据恢复至所述目标云磁盘的相应位置,包括:
获取所述待恢复数据在所述目标云磁盘中的位置和大小;
根据所述位置和大小,将所述待恢复数据对应的目标备份数据恢复至所述目标云磁盘的相应位置。
第三方面,本发明实施例提供了一种数据备份装置,应用于服务器,所述装置包括:
第一接收模块,用于接收针对目标云磁盘的数据备份指令;其中,所述数据备份指令中携带有对所述目标云磁盘的待备份数据进行备份的备份类型;
备份模块,用于按照所述备份类型,将所述待备份数据备份至公有云数据中心。
可选地,所述备份模块,包括:
第一备份单元,用于在所述备份类型为全量备份的情况下,将所述待备份数据全量备份至所述公有云数据中心;
第二备份单元,用于在所述备份类型为增量备份的情况下,确定所述待备份数据中进行增量备份的数据块,将进行增量备份的数据块备份至所述公有云数据中心。
可选地,所述第二备份单元,具体用于针对所述待备份数据中的每个数据块,执行以下步骤:将所述数据块对应的哈希值与所述公有云数据中心中存储的与所述数据块对应的父备份数据块的哈希值进行比较;在比较结果为不同的情况下,确定所述数据块为所述进行增量备份的数据块。
可选地,所述装置还包括:
第一存储模块,用于在所述第一接收模块接收针对目标云磁盘的数据备份指令之后,将所述待备份数据划分为第一预设数量个数据块;计算所述第一预设数量个数据块中每个数据块对应的哈希值;将每个数据块对应的哈希值存储至所述公有云数据中心。
可选地,所述装置还包括:
记录模块,用于在所述备份模块将所述待备份数据备份至公有云数据中心之后,将所述待备份数据对应的备份信息,记录在所述待备份数据对应的备份链中,所述备份链存储于所述服务器或者所述公有云数据中心中;
其中,所述备份信息包括:将所述待备份数据备份至公有云数据中心的备份时间和相应的备份内容的标识。
可选地,所述装置还包括:
第二存储模块,用于在所述第一接收模块接收针对目标云磁盘的数据备份指令之后,将所述待备份数据的元数据,以及所述待备份数据的每个数据块的元数据存储至所述公有云数据中心,其中,所述待备份数据的元数据至少包括:所述待备份数据的名称、大小和所述待备份数据在所述目标云磁盘中的位置,所述待备份数据的每个数据块的元数据至少包括:该数据块的名称、大小和该数据块在所述待备份数据中的位置。
第四方面,本发明实施例提供了一种数据恢复装置,应用于服务器,所述装置包括:
第二接收模块,用于接收针对目标云磁盘的数据恢复指令;
确定模块,用于确定针对所述目标云磁盘中的待恢复数据的恢复类型;
第一恢复模块,用于在所述恢复类型为全量数据恢复的情况下,从公有云数据中心中,读取与所述待恢复数据对应的全量备份内容,将所述全量备份内容作为所述待恢复数据对应的目标备份数据,并将所述待恢复数据对应的目标备份数据恢复至所述目标云磁盘的相应位置;
第二恢复模块,用于在所述恢复类型为增量数据恢复的情况下,从所述公有云数据中心中,读取所述待恢复数据对应的所有备份内容,基于所述所有备份内容,对所述待恢复数据进行数据恢复,得到所述待恢复数据对应的目标备份数据,并将所述待恢复数据对应的目标备份数据恢复至所述目标云磁盘的相应位置;
其中,所述待恢复数据的所有备份内容包括:所述待恢复数据对应的全量备份内容,以及,所述待恢复数据对应的各个增量备份内容。
可选地,所述待恢复数据对应有一个备份链,所述备份链存储于所述服务器或者所述公有云数据中心中,所述备份链记录有:所述待恢复数据对应的全量备份内容的标识和所述全量备份内容的的备份时间,以及所述待恢复数据对应的各个增量备份内容的标识和所述各个增量备份内容的备份时间;
所述第二恢复模块,具体用于基于所述全量备份内容的标识,从所述公有云数据中心中读取所述全量备份内容,以及基于每个增量备份内容的标识,从所述公有云数据中心中读取该增量备份内容。
可选地,所述第二恢复模块,具体用于恢复所述待恢复数据对应的全量备份内容,并在所恢复的所述全量备份内容的基础上,按照增量备份的先后顺序,依次恢复所述待恢复数据对应的增量备份内容,得到所述待恢复数据对应的目标备份数据。
可选地,所述第一恢复模块和所述第二恢复模块,具体用于获取所述待恢复数据在所述目标云磁盘中的位置和大小;根据所述位置和大小,将所述待恢复数据对应的目标备份数据恢复至所述目标云磁盘的相应位置。
第五方面,本发明实施例提供了一种服务器,包括处理器、通信接口、存储器和通信总线,其中,所述处理器、所述通信接口、所述存储器通过所述通信总线完成相互间的通信;
所述存储器,用于存放计算机程序;
所述处理器,用于执行所述存储器上所存放的程序时,实现如上第一方面所述的数据备份方法步骤。
第六方面,本发明实施例提供了一种服务器,包括处理器、通信接口、存储器和通信总线,其中,所述处理器、所述通信接口、所述存储器通过所述通信总线完成相互间的通信;
所述存储器,用于存放计算机程序;
所述处理器,用于执行所述存储器上所存放的程序时,实现如上第二方面所述的数据恢复方法步骤。
第七方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现如上第一方面所述的数据备份方法步骤。
第八方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现如上第二方面所述的数据恢复方法步骤。
本发明实施例提供的方案,在需要对目标云磁盘中的数据进行备份时,服务器接收针对目标云磁盘的数据备份指令;其中,所述数据备份指令中携带有对所述目标云磁盘的待备份数据进行备份的备份类型;按照所述备份类型,将所述待备份数据备份至公有云数据中心。本发明实施例通过将目标云磁盘中的待备份数据以全量备份或增量备份的方式备份至公有云数据中心,可以降低数据备份的设备成本。
当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1为本发明实施例提供的一种数据备份方法的流程图;
图2为本发明实施例提供的一种数据恢复方法的流程图;
图3为本发明实施例提供的一种数据备份装置的结构图;
图4为本发明实施例提供的一种数据恢复装置的结构图;
图5为本发明实施例提供的一种服务器的结构示意图;
图6为本发明实施例提供的另一种服务器的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
当前,在私有云场景下,当云磁盘的硬件出现故障或者云磁盘中的数据发生逻辑错误时,会造成数据不可逆的损失。为了使云磁盘中的数据不受到损失,目前的方法是:将云磁盘中的数据备份至用户的本地数据中心。具体的,本地数据中心可以通过将一些存储设备部署为预定类型的存储集群来实现。预定类型的存储集群包括:swift(对象存储服务集群)、glusterfs(分布式文件系统)、nfs(networkfilesystem,网络文件系统)、posix(本地文件系统)、tsm(tivolistoragemanager,全面维护系统)和ceph(分布式存储系统)等。
然而,本地数据中心的存储设备通常需要用户自己购买,这样会增加存储数据的设备成本。而且,本地数据中心的存储设备需要用户自己维护,例如:本地数据中心的存储容量不够时需要用户来扩容等,这样会增加人工运维的成本。
为了解决现有技术问题,本发明实施例提供了一种数据备份、恢复方法、装置、服务器及存储介质。
下面首先对本发明实施例提供的一种数据备份方法进行介绍。
需要说明的是,本发明实施例提供的一种数据备份方法,可以应用于服务器。该服务器是用于将本地数据中心中的目标云磁盘中的待备份数据备份至预设公有云的服务器。具体的,该服务器可以接收一客户端设备发出的针对目标云磁盘的数据备份指令,并响应该指令对目标云磁盘中的待备份数据进行备份。
如图1所示,本发明实施例提供的一种数据备份方法,可以包括如下步骤:
s101,接收针对目标云磁盘的数据备份指令;其中,数据备份指令中携带有对目标云磁盘的待备份数据进行备份的备份类型。
当需要对一云磁盘中的数据进行备份时,可以将该云磁盘作为目标云磁盘。服务器接收的针对目标云磁盘的数据备份指令,可以是由一客户端设备发出的数据备份指令。该客户端设备发出的数据备份指令可以是由用户在客户端设备的界面内进行相应的操作而生成的,也可以是由用户预先设置的、在达到某种预定条件时,由该客户端设备自动生成的数据备份指令。例如,用户预先设置每隔一定的时长对目标云磁盘中的数据进行备份,则该客户端设备可以周期性地生成数据备份指令,并发送至服务器。
本实施例中,待备份数据是指:目标云磁盘中需要备份的一个备份数据块。在备份之前,可以将目标云磁盘中的数据划分为第二预设数量个备份数据块。每一个备份数据块为一个待备份数据,这样,便于以数据块为单位对目标云磁盘中的数据进行备份。也就是说,可以预先将该目标云磁盘划分为多个区间,在对目标云磁盘进行备份时,针对所划分的每一个区间,将该区间中当前的数据作为待备份数据。
第二预设数量可以根据需要进行设定。在具体应用中,还可以根据用于备份待备份数据的公有云数据中心的类型,来确定第二预设数量。例如,如果将待备份数据备份至亚马逊公有云s3中,则将一个备份数据块的大小设定为50m,那么,如果目标云磁盘的数据的大小为500m,则第二预设数量为10,即将目标云磁盘的数据划分为10个备份数据块。
进一步地,在接收针对目标云磁盘的数据备份指令之后,上述方法还可以包括以下步骤:
将待备份数据划分为第一预设数量个数据块;
计算第一预设数量个数据块中每个数据块对应的哈希值;
将每个数据块对应的哈希值存储至公有云数据中心。
本实施例中,可以将待备份数据划分为第一预设数量个数据块,并计算待备份数据中每个数据块的哈希值。这样,便于在对目标云磁盘进行增量备份时,确定具体对待备份数据中的哪些数据块进行备份。数据块的大小的单位可以为字节,例如,一个数据块的大小可以为32个字节。
本实施例对计算每个数据块的哈希值的方法并不限定。示例性的,可以采用md5(message-digestalgorithm,消息摘要算法)计算每个数据块的哈希值。
在计算得到每个数据块对应的哈希值之后,可以将所计算的哈希值存储至公有云数据中心,以便于后续对目标云磁盘进行增量备份。
s102,按照备份类型,将待备份数据备份至公有云数据中心。
本实施例中,对目标云磁盘中的待备份数据的备份类型可以包括:全量备份和增量备份。具体的,在上述数据备份指令中携带有对目标云磁盘的待备份数据进行备份的备份类型。该备份类型的具体形式可以是一备份类型参数。根据该备份类型参数,可以确定针对目标云磁盘中的待备份数据的备份类型。在实际应用中,该备份类型参数及其取值的形式可以预先设定,且可以有多种。示例性地,将备份类型参数表示为:increment,当increment的取值为true时,即当increment=true时,表示备份类型为增量备份;当increment的取值为false时,即当increment=false时,表示备份类型为全量备份。
在实际应用中,如果是首次对目标云磁盘进行备份,需要对目标云磁盘中的全部数据进行备份,即对目标云磁盘进行全量备份,那么,上述数据备份指令中的备份类型为全量备份。
如果不是首次对目标云磁盘进行备份,一种方式中,可以对目标云磁盘中的发生改变的数据进行备份,即对目标云磁盘进行增量备份,那么,上述数据备份指令中的备份类型为增量备份;另一种方式中,也可以对目标云磁盘进行全量备份,那么,上述数据备份指令中的备份类型为全量备份。
本实施例中,按照备份类型,将待备份数据备份至公有云数据中心,可以包括以下步骤:
步骤1021,在备份类型为全量备份的情况下,将待备份数据全量备份至公有云数据中心;
步骤1022,在备份类型为增量备份的情况下,确定待备份数据中进行增量备份的数据块,将进行增量备份的数据块备份至公有云数据中心。
下面详细介绍步骤1021:
公有云是一种第三方提供商为用户提供的能够使用的云。将数据备份至公有云可以具有以下优势:
1.公有云存储数据的持久性比本地数据中心高,通常可以实现99.99999999%的持久性,即便是发生了较大的灾害,仍然可以保证数据的完整性;
2.将数据备份至公有云时,一旦本地数据中心发生灾害,可以利用保存在公有云的备份数据完成数据的恢复。
本实施例中,公有云数据中心可以由用户来选择。示例性地,公有云数据中心可以是亚马逊公有云s3。
如果首次对目标云磁盘进行备份,可以将待备份数据备份至公有云数据中心。如果不是首次对目标云磁盘进行备份,也可以对目标云磁盘进行全量备份,即可以将待备份数据备份至公有云数据中心。同时为了便于后续对目标云磁盘进行增量备份,可以将待备份数据中每个数据块的哈希值存储至公有云数据中心。
可以理解的是,不同的公有云数据中心的结构可能不同。那么,针对不同的公有云数据中心,将待备份数据备份至公有云数据中心的方式也就不同。具体的,将待备份数据备份至公有云数据中心时,所选择的云计算服务、存储组件以及对公有云数据中心的驱动都不同。下面,以公有云数据中心是亚马逊公有云s3作为示例,简要说明将待备份数据备份至s3的过程:
在本示例中,选择开源社区openstack提供云计算服务,并利用开源社区openstack中的块存储组件cinder作为存储组件。在cinder组件中,备份backup服务可以提供针对存储卷的备份服务,支持将存储卷备份到开源社区openstack所支持的后端设备中,比如swift集群、ceph集群等。目前,由于开源社区openstack所支持的后端设备中,并不支持s3。因而,为了将待备份数据备份至s3,需要先实现对s3的驱动。在本示例中,可以通过如下的配置信息实现对s3的驱动:
cinder.conf文件配置下面内容:
backup_driver=cinder.backup.drivers.s3
backup_s3_endpoint_url=http://localhost:82
backup_s3_access_key_id=**
backup_s3_secret_access_key=***
backup_s3_kms=****
backup_s3_bucket=volumebackups
backup_s3_object_size=52428800
其中,“cinder.conf”表示配置文件的名称;“backup_driver=cinder.backup.drivers.s3”表示利用backup服务实现的驱动是到s3的驱动;“backup_s3_endpoint_url=http://localhost:82”表示s3对应的url(uniformresourcelocator,统一资源定位符)是http://localhost:82;“backup_s3_access_key_id=**”表示访问s3的用户名是**;“backup_s3_secret_access_key=”表示访问s3的密码是***;“backup_s3_kms=****”表示是否将待备份数据加密备份至s3,如果****为true,表示加密备份,否则,表示不加密备份;“backup_s3_bucket=volumebackups”表示将待备份数据备份至s3中名称为volumebackups的桶中;表示将待备份数据的大小为52428800字节,即待备份数据的大小为50m。
在首次对目标云磁盘进行备份时,可以通过以上配置信息实现对s3的驱动。并在配置完成后执行命令:serviceopenstack-cinder-backupstart来启动备份服务,将待备份数据块备份至s3。具体的,将待备份数据备份至所选择的s3桶中。这样,就实现了对目标云磁盘的全量备份。而且,可以将每个数据块的哈希值也存储在该s3桶中,以便于后续对目标云磁盘进行增量备份。
下面详细介绍步骤1022:
如果不是首次对目标云磁盘进行备份,那么为了减少备份时间,以及尽量少地占用公有云数据中心的存储空间,可以对目标云磁盘进行增量备份。也就是说,针对待备份数据,只将其中的、相对于上一次备份发生变化的数据块备份至公有云数据中心。
在一种实现方式中,确定待备份数据中进行增量备份的数据块,可以包括:
针对待备份数据中的每个数据块,执行以下步骤:
将数据块对应的哈希值与公有云数据中心中存储的与数据块对应的父备份数据块的哈希值进行比较;
在比较结果为不同的情况下,确定数据块为进行增量备份的数据块。
具体的,针对待备份数据中的每一数据块,可以将该数据块的哈希值与公有云数据中心中该数据块对应的父备份数据块的哈希值进行比较。若比较结果为不同,说明该数据块相对于其父备份数据块发生了变化,那么,可以将该数据块备份至公有云数据中心。相反,若该数据块的比较结果为相同,说明该数据块相对于其父备份数据块未发生变化,那么,可以不必将该数据块备份至公有云数据中心。
其中,任一数据块的父备份数据块是指:公有云数据中心中,该数据块对应的所有备份内容中、最近一次备份的备份内容。例如:一数据块为a,该数据块对应的所有备份内容为a0,a1,a2,其中a2是最近一次备份的备份内容,则该数据块a的父备份数据块为a2。
可以理解的,对于任一数据块,无论该数据块是否需要被备份至公有云数据中心,都可以将该数据块的哈希值存储至公有云数据中心。这样,在下一次增量备份时,便于利用本次增量备份时存储至公有云数据中心的、每一数据块的哈希值,来确定下一次增量备份时对待备份数据中的哪些数据块进行备份。
本发明实施例提供的方案,在需要对目标云磁盘中的数据进行备份时,服务器接收针对目标云磁盘的数据备份指令;其中,所述数据备份指令中携带有对所述目标云磁盘的待备份数据进行备份的备份类型;按照所述备份类型,将所述待备份数据备份至公有云数据中心。本发明实施例通过将目标云磁盘中的待备份数据以全量备份或增量备份的方式备份至公有云数据中心,可以降低数据备份的设备成本。同时,可以减少需要备份数据的用户的人力运维成本。本发明实施例提供的方案,将目标云磁盘中的待备份数据备份至公有云数据中心。这样,可以在目标云磁盘出现故障或目标云磁盘中的数据出现逻辑错误时,从公有云数据中心中对目标云磁盘中的待恢复数据进行数据恢复。
可选地,在图1所示实施例的基础上,在将待备份数据备份至公有云数据中心之后,上述方法还可以包括:将待备份数据对应的备份信息,记录在待备份数据对应的备份链中,备份链存储于服务器或者公有云数据中心中。
其中,备份信息包括:将待备份数据备份至公有云数据中心的备份时间和相应的备份内容的标识。
由于待备份数据是指目标云磁盘中某一个区间中当前的数据,所以待备份数据对应的备份链可以是针对该区间的备份链。这里,可以将待备份数据对应的备份链看做一条直线,针对待备份数据所在的区间,将对该区间中数据进行全量备份的时间和相应的全量备份内容的标识,以及对该区间中数据每次进行增量备份的时间和相应的增量备份内容的标识,均记录在该直线中。而且各次备份过程中待备份数据的备份信息按照备份时间的先后顺序连接在该直线中。这样在不断的备份过程中,就构建出该待备份数据对应的备份链。针对待备份数据所构建的备份链可以用于对该待备份数据进行数据恢复。
而且,所构建的备份链,可以存储于服务器中,也可以存储于公有云数据中心中,这都是合理的。
可选地,在图1所示实施例的基础上,在接收针对目标云磁盘的数据备份指令之后,上述方法还包括:
将待备份数据的元数据,以及待备份数据的每个数据块的元数据存储至公有云数据中心,其中,待备份数据的元数据至少包括:待备份数据的名称、大小和待备份数据在目标云磁盘中的位置,待备份数据的每个数据块的元数据至少包括:该数据块的名称、大小和该数据块在待备份数据中的位置。
其中,待备份数据在目标云磁盘中的位置可以是:待备份数据的偏移量。该偏移量是指:待备份数据相对于目标云磁盘中预定位置的偏移量。
本实施例中,可以将待备份数据的元数据存储至公有云数据中心中。这样,在对该待备份数据进行全量恢复时,可以根据该待备份数据的名称,从公有云数据中心中读取该待备份数据对应的全量备份内容,再根据该待备份数据在目标云磁盘中的位置和大小将该待备份数据恢复至目标云磁盘中相应的位置。
在具体应用中,在将待备份数据备份至公有云数据中心时,可以采用预设的压缩算法对该待备份数据进行压缩后,备份至公有云数据中心,这样可以减少数据的传输量。那么,相应地,上述待备份数据的元数据中还可以包括:预设的压缩算法的名称。这样,便于在恢复待备份数据时,根据预设的压缩算法,采用相对应的解压算法对公有云数据中心中的该待备份数据对应的压缩形式的备份内容先进行解压,然后恢复至目标云磁盘中相应的位置。
其中,待备份数据的任一数据块的位置可以是:待数据块的偏移量。该偏移量是指:该数据块相对于该待备份数据中预定位置的偏移量。
本实施例中,可以将待恢复数据的每个数据块的元数据也存储至公有云数据中心中。这样,在对任一数据块进行增量恢复时,可以根据该数据块名称,从公有云数据中心中读取该数据块,即读取该数据块对应的增量备份内容,再根据该数据块在待备份数据中的位置和大小将该数据块恢复至该待备份数据中相应的位置。这样,就实现了对该待备份数据的恢复。进一步地,根据该待备份数据在目标云磁盘中的位置和大小,可以将该待备份数据恢复至目标云磁盘中相应的位置。
在具体应用中,在将任一数据块备份至公有云数据中心时,可以采用预设的压缩算法对该数据块进行压缩后,备份至公有云数据中心,这样可以减少数据的传输量。那么,相应地,上述的该数据块的元数据中还可以包括:预设的压缩算法的名称。这样,便于在恢复该数据块时,根据该预设的压缩算法,采用相对应的解压算法对公有云数据中心中的该数据块对应的压缩形式的备份内容先进行解压,然后恢复至该待备份数据中相应的位置。
当然,将待备份数据的元数据,以及待备份数据的每个数据块的元数据存储至公有云数据中心的步骤,与将待备份数据备份至公有云数据中心的步骤之间并没有严格的先后执行顺序。
可选地,在图1所示实施例的基础上,步骤s1022中的将进行增量备份的数据块备份至公有云数据中心,可以包括如下步骤:
将连续的至少两个进行增量备份的数据块以合并发送的方式,备份至公有云数据中心。
如果待备份数据中存在连续的至少两个进行增量备份的数据块,可以将该连续的至少两个进行增量备份的数据块进行合并,将合并后的数据块备份至公有云数据中心。这样可以减少网络连接的次数,提高数据备份的效率。
下面通过一个具体实施例,介绍本发明实施例提供的一种数据备份方法,可以包括如下步骤:
步骤21,客户端设备根据用户的操作创建针对目标云磁盘的备份请求;
步骤22,客户端设备对备份请求的参数进行检查,并判断;其中,请求的参数包括:目标云磁盘的标识和备份请求的次数;检查的内容包括:检查备份请求的次数是否大于1;若不大于1,则确定备份请求为针对目标云磁盘的全量备份请求,判断的内容包括:判断目标云磁盘是否正在备份中,若未在备份中,则转至步骤23,否则,结束流程;若大于1,则确定备份请求为针对目标云磁盘的增量备份请求,判断的内容包括:判断目标云磁盘是否正在备份中,以及判断目标云磁盘的当前大小与全量备份时的大小是否相同,若未在备份中且大小相同,则转至步骤23,否则,结束流程;
步骤23,客户端设备将备份基本信息存放至本地数据库;备份基本信息包括:目标云磁盘的是否正在备份的备份状态,目标云磁盘的上一次备份的时间和目标云磁盘的标识;
步骤24,客户端设备向服务器发送针对目标云磁盘的数据备份指令;数据备份指令的形式表示为:<<signalreceiptrpc>>;
步骤25,若针对目标云磁盘进行全量备份,客户端设备将用于驱动s3的配置文件发送至服务器,服务器中的cinder组件通过该配置文件配置s3,并访问s3;若针对目标云磁盘进行增量备份,客户端设备确定公有云数据中心(即后端)为s3,并通过服务器访问s3;
步骤26,服务器循环整个目标云磁盘,每读取大小为chunk_size的数据后,生成一个待备份数据;将每个待备份数据的每sha_block_size个字节作为一个数据块,并计算每一数据块的哈希值,将哈希值保存为sha256文件;若针对目标云磁盘进行全量备份,转至步骤27;若针对目标云磁盘进行增量备份,转至步骤28;
步骤27,服务器读取目标云磁盘中的每一待备份数据,对该待备份数据进行压缩,将压缩好的数据存储至s3桶中,转至步骤29;
步骤28,服务器将每一数据块的sha256文件值(即哈希值)与s3中该数据块的父备份数据块的sha256文件值进行比较;若不相同,则将该数据块备份至s3桶中,若相同,则将该数据块的sha256文件值存储至s3桶中;
步骤29,服务器将包含每一待备份数据的元数据的metadata文件和sha256文件保存至s3桶;其中,metadata文件包括:每一待备份数据的长度,偏移量,对应的备份文件名称以及对每一待备份数据进行压缩的压缩算法的名称。
下面对本发明实施例提供的一种数据恢复方法进行介绍。
需要说明的是,本发明实施例提供的一种数据恢复方法,可以应用于服务器。该服务器是用于将对本地数据中心中的目标云磁盘中的待恢复数据从公有云数据中心中进行恢复的服务器。具体的,该服务器可以接收一客户端设备发出的针对目标云磁盘的数据恢复指令,并响应该指令对目标云磁盘中的待恢复数据进行恢复。
如图2所示,本发明实施例提供的一种数据恢复方法,可以包括如下步骤:
s201,接收针对目标云磁盘的数据恢复指令。
当需要对一云磁盘中的数据进行恢复时,可以将该云磁盘作为目标云磁盘。服务器接收的针对目标云磁盘的数据恢复指令,可以是由一客户端设备发出的数据恢复指令。该客户端设备发出的数据恢复指令,可以是由用户在客户端设备的界面内进行相应的操作而生成的。也可以是客户端设备检测到目标云磁盘出现故障,或检测到目标云磁盘中的数据出现逻辑错误等异常时,自动生成的数据恢复指令。
s202,确定针对目标云磁盘中的待恢复数据的恢复类型。
在接收到针对目标云磁盘的数据恢复指令后,可以确定针对该目标云磁盘中的待恢复数据的恢复类型,以便于根据不同的恢复类型执行不同的恢复操作。在本发明实施例中,待恢复数据是指:目标云磁盘中需要恢复的一个恢复数据块。如步骤s101中所述,可以预先将该目标云磁盘划分为多个区间,在对目标云磁盘进行备份时,针对所划分的每一个区间,将该区间中当前的数据作为待备份数据。那么相应地,待恢复数据是所划分的某一个区间中的、截止某一时刻的数据。例如,待恢复数据是目标云磁盘中区间a中的,截止**年*月*日21:00的数据。
本实施例中,恢复类型可以包括:全量数据恢复和增量数据恢复这两种类型。
具体的,服务器可以从针对目标云磁盘的备份记录中,确定上述恢复类型。如果在此次数据恢复之前,服务器只对目标云磁盘进行了全量备份,则此次针对目标云磁盘的待恢复数据的恢复类型为:全量数据恢复。如果在此次数据恢复之前,服务器对目标云磁盘进行了增量备份,则此次针对目标云磁盘的待恢复数据的恢复类型为:增量数据恢复。
s203,在恢复类型为全量数据恢复的情况下,从公有云数据中心中,读取与待恢复数据对应的全量备份内容,将全量备份内容作为待恢复数据对应的目标备份数据,并将待恢复数据对应的目标备份数据恢复至目标云磁盘的相应位置。
由于服务器对目标云磁盘进行全量备份时,已经将目标云磁盘中的待恢复数据对应的全量备份内容备份至公有云数据中心中。所以,对目标云磁盘进行全量恢复时,可以直接从公有云数据中心中读取与待恢复数据对应的全量备份内容,并将该全量备份内容恢复至云磁盘的相应位置。这意味着:不仅要恢复待恢复数据对应的全量备份内容,而且要将待恢复数据对应的全量备份内容恢复至:该待恢复数据在目标云磁盘中的位置。
具体的,服务器在读取待恢复数据对应的全量备份内容时,可以预先获取该待恢复数据的元数据,该元数据可以包括:该待恢复数据的名称、大小和偏移量。根据该元数据中的该待恢复数据的名称,在公有云数据中心中查找该待恢复数据对应的全量备份内容,然后读取该全量备份内容。其中,该待恢复数据的元数据存储在服务器中。
在将全量备份内容作为待恢复数据对应的目标备份数据后,可以将该目标备份数据恢复至目标云磁盘的相应位置。
一种实现方式中,将待恢复数据对应的目标备份数据恢复至目标云磁盘的相应位置,可以包括:
获取待恢复数据在目标云磁盘中的位置和大小;
根据位置和大小,将待恢复数据对应的目标备份数据恢复至目标云磁盘的相应位置。
其中,获取待恢复数据在目标云磁盘中的位置和大小可以通过获取该待恢复数据的元数据来实现。那么,可以将该待恢复数据在目标云磁盘中的位置作为该待恢复数据对应的目标备份数据在目标云磁盘中的位置,再结合该待恢复数据的大小,就可以确定该待恢复数据对应的目标备份数据在目标云磁盘中的位置区间,也就可以将该待恢复数据对应的目标备份数据恢复至目标云磁盘的相应位置。
s204,在恢复类型为增量数据恢复的情况下,从公有云数据中心中,读取待恢复数据对应的所有备份内容,基于所有备份内容,对待恢复数据进行数据恢复,得到待恢复数据对应的目标备份数据,并将待恢复数据对应的目标备份数据恢复至目标云磁盘的相应位置。
其中,待恢复数据的所有备份内容包括:待恢复数据对应的全量备份内容,以及,待恢复数据对应的各个增量备份内容。
可以理解的,对目标云磁盘中待恢复数据所在区间的数据进行全量备份时,将该数据的每一数据块均备份到了公有云数据中心中。而对待恢复数据所在区间的数据进行增量备份时,只是将数据中的进行增量备份的数据块备份到了公有云数据中心中,其中,任一进行增量备份的数据块的哈希值与该数据块在公有云数据中心中对应的父备份数据块的哈希值不同。那么,如果要对一个所对应区间的数据之前被全量备份以及增量备份过的待恢复数据进行恢复,就需要按照备份的先后顺序进行恢复,而在恢复之前,需要先读取该待恢复数据对应的所有备份内容。
由于待恢复数据是目标云磁盘中某一区间的数据,所以待恢复数据对应的全量备份内容是指:对该区间的数据首次进行备份时对应的全量备份内容。待恢复数据对应的各个增量备份内容是指:对该区间的数据每次进行增量备份时对应的增量备份内容。
本实施例中,待恢复数据对应有一个备份链,备份链存储于服务器或者公有云数据中心中,备份链记录有:待恢复数据对应的全量备份内容的标识和全量备份内容的备份时间,以及待恢复数据对应的各个增量备份内容的标识和各个增量备份内容的备份时间。
相应地,从公有云数据中心中,读取待恢复数据对应的所有备份内容可以包括:
基于全量备份内容的标识,从公有云数据中心中读取全量备份内容,以及基于每个增量备份内容的标识,从公有云数据中心中读取该增量备份内容。
具体的,服务器可以根据待恢复数据的元数据中的该待恢复数据的名称,在本地或公有云数据中心中查询该待恢复数据对应的备份链。在该备份链中,服务器可以查询到该待恢复数据对应的全量备份内容的标识,以及对应的每一增量备份内容的标识。进而,基于查询到的全量备份内容的标识和每一增量备份内容的标识,服务器从公有云数据中心中读取该待恢复数据对应的全量备份内容和每一增量备份内容。其中,任一增量备份内容标识可以包括:该增量备份内容对应的各个数据块的名称。由于增量备份内容只是备份一个待备份数据中发生变化的数据块,所以,该增量备份内容对应的各个数据块是指:该待备份数据中发生变化的各个数据块。由此,可以根据各个数据块的名称,从公有云数据中心中读取各个数据块,即读取该待恢复数据对应的增量备份内容。
在一种具体实施方式中,在读取所有备份内容时,可以按照最近一次备份内容、父备份内容、父父备份内容、...、全量备份内容的顺序来读取各个备份内容,即按照备份时间从后至先的顺序来读取各个备份内容,并将各个备份内容按照读取的先后顺序存放至一列表中。这样在恢复时,可以便于从列表的尾部开始逐步进行数据恢复,即从最先备份的全量备份内容开始进行数据恢复。
读取了该数据块的所有备份内容后,就可以基于所有备份内容,对该数据块进行数据恢复。
一种实现方式中,基于所有备份内容,对待恢复数据进行数据恢复,得到待恢复数据对应的目标备份数据,可以包括:
恢复待恢复数据对应的全量备份内容,并在所恢复的全量备份内容的基础上,按照增量备份的先后顺序,依次恢复待恢复数据对应的增量备份内容,得到待恢复数据对应的目标备份数据。
在上述实现方式中,对待恢复数据进行数据恢复时,可以按照备份内容的被备份时间的从先到后的顺序进行数据恢复,即先恢复最先备份的全量备份内容,最后恢复最近一次增量备份的增量备份内容。
例如,待恢复数据包括3个数据块b1,b2和b3,之前对该待恢复数据所在区间的数据进行了一次全量备份和两次增量备份。其中,全量备份时对应的全量备份内容为:1,2,3,其中1表示数据块b1的备份数据值,2表示数据块b2的备份数据值,3表示数据块b3的备份数据值;第一次增量备份时对应的备份内容为:#,4,#,第1个#表示空,即未对数据块b1进行备份,4表示数据块b2的备份数据值,第2个#表示空,即未对数据块b3进行备份;第二次增量备份时对应的备份内容为:#,#,5,第1个#表示空,即未对数据块b1进行备份,第2个#表示空,即未对数据块b2进行备份,5表示数据块b3的备份数据值。
在对该待恢复数据进行数据恢复时,先恢复该待恢复数据对应的全量备份内容,那么,当前已恢复内容为:1,2,3;然后,恢复第一次增量备份时对应的备份内容,那么,当前已恢复内容为:1,4,3,即将第2个数据块的备份数据值进行更新;最后,恢复第二次增量备份时对应的备份内容,那么,当前已恢复内容为:1,4,5,即将第3个数据块的备份数据值进行更新。恢复了所有备份内容后的已恢复内容为:1,4,5。那么,该待恢复数据对应的目标备份数据的备份数据值为:1,4,5,其中,1,4,5为分别为目标备份数据的三个数据块b1,b2和b3的备份数据值。
需要说明的是,在实际应用中,读取任一增量备份内容时,只是读取到了对应的各个数据块,而没有将各个数据块恢复至待恢复数据的相应位置。例如,在上述实例中,读取第一次增量备份内容时,只是读取到了数据块b2的备份数据值4,而没有将数据块b2恢复至待恢复数据的相应位置。所以在恢复任一增量备份内容之前,可以先根据该增量备份内容对应的各个数据块在该增量备份内容对应的待备份数据中的位置和大小,将各个数据块恢复至该待恢复数据中相应的位置。
在得到待恢复数据对应的目标备份数据后,可以将该目标备份数据恢复至目标云磁盘的相应位置。
一种实现方式中,将待恢复数据对应的目标备份数据恢复至目标云磁盘的相应位置,包括:
获取待恢复数据在目标云磁盘中的位置和大小;
根据位置和大小,将待恢复数据对应的目标备份数据恢复至目标云磁盘的相应位置。
其中,获取待恢复数据在目标云磁盘中的位置和大小可以通过获取该待恢复数据的元数据来实现。那么,可以将该待恢复数据在目标云磁盘中的位置作为该待恢复数据对应的目标备份数据在目标云磁盘中的位置,再结合该待恢复数据的大小,就可以确定该待恢复数据对应的目标备份数据在目标云磁盘中的位置区间,也就可以将该待恢复数据对应的目标备份数据恢复至目标云磁盘的相应位置。
针对待恢复数据,将该待恢复数据对应的目标备份数据恢复至目标云磁盘的相应位置,即实现了对该待恢复数据的数据恢复。
本发明实施例提供的方案,在需要对目标云磁盘中的数据进行恢复时,服务器接收针对目标云磁盘的数据恢复指令;确定针对所述目标云磁盘中的待恢复数据的恢复类型;在所述恢复类型为全量数据恢复的情况下,从公有云数据中心中,读取与所述待恢复数据对应的全量备份内容,将所述全量备份内容作为所述待恢复数据对应的目标备份数据,并将所述待恢复数据对应的目标备份数据恢复至所述目标云磁盘的相应位置;在所述恢复类型为增量数据恢复的情况下,从所述公有云数据中心中,读取所述待恢复数据对应的所有备份内容,基于所述所有备份内容,对所述待恢复数据进行数据恢复,得到所述待恢复数据对应的目标备份数据,并将所述待恢复数据对应的目标备份数据恢复至所述目标云磁盘的相应位置。本发明实施例通过全量恢复或增量恢复的方式,从公有云数据中心中确定待恢复数据对应的目标备份数据,将该目标备份数据恢复至目标云磁盘的相应位置,可以在目标云磁盘出现故障或目标云磁盘中的数据出现逻辑错误时,较为便捷地从公有云数据中心中恢复数据。
下面通过一个具体实施例,介绍本发明实施例提供的一种数据恢复方法,该方法是对目标云磁盘中的待恢复数据进行增量恢复的方法,可以包括如下步骤:
步骤41,客户端设备根据用户的操作创建针对目标云磁盘的备份恢复请求;
步骤42,客户端设备对备份恢复请求的参数进行检查,并判断;其中,请求的参数包括:目标云磁盘的标识;检查的内容包括:检查在此次恢复之前对目标云磁盘进行备份的类型,若为增量备份,则确定此次恢复为增量恢复,判断的内容为:目标云磁盘是否正在备份中,若未在备份中,则转至步骤43,否则,结束流程;
步骤43,客户端设备检查要恢复的目标云磁盘是否存在;若存在,转至步骤45;若不存在,转至步骤44;
步骤44,创建一个新磁盘作为目标云磁盘,转至步骤45;
步骤45,客户端设备向服务器发送针对目标云磁盘的数据恢复指令;数据恢复指令的形式表示为:<<signalreceiptrpc>>;
步骤46,客户端设备确定公有云数据中心(即后端)为s3,并通过服务器访问s3;
步骤47,服务器查询目标云磁盘的待恢复数据对应的备份链;
步骤48,服务器针对待恢复数据,从该待恢复数据的备份链的尾部到头部,从本地读取该待恢复数据的元数据,从该元数据中读取备份链上每一备份文件的名称,从s3桶中读取该备份文件,并从该元数据中读取压缩算法的名称,以相应的解压算法解压该备份文件,将解压后的该备份文件恢复至目标云磁盘。
在步骤48中,针对新建一个磁盘作为目标云磁盘的情形,在对该目标云磁盘进行数据恢复后,服务器还可以将存储在本地的该目标云磁盘的基本信息存储至客户端设备的数据库中;其中,目标云磁盘的基本信息包括:该目标云磁盘的名称、大小等。
相应于图1所示实施例,本发明实施例提供了一种数据备份装置,应用于服务器,如图3所示,所述装置包括:
第一接收模块301,用于接收针对目标云磁盘的数据备份指令;其中,所述数据备份指令中携带有对所述目标云磁盘的待备份数据进行备份的备份类型;
备份模块302,用于按照所述备份类型,将所述待备份数据备份至公有云数据中心。
本发明实施例提供的方案,在需要对目标云磁盘中的数据进行备份时,服务器接收针对目标云磁盘的数据备份指令;其中,所述数据备份指令中携带有对所述目标云磁盘的待备份数据进行备份的备份类型;按照所述备份类型,将所述待备份数据备份至公有云数据中心。本发明实施例通过将目标云磁盘中的待备份数据以全量备份或增量备份的方式备份至公有云数据中心,可以降低数据备份的设备成本。同时,可以减少需要备份数据的用户的人力运维成本。
可选地,所述备份模块302,包括:
第一备份单元,用于在所述备份类型为全量备份的情况下,将所述待备份数据全量备份至所述公有云数据中心;
第二备份单元,用于在所述备份类型为增量备份的情况下,确定所述待备份数据中进行增量备份的数据块,将进行增量备份的数据块备份至所述公有云数据中心。
可选地,所述第二备份单元,具体用于针对所述待备份数据中的每个数据块,执行以下步骤:将所述数据块对应的哈希值与所述公有云数据中心中存储的与所述数据块对应的父备份数据块的哈希值进行比较;在比较结果为不同的情况下,确定所述数据块为所述进行增量备份的数据块。
可选地,所述装置还包括:
第一存储模块,用于在所述第一接收模块301接收针对目标云磁盘的数据备份指令之后,将所述待备份数据划分为第一预设数量个数据块;计算所述第一预设数量个数据块中每个数据块对应的哈希值;将每个数据块对应的哈希值存储至所述公有云数据中心。
可选地,所述装置还包括:
记录模块,用于在所述备份模块将所述待备份数据备份至公有云数据中心之后,将所述待备份数据对应的备份信息,记录在所述待备份数据对应的备份链中,所述备份链存储于所述服务器或者所述公有云数据中心中;
其中,所述备份信息包括:将所述待备份数据备份至公有云数据中心的备份时间和相应的备份内容的标识。
可选地,所述装置还包括:
第二存储模块,用于在所述第一接收模块301接收针对目标云磁盘的数据备份指令之后,将所述待备份数据的元数据,以及所述待备份数据的每个数据块的元数据存储至所述公有云数据中心,其中,所述待备份数据的元数据至少包括:所述待备份数据的名称、大小和所述待备份数据在所述目标云磁盘中的位置,所述待备份数据的每个数据块的元数据至少包括:该数据块的名称、大小和该数据块在所述待备份数据中的位置。
相应于图2所示实施例,本发明实施例提供了一种数据恢复装置,应用于服务器,如图4所示,所述装置包括:
第二接收模块401,用于接收针对目标云磁盘的数据恢复指令;
确定模块402,用于确定针对所述目标云磁盘中的待恢复数据的恢复类型;
第一恢复模块403,用于在所述恢复类型为全量数据恢复的情况下,从公有云数据中心中,读取与所述待恢复数据对应的全量备份内容,将所述全量备份内容作为所述待恢复数据对应的目标备份数据,并将所述待恢复数据对应的目标备份数据恢复至所述目标云磁盘的相应位置;
第二恢复模块404,用于在所述恢复类型为增量数据恢复的情况下,从所述公有云数据中心中,读取所述待恢复数据对应的所有备份内容,基于所述所有备份内容,对所述待恢复数据进行数据恢复,得到所述待恢复数据对应的目标备份数据,并将所述待恢复数据对应的目标备份数据恢复至所述目标云磁盘的相应位置;
其中,所述待恢复数据的所有备份内容包括:所述待恢复数据对应的全量备份内容,以及,所述待恢复数据对应的各个增量备份内容。
本发明实施例提供的方案,在需要对目标云磁盘中的数据进行恢复时,服务器接收针对目标云磁盘的数据恢复指令;确定针对所述目标云磁盘中的待恢复数据的恢复类型;在所述恢复类型为全量数据恢复的情况下,从公有云数据中心中,读取与所述待恢复数据对应的全量备份内容,将所述全量备份内容作为所述待恢复数据对应的目标备份数据,并将所述待恢复数据对应的目标备份数据恢复至所述目标云磁盘的相应位置;在所述恢复类型为增量数据恢复的情况下,从所述公有云数据中心中,读取所述待恢复数据对应的所有备份内容,基于所述所有备份内容,对所述待恢复数据进行数据恢复,得到所述待恢复数据对应的目标备份数据,并将所述待恢复数据对应的目标备份数据恢复至所述目标云磁盘的相应位置。本发明实施例通过全量恢复或增量恢复的方式,从公有云数据中心中确定待恢复数据对应的目标备份数据,将该目标备份数据恢复至目标云磁盘的相应位置,可以在目标云磁盘出现故障或目标云磁盘中的数据出现逻辑错误时,较为便捷地从公有云数据中心中恢复数据。
可选地,所述待恢复数据对应有一个备份链,所述备份链存储于所述服务器或者所述公有云数据中心中,所述备份链记录有:所述待恢复数据对应的全量备份内容的标识和所述全量备份内容的的备份时间,以及所述待恢复数据对应的各个增量备份内容的标识和所述各个增量备份内容的备份时间;
所述第二恢复模块404,具体用于基于所述全量备份内容的标识,从所述公有云数据中心中读取所述全量备份内容,以及基于每个增量备份内容的标识,从所述公有云数据中心中读取该增量备份内容。
可选地,所述第二恢复模块404,具体用于恢复所述待恢复数据对应的全量备份内容,并在所恢复的所述全量备份内容的基础上,按照增量备份的先后顺序,依次恢复所述待恢复数据对应的增量备份内容,得到所述待恢复数据对应的目标备份数据。
可选地,所述第一恢复模块403和所述第二恢复模块404,具体用于获取所述待恢复数据在所述目标云磁盘中的位置和大小;根据所述位置和大小,将所述待恢复数据对应的目标备份数据恢复至所述目标云磁盘的相应位置。
本发明实施例还提供了一种服务器,如图5所示,包括处理器501、通信接口502、存储器503和通信总线504,其中,处理器501,通信接口502,存储器503通过通信总线504完成相互间的通信,
存储器503,用于存放计算机程序;
处理器501,用于执行存储器503上所存放的程序时,实现上述任一的数据备份方法,以获得相同的技术效果。
上述服务器提到的通信总线可以是外设部件互连标准(peripheralcomponentinterconnect,简称pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,简称eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述服务器与其他设备之间的通信。
存储器可以包括随机存取存储器(randomaccessmemory,简称ram),也可以包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,简称cpu)、网络处理器(networkprocessor,简称np)等;还可以是数字信号处理器(digitalsignalprocessing,简称dsp)、专用集成电路(applicationspecificintegratedcircuit,简称asic)、现场可编程门阵列(field-programmablegatearray,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本发明实施例还提供了另一种服务器,如图6所示,包括处理器601、通信接口602、存储器603和通信总线604,其中,处理器601,通信接口602,存储器603通过通信总线604完成相互间的通信,
存储器603,用于存放计算机程序;
处理器601,用于执行存储器603上所存放的程序时,实现上述任一的数据恢复方法,以获得相同的技术效果。
上述服务器提到的通信总线可以是外设部件互连标准(peripheralcomponentinterconnect,简称pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,简称eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述服务器与其他设备之间的通信。
存储器可以包括随机存取存储器(randomaccessmemory,简称ram),也可以包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,简称cpu)、网络处理器(networkprocessor,简称np)等;还可以是数字信号处理器(digitalsignalprocessing,简称dsp)、专用集成电路(applicationspecificintegratedcircuit,简称asic)、现场可编程门阵列(field-programmablegatearray,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述实施例中任一的数据备份方法,以获得相同的技术效果。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述实施例中任一的数据恢复方法,以获得相同的技术效果。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一的数据备份方法,以获得相同的技术效果。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一的数据恢复方法,以获得相同的技术效果。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本发明实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置/服务器/存储介质/计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。