一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据管理系统及方法与流程

2022-02-19 10:28:30 来源:中国专利 TAG:


1.本发明涉及数据处理领域,具体而言,涉及一种数据管理系统及方法。


背景技术:

2.企业存储对于一个企业而言是非常重要的,如果重要的数据被破坏就会对企业的生产造成巨大影响,所以必须要对数据进行备份确保数据的绝对安全。企业存储的数据存储量远大于个人存储,由于存储量很大,在管理上企业存储比个人存储更难于维护。
3.企业存储分为集中式存储和分布式存储,集中式存储将物理介质集中放置,对机房环境要求高,需要专用的服务器和存储设备,设备价格和维护成本比较高;而分布式存储可以采用低端的小容量的存储设备分布存储,物理介质可以分布到不同的地方,并且设备价格和维护成本比较低,分布式存储还可利用多态存储服务器分担存储负荷,便于扩展。
4.随着当今社会电子设备的普及,全球的存储量呈现爆发式增长,将所有业务单元集中部署在一个或者若干个大型机上的集中式存储,已经越来越不能满足当今计算机系统。集中式存储扩展性较差,当数据量或业务量增大时,往往只能向上升级到更高的配置,在集中式架构下,单个服务器造价昂贵,成本大;并且集中式存储长期存在单点问题,一旦一台大型主机出现了故障,整个系统就会处于不可用的状态,恢复数据压力很大;相比于集中式存储,分布式存储的扩展性更好,能很快适应数据量的增长,分布式存储技术能将恢复数据压力分担到多个节点上,恢复数据的速度要快于集中式存储,可以说在未来,分布式存储的地位会越来越重要。
5.数据的可靠性是存储系统的第一要务,为了提供数据可靠性,分布式存储系统将数据拷贝形成多个副本,将这些副本存放到不同的硬盘上,这样即使损坏了一块硬盘,但是其它硬盘上的存有这份数据的副本,数据仍然不会丢失;硬盘损坏后,存储系统一般会及时感知并补全丢失的副本,多副本带来了数据的可靠性,但是也带来了数据一致性的问题,也就是要保证处于不同硬盘上的不同副本之间的数据应该完全一样,这样在使用副本恢复后,数据还是和之前完全一样的;如果副本之间数据同步不及时,就有可能发生前面写入的数据读取不到,或者前面读到的数据后面读不到的情况,数据一致性分为强一致性和弱一致性,强一致性即复制是同步的,弱一致性即复制是异步的;当用户向分布式存储系统写入数据时,当数据成功写入返回后立马读取时能获得同样的数据,这就是强一致性;当数据成功写入并返回后读取时数据存在延迟,与写入的数据存在不一致,那就是弱一致性;实现强一致性算法一般有paxos协议、raft等分布式一致性协议,raft协议相较于paxos协议容易实现,被很多分布式存储系统所采用,通过raft协议可以解决数据一致性的问题。
6.快照是存储系统在某一时刻数据的映像,快照的作用主要是能够进行在线数据备份与恢复。当存储设备发生应用故障或者文件损坏时可以进行快速进行数据恢复,将数据恢复到某个可用的时间点的状态。快照的另一个作用是为存储用户提供了另外一个数据访问通道,当原数据进行在线应用处理时,用户可以访问快照数据,还可以利用快照进行测试等工作。
7.当前实现快照主要有两种技术:写时复制(cow)和写时重定向(row)。其中row是当前分布式存储实现快照的主要方向;row在创建快照时,会分配一个卷作为相对于源卷的快照卷,在创建快照之后,所有后续的写 i/o 都在快照卷上执行,而读输入/输出 i/o 可能来自源卷或快照卷,具体取决于在快照创建之后块是否已更改,快照数据的时间点映像是源卷本身,因为在创建快照之后源卷一直是只读的。做了多个快照后,就产生了一个快照链,磁盘卷始终挂载在快照链的最末端,即写操作全都会落盘到最末端的快照卷中,读取时就需要按照顺序来读取,所以row在传统存储场景下最大的问题是对读性能影响比较大。
8.分布式存储使用原生raft接口导致空间的不必要浪费。原生raft接口会在本地存储上存储raft数据和日志,而本地文件系统本来也有日志,就会出现两份日志,数据重复出现,浪费了磁盘空间,而本地文件系统因为要存放日志,增大了本地文件系统的负担,性能开销变大。
9.大多数分布式存储系统的本地存储没有充分发挥高性能硬件的性能。如今硬件的发展非常迅速,各种先进的存储设备层出不穷,但是在在分布式存储系统的本地存储管理上很少能将这些先进的高性能硬件性能发挥到最优,例如现在流行的ceph分布式存储系统,最初设计是为了机械硬盘hdd设计,没有充分考虑全固态硬盘ssd,甚至更先进的pcle ssd(pcie接口的固态硬盘,pcie即peripheral component interconnect express,一种高速串行计算机扩展总线标准)和nvram(non

volatile random access memory,非易失性随机访问存储器)的情况,导致这些硬件的物理性能在分布式文件系统ceph没有办法充分发挥出来,特别在延迟和iops(input/output operations per second,每秒进行读写操作的次数)受很大的影响,导致了资源上的浪费。
10.通过上述两个例子,可以知道现在的分布式存储系统的本地存储管理系统是存在着许多优化的空间的,第一是使用原生raft接口会导致空间的不必要的浪费,增大了本地文件系统的负担,性能开销变大;第二是本地存储没有将目前的硬件性能发挥到最优,这些细节的好坏会极大的影响用户的体验感;三是传统row快照是
ꢀ“
用指针把数据块block链接成有向无环图数据结构”的方式来表达快照信息的,缺点是新写入数据所需更新的元数据量大,写入的物理数据量是写入数据量的多倍,不适合固态硬盘ssd,难以使用kv(key

value,键值)数据来存储管理。而且如果做了大量快照,读取时会很影响性能。
11.针对上述的问题,目前尚未提出有效的解决方案。


技术实现要素:

12.本发明实施例提供了一种数据管理系统及方法,以至少解决相关技术中在分布式系统会在本地存储数据和日志,与本地文件系统的日志重复,导致浪费本地资源空间的技术问题。
13.根据本发明实施例的一个方面,提供了一种数据管理系统,设置于本地存储设备,用于管理目标系统的一致性协议 数据,其中,所述数据管理系统包括:日志存储模块,数据块查找模块;所述日志存储模块 用于存储一致性协议日志,所述日志存储模块与所述本地存储设备的输入端口数据连接,其中,所述一致性协议日志用于记录所述目标系统进行一致性操作的日志;所述数据块查找模块用于查找存储在所述本地存储设备的数据块,所述数据块查找模块与所述本地存储设备的输入端口数据连接,其中,所述数据块为所述目标
系统进行一致性操作的数据块。
14.可选的,所述数据块查找模块包括:数据块地图单元,数据块索引单元;所述数据块地图单元用于存储多个所述数据块索引单元的根信息,所述数据块地图单元与所述本地存储设备的输入端口数据连接,其中,所述根信息用于查找所述数据块索引单元的位置;所述数据块索引单元用于存储数据块的索引信息,所述数据块索引单元与所述本地存储设备的输入端口数据连接,其中,所述索引信息用于查找对应的数据块的存储位置,所述数据块存储在所述本地存储设备的放置组中。
15.可选的,所述根目录存储放置组元数据,所述根目录与所述本地存储设备的输入端口数据连接,所述根目录还与所述日志存储模块,以及所述数据块查找模块的数据块地图单元和数据块索引单元数据连接,其中,所述放置组元数据用于标识归属于对应放置组的一致性协议数据的数据块;所述根目录还存储有所述本地存储设备的元数据,所述放置组元数据和所述本地存储设备的元数据均包括多个版本的元数据;所述数据块地图单元包括多个版本的数据块地图数据,其中,所述版本为一致性操作的版本。
16.可选的,校验模块,巡检模块,所述校验模块用于对输入输出请求进行校验,所述输入输出请求包括写输入输出请求和读输入输出请求;所述巡检模块用于定期对数据块进行校验,并记录巡检日志。
17.可选的,日志访问接口,所述日志访问接口分别与所述日志存储模块与所述本地存储设备的输入端口数据连接,所述日志访问接口为专用接口,所述专用接口用于直接被所述目标系统调用,从所述日志存储模块获取所述一致性协议日志,对所述一致性协议日志进行读写操作。
18.根据本发明实施例的一个方面,提供了一种数据管理方法,该方法包括:将目标系统进行一致性操作产生的一致性协议日志通过专用接口存储在本地存储设备上的日志存储模块;将所述目标系统进行一致性操作的一致性协议数据,以数据块为单位以放置组的形式存储在本地存储设备,通过数据块查找模块对所述数据块的存储位置进行记录;在接收所述数据块的输入输出请求的情况下,调用所述数据块查找模块对所述数据块进行查找。
19.可选的,所述数据块查找模块包括数据块地图单元,数据块索引单元,在接收所述数据块的输入输出请求的情况下,调用所述数据块查找模块对所述数据块进行查找包括:接收数据块的输入输出请求,其中,所述输入输出请求包括数据块的二元组信息,所述二元组信息包括所述数据块所属的卷的第一标识,以及所述数据块在所述卷的第二标识;计算所述二元组的哈希值,根据所述哈希值调用所述数据块地图单元,确定需要调用的数据块索引单元;调用所述数据块索引单元,根据三元组信息确定数据块对象的位置,其中,所述三元组信息包括所述第一标识,第二标识,以及一致性操作版本的第三标识,所述数据块对象为所述数据块在所述本地存储设备中的存储单元;在所述数据块对象中查找所述数据块。
20.可选的,将所述一致性协议日志存储在所述本地存储设备中读写性能较差的第一存储设备中,其中,所述本地存储设备包括多个读写性能不同的存储设备;将所述一致性协议数据的数据块存储在所述本地存储设备中读写性能较好的第二存储设备中;和/或,将所述一致性协议数据的统一数据块的不同一致性操作版本的多个数据块数据存储在所述第
二存储设备中相近的位置。
21.根据本发明实施例的另一方面,还提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述中任意一项所述的数据管理方法。
22.根据本发明实施例的另一方面,还提供了一种计算机存储介质,所述计算机存储介质包括存储的程序,其中,在所述程序运行时控制所述计算机存储介质所在设备执行上述中任意一项所述的数据管理方法。
23.在本发明实施例中,通过设置于本地存储设备,管理目标系统的一致性协议数据的数据管理系统,包括:日志存储模块存储一致性协议日志,日志存储模块与本地存储设备的输入端口数据连接,其中,一致性协议日志用于记录目标系统进行一致性操作的日志;数据块查找模块查找存储在本地存储设备的数据块,数据块查找模块与本地存储设备的输入端口数据连接,其中,数据块为目标系统进行一致性操作的数据块,通过提供专用的一致性协议日志接口和相应的数据查找方法,达到了减少分布式系统管理磁盘空间浪费的目的,从而实现了提高了本地存储设备的存储空间利用率和硬件性能最大化开发的技术效果,进而解决了相关技术中在分布式系统会在本地存储数据和日志,与本地文件系统的日志重复,导致浪费本地资源空间的技术问题。
附图说明
24.此处所说明的附图用来提供对本发明的进一步理解,构成本技术的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:图1是根据本发明实施例的一种数据管理系统的示意图;图2是根据本发明实施例的一种数据管理方法的流程图;图3是根据本发明实施方式的localstore整体设计布局的示意图;图4是根据本发明实施方式的数据块覆写和校验的示意图;图5是根据本发明实施方式的raft协议接口改进的示意图;图6是根据本发明实施方式的模块划分的示意图;图7是根据本发明实施方式的查看chunk的某个快照数据的示意图;图8是根据本发明实施方式的快照之间逻辑地址相邻的示意图;图9是根据本发明实施方式的快照删除的示意图;图10是根据本发明实施方式的快照读写与回滚的示意图。
具体实施方式
25.为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
26.需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或
描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
27.根据本实施例的一方面,提供了一种数据管理系统,图1是根据本发明实施例的一种数据管理系统的示意图,如图1所示,该数据管理系统设置于本地存储设备,用于管理目标系统的一致性协议数据,其中,数据管理系统包括:日志存储模块11,数据块查找模块12;日志存储模块11用于存储一致性协议日志,日志存储模块与本地存储设备的输入端口数据连接,其中,一致性协议日志用于记录目标系统进行一致性操作的日志;数据块查找模块12用于查找存储在本地存储设备的数据块,数据块查找模块与本地存储设备的输入端口数据连接,其中,数据块为目标系统进行一致性操作的数据块。
28.上述数据管理系统,通过设置于本地存储设备,管理目标系统的一致性协议数据的数据管理系统,包括:日志存储模块存储一致性协议日志,日志存储模块与本地存储设备的输入端口数据连接,其中,一致性协议日志用于记录目标系统进行一致性操作的日志;数据块查找模块查找存储在本地存储设备的数据块,数据块查找模块与本地存储设备的输入端口数据连接,其中,数据块为目标系统进行一致性操作的数据块,通过提供专用的一致性协议日志接口和相应的数据查找方法,达到了减少分布式系统管理磁盘空间浪费的目的,从而实现了提高了本地存储设备的存储空间利用率和硬件性能最大化开发的技术效果,进而解决了相关技术中在分布式系统会在本地存储数据和日志,与本地文件系统的日志重复,导致浪费本地资源空间的技术问题。
29.上述一致性操作可以保证分布式存储系统中,存储于多节点的多个副本数据的一致性,上述多副本数据可以包括用户数据,快照、克隆、压缩等功能产生的控制数据和元数据。上述一致性操作可以将全部的当前的系统状态存储到快照中,处理快照操作,上述一致性操作还可以是镜像操作,复制操作等数据备份操作。
30.快照可以认为是在不同时间段对系统进行操作过程的数据状态进行的存储备份,元数据、数据块地图单元和数据块索引单元通过一致性操作可以有不同的版本。
31.上述日志存储模块用于存储一致性协议日志,上述一致性协议日志为系统进行一致性操作产生一致性协议日志,可以认为一致性协议日志是对一致性操作过程中所有的读写、查找访问等操作的过程的记录,例如,上述一致性操作为快照操作时,其一致性协议日志就可以包括快照日志。上述一致性协议日志可以通过专用接口存储在本地存储设备。但是相关技术中,在一致性协议日志通过一致性协议同步到本地存储设备时,本地存储设备自己也会产生本地存储的日志,其本地存储日志实际上与上述一致性协议日志存在较大的重复内容,造成本地存储设备的存储资源浪费。因此,本实施例中的数据管理系统,只针对一致性协议日志采用专门的日志存储模块进行存储,控制本地存储设备不再产生相应的本地存储日志。达到了减少分布式系统管理磁盘空间浪费的目的,从而实现了提高了分布式系统的存储空间利用率和硬件性能最大化开发的技术效果。
32.上述数据查找模块可以对本地存储设备的数据块进行查找,上述数据块查找模块可以包括数据块地图单元和数据块索引单元,上述数据块查找模块通过与本地存储设备的输入端口连接,可以通过本地存储设备的输入端口接收数据块的查找请求,根据数据块查
找的请求信息在本地存储设备中对数据块进行查找,具体的,可以根据数据块查找请求在数据块地图单元中查找数据块对应的数据块索引单元的信息,在查找到的数据块索引单元中查找数据块对应的索引信息,根据上述索引信息可以在数据块索引单元中确定数据块的存储地址信息,通过存储地址信息来查找数据块。
33.通过一致性操作,日志存储模块和数据查找模块在分布式系统的本地存储设备中应用,避免本地存储和本地文件系统日志重复,达到了最大限度发挥系统硬件性能的目的,实现了提高分布式系统存储空间利用率的技术效果。
34.可选的,数据块查找模块包括:数据块地图单元,数据块索引单元;数据块地图单元用于存储多个数据块索引单元的根信息,数据块地图单元与本地存储设备的输入端口数据连接,其中,根信息用于查找数据块索引单元的位置;数据块索引单元用于存储数据块的索引信息,数据块索引单元与本地存储设备的输入端口数据连接,其中,索引信息用于查找对应的数据块的存储位置,数据块存储在本地存储设备的放置组中。
35.上述数据块查找模块包括数据块地图单元和数据块索引单元,数据块地图单元用于存储数据块索引单元的根信息,上述根信息可以包括数据块索引单元的逻辑地址,以及该数据块索引单元的逻辑地址与数据块查找请求中的请求信息的对应关系,在一种实施例中,数据块地图单元存储的可以是包括数据块查找请求中的卷标识和块标识的二元组,可以根据查找请求的二元组计算哈希值;可以将哈希值作为索引在数据块地图单元中进行查找,查找二元组所在的地址区间,以确定该地址区间对应的数据块索引单元。在数据块索引单元中通过卷标识,块标识和快照标识,在地址区间对应的键值对记录在中查找对应的目标键值对,并通过目标键值对确定对应的目标数据块,其中,快照标识用于标识不同的快照卷,数据块以放置组的形式存储在本地存储设备中,一个放置组pg可以包括多个数据块。
36.通过建立数据块地图单元和数据块索引单元组成的数据块查找模块,达到了根据请求对数据块目标位置进行查找的目的,实现了提高数据查找效率以及数据输入输出速度的技术效果。
37.可选的,根目录,根目录存储放置组元数据,根目录与本地存储设备的输入端口数据连接,根目录还与日志存储模块,以及数据块查找模块的数据块地图单元和数据块索引单元数据连接,其中,放置组元数据用于标识归属于对应放置组的一致性协议数据的数据块;根目录还存储有本地存储设备的元数据,放置组元数据和本地存储设备的元数据均包括多个版本的元数据;数据块地图单元包括多个版本的数据块地图数据,其中,版本为一致性操作的版本。
38.上述根目录可以存储放置组元数据,放置组可以是数据存放过程中对数据块存放位置或存放方式的一种映射关系,放置组元数据用于标识归属于对应放置组的一致性协议数据的数据块,放置组元数据包括多个版本,根目录还存储有本地存储设备的元数据,本地存储设备中的元数据也可以包括多个版本,数据块地图单元也可以包括多个版本的数据块地图数据。元数据的版本与一致性操作的版本的对应,例如,一致性操作为快照操作,多次快照对应不同的快照版本,每次快照都会产生快照元数据,其元数据的版本也即是快照版本。
39.上述本地存储设备的元数据也即是本次存储设备进行数据块存储的元数据,其元数据可以用于指示本地存储设备对一个版本的一致性协议数据的存储过程中产生的数据,
包括在本地存储设备上存储的一致性协议数据的数据块,以及该数据块在本地存储设备上的相关属性信息,包括数据块大小,数据块标识,数据块索引等信息。其本地存储设备的元数据的版本实际上也可以与上述一致性操作的版本相对应。上述放置组元数据和本地存储设备的元数据,不同版本中可以包含对自身版本元数据的校验,可以通过校验的方式判断元数据的正确性。
40.根目录可以与本地存储设备的输入端口连接,还可以与日志存储模块以及数据查找模块的数据块地图单元和数据块索引单元数据连接,可以通过上述连接的通道对数据进行查找或输入输出。
41.具体的,根目录superblob中的本地存储设备的元数据ssd meta和放置组元数据pg meta可以包含多份,每一份头部都有一个版本号,每个元数据有校验,读出的时候,首先计算头部校验和,并从多份中版本中挑选一份校验和正确,并且版本号最新的一份读入内存,数据块地图单元ckbucket map同样也可以包含多份不同版本;当写元数据时,只写一个版本,覆盖掉最旧的版本,读数据的时候,同时读入多份元数据,丢弃其中错误校验和错误的版本,这样就可以保证读入的数据时没有出错的元数据。
42.根目录与日志存储模块和数据查找模块的连接,达到了对数据访问的目的,实现了提高系统数据处理效率的技术效果。通过根目录中存放不同版本的带有校验元数据,达到了元数据准备备份的目的,实现了提高数据可靠性的技术效果。
43.可选的,上述系统还包括:校验模块,巡检模块,校验模块用于对输入输出请求进行校验,输入输出请求包括写输入输出请求和读输入输出请求;所述巡检模块用于定期对数据块进行校验,并记录巡检日志。
44.上述校验模块可以使用端对端校验,可以对输入输出数据进行校验,校验方式可以选择循环冗余校验crc或奇偶校验的方式,具体的,在写对于每个写io(input/output输入/输出)请求,为每个数据块添加一个校验字段,从zstorage(云服务存储)最初收到开始(或者在操作系统的块设备驱动层)添加校验,该校验字段随数据一起写入硬盘;对于每个读io请求,在每个数据块提交给客户端之前对该数据块进行校验,如果校验不对则报错,并且读io返回出错。
45.上述巡检模块,可以采用定期或随机的方式从盘上读出数据块和他们的校验和,并对其进行校验。如果校验不通过,则使用冗余数据块对这块数据进行恢复,同时把该错误记入日志,如果错误数量达到一定门限值,则系统可以发出告警。
46.通过校验模块和巡检模块对数据进行定期校验,保证系统输入输出的读写过程数据的准确性,达到了对数据进行核验的目的,实现了提高数据可靠性的技术效果。
47.可选的,日志访问接口,日志访问接口分别与日志存储模块与本地存储设备的输入端口数据连接,日志访问接口为专用接口,专用接口用于直接被目标系统调用,从日志存储模块获取一致性协议日志,对一致性协议日志进行读写操作。
48.上述日志访问接口分别与日志存储模块与本地存储设备的输入端口数据连接,本地存储设备可以是硬盘或者系统内存等具有存储功能的设备。日志访问接口可以是专用接口。日志访问接口可以被目标系统调用,可以支持存储一致性协议状态、一致性协议日志、以及一致性协议状态机(chunk pool,系统数据资源池)。
49.通过建立专用的日志访问接口,与日志存储模块直接连通,在访问日志存储模块
对一致性协议日志进行读写操作时,可以通过专用的日志访问接口,快速高效的实现,达到了日志存储模块与本地存储设备数据进行直接交互的目的,实现了提高日志访问效率的技术效果。
50.根据本发明实施例,提供了一种数据管理方法的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
51.图2是根据本发明实施例的一种数据管理方法的流程图,如图2所示,该方法包括如下步骤:步骤s202,将目标系统进行一致性操作产生的一致性协议日志通过专用接口存储在本地存储设备上的日志存储模块;步骤s204,将目标系统进行一致性操作的一致性协议数据,以数据块为单位以放置组的形式存储在本地存储设备,通过数据块查找模块对数据块的存储位置进行记录;步骤s206,数在接收数据块的输入输出请求的情况下,调用数据块查找模块对数据块进行查找。
52.通过上述步骤,将目标系统进行一致性操作产生的一致性协议日志通过专用接口存储在本地存储设备上的日志存储模块;将目标系统进行一致性操作的一致性协议数据,以数据块为单位以放置组的形式存储在本地存储设备,通过数据块查找模块对数据块的存储位置进行记录;在接收数据块的输入输出请求的情况下,调用数据块查找模块对数据块进行查找通过提供专用的一致性协议日志接口和相应的数据查找方法,达到了减少分布式系统管理磁盘空间浪费的目的,从而实现了提高了本地存储设备的存储空间利用率和硬件性能最大化开发的技术效果,进而解决了相关技术中在分布式系统会在本地存储数据和日志,与本地文件系统的日志重复,导致浪费本地资源空间的技术问题。
53.将目标系统进行一致性操作产生的一致性协议日志通过专用接口存储在本地设备上的日志存储模块,本地存储设备中的本地文件系统无需再产生本地存储的日志,避免本地存储日志与上述一致性协议日志存在重复,造成本地存储设备的存储资源浪费的情况。
54.分布式系统要访问日志时可以只通过使用专用的接口进行访问,可以将一致性等一致性操作的一致性协议数据以数据块为单位以放置组的形式存储在本地存储设备中,可以通过数据块查找模块对数据上述数据块进行访问。
55.本实施例中的数据管理系统,只针对一致性协议日志采用专门的日志存储模块进行存储,控制本地存储设备不再产生相应的本地存储日志。达到了减少分布式系统管理磁盘空间浪费的目的,从而实现了提高了分布式系统的存储空间利用率和硬件性能最大化开发的技术效果。
56.通过将日志通过专用接口存放在本地存储设备中,达到了减少分布式系统管理日志及存放日志的负担的目的,实现了提高分布式系统存储设备性能的技术效果。
57.可选的,数据块查找模块包括数据块地图单元,数据块索引单元,在接收数据块的输入输出请求的情况下,调用数据块查找模块对数据块进行查找包括:接收数据块的输入输出请求,其中,输入输出请求包括数据块的二元组信息,二元组信息包括数据块所属的卷
的第一标识,以及数据块在卷中的第二标识;计算二元组的哈希值,根据哈希值调用数据块地图单元,确定需要调用的数据块索引单元;调用数据块索引单元,根据三元组信息确定数据块对象的位置,其中,三元组信息包括第一标识,第二标识,以及一致性操作版本的第三标识,数据块对象为数据块在本地存储设备中的存储单元;在数据块对象中查找数据块。
58.上述数据查找模块接收到输入输出目标数据块的请求,请求可以包括数据块所属卷的第一标识,以及数据块在卷中的第二标识的二元组,第一标识可以是卷标识,第二标识可以是块标识,根据二元组在数据块地图单元中进行查找,根据上述二元组计算哈希值;将哈希值作为索引,查找二元组所在的区间,其中,区间存储可以是有序的键值对记录;根据二元组所在区间在数据块索引单元中通过第一标识,第二标识和第三标识,第三标识可以是快照标识,在区间对应的键值对记录在中查找对应的目标键值对,并通过目标键值对确定对应的目标数据块,其中,快照标识用于标识不同的快照卷。
59.接收对快照数据的第二目标数据块的写请求,其中,第二目标数据块为快照数据中任一第一数据块位置的数据块;在当前卷的第一数据块位置不存在数据块的情况下,将第二目标数据块写入快照数据的当前卷的第一数据块位置;在当前卷的第一数据块位置存在数据块的情况下,将目标数据块覆盖第一数据块位置的数据块。
60.接收读取第三目标数据块的读请求,其中,所述第三目标数据块为所述快照数据中任一第二数据块位置的数据块;在当前卷的第二数据块位置存在数据块的情况下,将当前卷的第二数据块位置的数据块进行读取;在当前卷的第二数据块位置不存在数据块的情况下,将当前卷之前的快照卷的第二数据块位置的数据块进行读取;在第二数据块位置的所有快照卷都没有数据块的情况下,响应读请求返回全零数据块。
61.可选的,将一致性协议日志存储在本地存储设备中读写性能较差的第一存储设备中,其中,本地存储设备包括多个读写性能不同的存储设备;将一致性协议数据的数据块存储在本地存储设备中读写性能较好的第二存储设备中;和/或,将一致性协议数据的统一数据块的不同一致性操作版本的多个数据块数据存储在第二存储设备中相近的位置。
62.可以根据存储介质或存储性能的不同对物理存储资源的进行分类管理,上述一致性协议日志对访问速度没过高的需求,可以将一致性协议日志存储在存储性能较差的存储设备中,一致性协议数据的数据块对访问速度有比较高的需求,可以将一致性协议数据块存储中读写性能较好的第二设备中。上述读写性能较差的第一存储设备可以为本地存储设备的多个存储设备中读写速度较低的一个或多个存储设备,或者上述读写性能较差的第一存储设备可以为读写速度不超过预设速度的存储设备。而上述读写性能较好的第二存储设备可以为本地存储设备的多个存储设备中读写速度较高的一个或多个存储设备,或者上述读写性能较好的第一存储设备可以为读写速度超过预设速度的存储设备。
63.通过对不同数据的访问速度的不同需求进行分类存储,达到了混合部署快慢存储设备的目的,实现了充分发挥存储性能的技术效果。
64.需要说明的是,本技术实施例还提供了一种可选的实施方式,下面对该实施方式进行详细说明。
65.本实施方式是专门为上层的一致性协议raft日志、状态机量身定制,完全兼容数据块服务chunk server和一致性协议raft接口,减少了空间的浪费,降低上层负担;通过对数据进行后台巡检和校验,让数据可靠性有了相比于之前的分布式本地存储管理系统有了
很大的提升;并且支持快慢介质混合部署,通用性强,并且最大限度的发挥硬件的性能;相比于row快照,本发明使用了一种不同的方法来存储快照的元数据,减小新写入数据所需更新的元数据量,相对于传统快照减少写入的物理数据量;易于使用键值kv数据来存储快照元数据。
66.本实施方式的技术要点如下:一、本实施方式整体布局;图3是本实施方式localstore(局部存储器)整体设计布局示意图,如图3所示,图3中每一个方框”代表一个blob,说明如下:1. superblob:超级blob(binarylarge objects二进制大对象,也指由簇组成的有序列表,blob可以创建、删除,改变大小,且持久化的;在掉电重启以后也能保持持久化)是一个osd(object storage device,存储磁盘)上所有数据的“根”,通过超级blob可以直接(或间接)得到其他各种数据结构的位置。
67.2. raft log:一致性协议日志,这个是用于存放raft日志,同时也是level1 sst的数据文件。
68.3. ckbucket map:数据块地图单元,存放ckbucket的索引的blob,通过查找这个表,可以直到某个二元组(卷标识volid,块标识 ckid)属于哪个ckbucket(数据块索引单元)。
69.4. ckbucket:数据块索引单元,其中blob用于存放三元组(卷标识volid,块标识ckid,快照标识snapid)与chunk data blob的id之间的对应关系。
70.5. chunk meta:存放chunk的数据,每个chunk一个快照(4mb)对应一个chunk data blob。
71.6. 元数据可靠性保证:(1) superblob中的本地存储设备的元数据ssd meta和放置组元数据pg meta至少存四份,每一份头部都有一个版本号,四份的版本不同;(2)每个元数据有校验(默认是crc32,循环冗余校验),读出的时候,首先计算头部校验和,并从4份中挑选一份校验和正确,并且版本号最新的一份读入内存;(3)ckbucket map同样也是存四份,不同版本。
72.图4是本实施方式数据块覆写和校验的示意图,如图4所示,当写元数据时,只写一个版本,覆盖掉最旧的版本;读数据的时候,同时读入4份元数据,丢弃其中错误校验和错误的版本,这样就可以保证自己读入的数据时没有出错的元数据,从而大大的提高数据的可靠性。
73.二、数据块后台巡检和校验,提高数据可靠性和可用性;1.使用端对端校验,对于每个写io(即输入输出)请求,为每个数据块添加一个校验字段,从zstorage最初收到开始(或者在操作系统的块设备驱动层)添加该校验,该校验字段随数据一起写入硬盘;对于每个读io请求,在每个数据块提交给客户端之前对该数据块进行校验,如果校验不对则报错,并且读io返回出错;这样可以极大的避免用户拿到错误的数据。
74.2后台巡检,定期从盘上读出所有数据块和他们的校验和,并对其进行校验。如果校验不通过,则使用冗余数据块对这块数据进行恢复,同时把该错误记入日志,如果错误数
量达到一定门限值,则告警;通过合理的调整巡检周期,从而可以既不过多的影响存储设备的性能,也能让存储设备中的数据是有效的。
75.三、提供专用的raft接口,减少空间的浪费;图5是根据本发明实施方式的raft协议接口改进的示意图,如图5所示,针对上层应用提供相应的raft协议接口,为raft协议日志、状态机量身定制,对上提供raft协议接口,支持存储raft协议状态(term、votefor)、raft协议日志、以及raft状态机(chunk pool);让日志只存放于本地存储中,而分布式系统想要访问日志时只需要使用相应的raft协议接口,减少了分布式系统管理日志存放日志的负担。
76.四、本地存储一共分为两层,一层是raft协议存储管理,一层是blob管理层,raft协议存储管理层提供专用的raft协议接口为上层提供服务,存放并管理raft协议日志;blob管理层为数据提供读写存放,数据备份。图6是根据本发明实施方式的模块划分的示意图,如图6所示,为本实施方式的模块划分示意。
77.五、支持快慢介质混合部署,具备通用性,充分发挥存储硬件性能;一个集群中所有存储资源(机械硬盘hdd、固态硬盘ssd等)都归属于一个统一的物理存储资源池,对所有存储对象(文件、块设备、对象等)都在这个统一的物理存储资源池中分配存储空间,进行统一管理;对性能不同的存储介质进行分类管理,字节寻址的持久化内存、nvme ssd、sata ssd、sas hdd、sata hdd等;用hdd(或者普通ssd)存储chunk数据,用ssd(或者optane存储)wal或者高层sst;六、快照实现:1.查找chunk的某个快照:图7是根据本发明实施方式的查看chunk的某个快照数据的示意图,如图7所示,通过二元组(卷标识volume_id,块标识 chunk_id)计算出hash值,用hash值作为索引,找到二元组(volume_id,chunk_id)所在的区间,此区间中存储有序的kv记录,用三元组(volume_id,chunk_id,snap_id)通过二分法查找对应的chunk的逻辑地址。
78.图8是根据本发明实施方式的快照之间逻辑地址相邻的示意图,如图8所示,通过同一个数据块的所有快照的数据在逻辑上就近存放到一起,优先按照块地址存放数据。好处是:对于读操作,如果当前原卷的快照id上没有该数据块,可以就近从历史快照中找到该数据块,读操作性能高。缺点是:(1)当存在历史快照的时候,每次写操作都需要把写在当前原卷上数据块插入到两个旧的数据块中间。(2)当存在大量快照数据的时候,对大块数据的顺序读操作变成了磁盘介质上的非顺序读,因为中间存在大量历史快照数据块。以固态硬盘ssd作为承载数据库在线数据的介质,固态硬盘ssd的特点是随机读写性能高,对固态硬盘ssd来说,同一个快照的数据块布局不连续不是大问题。
79.2.快照删除:当删除快照时,如果快照被引用就不能够删除,只能删除没有被引用的快照,图9是根据本发明实施方式的快照删除的示意图,如图9中第2个数据(数据是987),因为这个数据还在被当前原卷snap999995引用;并且要将之前本应该删除的快照但是由于引用没有被删除,在此次删除中如果删除了引用它们的快照,那么就需要将之前本应该删除的快照删除,如图9中snap999997的第4号数据块,以及snap999998的第6号数据块。这些数据块被留
下来的原因是:快照snap999996需要引用它们。由于snap999996也被删除了,就没有其他快照引用它们了,它们占用的空间就可以被回收了。
80.3.快照读写和回滚:图10是根据本发明实施方式的快照读写与回滚的示意图,如图10所示,当收到对当前原卷某个数据块的写请求之后,如果该数据块在当前原卷上不存在,则直接插入该数据块。如果存在,则覆盖当前数据。
81.收到读请求时,查找当前原卷对应的快照id上(图10中999995)是否有对应的数据块。如果有,则返回这个数据块;如果没有,则查找比这个原卷快照id更早的(数字更大的)快照上是否有,如果有则返回;如果还是没有,则返回全零数据块。
82.需要注意的是,读操作应该忽略那些已经被回滚了的数据块。但是不应该忽略被删除了的数据块。
83.本实施方式具有如下关键在于具有独特的整体设计布局;支持快慢介质混合部署,能使用不同存储介质;通过数据块后台巡检和校验,可以随时监视数据块的好坏情况;提供定制化的raft协议接口,减少上层负担;具有独特的快照实现方法。
84.本实施方式针对现在大部分的分布式存储系统的本地存储系统大多不重视本地存储管理效率和可用性上的问题,导致本地存储效率过于缓慢缺乏可靠性,从而影响了整个分布式存储系统的现状,过独特的设计思路,降低空间不必要的开销,支持不同的存储介质,充分发挥硬件的性能,并且相较于以往的分布式存储系统的本地存储管理系统有了巨大的改进,增强了可靠性和可用性,提高了本地存储的效率。
85.根据本发明实施例的另一方面,还提供了一种处理器,处理器用于运行程序,其中,程序运行时执行上述中任意一项的数据管理方法。
86.根据本发明实施例的另一方面,还提供了一种计算机存储介质,计算机存储介质包括存储的程序,其中,在程序运行时控制计算机存储介质所在设备执行上述中任意一项的数据管理方法。
87.上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
88.在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
89.在本技术所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
90.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
91.另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
92.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read

only memory)、随机存取存储器(ram,random access memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
93.以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献