一种数据管理系统、方法及相关设备与流程

文档序号:37383627 发布日期:2024-03-22 10:35 阅读:14 来源:国知局
一种数据管理系统、方法及相关设备与流程

本技术涉及计算机,尤其涉及一种数据管理系统、方法及相关设备。


背景技术:

1、数据服务的可扩展性非常重要,一种常用的提升分布式系统可扩展性的手段是分片。它的基本思想是将数据划分为多个更细粒度的分片,并分配给不同的节点。实际上,为一个分布式系统支持分区需要考虑非常多的因素,如:分配策略(指定分片被分配给哪个计算节点,如容器、服务器),故障发现和恢复,负载均衡和请求路由等。数据服务本质上都可以抽象成一套管理框架。因此提供一种高可靠的数据管理框架,在扩缩容、故障等场景下对业务影响较小的数据管理框架是一个亟待解决的技术问题。


技术实现思路

1、本技术提供一种数据管理系统、方法及相关设备,能够快速实现故障、扩容缩容等情况下数据分布的切换,支持平滑的在线扩容,降低对数据服务的影响。

2、第一方面,本技术提供了一种数据管理系统,该数据管理系统包括调度模块和多个管理服务模块,所述多个管理服务模块部署在多个计算节点,每个计算节包括一个管理服务模块,其中,

3、所述调度模块,用于获取第一视图,所述第一视图包括数据对应的副本在所述多个计算节点中的目标分布;所述数据包括多个分片,所述多个计算节点中的每个计算节点存储有所述多个分片中每个分片的一个副本;

4、所述调度模块,还用于在所述第一视图与第二视图不同的情况下,根据所述第一视图生成调整指令,所述调整指令用于指示所述多个管理服务模块将所述数据对应的副本在所述多个计算节点中的分布调整为所述目标分布;所述第二视图包括生成所述第一视图之前,所述数据对应的副本在所述多个计算节点中的分布;

5、所述多个管理服务模块,用于根据所述调整指令调整对应计算节点中的副本的分布,得到所述目标分布。

6、本技术提供的数据管理系统通过调度模块获取当前计算节点中各个副本分布对应的第二视图以及最新的目标分布对应的第一视图,通过对比两个视图确定两个视图的不同,然后生成对应的调整指令,将当前各个副本的分布调整为目标分布。该数据管理系统能够实现灵活、快捷的数据管理,例如在出现计算节点故障、增加计算节点、关闭计算节点维护的情况下,通过生成新的视图,进而根据新的视图与旧视图进行对比,进而切换到新视图对应的分布,能够快速实现故障以及扩容缩容等情况下的数据分布的切换,支持平滑的在线扩容,降低对数据服务的影响。

7、在一种可能的实现方式中,所述多个计算节点分布在不同的区域,所述多个计算节点属于一个或多个云服务提供商;所述多个计算节点中的每个计算节点包括一个或多个存储实例;其中,所述一个或多个存储实例用于存储所述多个分片的副本,所述存储实例包括物理机、虚拟机或容器中的任意一种或多种。本技术提供的数据管理系统,通过调度模块实现上述数据分布的管理,通过路由模块根据副本分布的最新的视图,能够很好的支持数据跨地域和跨云(数据部署在不同云服务提供的计算节点上)的部署,提高数据服务的容灾能力和系统的稳定性。

8、在一种可能的实现方式中,上述调度模块,还用于周期性的向所述多个管理服务模块发送查询请求,所述查询请求用于查询各个存储实例的健康状态;其中,健康状态包括非健康状态和正常状态,非健康状态指示对应的存储实例不可用;

9、所述多个管理服务模块,还用于向所述调度模块返回各自所在的计算节点中的存储实例的健康状态;

10、所述调度模块,还用于在存在非健康状态的存储实例的情况下,根据正常状态的存储实例生成所述第一视图。

11、在一种可能的实现方式中,所述系统还包括存储模块,所述存储模块保存有所述数据的元数据,所述元数据包括每个分片对应的指示信息,所述指示信息用于指示对应分片的主副本;所述第一视图和第二视图中均包括每个分片的主副本信息;主副本信息用于指示每个分片的主副本;

12、所述调度模块具体用于:

13、在第一分片在第一视图中的主副本与所述第一分片在所述第二视图中的主副本不同的情况下,获取第一副本对应的日志的第一日志序列号和第二副本对应的日志的第二日志序列号;其中,所述第一副本是所述第一视图中所述第一分片的主副本,所述第二副本是所述第二视图中所述第一分片的主副本;所述第一分片是所述多个分片中的一个;

14、在所述第二日志序列号和所述第一日志序列号的差值小于或等于第一阈值的情况下,将所述元数据中所述第一分片的主副本设置为空;

15、生成第一调整指令并发送给第一管理服务模块;所述第一管理服务模块是保存所述第二副本的第一计算节点中部署的管理服务模块,所述第一调整指令用于指示所述第二副本已转换为从副本,以使所述第一计算节点拒绝对所述第二副本的写请求。

16、在一种可能的实现方式中,所述调度模块还用于:

17、在所述第二日志序列号和所述第一日志序列号的差值小于或等于第二阈值的情况下,将所述元数据中所述第一分片的主副本设置为所述第一副本;其中,所述第二阈值小于或等于所述第一阈值。

18、在一种可能的实现方式中,所述系统还包括存储模块,所述存储模块保存有所述数据的元数据,所述元数据包括每个分片对应的副本信息;

19、所述调度模块,具体用于:在根据所述第二视图确定第二分片对应的副本中不存在第三副本的情况下,在所述第二分片对应的元数据中增加所述第三副本的副本信息,所述第三副本是所述第一视图中所述第二分片对应的一个副本;

20、生成第二调整指令并发送给第二管理服务模块,所述第二调整指令指示在第二计算节点的目标存储实例中创建所述第三副本;所述第二计算节点和所述目标存储实例是所述第二视图指示的所述第三副本的存储位置,所述第二管理服务模块是所述第二计算节点所在的实例;

21、所述第二管理服务模块,用于根据所述第二调整指令在所述目标存储实例中创建所述第三副本。

22、在一种可能的实现方式中,所述调度模块,还用于在所述目标存储实例中创建所述第三副本后,将所述第三副本的副本状态设置为准备状态,所述准备状态指示所述第三副本是不可读副本;

23、向所述第二管理服务模块发送连接指令,所述连接指令用于指示建立所述目标存储实例与所述第二分片的主副本所在的存储实例之间的数据复制链路;

24、所述第二管理服务模块,还用于建立所述数据复制链路,以从所述第二分片的主副本中同步数据到所述第三副本;

25、所述调度模块,还用于在所述第二分片的主副本对应的日志的日志序列号与所述第三副本对应的日志的日志序列号之间的差值小于或等于第三阈值的情况下,将所述第三副本的状态设置为服务状态,所述服务状态指示所述第三副本是一个可读副本。

26、在一种可能的实现方式中,所述系统还包括配置模块;

27、所述配置模块,用于获取用户配置的数据分布方案;其中,所述数据分布方案包括分片数量、副本数量以及物理资源信息;所述分片数量指示将数据划分的分片的数量;所述副本数量指示每个分片对应的副本的数量,所述物理资源信息指示部署所述数据的所述多个计算节点的信息;

28、根据数据分布方案生成初始视图,所述初始视图包括所述数据对应的各个副本在所述多个计算节点中的分布;

29、所述调度模块,还用于根据所述初始视图生成管控命令,所述管控命令用于指示所述多个管理服务模块根据所述初始视图部署所述数据对应的各个副本。

30、在一种可能的实现方式中,所述数据分布方案还包括优先级信息,所述优先级信息指示所述多个计算节点的优先级;

31、所述调度模块,还用于将各个分片的主副本设置在优先级最高的计算节点中,其中,每个分片对应一个主副本。

32、在一种可能的实现方式中,所述存储模块还保存有所述第一视图;

33、所述系统还包括路由模块;所述路由模块用于:

34、从所述存储模块订阅所述第一视图;

35、接收业务终端发送的数据请求,所述数据请求指示对目标数据进行读/写操作;

36、根据所述第一视图将所述数据请求路由到目标节点;其中,在所述数据请求为读请求的情况下,所述目标节点是距离所述业务终端距离最近的计算节点。

37、第二方面,本技术提供一种数据管理方法,该方法应用于包括调度模块和多个管理服务模块的数据管理系统,所述多个管理服务模块部署在多个计算节点,每个计算节包括一个管理服务模块,包括:

38、所述调度模块获取第一视图,所述第一视图包括数据对应的副本在所述多个计算节点中的目标分布;所述数据包括多个分片,所述多个计算节点中的每个计算节点存储有所述多个分片中每个分片的一个副本;

39、所述调度模块在所述第一视图与第二视图不同的情况下,根据所述第一视图生成调整指令,所述调整指令用于指示所述多个管理服务模块将所述数据对应的副本在所述多个计算节点中的分布调整为所述目标分布;所述第二视图包括生成所述第一视图之前,所述数据对应的副本在所述多个计算节点中的分布;

40、所述多个管理服务模块根据所述调整指令调整对应计算节点中的副本的分布,得到所述目标分布。

41、在一种可能的实现方式中,所述多个计算节点分布在不同的区域,所述多个计算节点属于一个或多个云服务提供商;所述多个计算节点中的每个计算节点包括一个或多个存储实例;其中,所述一个或多个存储实例用于存储所述多个分片的副本,所述存储实例包括物理机、虚拟机或容器中的任意一种或多种。

42、在一种可能的实现方式中,所述方法还包括:

43、所述调度模块周期性的向所述多个管理服务模块发送查询请求,所述查询请求用于查询各个存储实例的健康状态;其中,健康状态包括非健康状态和正常状态,非健康状态指示对应的存储实例不可用;

44、所述多个管理服务模块向所述调度模块返回各自所在的计算节点中的存储实例的健康状态;

45、所述调度模块在存在非健康状态的存储实例的情况下,根据正常状态的存储实例生成所述第一视图。

46、在一种可能的实现方式中,所述系统还包括存储模块,所述存储模块保存有所述数据的元数据,所述元数据包括每个分片对应的指示信息,所述指示信息用于指示对应分片的主副本;所述第一视图和第二视图中均包括每个分片的主副本信息;主副本信息用于指示每个分片的主副本;

47、所述调度模块在所述第一视图与第二视图不同的情况下,根据所述第一视图生成调整指令,包括:

48、所述调度模块在第一分片在第一视图中的主副本与所述第一分片在所述第二视图中的主副本不同的情况下,获取第一副本对应的日志的第一日志序列号和第二副本对应的日志的第二日志序列号;其中,所述第一副本是所述第一视图中所述第一分片的主副本,所述第二副本是所述第二视图中所述第一分片的主副本;所述第一分片是所述多个分片中的一个;

49、所述调度模块在所述第二日志序列号和所述第一日志序列号的差值小于或等于第一阈值的情况下,将所述元数据中所述第一分片的主副本设置为空;

50、所述调度模块生成第一调整指令并发送给第一管理服务模块;所述第一管理服务模块是保存所述第二副本的第一计算节点中部署的管理服务模块,所述第一调整指令用于指示所述第二副本已转换为从副本,以使所述第一计算节点拒绝对所述第二副本的写请求。

51、在一种可能的实现方式中,所述方法还包括:

52、所述调度模块在所述第二日志序列号和所述第一日志序列号的差值小于或等于第二阈值的情况下,将所述元数据中所述第一分片的主副本设置为所述第一副本;其中,所述第二阈值小于或等于所述第一阈值。

53、在一种可能的实现方式中,所述系统还包括存储模块,所述存储模块保存有所述数据的元数据,所述元数据包括每个分片对应的副本信息;

54、所述调度模块在所述第一视图与第二视图不同的情况下,根据所述第一视图生成调整指令,包括:

55、所述调度模块在根据所述第二视图确定第二分片对应的副本中不存在第三副本的情况下,在所述第二分片对应的元数据中增加所述第三副本的副本信息,所述第三副本是所述第一视图中所述第二分片对应的一个副本;

56、所述调度模块生成第二调整指令并发送给第二管理服务模块,所述第二调整指令指示在第二计算节点的目标存储实例中创建所述第三副本;所述第二计算节点和所述目标存储实例是所述第二视图指示的所述第三副本的存储位置,所述第二管理服务模块是所述第二计算节点所在的实例;

57、所述多个管理服务模块根据所述调整指令调整对应计算节点中的副本的分布,包括:

58、所述第二管理服务模块根据所述第二调整指令在所述目标存储实例中创建所述第三副本。

59、在一种可能的实现方式中,所述方法还包括:

60、所述调度模块在所述目标存储实例中创建所述第三副本后,将所述第三副本的副本状态设置为准备状态,所述准备状态指示所述第三副本是不可读副本;

61、所述调度模块向所述第二管理服务模块发送连接指令,所述连接指令用于指示建立所述目标存储实例与所述第二分片的主副本所在的存储实例之间的数据复制链路;

62、所述第二管理服务模块建立所述数据复制链路,以从所述第二分片的主副本中同步数据到所述第三副本;

63、所述调度模块在所述第二分片的主副本对应的日志的日志序列号与所述第三副本对应的日志的日志序列号之间的差值小于或等于第三阈值的情况下,将所述第三副本的状态设置为服务状态,所述服务状态指示所述第三副本是一个可读副本。

64、在一种可能的实现方式中,所述系统还包括配置模块;所述方法还包括:

65、所述配置模块获取用户配置的数据分布方案;其中,所述数据分布方案包括分片数量、副本数量以及物理资源信息;所述分片数量指示将数据划分的分片的数量;所述副本数量指示每个分片对应的副本的数量,所述物理资源信息指示部署所述数据的所述多个计算节点的信息;

66、所述配置模块根据数据分布方案生成初始视图,所述初始视图包括所述数据对应的各个副本在所述多个计算节点中的分布;

67、所述调度模块根据所述初始视图生成管控命令,所述管控命令用于指示所述多个计算节点根据所述初始视图部署所述数据对应的各个副本。

68、在一种可能的实现方式中,所述数据分布方案还包括优先级信息,所述优先级信息指示所述多个计算节点的优先级;所述方法还包括:

69、所述调度模块将各个分片的主副本设置在优先级最高的计算节点中,其中,每个分片对应一个主副本。

70、在一种可能的实现方式中,所述存储模块还保存有所述第一视图;所述系统还包括路由模块;所述方法还包括:

71、所述路由模块从所述存储模块订阅所述第一视图;

72、所述路由模块接收业务终端发送的数据请求,所述数据请求指示对目标数据进行读/写操作;

73、所述路由模块根据所述第一视图将所述数据请求路由到目标节点;其中,在所述数据请求为读请求的情况下,所述目标节点是距离所述业务终端距离最近的计算节点。

74、第三方面,本技术提供一种计算设备,该计算设备包括处理器和存储器,所述存储器存储有指令,所述处理器用于执行所述指令,当所述处理器执行所述指令时,实现如上述第一方面中调度模块和存储模块所执行的操作;或者实现如上述第一方面中配置模块所执行的操作;或者实现如上述第一方面中路由模块所执行的操作;或者实现如上述第一方面中管理服务模块所执行的操作。

75、第四方面,本技术提供一种计算机可读存储介质,其特征在于,包括计算机程序指令,当所述计算机程序指令由计算设备执行时,实现如上述第一方面中调度模块和存储模块所执行的操作;或者实现如上述第一方面中配置模块所执行的操作;或者实现如上述第一方面中路由模块所执行的操作;或者实现如上述第一方面中管理服务模块所执行的操作。

当前第1页 1 2
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1