发明内容
本发明实施例提供一种基于对象存储的块级CDP数据存储容灾方法和设备,以解决现有容灾备份设备成功较高且不容易扩展的问题。
第一方面,本发明实施例提供了一种基于对象存储的块级CDP数据存储容灾方法,应用于第二备份设备,所述第二备份设备为虚拟的块设备,所述基于对象存储的块级CDP数据存储容灾方法包括以下步骤:
接收第一备份设备发送的第一备份数据,其中,所述第一备份数据是所述第一备份设备通过块级持续数据保护CDP备份对第一目标设备中的数据进行备份得到的,所述第一备份数据包括至少一个数据块;
将所述第一备份数据备份到对象存储,以获得第二备份数据,所述第二备份数据包括至少一个数据对象,每一所述数据块与一个所述数据对象相对应。
可选的,所述第二备份设备包括快照桶和配置桶,所述将所述第一备份数据备份到对象存储,包括:
将第一备份数据中的各所述数据块保存到所述快照桶;
将保存到所述快照桶中的每一所述数据块与各所述数据对象的对应关系,以及各所述数据块的位置记录为各所述数据块对应的快照映射项;
将各所述快照映射项记录到一个快照映射配置,并将所述快照映射配置的识别码插入快照历史;
将所述快照映射配置和所述快照历史保存到所述配置桶。
可选的,所述将所述快照映射配置和所述快照历史保存到所述配置桶之后,所述方法还包括:
在接收到第一恢复指令的情况下,根据所述第一恢复指令将所述快照映射配置发送至第二目标设备,其中,所述第二目标设备为与所述第一目标设备相同的设备或不同的设备,所述第一恢复指令包括对所述第一目标设备的快照映射配置选择指令;
在接收到第二恢复指令的情况下,将所述第一目标设备对应的快照历史发送至所述第二目标设备,其中,所述第二恢复指令包括对所述第一目标设备快照历史的选择指令;
在接收到第三恢复指令的情况下,将所述快照映射配置发送至所述第二目标设备,其中,所述第三恢复指令包括对所述快照历史中的快照映射配置的选择指令;
根据所述快照映射配置的识别码对所述第三恢复指令确定的快照映射配置去重;
根据去重后的所述快照映射配置将相应的数据对象发送至所述第二目标设备,以供所述第二目标设备将所述数据对象写入数据块中。
第二方面,本发明实施例提供了一种基于对象存储的块级CDP数据存储容灾方法,应用于第一备份设备,所述基于对象存储的块级CDP数据存储容灾方法包括以下步骤:
所述第一备份设备通过块级CDP备份对第一目标设备中的数据进行备份,以得到第一备份数据,所述第一备份数据包括至少一个数据块;
将所述第一备份数据发送至第二备份设备,以供所述第二备份设备将所述第一备份数据备份到对象存储,并获得第二备份数据,所述第二备份数据包括至少一个数据对象,每一所述数据块与一个所述数据对象相对应,其中,所述第二备份设备为虚拟的块设备。
第三方面,本发明实施例提供了一种基于对象存储的块级CDP数据存储容灾设备,所述备份设备为第二备份设备,且所述第二备份设备为虚拟的块设备,所述第二备份设备包括:
接收模块,用于接收第一备份设备发送的第一备份数据,其中,所述第一备份数据是所述第一备份设备通过块级CDP备份对第一目标设备中的数据进行备份得到的,所述第一备份数据包括至少一个数据块;
备份模块,用于将所述第一备份数据备份到对象存储,以获得第二备份数据,所述第二备份数据包括至少一个数据对象,每一所述数据块与一个所述数据对象相对应。
可选的,所述第二备份设备包括快照桶和配置桶,所述备份模块,包括:
第一保存子模块,用于将第一备份数据中的各所述数据块保存到所述快照桶;
记录子模块,用于将保存到所述快照桶中的每一所述数据块与各所述数据对象的对应关系,以及各所述数据块的位置记录为各所述数据块对应的快照映射项;
插入模块,用于将各所述快照映射项记录到一个快照映射配置,并将所述快照映射配置的识别码插入快照历史;
第二保存子模块,用于将所述快照映射配置和所述快照历史保存到所述配置桶。
可选的,还包括:第一发送模块,用于在接收到第一恢复指令的情况下,根据所述第一恢复指令将所述快照映射配置发送至第二目标设备,其中,所述第二目标设备为与所述第一目标设备相同的设备或不同的设备,所述第一恢复指令包括对所述第一目标设备的快照映射配置选择指令;
第二发送模块,用于在接收到第二恢复指令的情况下,将所述第一目标设备对应的快照历史发送至所述第二目标设备,其中,所述第二恢复指令包括对所述第一目标设备快照历史的选择指令;
第三发送模块,用于在接收到第三恢复指令的情况下,将所述快照映射配置发送至所述第二目标设备,其中,所述第三恢复指令包括对所述快照历史中的快照映射配置的选择指令;
去重模块,用于根据所述快照映射配置的识别码对所述第三恢复指令确定的快照映射配置去重;
第四发送模块,用于根据去重后的所述快照映射配置将相应的数据对象发送至所述第二目标设备,以供所述第二目标设备将所述数据对象写入数据块中。
第四方面,本发明实施例提供了一种基于对象存储的块级CDP数据存储容灾设备,所述基于对象存储的块级CDP数据存储容灾设备为第一备份设备,所述基于对象存储的块级CDP数据存储容灾设备包括:
备份模块,用于所述第一备份设备通过块级CDP备份对第一目标设备中的数据进行备份,以得到第一备份数据,所述第一备份数据包括至少一个数据块;
发送模块,用于将所述第一备份数据发送至第二备份设备,以供所述第二备份设备将所述第一备份数据备份到对象存储,并获得第二备份数据,所述第二备份数据包括至少一个数据对象,每一所述数据块与一个所述数据对象相对应,其中,所述第二备份设备为虚拟的块设备。
第五方面,本发明实施例提供了一种电子设备,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如以上任一项所述的消息推送显示方法的步骤。
第六方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现权利要求以上任一项所述的基于对象存储的块级CDP数据存储容灾方法的步骤。
本发明通过将电子设备中的需要备份的数据以块级CDP备份的形式保存在第一备份设备中,然后再将备份数据备份到虚拟的块设备中,存储扩展性高,性能强,在需要进行恢复时,恢复速度快,同时,有助于降低成本。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获取的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种基于对象存储的块级CDP数据存储容灾方法,应用于第二备份设备。
该第二备份设备为虚拟的块设备,也就是说,该第二备份设备本身并不是块设备而是对象存储,并通过虚拟化手段将其虚拟为块设备,该第二备份设备可以采用现有的对象存储服务器,然后将其虚拟的为块设备,也可以直接利用现有的云服务供应商提供的对象存储服务,然后将其虚拟的为块设备作为数据备份中使用的第二备份设备。
如图1所示,该基于对象存储的块级CDP数据存储容灾方法包括以下步骤:
步骤101:接收第一备份设备发送的第一备份数据。
本实施例中的第一备份数据是第一备份设备通过块级CDP(Continuous DataProtection,持续数据保护)备份对第一目标设备中的数据进行备份得到的。
这里,第一目标设备指的是需要备份的原始数据所在的设备,数据在第一目标设备中通过块级CDP备份之后,发送至第二备份设备,以通过第二备份设备对第一备份数据再次备份。
本实施例中的CDP备份为块级CDP备份,所以备份得到的第一备份数据是由一个或多个数据块构成的。
如图2所示,图2代表块存储中的一段数据,图2中每一个小方框代表一个数据块201,块存储上的数据以一个固定值来划分成大小相等的块,称之为数据块201。
步骤102:将所述第一备份数据备份到对象存储,以获得第二备份数据,所述第二备份数据包括至少一个数据对象,每一所述数据块与一个所述数据对象相对应。
第一备份数据在第二备份设备中是以对象存储(或称基于对象的存储)的形式存储的,如图3所示,对象储存由桶300和对象301(或称数据对象)两级构成,每一个桶中,包括多个对象301。第一备份数据在备份到对象存储中的过程,也就是将各数据块中的数据移动至各数据对象中。
这样,第一目标设备中的原始数据实际上就有了两个备份,其中,一个备份为位于第一备份设备中的第一备份数据,另一个则是位于第二备份设备中的第二备份数据。
现有块设备成本较高,且可扩展性较差,技术相对复杂。
本发明通过将电子设备中的需要备份的数据以块级CDP备份的形式保存在第一备份设备中,然后再将备份数据备份到虚拟的块设备中的对象存储。
由于对象存储具有统一的标准,例如,现有的对象存储均是基于RESTful API(Representational State Transfer,表征;Application Programming Interface,应用程序编程接口)统一标准,所以不同厂商对于对象存储的支持功能基本相同,在此基础上,可作为统一的对象存储备份网关,可以支持几乎市面上所有的对象存储作为第二备份存储进行容灾备份。所以本方案的通用性和可扩展性较高。
同时,对象存储服务来自于云厂商提供,例如选用现有的供应商提供的云服务,其具有近乎无限容量以及按量付费的特性,使用更加灵活,可扩展性更强,成本也相对较低。
此外,第二备份设备的对象存储是一个虚拟的块级设备,而第一备份设备同样为块级设备,所以无需对第一备份数据的备份架构进行较大调整即可将第一备份数据备份到第二备份数据中,更加方便快捷。
可选的,在一个具体实施方式中,如图4所示,上述步骤102包括:
步骤1021:将第一备份数据中的各所述数据块保存到所述快照桶。
在将第一备份数据中的各数据块保存到快照桶中时,需要保证各数据块中的数据均被保存在快照桶中。如果是首次备份,则需要将全部数据块中的数据(或称全量数据)保存到快照桶中,如果不是首次备份,只需要将此次备份与前一次备份之间这一时间段的数据增量对应的数据块保存到快照桶中即可。
如图5所示,图5中左侧代表不同时刻需要备份的数据,右侧代表在备份时需要保存到快照桶中的数据。在t0时刻的数据为A0、B0、C0、D0、E0、F0、G0、H0,则首次备份的数据为A0、B0、C0、D0、E0、F0、G0、H0;在t1时刻,数据变化为数据为A1、B1、C1、D1、E0、F0、G0、H0,那么在t1时刻,需要备份的仅为变化的数据A1、B1、C1、D1,而未发生变化的数据E0、F0、G0、H0,不需要重新保存到快照桶中,依次类推。
步骤1022:将保存到所述快照桶中的每一所述数据块与各所述数据对象的对应关系,以及各所述数据块的位置记录为各所述数据块对应的快照映射项。
快照映射项用于索引数据块与数据对象之间的对应关系,因此根据每一快照映射项,能够确定数据块、数据对象以及数据库的位置之间的唯一映射关系,从而实现在第二备份设备中确定数据的目录及位置。这样,根据一个快照映射项就能够确定该数据块中的增量数据。
步骤1023:将各所述快照映射项记录到一个快照映射配置,并将所述快照映射配置的识别码(ID,identification)插入快照历史。
每一次备份时的数据增量可能包括一个或多个数据块,因此,每一次备份时会相应的生成多个快照映射项。这样,包括一次备份中生成的全部快照映射项的一个快照映射配置实际上也就包括了此次备份中所有的数据增量。
步骤1024:将所述快照映射配置和所述快照历史保存到所述配置桶。
第二备份设备的对象存储中,包括配置桶和快照桶这两个桶,其中,配置桶用于存放配置文件对象,快照桶用于存放快照数据对象。
快照数据对象的数量通常非常多,所以可能会影响配置文件对象的读写性能。将配置文件对象和快照数据对象分别存放在不同的桶中,有助于提高对象存储的读写性能。
如图6所示,可以概括为,在接收到备份指令后,首先查找虚拟的块设备,即上述第二备份设备,如果未查找到该虚拟的块设备,则创建快照,若未查找到虚拟的块设备,则直接将备份数据保存到对象存储中。
创建快照过程中,如果是第一次复制文件,则确定备份的最新数据,也就是全部数据,如果不是第一次复制文件,即已存在在先创建的快照,那么只复制最近一次快照的时间点到当前时间点新增加的数据,或称增量数据。在创建了快照之后,接收数据块及相关信息,这里,数据块及相关信息指的是需要备份的数据所在的数据块及相关的信息。
进一步的,调用API上传数据对象,也就是将各数据块中的数据备份到数据对象。然后根据数据块和相应的数据对象记录为一个快照映射项。重复该步骤,直至全部数据块对应的快照映射项被记录,然后将全部快照映射项保存到一个映射配置中,并加入历史快照中,在调用API上传快照历史和快照映射文件,即完成了在第二备份设备中进行数据备份。
可选的,在上述步骤1024之后,该方法还包括:
在接收到第一恢复指令的情况下,根据所述第一恢复指令将所述快照映射配置发送至第二目标设备。
在某些情况下,可能需要将数据恢复至第二目标设备,这里第二目标设备为与第一目标设备相同的设备或不同的设备。应当理解的是,如果是原第一目标设备中的数据丢失,可以将备份数据直接恢复到原第一目标设备中,这种情况下,第一目标设备和第二目标设备为同一设备。
如果第一目标设备不可用,例如因火灾等因素造成不可挽救的物理损坏,或着因设备升级而更换新的设备,这种情况下,第二目标设备和第一目标设备则为不同的设备。
该第一恢复指令包括对第一目标设备的快照映射配置选择指令,也就是说,该第一恢复指令用于确定需要恢复的数据的原始设备。
例如,第二备份设备中备份了多个设备,包括第一服务器、第二服务器和第三服务器等,第二服务器由于设备更新,则需要将第二服务器中的原有数据恢复至第四服务器,则第二服务器为上述第一目标设备,即原始设备,第四服务器则为第二目标设备,该第一恢复指令包括实际上包括从这三个服务器中选择第二服务器的快照映射配置的选择指令。
在接收到第二恢复指令的情况下,将所述第一目标设备对应的快照历史发送至所述第二目标设备。
该第二恢复指令包括对第一目标设备快照历史的选择指令,可以理解为该第二恢复指令用于选择进行恢复的快照。
例如,第二备份设备中和第二服务器相关的快照包括第一快照、第二快照和第三快照三个快照,分别对应不同的时间点,此次恢复过程中需要恢复最新备份的第三快照,该第二恢复指令包括的选择指令实际上是从这三个快照中选择第三快照的指令。
在接收到第三恢复指令的情况下,将所述快照映射配置发送至所述第二目标设备。
第三恢复指令包括对快照历史中的快照映射配置的选择指令,该快照映射配置指的是上述步骤1023中所生成的快照映射配置,根据所确定的快照映射配置,能够获取相应的快照映射文件,从而实现对快照的调用以进行数据恢复。
根据所述快照映射配置的识别码对所述第三恢复指令确定的快照映射配置去重。
一段范围内的快照同一个数据块位置很有可能存在多个来自于不同时刻的快照中的数据对象,所以需要对数据对象进行去重。
该去重过程可以通过检索是否存在相同快照映射项的方式来去重。
在一个具体实施方式中,则是通过B+树来实现去重的。
具体的,实施时以数据块的索引作为key(键),以快照映射项和快照ID作为value(值)来构成一棵B+树。遍历所选范围的所有快照以及遍历每一个快照对应的快照映射配置的中每一个快照映射项,把每一个快照映射项插入到B+树中。
插入的过程中可能存在两种情况:第一种,当前数据块的索引不存在于B+树中,那么以该数据块的索引为key,以该快照映射项和快照ID为value插入B+树中。第二种,当前数据块的索引存在于B+树中,那么比较待插入的快照映射项的快照ID和B+树中value中的快照ID,如果待插入的快照映射项的快照ID较新,则替换相同key的value,否则不需要插入。
根据去重后的所述快照映射配置将相应的数据对象发送至所述第二目标设备,以供所述第二目标设备将所述数据对象写入数据块中。
完成B+树的构建后,叶子节点中的快照映射项对应不同位置的数据块在对象存储中的数据对象,这些数据对象是指定的快照的创建时刻的最新状态的数据。遍历叶子节点中的快照映射项,通过对象存储API获取与其中数据对象ID对应的数据对象,通过IO服务(Input/Output,输入输出服务)转发数据,最终完成恢复操作。
如图7所示,可以概括为,在接收到恢复指令后,首先调用API下载对象存储服务器中的设备列表,该列表中包括了可进行数据回复的设备。在接收到执行用于恢复的设备的命令后,调用API下载待恢复设备的快照历史,进一步的,接收到指定用于恢复的快照的命令后,调用API下载第一次快照到指定的快照范围内的快照映射文件,也就是指定快照对应的时间节点之前备份的全部数据对应的快照映射文件。
在获取了快照映射文件之后,对快照映射文件进行去重,以通过B+树去重为例,将快照映射文件中的快照映射项(或称映射项)不断添加到B+树中,当处理完全部映射项之后,获取一个叶子节点,然后调用API下载叶子节点中映射项关联的数据对象,把数据对象写入数据块中,不断获取叶子节点,当全部节点被处理完之后,则完成了数据的恢复。
本发明实施例还提供了一种基于对象存储的块级CDP数据存储容灾方法,应用于第一备份设备。
该第一备份设备可以是上述实施例中的第一备份设备,如图8所示,该基于对象存储的块级CDP数据存储容灾方法包括以下步骤:
步骤801:所述第一备份设备通过块级CDP备份对第一目标设备中的数据进行备份,以得到第一备份数据,所述第一备份数据包括至少一个数据块;
步骤802:将所述第一备份数据发送至第二备份设备,以供所述第二备份设备将所述第一备份数据备份到对象存储,并获得第二备份数据,所述第二备份数据包括至少一个数据对象,每一所述数据块与一个所述数据对象相对应,其中,所述第二备份设备为虚拟的块设备。
本实施例中,块级CDP备份的过程可参考现有的及可能的块级CDP备份过程,而步骤802中,将第一备份数据发送至第二备份数据后,则可参考上述实施例,并能实现上述实施例中记载的各种技术效果,此处不再赘述。
本发明实施例提供了一种基于对象存储的块级CDP数据存储容灾设备,所述备份设备为第二备份设备900,且所述第二备份设备900为虚拟的块设备,如图9所示,所述第二备份设备900包括:
接收模块901,用于接收第一备份设备发送的第一备份数据,其中,所述第一备份数据是所述第一备份设备通过块级CDP备份对第一目标设备中的数据进行备份得到的,所述第一备份数据包括至少一个数据块;
备份模块902,用于将所述第一备份数据备份到对象存储,以获得第二备份数据,所述第二备份数据包括至少一个数据对象,每一所述数据块与一个所述数据对象相对应。
可选的,如图10所示,所述第二备份设备900包括快照桶和配置桶,所述备份模块902,包括:
第一保存子模块9021,用于将第一备份数据中的各所述数据块保存到所述快照桶;
记录子模块9022,用于将保存到所述快照桶中的每一所述数据块与各所述数据对象的对应关系,以及各所述数据块的位置记录为各所述数据块对应的快照映射项;
插入模块9023,用于将各所述快照映射项记录到一个快照映射配置,并将所述快照映射配置的识别码插入快照历史;
第二保存子模块9024,用于将所述快照映射配置和所述快照历史保存到所述配置桶。
可选的,如图11所示,还包括:第一发送模块903,用于在接收到第一恢复指令的情况下,根据所述第一恢复指令将所述快照映射配置发送至第二目标设备,其中,所述第二目标设备为与所述第一目标设备相同的设备或不同的设备,所述第一恢复指令包括对所述第一目标设备的快照映射配置选择指令;
第二发送模块904,用于在接收到第二恢复指令的情况下,将所述第一目标设备对应的快照历史发送至所述第二目标设备,其中,所述第二恢复指令包括对所述第一目标设备快照历史的选择指令;
第三发送模块905,用于在接收到第三恢复指令的情况下,将所述快照映射配置发送至所述第二目标设备,其中,所述第三恢复指令包括对所述快照历史中的快照映射配置的选择指令;
去重模块906,用于根据所述快照映射配置的识别码对所述第三恢复指令确定的快照映射配置去重;
第四发送模块907,用于根据去重后的所述快照映射配置将相应的数据对象发送至所述第二目标设备,以供所述第二目标设备将所述数据对象写入数据块中。
本发明通过将电子设备中的需要备份的数据以块级CDP备份的形式保存在第一备份设备中,然后再将备份数据备份到虚拟的块设备中,存储扩展性高,性能强,在需要进行恢复时,恢复速度快,同时,有助于降低成本。
本发明实施例提供了一种基于对象存储的块级CDP数据存储容灾设备,所述基于对象存储的块级CDP数据存储容灾设备为第一备份设备1200,如图12所示,所述第一备份设备1200包括:
备份模块1201,用于所述第一备份设备通过块级CDP备份对第一目标设备中的数据进行备份,以得到第一备份数据,所述第一备份数据包括至少一个数据块;
发送模块1202,用于将所述第一备份数据发送至第二备份设备,以供所述第二备份设备将所述第一备份数据备份到对象存储,并获得第二备份数据,所述第二备份数据包括至少一个数据对象,每一所述数据块与一个所述数据对象相对应,其中,所述第二备份设备为虚拟的块设备。
本发明通过将电子设备中的需要备份的数据以块级CDP备份的形式保存在第一备份设备中,然后再将备份数据备份到虚拟的块设备中,存储扩展性高,性能强,在需要进行恢复时,恢复速度快,同时,有助于降低成本。
如图13所示,本实施例中的数据备份系统包括IO模块、CDP模块和虚拟的块级设备和API调用模块,其中IO模块提供数据的写入和读出服务,CDP模块相当于上述第一备份设备,虚拟的块级设备实际上相当于上述第二备份设备,API调用模块用于调用对象存储服务的API接口。
通过执行上述实施例中的基于对象存储的块级CDP数据存储容灾方法的步骤,能够实现对于数据的备份和恢复,本发明通过将电子设备中的需要备份的数据以块级CDP备份的形式保存在第一备份设备中,然后再将备份数据备份到虚拟的块设备中,存储扩展性高,性能强,在需要进行恢复时,恢复速度快,同时,有助于降低成本。
本发明实施例提供了一种电子设备,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如以上任一项所述的基于对象存储的块级CDP数据存储容灾方法的步骤。
本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现权利要求以上任一项所述的基于对象存储的块级CDP数据存储容灾方法的步骤。
由于本实施例中的技术方案能够实现上述基于对象存储的块级CDP数据存储容灾方法实施例的全部技术方案,因此至少能实现上述全部技术效果,此处不再赘述。
以上,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。