CN110554930B - 一种数据存储方法及相关设备 - Google Patents
一种数据存储方法及相关设备 Download PDFInfo
- Publication number
- CN110554930B CN110554930B CN201910679362.0A CN201910679362A CN110554930B CN 110554930 B CN110554930 B CN 110554930B CN 201910679362 A CN201910679362 A CN 201910679362A CN 110554930 B CN110554930 B CN 110554930B
- Authority
- CN
- China
- Prior art keywords
- public cloud
- file
- cloud object
- data stream
- backed
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
- G06F11/1453—Management of the data involved in backup or backup restore using de-duplication of the data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例公开了一种数据存储方法及相关设备,所述方法应用于计算机技术领域,包括:基于预记录的文件备份进度从第一公有云对象存储中确定出待备份文件,从第一公有云对象存储中以数据流形式拉取待备份文件,得到待备份文件对应的第一数据流,将第一数据流转换成与第二公有云对象存储的数据格式匹配的第二数据流,进而将第二数据流存储至第二公有云对象存储。采用本申请实施例,可以高效地实现跨公有云的数据增量备份。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种数据存储方法及相关设备。
背景技术
在传统的数据中心中,数据通过各个服务器分散管理,并且每个服务器中的数据分布是固定的,从而导致数据利用率较低,不利于数据的运行与维护。随着云计算技术的不断发展与成熟,通过公云平台对数据中心中的数据进行统一管理,显著提高了数据中心的数据利用效率。
在利用公有云存储数据的过程中,为了防止数据丢失,通常需要对数据进行异地备份。由于公有云对象存储使用的存储大小通常是TB级别的,数据量巨大,常规的全量备份,由于带宽、本地磁盘大小等问题,基本不可能实现。
目前,如果要实现跨公有云全量备份,一般需要用户手动通过命令行的形式存储到本地,再手动上传到其他公有云,但在备份过程中可能会存在数据不断写入,因此,无法保证数据备份的全量性。如果采用增量备份,由于各个公有云提供商的分布式对象存储的数据格式不同,很难实现跨公有云数据备份。因此,如何实现跨公有云的数据增量备份,成为一个亟待解决的问题。
发明内容
本申请实施例提供了一种数据存储方法及相关设备,可以高效地实现跨公有云的数据增量备份。
第一方面,本申请实施例提供了一种数据存储方法,该方法包括:
基于预记录的文件备份进度从第一公有云对象存储中确定出待备份文件,所述文件备份进度记录了所述第一公有云对象存储中已备份的文件的标识信息;
从所述第一公有云对象存储中以数据流形式拉取待备份文件,得到所述待备份文件对应的第一数据流,所述第一数据流对应的数据格式与所述第一公有云对象存储的数据格式匹配;
将所述第一数据流转换成与第二公有云对象存储的数据格式匹配的第二数据流;
将所述第二数据流存储至所述第二公有云对象存储。
在一个实施例中,将所述第二数据流存储至所述第二公有云对象存储之前,还可以获取所述待备份文件中携带的第一校验码,并依照所述第二公有云对象存储的校验码格式对所述第一校验码进行格式转换;将格式转换后的第一校验码发送至所述第二公有云对象存储;
其中,所述将所述第二数据流存储至所述第二公有云对象存储的具体实施方式为:
将所述第二数据流发送至所述第二公有云对象存储,以便于所述第二公有云对象存储基于所述格式转换后的第一校验码对所述第二数据流进行校验,若校验通过,则存储所述第二数据流。
在一个实施例中,依照所述第二公有云对象存储的校验码格式对所述第一校验码进行格式转换之前,还可以检测所述第一校验码是否完整;若是,则触发执行所述依照所述第二公有云对象存储的校验码格式对所述第一校验码进行格式转换的步骤。
在一个实施例中,所述将所述第二数据流发送至所述第二公有云对象存储之后,若接收到所述第二公有云对象存储返回的回馈信息,还可以基于预设重试策略触发执行所述将所述第二数据流发送至所述第二公有云对象存储的步骤,所述回馈信息用于指示对所述第二数据流的校验不通过。
在一个实施例中,所述将所述第二数据流存储至所述第二公有云对象存储之后,更新所述文件备份进度中已备份的文件的标识信息。
在一个实施例中,所述基于预记录的文件备份进度从第一公有云对象存储中确定出待备份文件的具体实施方式为:基于预记录的文件备份进度轮询数据库中各个文件的标识信息,从各个所述标识信息中确定出除所述已备份的文件的标识信息以外的目标标识信息,所述数据库中关联存储有各个文件的标识信息和各个文件的文件信息,各个所述文件信息包括用于指示所述各个文件在所述第一公有云对象存储中的存储路径和/或文件名;从所述数据库中确定出与所述目标标识信息关联存储的目标文件信息;基于所述目标文件信息从所述第一公有云对象存储中确定出待备份文件。
在一个实施例中,所述基于预记录的文件备份进度从第一公有云对象存储中确定出待备份文件之前,还可以检测是否存在用于指示将第一公有云对象存储中的文件备份至第二公有云对象存储的触发事件;若检测到所述触发事件,则触发执行所述基于预记录的文件备份进度从第一公有云对象存储中确定出待备份文件的步骤。
第二方面,本申请实施例提供了一种数据存储装置,该数据存储装置包括用于执行上述第一方面的方法的模块。
第三方面,本申请实施例提供了一种服务器,该服务器包括处理器、通信接口和存储器,所述处理器、通信接口和存储器相互连接,其中,所述通信接口受所述处理器的控制用于收发消息,所述存储器用于存储支持服务器执行上述方法的计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行上述第一方面的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行上述第一方面的方法。
本申请实施例中,可以基于预记录的文件备份进度从第一公有云对象存储中确定出待备份文件,从第一公有云对象存储中以数据流形式拉取待备份文件,得到待备份文件对应的第一数据流,将第一数据流转换成与第二公有云对象存储的数据格式匹配的第二数据流,进而将第二数据流存储至第二公有云对象存储。采用本申请实施例,可以高效地实现跨公有云的数据增量备份。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种数据存储系统的结构示意图;
图2是本申请实施例提供的一种数据存储方法的流程示意图;
图3是本申请实施例提供的另一种数据存储方法的流程示意图;
图4是本申请实施例提供的一种第一公有云对象存储和第二公有云对象存储对应数据封装格式的示意图;
图5是本申请实施例提供的一种数据存储装置的示意性框图;
图6是本申请实施例提供的一种服务器的示意性框图。
具体实施方式
参见图1所述的数据存储系统的结构示意图,该数据存储系统包括第一服务器10、第一公有云对象存储对应的第一云服务器11以及第二公有云对象存储对应的第二云服务器12。
其中,该第一服务器可以是指用于提供数据存储相关服务的单个服务器,也可以指由多个提供数据存储相关服务的服务器组成的服务器集群。该第一云服务器用于以第一公有云对象存储的数据格式存储数据,该第二云服务器用于以第二公有云对象存储的数据格式存储数据。
在一个实施例中,在文件存储至第一公有云对象存储对应的第一云服务器11之前,第一服务器10可以将各个文件的文件信息存储至数据库中,并为各个文件设置各自对应的标识信息,进而将各个文件的标识信息与对应的文件信息关联存储至数据库中。其中,该文件信息可以包括各个文件在第一公有云对象存储中的存储路径和/或文件名,该标识信息可以为主键ID,主键ID用于唯一标识各个文件。
进一步地,在各个文件存储至第一公有云对象存储对应的第一云服务器11之后,若需要将第一云服务器11中存储的文件备份至第二公有云对象存储对应的第二云服务器11。第一服务器10可以基于预记录的文件备份进度轮询数据库中各个文件的标识信息,从各个标识信息中确定出除已备份的文件的标识信息以外的目标标识信息,并从数据库中确定出与目标标识信息关联存储的目标文件信息,进一步地,第一服务器10可以基于目标文件信息中的存储路径和/或文件名从第一公有云对象存储中定位到待备份文件。采用这样的方式,可以只针对第一公有云对象存储中未备份的文件进行后续的备份操作,也即,可以实现对文件的增量备份。
进一步地,第一服务器10可以从第一公有云对象存储对应的第一云服务器11中以数据流形式拉取待备份文件,得到待备份文件对应的第一数据流,该第一数据流对应的数据格式与第一公有云对象存储的数据格式匹配。进一步地,第一服务器10可以将第一数据流转换成与第二公有云对象存储的数据格式匹配的第二数据流,并将第二数据流存储至第二公有云对象存储对应的第二云服务器12。采用这样的方式,可以自动实现待备份文件在不同公有云对象存储之间的数据格式转换,进而实现待备份文件的跨公有云增量备份。
参见图2,图2是本申请实施例提供的一种数据存储方法的流程示意图,本实施例可由服务器执行,如图所示,该数据存储方法可包括:
S201:基于预记录的文件备份进度从第一公有云对象存储中确定出待备份文件。
在一个实施例中,上述文件备份进度记录了第一公有云对象存储中已备份的文件的标识信息。在各个文件存储至第一公有云对象存储对应的第一云服务器11之前,第一服务器10可以将各个文件的文件信息存储至数据库中,并为各个文件设置各自对应的标识信息,进而将各个文件的标识信息与对应的文件信息关联存储至数据库中。
其中,该文件信息可以包括各个文件在第一公有云对象存储中的存储路径和/或文件名,该标识信息可以为主键ID,主键ID用于唯一标识各个文件。在一个实施例中,服务器可以为上述各个文件分配递增形式的主键ID。
进一步地,在将上述各个文件存储至第一公有云对象存储之后,服务器可以检测是否存在用于指示将第一公有云对象存储中的文件备份至第二公有云对象存储的触发事件,若检测到用于指示将第一公有云对象存储中的文件备份至第二公有云对象存储的触发事件,则基于预记录的文件备份进度从第一公有云对象存储中确定出待备份文件。
在一个实施例中,上述触发事件可以为服务器检测到用于指示将第一公有云对象存储中的文件备份至第二公有云对象存储的触发请求。示例性地,当用户想要将存储于第一公有云对象存储中的文件备份至第二公有云对象存储时,可以访问服务器对应前端的文件备份页面,该文件备份页面包括文件备份的起点项、文件备份的终点项和确认按钮。进一步地,用户可以在起点项中输入“第一公有云对象存储”,在终点项中输入“第二公有云对象存储”,并在输入完成后,针对该确认按钮输入触发指令,其中,该触发指令的输入方式可以包括语音、触控、滑动、按压等等。针对这种情况,前端检测到该触发指令后,可以向对应的服务器发送用于指示将第一公有云对象存储中的文件备份至第二公有云对象存储的触发请求。
在另一个实施例中,上述触发事件可以为服务器检测到第一公有云对象存储的服务不可用。其中,该第一公有云对象存储的服务不可以用可以包括多种情况,例如,第一公有云对象存储对应的云服务器故障;又例如,第一公有云对象存储的存储空间占用率大于或者等于预设占用率阈值。其中,该预设占用率阈值为开发人员基于实验测试数据确定的,后续可以根据实际需求进行调整。
示例性地,假设预设占用率阈值为90%,服务器实时或者按照预设周期检测第一公有云对象存储的存储空间占用率,检测到当前时刻第一公有云对象存储的存储空间占用率为95%,则可以确定第一公有云对象存储的服务不可用,也即,可以理解为服务器检测到用于指示将第一公有云对象存储中的文件备份至第二公有云对象存储的触发事件,进而基于预记录的文件备份进度从第一公有云对象存储中确定出待备份文件。
在一个实施例中,由于文件备份进度记录了第一公有云对象存储中已备份的文件的标识信息,服务器可以基于预记录的文件备份进度轮询数据库中各个文件的标识信息,从各个标识信息中确定出除已备份的文件的标识信息以外的目标标识信息。进一步地,服务器可以从数据库中确定出与目标标识信息关联存储的目标文件信息,并基于目标文件信息从第一公有云对象存储中确定出待备份文件。
示例性地,假设各个文件的文件信息包括各个文件在第一公有云对象存储中的存储路径,各个文件的标识信息为递增形式的主键ID,服务器关联存储的各个文件的标识信息与对应的文件信息如表1所示,文件备份进度记录了第一公有云对象存储中已备份的文件的标识信息为ID1。针对这种情况,服务器可以基于预记录的文件备份进度轮询数据库中各个文件的主键ID,从各个主键ID中确定出除已备份的文件的标识信息ID1以外的目标标识信息,该目标标识信息为ID2和ID3。进一步地,服务器可以从数据库中确定出与ID2关联存储的存储路径2,以及与ID3关联存储的存储路径3,该存储路径2和存储路径3均为上述提及的目标文件信息。进一步地,服务器可以从第一公有云对象存储中将存储于存储路径2和存储路径3的文件确定为待备份文件。
表1
主键ID | 存储路径 | |
第一文件 | ID1 | 存储路径1 |
第二文件 | ID2 | 存储路径2 |
第三文件 | ID3 | 存储路径3 |
S202:从第一公有云对象存储中以数据流形式拉取待备份文件,得到待备份文件对应的第一数据流,该第一数据流对应的数据格式与第一公有云对象存储的数据格式匹配。
其中,数据流是一组有序,有起点和终点的字节的数据序列,包括输入流和输出流,指代传输中所使用的信息的数字编码信号序列,可以理解为以事先规定的顺序被读取一次的数据的一个序列。在本申请实施例中,待备份文件包括多个,服务器从第一公有云对象存储中以数据流形式拉取各个待备份文件,可以理解为以预先规定的顺序单次拉取各个待备份文件,不会重复拉取同一个待备份文件。示例性地,该预先规定的顺序可以为待备份文件在第一公有云对象存储中的存储顺序。
S203:将第一数据流转换成与第二公有云对象存储的数据格式匹配的第二数据流。
S204:将第二数据流存储至第二公有云对象存储。
在一个实施例中,服务器可以将第二数据流传输至第二公有云对象存储,再由第二公有云对象存储将该第二数据流存储。
在一个实施例中,服务器可以以http请求的方式将第二数据流传输至第二公有云对象存储。针对这种情况,服务器可以获取第一数据流对应待备份文件的http头部部分,对头部部分进行解析,封装成与第二公有云对象存储数据格式匹配的头部部分。进一步地,服务器可以将封装后的与第二公有云对象存储数据格式匹配的头部部分与待备份文件的http主体部分组装成完整的http请求,从而实现将上述第一数据流转换至与第二公有云对象存储的数据格式匹配的第二数据流。
在一个实施例中,本申请实施例中的服务器可以包括一个或者多个服务器。示例性地,该服务器可以包括第一服务器和第二服务器,第一服务器可以用于关联存储各个文件的标识信息(例如主键ID)以及对应的文件信息,第二服务器可以用于执行上述步骤S201~步骤S204。采用不同的服务器,有利于支持一次性传输较大的文件量。
本申请实施例中,服务器可以基于预记录的文件备份进度从第一公有云对象存储中确定出待备份文件,从第一公有云对象存储中以数据流形式拉取待备份文件,得到待备份文件对应的第一数据流,并将第一数据流转换成与第二公有云对象存储的数据格式匹配的第二数据流,进而将第二数据流存储至第二公有云对象存储。采用这样的方式,可以高效地实现待备份文件在不同公有云对象存储之间的数据格式转换,进而实现待备份文件的跨公有云增量备份。
参见图3,图3是本申请实施例提供的另一种数据存储方法的流程示意图,本实施例可由服务器执行,如图所示,该数据存储方法可包括:
S301:基于预记录的文件备份进度从第一公有云对象存储中确定出待备份文件。
S302:从第一公有云对象存储中以数据流形式拉取待备份文件,得到待备份文件对应的第一数据流,该第一数据流对应的数据格式与第一公有云对象存储的数据格式匹配。
S303:将第一数据流转换成与第二公有云对象存储的数据格式匹配的第二数据流。其中,步骤S301~步骤S303的具体实施方式可以参见上述实施例中步骤S201~步骤S203的相关描述,此处不再赘述。
S304:获取待备份文件中携带的第一校验码,并依照第二公有云对象存储的校验码格式对第一校验码进行格式转换。
S305:将格式转换后的第一校验码和第二数据流发送至第二公有云对象存储,以便于第二公有云对象存储基于该格式转换后的第一校验码对第二数据流进行校验,若校验通过,则存储第二数据流。
其中,上述待备份文件可以包括多个,当每个待备份文件存储于第一公有云对象存储时,第一公有云对象存储均可以在每一个待备份文件中添加与第一公有云对象存储的校验码格式匹配的第一校验码,也即,每一个待备份文件中均携带有与第一公有云对象存储的校验码格式匹配的第一校验码。
在一个实施例中,服务器可以从待备份文件中获取预先添加的第一校验码,并依照第二公有云对象存储的校验码格式对第一校验码进行格式转换,并将格式转换后的第一校验码以及第二数据流发送至第二公有云对象存储。进一步地,在第二公有云对象存储接收到格式转换后的第一校验码以及第二数据流之后,在存储第二数据流时,按照自身的格式封装第二数据流,并生成目标校验码,并可以检测该格式转换后的第一校验码是否与第二公有云对象存储的校验码格式匹配,若是,则将该格式转换后的第一校验码与目标校验码进行对比,若对比得到格式转换后的第一校验码和目标校验码一致,则确定对第二数据流校验通过,并存储该第二数据流。
或者,若第二公有云对象存储对比得到格式转换后的第一校验码和目标校验码不一致,则确定对第二数据流校验不通过,则向服务器返回用于指示第二数据流校验不通过的回馈信息。采用这样的方式,可以保证存储的第二数据流对应数据的完整性。
其中,第一校验码与第二公有云对象存储的校验码格式匹配可以理解为与第二公有云对象存储的校验码格式要求的位数和表示方式均匹配。例如,假设第二公有云对象存储的校验码格式为E08F69,那么,与该第二公有云对象存储的校验码格式匹配的校验码则为十六进制6位数的编码,例如36A6D2。
在另一个实施例中,在第二公有云对象存储接收到格式转换后的第一校验码以及第二数据流之后,若第二公有云对象存储检测到该格式转换后的第一校验码与第二公有云对象存储的校验码格式不匹配,还可以将该格式转换后的第一校验码转换为与第二公有云对象存储的校验码格式匹配的第二校验码。进一步地,第二公有云对象存储可以将该第二校验码与上述目标校验码进行对比,若对比得到第二校验码和目标校验码一致,则确定对第二数据流校验通过,并存储该第二数据流。
示例性地,参见图4所示的第一公有云对象存储和第二公有云对象存储的数据封装格式的示意图,其中:40为第一公有云对象存储对应的数据封装格式、41为第二公有云对象存储对应的数据封装格式。其中,Body部分为第一公有云对象存储中封装数据的主体部分,Content部分为第二公有云对象存储中封装数据的主体部分,Etag为十六进制的实体标签,信息摘要码(Message Digest Algorithm MD5,MD5)为经过base64编码的二进制。在第一公有云对象存储和第二公有云对象存储分别采用上述两种数据封装格式的情况下,第一公有云对象存储的校验码格式为十六进制,第二公有云存储的校验码格式为经过base64编码的二进制。针对这种情况,服务器获取到待备份文件中携带的第一校验码之后,可以依照第二公有云对象存储的校验码格式首先将该第一校验码转换为二进制,再进行base64编码,得到格式转换后的第一校验码,从而实现将第一校验码转换为与第二公有云对象存储的校验码格式匹配的校验码。
在一个实施例中,服务器将第一校验码发送至第二公有云对象存储之前,还可以检测第一校验码是否完整,若是,则触发执行依照第二公有云对象存储的校验码格式对第一校验码进行格式转换的步骤。若否,则按照预设生成规则生成完整的第三校验码,并将依照第二公有云对象存储的校验码格式对该第三校验码进行格式转换,进而将格式转换后的第三校验码发送至第二公有云对象存储,以便于第二公有云对象存储基于该格式转换后的第三校验码对第二数据流进行校验,若校验通过,则存储第二数据流。
在一个实施例中,该预设生成规则用于指示服务器将待备份文件另存为本地文件,并基于该本地文件生成完整的第三校验码。其中,检测第一校验码是否完整可以理解为检测第一校验码的位数是否与第一公有云对象存储对应的预设校验码的格式相符,也即,检测第一校验码的位数是否与该预设校验码的位数相同。例如,第一公有云对象存储对应的预设校验码格式为E08F69,那么,按照预设生成规则生成的完整的第三校验码为十六进制6位数的编码。
示例性地,假设第一公有云对象存储对应的预设校验码的格式为E08F69,第一校验码为E08F69-1或者E08F69-2这种形式,由于该第一校验码的位数与预设校验码的格式不符,服务器可以确定第一校验码不完整,也即表示第一数据流并不是完整的待备份文件,并可以依照预设生成规则将第一数据流另存为完整的本地文件,进而基于该本地文件生成完整的第三校验码,例如36A6D2。
在一个实施例中,服务器将第二数据流发送至第二公有云对象存储之后,若接收到第二公有云对象存储返回的回馈信息,则基于预设重试策略触发执行将第二数据流发送至第二公有云对象存储的步骤,该回馈信息用于指示对第二数据流的校验不通过。
在一个实施例中,上述预设重试策略规定了重试的次数阈值和每一次重试的等待时长。针对这种情况,若服务器接收到第二公有云对象存储返回的回馈信息时,可以基于预设重试策略再次将第二数据流发送至第二公有云对象存储,若接收到第二公有云对象存储返回的回馈信息,则第一重试不通过;进一步,服务器可以进行第二次重试,直到重试的累计次数大于或者等于上述次数阈值时,则停止重试。
其中,在每一重试不通过时,服务器均可以输出告警信息,便于开发人员及时定位问题,解决问题。
在一个实施例中,在服务器每一次进行重试过程中,服务器将第二数据流发送至第二公有云对象存储后,均可以开启计时器计时,当计时器对应时长大于或者等于当次重试过程对应的等待时长时,若服务器还未接收到第二公有云对象存储返回的回馈信息,则直接确定当次重试失败,触发下一次重试。其中,每一次重试过程结束,均会对计时器清零。
在一个实施例中,重试过程中,上述每一次重试的等待时长可以采用倍数等待时长,例如,第一次重试对应的等待时长为3秒、第二次重试对应的等待时长为6秒、第三次重试对应的等待时长为9秒、以此类推。
其中,上述依照第二公有云对象存储的校验码格式对第一校验码进行格式转换的步骤,除了可以由服务器执行以外,还可以由第二公有云对象存储执行。针对这种情况,服务器获取到待备份文件中携带的第一校验码之后,可以将该第一校验码和第二数据流发送至第二公有云对象存储。进一步地,第二公有云对象存储接收到该第一校验码和第二数据流之后,可以依照第二公有云对象存储的校验码格式对第一校验码进行格式转换,将该第一校验码转换为与第二公有云对象存储的校验码格式匹配的校验码。进一步地,第二公有云对象存储可以将该格式转换后的第一校验码与第二公有云对象存储封装第二数据流的目标校验码进行对比,若对比得到格式转换后的第一校验码和目标校验码一致,则确定对第二数据流校验通过,存储该第二数据流。
在一个实施例中,上述基于格式转换后的第一校验码对第二数据流进行校验的步骤除了可以由第二公有云对象存储执行之外,还可以由服务器自身执行。在一个实施例中,服务器可以获取待备份文件中携带的第一校验码,并依照第二公有云对象存储的校验码格式对第一校验码进行格式转换,进而基于该格式转换后的第一校验码对第二数据流进行校验,若校验通过,则生成存储指示信息,并将该第二数据流和存储指示信息发送至第二公有云对象存储。进一步地,第二公有云对象存储可以根据该存储指示信息的指示,将第二数据流存储至第二公有云对象存储。
或者,若校验不通过,服务器可以基于预设重试策略触发执行基于该校验码对第二数据流进行校验的步骤,若校验不通过,则第一重试不通过;进一步,服务器可以进行第二次重试,直到重试的累计次数大于或者等于上述次数阈值时,则停止重试。
在对第一公有云对象存储中的文件进行备份的过程中,服务器可以按照预设周期或者实时记录文件备份进度,该文件备份进度记录了第一公有云对象存储中已备份的文件的标识信息。在一个实施例中,服务器在将第二数据流存储至第二公有云对象存储之后,可以更新文件备份进度中已备份的文件的标识信息。采用这样的方式,可以不断更新件备份进度中已备份的文件的标识信息,防止对第一公有云对象存储中文件的重复备份。
本申请实施例中,服务器可以基于预记录的文件备份进度从第一公有云对象存储中确定出待备份文件,从第一公有云对象存储中以数据流形式拉取待备份文件,得到待备份文件对应的第一数据流,并将第一数据流转换成与第二公有云对象存储的数据格式匹配的第二数据流。进一步地,服务器可以获取待备份文件中携带的第一校验码,并将第一校验码和第二数据流发送至第二公有云对象存储,以便于第二公有云对象存储基于该第一校验码对第二数据流进行校验,若校验通过,则存储第二数据流。采用本申请实施例,有利于保证所备份文件的完整性。
本申请实施例还提供了一种计算机存储介质,该计算机存储介质中存储有程序指令,该程序指令被执行时,用于实现上述实施例中描述的相应方法。
本申请实施例还提供了一种数据存储装置,该装置包括用于执行前述图2或者图3所述的方法的模块,配置于服务器。具体地,参见图5,是本申请实施例提供的数据存储装置的示意框图。本实施例的数据存储装置包括:
确定模块50,用于基于预记录的文件备份进度从第一公有云对象存储中确定出待备份文件,所述文件备份进度记录了所述第一公有云对象存储中已备份的文件的标识信息;
处理模块51,用于从所述第一公有云对象存储中以数据流形式拉取待备份文件,得到所述待备份文件对应的第一数据流,所述第一数据流对应的数据格式与所述第一公有云对象存储的数据格式匹配;
所述处理模块51,还用于将所述第一数据流转换成与第二公有云对象存储的数据格式匹配的第二数据流;
存储模块52,用于将所述第二数据流存储至所述第二公有云对象存储。
在一个实施例中,所述处理模块51,还用于获取所述待备份文件中携带的第一校验码,并依照所述第二公有云对象存储的校验码格式对所述第一校验码进行格式转换;所述存储模块52,还用于将所述处理模块51获取到的格式转换后的第一校验码发送至所述第二公有云对象存储。
在一个实施例中,存储模块52,还具体用于将所述第二数据流发送至所述第二公有云对象存储,以便于所述第二公有云对象存储基于所述格式转换后的第一校验码对所述第二数据流进行校验,若校验通过,则存储所述第二数据流。
在一个实施例中,所述处理模块51,还用于检测所述第一校验码是否完整,若是,则依照所述第二公有云对象存储的校验码格式对所述第一校验码进行格式转换。
在一个实施例中,所述存储模块52,还具体用于若接收到所述第二公有云对象存储返回的回馈信息,则基于预设重试策略触发执行所述将所述第二数据流发送至所述第二公有云对象存储的步骤,所述回馈信息用于指示对所述第二数据流的校验不通过。
在一个实施例中,所述处理模块51,还用于更新所述文件备份进度中已备份的文件的标识信息。
在一个实施例中,确定模块50,具体用于基于预记录的文件备份进度轮询数据库中各个文件的标识信息,从各个所述标识信息中确定出除所述已备份的文件的标识信息以外的目标标识信息,所述数据库中关联存储有各个文件的标识信息和各个文件的文件信息,各个所述文件信息包括用于指示所述各个文件在所述第一公有云对象存储中的存储路径和/或文件名;从所述数据库中确定出与所述目标标识信息关联存储的目标文件信息;基于所述目标文件信息从所述第一公有云对象存储中确定出待备份文件。
在一个实施例中,所述确定模块50,还用于检测是否存在用于指示将第一公有云对象存储中的文件备份至第二公有云对象存储的触发事件;若检测到所述触发事件,则触发执行所述基于预记录的文件备份进度从第一公有云对象存储中确定出待备份文件的步骤。
需要说明的是,本申请实施例所描述的数据存储装置的各功能模块的功能可根据上述图2或者图3所述的所述的方法实施例中的方法具体实现,其具体实现过程可以参照图2或者图3的方法实施例的相关描述,此处不再赘述。
请参见图6,图6是本申请实施例提供的一种服务器的示意性框图,如图6所示,该服务器包括,处理器601、存储器602和通信接口603。上述处理器601、存储器602和通信接口603可通过总线或其他方式连接,在本申请实施例所示图6中以通过总线连接为例。其中,通信接口603受所述处理器的控制用于收发消息,存储器602用于存储计算机程序,所述计算机程序包括程序指令,处理器601用于执行存储器602存储的程序指令。其中,处理器601被配置用于调用所述程序指令执行:基于预记录的文件备份进度从第一公有云对象存储中确定出待备份文件,所述文件备份进度记录了所述第一公有云对象存储中已备份的文件的标识信息;从所述第一公有云对象存储中以数据流形式拉取待备份文件,得到所述待备份文件对应的第一数据流,所述第一数据流对应的数据格式与所述第一公有云对象存储的数据格式匹配;将所述第一数据流转换成与第二公有云对象存储的数据格式匹配的第二数据流;将所述第二数据流存储至所述第二公有云对象存储。
在一个实施例中,所述处理器601,还用于获取所述待备份文件中携带的第一校验码,并依照所述第二公有云对象存储的校验码格式对所述第一校验码进行格式转换,通过通信接口603将格式转换后的第一校验码发送至所述第二公有云对象存储。
在一个实施例中,所述处理器601,还用于通过通信接口603将所述第二数据流发送至所述第二公有云对象存储,以便于所述第二公有云对象存储基于所述格式转换后的第一校验码对所述第二数据流进行校验,若校验通过,则存储所述第二数据流。
在一个实施例中,所述处理器601,还用于检测所述第一校验码是否完整,若是,则依照所述第二公有云对象存储的校验码格式对所述第一校验码进行格式转换。
在一个实施例中,所述处理器601,还用于若通过通信接口603接收到所述第二公有云对象存储返回的回馈信息,则基于预设重试策略触发执行所述将所述第二数据流发送至所述第二公有云对象存储的步骤,所述回馈信息用于指示对所述第二数据流的校验不通过。
在一个实施例中,所述处理器601,还用于更新所述文件备份进度中已备份的文件的标识信息。
在一个实施例中,所述处理器601,还用于基于预记录的文件备份进度轮询数据库中各个文件的标识信息,从各个所述标识信息中确定出除所述已备份的文件的标识信息以外的目标标识信息,所述数据库中关联存储有各个文件的标识信息和各个文件的文件信息,各个所述文件信息包括用于指示所述各个文件在所述第一公有云对象存储中的存储路径和/或文件名;从所述数据库中确定出与所述目标标识信息关联存储的目标文件信息;基于所述目标文件信息从所述第一公有云对象存储中确定出待备份文件。
在一个实施例中,所述处理器601,还用于检测是否存在用于指示将第一公有云对象存储中的文件备份至第二公有云对象存储的触发事件;若检测到所述触发事件,则触发执行所述基于预记录的文件备份进度从第一公有云对象存储中确定出待备份文件的步骤。
应当理解,在本申请实施例中,所称处理器601可以是中央处理单元(CentralProcessing Unit,CPU),该处理器601还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
该存储器602可以包括只读存储器和随机存取存储器,并向处理器601提供指令和数据。存储器602的一部分还可以包括非易失性随机存取存储器。例如,存储器602还可以存储设备类型的信息。
具体实现中,本申请实施例中所描述的处理器601、存储器602和通信接口603可执行本申请实施例提供的图2或者图3所述的方法实施例所描述的实现方式,也可执行本申请实施例所描述的数据存储服务器的实现方式,在此不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所揭露的仅为本申请的部分实施例而已,当然不能以此来限定本申请之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本申请权利要求所作的等同变化,仍属于申请所涵盖的范围。
Claims (9)
1.一种数据存储方法,其特征在于,所述方法包括:
检测是否存在用于指示将第一公有云对象存储中的文件备份至第二公有云对象存储的触发事件,和/或,检测是否存在所述第一公有云对象存储的服务不可用的触发事件;
若检测到所述触发事件,则触发基于预记录的文件备份进度从第一公有云对象存储中确定出待备份文件,所述文件备份进度记录了所述第一公有云对象存储中已备份的文件的标识信息;
从所述第一公有云对象存储中以数据流形式拉取待备份文件,得到所述待备份文件对应的第一数据流,所述第一数据流对应的数据格式与所述第一公有云对象存储的数据格式匹配;
将所述第一数据流转换成与第二公有云对象存储的数据格式匹配的第二数据流,包括:获取所述第一数据流对应待备份文件的http头部部分,解析所述http头部部分,将所述http头部部分封装成与所述第二公有云对象存储数据格式匹配的头部部分,将封装后的与所述第二公有云对象存储数据格式匹配的头部部分与所述待备份文件的http主体部分组装得到所述第二数据流;
将所述第二数据流存储至所述第二公有云对象存储。
2.根据权利要求1所述的方法,其特征在于,所述将所述第二数据流存储至所述第二公有云对象存储之前,所述方法还包括:
获取所述待备份文件中携带的第一校验码,并依照所述第二公有云对象存储的校验码格式对所述第一校验码进行格式转换;
将格式转换后的第一校验码发送至所述第二公有云对象存储;
其中,所述将所述第二数据流存储至所述第二公有云对象存储,包括:
将所述第二数据流发送至所述第二公有云对象存储,以便于所述第二公有云对象存储基于所述格式转换后的第一校验码对所述第二数据流进行校验,若校验通过,则存储所述第二数据流。
3.根据权利要求2所述的方法,其特征在于,所述依照所述第二公有云对象存储的校验码格式对所述第一校验码进行格式转换之前,所述方法还包括:
检测所述第一校验码是否完整;
若是,则触发执行所述依照所述第二公有云对象存储的校验码格式对所述第一校验码进行格式转换的步骤。
4.根据权利要求2或3所述的方法,其特征在于,所述将所述第二数据流发送至所述第二公有云对象存储之后,所述方法还包括:
若接收到所述第二公有云对象存储返回的回馈信息,则基于预设重试策略触发执行所述将所述第二数据流发送至所述第二公有云对象存储的步骤,所述回馈信息用于指示对所述第二数据流的校验不通过。
5.根据权利要求1所述的方法,其特征在于,所述将所述第二数据流存储至所述第二公有云对象存储之后,所述方法还包括:
更新所述文件备份进度中已备份的文件的标识信息。
6.根据权利要求1所述的方法,其特征在于,所述基于预记录的文件备份进度从第一公有云对象存储中确定出待备份文件,包括:
基于预记录的文件备份进度轮询数据库中各个文件的标识信息,并从各个所述标识信息中确定出除所述已备份的文件的标识信息以外的目标标识信息,所述数据库中关联存储有各个文件的标识信息和各个文件的文件信息,各个所述文件信息包括用于指示所述各个文件在所述第一公有云对象存储中的存储路径和/或文件名;
从所述数据库中确定出与所述目标标识信息关联存储的目标文件信息;
基于所述目标文件信息从所述第一公有云对象存储中确定出待备份文件。
7.一种数据存储装置,其特征在于,所述装置包括:
确定模块,用于检测是否存在用于指示将第一公有云对象存储中的文件备份至第二公有云对象存储的触发事件,和/或,检测是否存在所述第一公有云对象存储的服务不可用的触发事件,若检测到所述触发事件,则触发基于预记录的文件备份进度从第一公有云对象存储中确定出待备份文件,所述文件备份进度记录了所述第一公有云对象存储中已备份的文件的标识信息;
处理模块,用于从所述第一公有云对象存储中以数据流形式拉取待备份文件,得到所述待备份文件对应的第一数据流,所述第一数据流对应的数据格式与所述第一公有云对象存储的数据格式匹配;
所述处理模块,还用于将所述第一数据流转换成与第二公有云对象存储的数据格式匹配的第二数据流;
所述处理模块,具体用于获取所述第一数据流对应待备份文件的http头部部分,解析所述http头部部分,将所述http头部部分封装成与所述第二公有云对象存储数据格式匹配的头部部分,将封装后的与所述第二公有云对象存储数据格式匹配的头部部分与所述待备份文件的http主体部分组装得到所述第二数据流;
存储模块,用于将所述第二数据流存储至所述第二公有云对象存储。
8.一种服务器,其特征在于,包括处理器和存储器,所述处理器和所述存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行如权利要求1-6任一项所述的方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行以实现权利要求1-6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910679362.0A CN110554930B (zh) | 2019-07-25 | 2019-07-25 | 一种数据存储方法及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910679362.0A CN110554930B (zh) | 2019-07-25 | 2019-07-25 | 一种数据存储方法及相关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110554930A CN110554930A (zh) | 2019-12-10 |
CN110554930B true CN110554930B (zh) | 2022-05-20 |
Family
ID=68735619
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910679362.0A Active CN110554930B (zh) | 2019-07-25 | 2019-07-25 | 一种数据存储方法及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110554930B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110704121B (zh) * | 2018-06-25 | 2021-07-20 | 北京嘀嘀无限科技发展有限公司 | 一种操作重试的方法、系统及计算机装置 |
CN111028922A (zh) * | 2019-12-13 | 2020-04-17 | 北京推想科技有限公司 | 医学影像数据的标准化方法、装置、服务器设备及介质 |
CN111565168B (zh) * | 2020-03-02 | 2023-05-23 | 杭州云毅网络科技有限公司 | 一种对象存储方法、系统、存储介质及电子设备 |
CN113767353A (zh) * | 2020-03-31 | 2021-12-07 | 深圳市大疆创新科技有限公司 | 飞行记录数据存储方法、获取方法及无人飞行器 |
CN111913938A (zh) * | 2020-08-11 | 2020-11-10 | 中国工商银行股份有限公司 | 数据迁移方法、系统、装置、电子设备和介质 |
CN112650625A (zh) * | 2020-12-28 | 2021-04-13 | 武汉达梦数据技术有限公司 | 一种针对数据库的流式备份还原方法、存储介质及装置 |
CN115509810B (zh) * | 2022-09-26 | 2024-04-05 | 广东保伦电子股份有限公司 | 一种云端数据的异地备份方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102750324A (zh) * | 2012-05-28 | 2012-10-24 | 华为技术有限公司 | 文件存储系统、装置及文件存取方法 |
CN103036946A (zh) * | 2012-11-21 | 2013-04-10 | 中国电信股份有限公司云计算分公司 | 一种用于云平台处理文件备份任务的方法和系统 |
CN103944981A (zh) * | 2014-04-14 | 2014-07-23 | 中国科学院计算技术研究所 | 一种基于纠删码技术改进的云存储系统及实现方法 |
CN108763405A (zh) * | 2018-05-22 | 2018-11-06 | 深信服网络科技(深圳)有限公司 | 一种业务数据迁移方法、装置、系统及可读存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110307451A1 (en) * | 2010-06-10 | 2011-12-15 | EnduraData, Inc, | System and method for distributed objects storage, management, archival, searching, retrieval and mining in private and public clouds and deep invisible webs |
US8943356B1 (en) * | 2010-09-30 | 2015-01-27 | Emc Corporation | Post backup catalogs |
-
2019
- 2019-07-25 CN CN201910679362.0A patent/CN110554930B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102750324A (zh) * | 2012-05-28 | 2012-10-24 | 华为技术有限公司 | 文件存储系统、装置及文件存取方法 |
CN103036946A (zh) * | 2012-11-21 | 2013-04-10 | 中国电信股份有限公司云计算分公司 | 一种用于云平台处理文件备份任务的方法和系统 |
CN103944981A (zh) * | 2014-04-14 | 2014-07-23 | 中国科学院计算技术研究所 | 一种基于纠删码技术改进的云存储系统及实现方法 |
CN108763405A (zh) * | 2018-05-22 | 2018-11-06 | 深信服网络科技(深圳)有限公司 | 一种业务数据迁移方法、装置、系统及可读存储介质 |
Non-Patent Citations (1)
Title |
---|
混合云存储跨云灾备方法之跨云备份;justin_wu-bo;《https://www.sohu.com/a/249616471_612370》;20180823;第1-14页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110554930A (zh) | 2019-12-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110554930B (zh) | 一种数据存储方法及相关设备 | |
CN111414334B (zh) | 基于云技术的文件分片上传方法、装置、设备及存储介质 | |
CN110224858B (zh) | 基于日志的告警方法及相关装置 | |
CN112560078B (zh) | 区块链数据处理方法、装置、设备及介质 | |
CN103441861B (zh) | 一种数据记录生成方法及装置 | |
CN111385148A (zh) | 业务告警方法、装置、计算机设备及存储介质 | |
US11361110B2 (en) | File verification method, file verification system and file verification server | |
CN109284331B (zh) | 基于业务数据资源的制证信息获取方法、终端设备及介质 | |
CN111181784A (zh) | 一种网口状态管理方法、状态机引擎装置、设备及介质 | |
CN114092252A (zh) | 一种区块链交易执行方法、装置、设备及可读存储介质 | |
CN112835885B (zh) | 一种分布式表格存储的处理方法、装置及系统 | |
CN112865927B (zh) | 消息送达验证方法、装置、计算机设备和存储介质 | |
CN112261114A (zh) | 一种数据备份系统及方法 | |
CN110620800B (zh) | 电力二次系统跨安全区的配置数据同步处理方法和装置 | |
CN112860746B (zh) | 一种基于缓存削减的方法、设备及系统 | |
CN113746924B (zh) | 一种电网业务数据跨区传输方法及装置 | |
CN115878576A (zh) | 一种数据存储的处理方法及装置 | |
CN115801765A (zh) | 文件传输方法、装置、系统、电子设备及存储介质 | |
CN115033927A (zh) | 一种检测数据完整性的方法、装置、设备及介质 | |
CN103701667A (zh) | 服务器的心跳的监控方法、装置及系统 | |
CN108880994B (zh) | 一种重发邮件的方法和装置 | |
CN113377467B (zh) | 信息解耦方法、装置、服务器及存储介质 | |
CN111787071A (zh) | 信息传输方法、信息传输装置和系统 | |
US11874821B2 (en) | Block aggregation for shared streams | |
CN113179333B (zh) | 一种用于区块链的文件传输与实时计算系统及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |