数据存储方法、装置、电子设备及可读存储介质与流程

文档序号:28169315发布日期:2021-12-24 23:17阅读:116来源:国知局
数据存储方法、装置、电子设备及可读存储介质与流程

1.本技术涉及计算机技术领域,特别是涉及一种数据存储方法、装置、电子设备及可读存储介质。


背景技术:

2.随着互联网技术的快速发展,且被广泛应用于日常工作生活中,数据呈现爆炸式增长,存储技术也得到了相应的发展,具有优异存储性能的分布式存储系统应用而生,用于存储海量数据。可以理解的是,数据存储至分布式存储系统中,首先需要保证的就是数据一致性,特别是在故障场景下,例如断电、断网、坏盘等一系列不确定因素。不可避免的是,外部用户也会通过修改、删除等操作破坏原有数据。此外,分布式存储系统在保存数据时会将连续的一块数据打散,保存到不同硬盘不同的区域上,这些均会导致在原始数据获取的应用场景下,数据修复难度较大,导致无法准确、高效地判断错误数据来源,更无法确定错误数据产生的原因。
3.鉴于此,如何精准、高效地修复数据,及时确认数据丢失原因,是所属领域技术人员需要解决的技术问题。


技术实现要素:

4.本技术提供了一种数据存储方法、装置、电子设备及可读存储介质,可精准、高效地修复数据,及时确认数据丢失原因。
5.为解决上述技术问题,本发明实施例提供以下技术方案:本发明实施例一方面提供了一种数据存储方法,包括:预先在分布式存储系统的磁盘中构建数据区和外溯源区,且所述数据区与所述外溯源区具有对应关系;同时在所述内存中构建与所述外溯源区相对应的内溯源区;当检测到所述数据区写入目标数据,将所述目标数据对应的溯源信息写入至所述内溯源区;将所述内溯源区的数据下刷至所述外溯源区,以通过所述外溯源区存储所述数据区的溯源信息。
6.可选的,所述将所述内溯源区的数据下刷至所述外溯源区之后,还包括:当接收到数据一致性测试注入故障指令,基于所述对应关系,根据所述数据区的地址计算外溯源区地址;基于所述外溯源区地址,从所述外溯源区获取所述数据区中各数据块对应的数据来源信息。
7.可选的,所述将所述内溯源区的数据下刷至所述外溯源区之后,还包括:当检测到生产环境发生故障,基于所述对应关系,根据所述数据区的地址计算外溯源区地址;基于所述外溯源区地址,从所述外溯源区获取所述数据区中各数据块对应的数据
来源信息。
8.可选的,所述将所述内溯源区的数据下刷至所述外溯源区之后,还包括:扫描所述数据区;确定所述数据区的每块数据对应在所述外溯源区的数据来源信息,并将所述数据区内在物理上不连续的数据拼装为符合逻辑的连续数据,以执行数据修复操作。
9.可选的,所述将所述内溯源区的数据下刷至所述外溯源区之后,还包括:当检测到满足溯源区回收条件,发送溯源区回收指令;基于所述溯源区回收指令,将所述外溯源区转换为所述数据区,以用于存储待写入数据。
10.可选的,所述当检测到满足溯源区回收条件,发送溯源区回收指令,包括:判断所述数据区的剩余空间容量值是否小于预设容量阈值;若所述数据区的剩余空间容量值小于预设容量阈值,则满足所述溯源区回收条件;若所述数据区的剩余空间容量值大于等于预设容量阈值,则不满足所述溯源区回收条件。可选的,所述当检测到满足溯源区回收条件,发送溯源区回收指令,包括:判断所述磁盘空间利用率是否大于预设阈值;若所述磁盘空间利用率大于预设阈值,则满足所述溯源区回收条件;若所述磁盘空间利用率小于等于预设容量阈值,则不满足所述溯源区回收条件。
11.本发明实施例另一方面提供了一种数据存储装置,包括:预部署模块,用于预先在分布式存储系统的磁盘中构建数据区和外溯源区,且所述数据区与所述外溯源区具有对应关系;同时在所述内存中构建与所述外溯源区相对应的内溯源区;写数据模块,用于当检测到所述数据区写入目标数据,将所述目标数据对应的溯源信息写入至所述内溯源区;数据存储模块,用于将所述内溯源区的数据下刷至所述外溯源区,以通过所述外溯源区存储所述数据区的溯源信息。
12.本发明实施例还提供了一种电子设备,包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如前任一项所述数据存储方法的步骤。
13.本发明实施例最后还提供了一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如前任一项所述数据存储方法的步骤。
14.本技术提供的技术方案的优点在于,在磁盘空间中构建写数据的数据区域和记录该数据区域中每一块数据的溯源信息的溯源区域,将分布式存储系统每次写入的数据,提取其来源信息并按照约定的格式写入到预留的硬盘空间内,在发生故障或者数据被破坏时,可以追溯数据修改产生过程,可以根据溯源数据修复真正的数据区域,从而可精准、高效地修复数据,及时确认数据丢失原因。
15.此外,本发明实施例还针对数据存储方法提供了相应的实现装置、电子设备及可读存储介质,进一步使得所述方法更具有实用性,所述装置、电子设备及可读存储介质具有相应的优点。
16.应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。
附图说明
17.为了更清楚的说明本发明实施例或相关技术的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
18.图1为本发明实施例提供的一种数据存储方法的流程示意图;图2为本发明实施例提供的一个示例性应用场景的框架示意图;图3为本发明实施例提供的数据存储装置的一种具体实施方式结构图;图4为本发明实施例提供的电子设备的一种具体实施方式结构图。
具体实施方式
19.为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
20.本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等是用于区别不同的对象,而不是用于描述特定的顺序。此外术语“包括”和“具有”以及他们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可包括没有列出的步骤或单元。
21.在介绍了本发明实施例的技术方案后,下面详细的说明本技术的各种非限制性实施方式。
22.首先参见图1,图1为本发明实施例提供的一种数据存储方法的流程示意图,本发明实施例可包括以下内容:s101:预先在分布式存储系统的磁盘中构建数据区和外溯源区;同时在内存中构建与外溯源区相对应的内溯源区。
23.在本实施例中,在分布式存储系统的全部磁盘或某些指定磁盘中预先构建两大区域,即数据区和溯源区。当然,磁盘中除了数据区和溯源区还可有其他区,例如用于存储小文件的文件缓存区,这均不影响本技术的实现。数据区用于存储实际写入数据,正常情况下溯源区域用来保存写入数据的溯源信息。溯源信息用于描述实际写入数据的属性信息,例如数据写入的序号、占用空间容量值、存储位置等。为了区别,可将磁盘中的溯源区称为外溯源区,溯源区在内存常驻,可称内存中的溯源区为内溯源区,其与硬盘上的外溯源区相对应。数据区与外溯源区具有对应关系,为了提高整个磁盘的利用率,数据区域与溯源区域可采用线性对应方式,也即只需要简单计算就能获取某一块数据区域对应的溯源区域,也即通过数据区的地址可计算得到相应溯源区的地址,不需要额外存储两者的对应关系。
24.s102:当检测到数据区写入目标数据,将目标数据对应的溯源信息写入至内溯源区。
25.本实施例目标数据即为用户想要写入至分布式存储系统的数据,也即待写入数据。
26.s103:将内溯源区的数据下刷至外溯源区,以通过外溯源区存储数据区的溯源信
息。
27.在本实施例中,用户下发数据写入指令,也即待写入数据进入分布式系统后,其先写入数据区,然后再写至内存中的内溯源区,每次数据区域写入完成之后异步修改溯源区。举例来说,内溯源区可按照4k对齐的方式将数据下刷到硬盘上的外溯源区,如图2所示,将分布式存储系统中每一次数据写入操作的数据来源信息保存到硬盘中的外溯源区,从而可记录数据区中的每一块数据的修改产生过程。
28.在本发明实施例提供的技术方案中,在磁盘空间中构建写数据的数据区域和记录数据区域中每一块数据的溯源信息的溯源区域,将分布式存储系统每次写入的数据,提取其来源信息并按照约定的格式写入到预留的硬盘空间内,在发生故障或者数据被破坏时,可以追溯数据修改产生过程,可以根据溯源数据修复真正的数据区域,从而可精准、高效地修复数据,及时确认数据丢失原因。
29.需要说明的是,本技术中各步骤间没有严格的先后执行顺序,只要符合逻辑上的顺序,则这些步骤可以同时执行,也可按照某种预设顺序执行,图1只是一种示意方式,并不代表只能是这样的执行顺序。
30.可以理解的是,分布式存储系统在上线之前会进行数据一致性测试,分布式存储系统数据一致性测试的主要手段就是进行故障注入,以模拟不同程度的灾难发生,并且需要在灾难发生时及时确认数据丢失原因以及进行数据修复。基于此,基于上述实施例,还可包括:当接收到数据一致性测试注入故障指令,基于数据区和外溯源区的对应关系,根据数据区的地址计算外溯源区地址;基于外溯源区地址,从外溯源区获取数据区中各数据块对应的数据来源信息。
31.在分布式存储系统进行故障注入测试,可以根据数据区域计算得到溯源信息,解析得到数据修改产生过程,分析得到数据丢失的原因,以及进行部分数据的修复。
32.此外,当检测到生产环境发生故障,基于数据区和外溯源区对应关系,根据数据区的地址计算外溯源区地址;基于外溯源区地址,从外溯源区获取数据区中各数据块对应的数据来源信息。
33.在发生故障或者生产环境发生灾难时,根据数据区域计算获取溯源区域信息,解析得到数据修改产生过程,分析数据损坏或数据丢失原因,以及进行修复数据。
34.基于上述实施例,本实施例还提供了数据修复操作的一种可选的实施方式,可包括:扫描数据区;确定数据区的每块数据对应在外溯源区的数据来源信息,并将数据区内在物理上不连续的数据拼装为符合逻辑的连续数据,以执行数据修复操作。
35.可以理解的是,分布式存储系统在保存数据时会将连续的一块数据打散,保存到不同硬盘不同的区域上,所以硬盘中的数据区的数据为不连续的数据,而由于外溯源区中记录了数据区的每一块数据的修改发生过程。扫描数据区的每个数据块,根据数据区域计算获取每一块数据对应的溯源区信息,解析后可以进行一定程度的数据修复,将硬盘上不连续的数据拼装成逻辑上连续的数据返回。
36.不可避免的,分布式存储系统会突然有大量数据的读写操作,导致数据区的可用容量不足,影响整个分布式存储系统的存储系统,为了应对这种数据突增情况,本实施例还
提供了容量回收实施例,可包括下述内容:当检测到满足溯源区回收条件,发送溯源区回收指令;基于溯源区回收指令,将外溯源区转换为数据区,以用于存储待写入数据。
37.在上述实施例中,对于如何执行溯源区回收条件的判定并不做限定,本实施例中给出溯源区回收条件的一种可选的判定方式,也即当检测到满足溯源区回收条件,发送溯源区回收指令的过程包括如下步骤:判断数据区的剩余空间容量值是否小于预设容量阈值;若数据区的剩余空间容量值小于预设容量阈值,则满足溯源区回收条件;若数据区的剩余空间容量值大于等于预设容量阈值,则不满足溯源区回收条件。本技术还提供了另一种溯源区回收条件的判定方式,与上述方式并列,因此,可作为另一种可选的实施方式,可包括:判断磁盘空间利用率是否大于预设阈值;若磁盘空间利用率大于预设阈值,则满足溯源区回收条件;若磁盘空间利用率小于等于预设容量阈值,则不满足溯源区回收条件。
38.其中,预设阈值和预设容量阈值可根据实际情况灵活选择,这均不影响本技术的实现。系统可直接从配置信息中或寄存器中读取数据区的剩余空间容量值或空间利用率,然后基于读取的参数采用相应的方式进行判定。对于磁盘空间利用率参数需要额外计算的,可预先设置空间利用率计算程序的脚本,通过调用脚本来实时监控磁盘空间利用率。
39.本实施例在磁盘空间使用率较高的情况下或者是数据区域容量不够时回收外溯源区,并将其转换成数据区使用,可以继续进行数据写入,用来应对短时间的突发流量,有效提升分布式存储系统的存储性能。
40.本发明实施例还针对数据存储方法提供了相应的装置,进一步使得方法更具有实用性。其中,装置可从功能模块的角度和硬件的角度分别说明。下面对本发明实施例提供的数据存储装置进行介绍,下文描述的数据存储装置与上文描述的数据存储方法可相互对应参照。
41.基于功能模块的角度,参见图3,图3为本发明实施例提供的数据存储装置在一种具体实施方式下的结构图,该装置可包括:预部署模块301,用于预先在分布式存储系统的磁盘中构建数据区和外溯源区,且数据区与外溯源区具有对应关系;同时在内存中构建与外溯源区相对应的内溯源区。
42.写数据模块302,用于当检测到数据区写入目标数据,将目标数据对应的溯源信息写入至内溯源区。
43.数据存储模块303,用于将内溯源区的数据下刷至外溯源区,以通过外溯源区存储数据区的溯源信息。
44.可选的,在本实施例的一些实施方式中,上述装置还可包括溯源模块,用于当接收到数据一致性测试注入故障指令,基于对应关系,根据数据区的地址计算外溯源区地址;基于外溯源区地址,从外溯源区获取数据区中各数据块对应的数据来源信息。
45.作为本实施例的另外一种可选的实审方式,上述溯源模块还可用于:当检测到生产环境发生故障,基于对应关系,根据数据区的地址计算外溯源区地址;基于外溯源区地址,从外溯源区获取数据区中各数据块对应的数据来源信息。
46.可选的,在本实施例的另一些实施方式中,上述装置还可包括修复模块,用于扫描数据区;确定数据区的每块数据对应在外溯源区的数据来源信息,并将数据区内在物理上
不连续的数据拼装为符合逻辑的连续数据,以执行数据修复操作。
47.可选的,在本实施例的其他一些实施方式中,上述装置例如还可包括回收模块,用于当检测到满足溯源区回收条件,发送溯源区回收指令;基于溯源区回收指令,将外溯源区转换为数据区,以用于存储待写入数据。
48.作为上述实施例的一种可选的实施方式,该回收模块包括回收条件判断单元,用于判断数据区的剩余空间容量值是否小于预设容量阈值;若数据区的剩余空间容量值小于预设容量阈值,则满足溯源区回收条件;若数据区的剩余空间容量值大于等于预设容量阈值,则不满足溯源区回收条件。作为与上述实施例并列的实施方式,该回收条件判断单元还可用于:判断磁盘空间利用率是否大于预设阈值;若磁盘空间利用率大于预设阈值,则满足溯源区回收条件;若磁盘空间利用率小于等于预设容量阈值,则不满足溯源区回收条件。
49.本发明实施例所述数据存储装置的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
50.由上可知,本发明实施例可精准、高效地修复数据,及时确认数据丢失原因。
51.上文中提到的数据存储装置是从功能模块的角度描述,进一步的,本技术还提供一种电子设备,是从硬件角度描述。图4为本技术实施例提供的电子设备在一种实施方式下的结构示意图。如图4所示,该电子设备包括存储器40,用于存储计算机程序;处理器41,用于执行计算机程序时实现如上述任一实施例提到的数据存储方法的步骤。
52.其中,处理器41可以包括一个或多个处理核心,比如4核心处理器、8核心处理器,处理器41还可为控制器、微控制器、微处理器或其他数据处理芯片等。处理器41可以采用dsp(digital signal processing,数字信号处理)、fpga(field-programmable gate array,现场可编程门阵列)、pla(programmable logic array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器41也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称cpu(central processing unit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器41可以集成有gpu(graphics processing unit,图像处理器),gpu用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器41还可以包括ai(artificial intelligence,人工智能)处理器,该ai处理器用于处理有关机器学习的计算操作。
53.存储器40可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器40还可包括高速随机存取存储器以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。存储器40在一些实施例中可以是电子设备的内部存储单元,例如服务器的硬盘。存储器40在另一些实施例中也可以是电子设备的外部存储设备,例如服务器上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,存储器40还可以既包括电子设备的内部存储单元也包括外部存储设备。存储器40不仅可以用于存储安装于电子设备的应用软件及各类数据,例如:执行漏洞处理方法的程序的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。本实施例中,存储器40至少用于存储以下计算机程序401,其中,该计算机程序被处理器41加载并执行之后,能够实现前述任一实施例公开的数据存储方法的相关步骤。另外,存储器40所存储的资源还可以包括操作系统402和数据403等,存储方式可以是短暂存储或者永久存储。其中,操作系统402可以包括windows、unix、linux等。数据
403可以包括但不限于数据存储结果对应的数据等。
54.在一些实施例中,上述电子设备还可包括有显示屏42、输入输出接口43、通信接口44或者称为网络接口、电源45以及通信总线46。其中,显示屏42、输入输出接口43比如键盘(keyboard)属于用户接口,可选的用户接口还可以包括标准的有线接口、无线接口等。可选地,在一些实施例中,显示器可以是led显示器、液晶显示器、触控式液晶显示器以及oled(organic light

emitting diode,有机发光二极管)触摸器等。显示器也可以适当的称为显示屏或显示单元,用于显示在电子设备中处理的信息以及用于显示可视化的用户界面。通信接口44可选的可以包括有线接口和/或无线接口,如wi

fi接口、蓝牙接口等,通常用于在电子设备与其他电子设备之间建立通信连接。通信总线46可以是外设部件互连标准(peripheral component interconnect,简称pci)总线或扩展工业标准结构(extended industry standard architecture,简称eisa)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
55.本领域技术人员可以理解,图4中示出的结构并不构成对该电子设备的限定,可以包括比图示更多或更少的组件,例如还可包括实现各类功能的传感器47。
56.本发明实施例所述电子设备的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
57.由上可知,本发明实施例可精准、高效地修复数据,及时确认数据丢失原因。
58.可以理解的是,如果上述实施例中的数据存储方法以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本技术各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read

only memory,rom)、随机存取存储器(random access memory,ram)、电可擦除可编程rom、寄存器、硬盘、多媒体卡、卡型存储器(例如sd或dx存储器等)、磁性存储器、可移动磁盘、cd

rom、磁碟或者光盘等各种可以存储程序代码的介质。
59.基于此,本发明实施例还提供了一种可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时如上任意一实施例所述数据存储方法的步骤。
60.本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的硬件包括装置及电子设备而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
61.专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
62.以上对本技术所提供的一种数据存储方法、装置、电子设备及可读存储介质进行
了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本技术进行若干改进和修饰,这些改进和修饰也落入本技术权利要求的保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1