一种基于发明CRD的Galera集故障恢复的方法及系统

著录项
  • CN202210875415.8
  • 20220725
  • CN115604083A
  • 20230113
  • 山东新一代信息产业技术研究院有限公司
  • 王茂帅;高明;李洪生
  • H04L41/0654
  • H04L41/0654 H04L41/0659

  • 山东省济南市高新区港兴三路北段未来创业广场3号楼11-12层
  • 山东(37)
  • 济南信达专利事务所有限公司
  • 姜鹏
摘要
本发明涉及软件故障恢复技术领域,具体为一种基于发明CRD的Galera集故障恢复的方法及系统,包括对kubernets支持的云资源的类型进行扩展,丰富其支持的资源类型;对galera cluster异常的业务封装和配置更新的热部署和动态扩容;对galera cluster资源的各种调度与监控;有益效果为:本发明提出的基于发明CRD的Galera集故障恢复的方法及系统通过CRD扩展实现对底层Galera Cluster异常的处理的封装,使得开发人员不需要过多的关注Calera Cluster的异常细节;通过扩展kube?scheduler的接口实现自定义的健康检查,对galera cluster中的各个组件进行定时检查并和目标状态进行比较,当出现不一致时就进行相应的异常处理工作实现GaleraCluster的高可用,降低运维成本。
权利要求

1.一种基于发明CRD的Galera集故障恢复的方法,其特征在于:所述基于发明CRD的Galera集故障恢复的方法包括以下步骤:

对kubernets支持的云资源的类型进行扩展,丰富其支持的资源类型;

对galera cluster异常的业务封装和配置更新的热部署和动态扩容;

对galera cluster资源的各种调度与监控。

2.根据权利要求1所述的一种基于发明CRD的Galera集故障恢复的方法,其特征在于:对kubernets支持的云资源的类型进行扩展时,使用kubernetes CRD机制扩展kubernetes API使得kubernetes支持galera cluster云资源,扩展kubernetes能够编排的资源类型。

3.根据权利要求2所述的一种基于发明CRD的Galera集故障恢复的方法,其特征在于:使用kubernetes CRD机制扩展kubernetes API使得kubernetes支持galera cluster云资源,管理注册到kubernetes集CRD的生命周期。

4.根据权利要求3所述的一种基于发明CRD的Galera集故障恢复的方法,其特征在于:通过CRD扩展实现对底层Galera Cluster异常的处理的封装。

5.根据权利要求4所述的一种基于发明CRD的Galera集故障恢复的方法,其特征在于:通过扩展kube-scheduler的接口实现自定义的健康检查,对galera cluster中的各个组件进行定时检查并和目标状态进行比较,当出现不一致时就进行相应的异常处理工作实现Galera Cluster的高可用。

6.根据权利要求5所述的一种基于发明CRD的Galera集故障恢复的方法,其特征在于:对galera cluster异常的业务封装和配置更新的热部署和动态扩容时,采用galera控制器装置用于提供galera cluster故障自愈服务,包括galera cluster故障自动启动服务、galera cluster Innodb存储引擎故障自愈服务、galera cluster配置自动更新发布服务、galera cluster节点自动故障自愈服务。

7.根据权利要求6所述的一种基于发明CRD的Galera集故障恢复的方法,其特征在于:对galera cluster资源的各种调度与监控时,通过扩展kube-scheduler组件接口实现自定义的服务调度服务,当组件的服务状态与预期出现不一致时调用相应的控制器实现对集的恢复。

8.一种如上述权利要求1-7任意一项所述的基于发明CRD的Galera集故障恢复的系统,其特征在于:该系统由CRD扩展模块、galera控制管理模块以及galera调度模块构成;

CRD扩展模块,用于对kubernets支持的云资源的类型进行扩展,丰富其支持的资源类型;

galera控制管理模块,用于对galera cluster异常的业务封装和配置更新的热部署和动态扩容;

galera调度模块,用于对galera cluster资源的各种调度与监控。

9.根据权利要求8所述的一种基于发明CRD的Galera集故障恢复的系统,其特征在于:所述CRD扩展模块对kubernets支持的云资源的类型进行扩展时,使用kubernetes CRD机制扩展kubernetes API使得kubernetes支持galera cluster云资源,扩展kubernetes能够编排的资源类型;

使用kubernetes CRD机制扩展kubernetes API使得kubernetes支持galera cluster云资源,管理注册到kubernetes集CRD的生命周期;

通过CRD扩展实现对底层Galera Cluster异常的处理的封装;

通过扩展kube-scheduler的接口实现自定义的健康检查,对galera cluster中的各个组件进行定时检查并和目标状态进行比较,当出现不一致时就进行相应的异常处理工作实现Galera Cluster的高可用。

10.根据权利要求9所述的一种基于发明CRD的Galera集故障恢复的系统,其特征在于:所述galera控制管理模块对galera cluster异常的业务封装和配置更新的热部署和动态扩容时,采用galera控制器装置用于提供galera cluster故障自愈服务,包括galeracluster故障自动启动服务、galera cluster Innodb存储引擎故障自愈服务、galeracluster配置自动更新发布服务、galera cluster节点自动故障自愈服务;

galera控制管理模块对galera cluster资源的各种调度与监控时,通过扩展kube-scheduler组件接口实现自定义的服务调度服务,当组件的服务状态与预期出现不一致时调用相应的控制器实现对集的恢复。

说明书
技术领域

本发明涉及软件故障恢复技术领域,具体为一种基于发明CRD的Galera集故障恢复的方法及系统。

MySQL在互联网时代,可谓是深受世人瞩目的。给社会创造了无限价值,随之而来的是,在MySQL基础之上,产生了形形的使用方法、架构及周边产品。

现有技术中,在架构方面已经有很多成熟的被人熟知的产品,比如MHA、MMM等传统组织架构,而这些架构是每个需要数据库高可用服务方案的入门必备选型;传统架构的使用,一直被人们所诟病,因为MySQL的主从模式,天生的不能完全保证数据一致,很多大公司会花很大人力物力去解决这个问题,而效果却一般,可以说,只能是通过牺牲性能,来获得数据一致性,但也只是在降低数据不一致性的可能性而已。

但是,比传统的主从复制架构,Galera Cluster解决的最核心问题是,在三个实例(节点)之间,它们的关系是对等的,multi-master架构的,在多节点同时写入的时候,能够保证整个集数据的一致性,完整性与正确性。

而Galera Cluster在出现故障时会出现以下几个问题:

无法选取主节点。当集的节点没有正常下线之后,可能会导致seqno值由原来的值变为-1导致无法选择主节点,由于无法选择出主节点会导致集机器不断重启,需要人工介入手动指定启动顺序;

Ip地址和端口被占用。当有部分机器下线后,下线机器恢复之后相应的数据库节点启动的时候会出现ip端口被占用导致无法启动的问题;

节点故障下线后无法加入集。Master节点再下线重新加入集时可能会因为配置问题无法正常加入到集;

现在部署在kubernetes中的Galera Cluster并没有实现真正的高可用,只是通过Helm chart的方式实现了快速部署,当出现故障之后还是需要运维人员介入才能让数据库服务恢复正常。

本发明的目的在于提供一种基于发明CRD的Galera集故障恢复的方法及系统,以解决上述背景技术中提出的问题。

为实现上述目的,本发明提供如下技术方案:一种基于发明CRD的Galera集故障恢复的方法,所述基于发明CRD的Galera集故障恢复的方法包括以下步骤:

对kubernets支持的云资源的类型进行扩展,丰富其支持的资源类型;

对galera cluster异常的业务封装和配置更新的热部署和动态扩容;

对galera cluster资源的各种调度与监控。

优选的,对kubernets支持的云资源的类型进行扩展时,使用kubernetes CRD机制扩展kubernetes API使得kubernetes支持galera cluster云资源,扩展kubernetes能够编排的资源类型。

优选的,使用kubernetes CRD机制扩展kubernetes API使得kubernetes支持galera cluster云资源,管理注册到kubernetes集CRD的生命周期。

优选的,通过CRD扩展实现对底层Galera Cluster异常的处理的封装。

优选的,通过扩展kube-scheduler的接口实现自定义的健康检查,对galeracluster中的各个组件进行定时检查并和目标状态进行比较,当出现不一致时就进行相应的异常处理工作实现Galera Cluster的高可用。

优选的,对galera cluster异常的业务封装和配置更新的热部署和动态扩容时,采用galera控制器装置用于提供galera cluster故障自愈服务,包括galera cluster故障自动启动服务、galera cluster Innodb存储引擎故障自愈服务、galera cluster配置自动更新发布服务、galera cluster节点自动故障自愈服务。

优选的,对galera cluster资源的各种调度与监控时,通过扩展kube-scheduler组件接口实现自定义的服务调度服务,当组件的服务状态与预期出现不一致时调用相应的控制器实现对集的恢复。

一种基于发明CRD的Galera集故障恢复的系统,该系统由CRD扩展模块、galera控制管理模块以及galera调度模块构成;

CRD扩展模块,用于对kubernets支持的云资源的类型进行扩展,丰富其支持的资源类型;

galera控制管理模块,用于对galera cluster异常的业务封装和配置更新的热部署和动态扩容;

galera调度模块,用于对galera cluster资源的各种调度与监控。

优选的,所述CRD扩展模块对kubernets支持的云资源的类型进行扩展时,使用kubernetes CRD机制扩展kubernetes API使得kubernetes支持galera cluster云资源,扩展kubernetes能够编排的资源类型;

使用kubernetes CRD机制扩展kubernetes API使得kubernetes支持galeracluster云资源,管理注册到kubernetes集CRD的生命周期;

通过CRD扩展实现对底层Galera Cluster异常的处理的封装;

通过扩展kube-scheduler的接口实现自定义的健康检查,对galera cluster中的各个组件进行定时检查并和目标状态进行比较,当出现不一致时就进行相应的异常处理工作实现Galera Cluster的高可用。

优选的,所述galera控制管理模块对galera cluster异常的业务封装和配置更新的热部署和动态扩容时,采用galera控制器装置用于提供galera cluster故障自愈服务,包括galera cluster故障自动启动服务、galera cluster Innodb存储引擎故障自愈服务、galera cluster配置自动更新发布服务、galera cluster节点自动故障自愈服务;

galera控制管理模块对galera cluster资源的各种调度与监控时,通过扩展kube-scheduler组件接口实现自定义的服务调度服务,当组件的服务状态与预期出现不一致时调用相应的控制器实现对集的恢复。

与现有技术相比,本发明的有益效果是:

本发明提出的基于发明CRD的Galera集故障恢复的方法及系统通过CRD扩展实现对底层Galera Cluster异常的处理的封装,使得开发人员不需要过多的关注CaleraCluster的异常细节;通过扩展kube-scheduler的接口实现自定义的健康检查,对galeracluster中的各个组件进行定时检查并和目标状态进行比较,当出现不一致时就进行相应的异常处理工作实现Galera Cluster的高可用,降低运维成本。

图1为本发明总体结构框图。

为了使本发明的目的、技术方案进行清楚、完整地描述,及优点更加清楚明白,以下结合附图对本发明实施例进行进一步详细说明。应当理解,此处所描述的具体实施例是本发明一部分实施例,而不是全部的实施例,仅仅用以解释本发明实施例,并不用于限定本发明实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

在本发明的描述中,需要说明的是,术语“中心”、“中”、“上”、“下”、“左”、“右”、“内”、“外”、“顶”、“底”、“侧”、“竖直”、“水平”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“一”、“第一”、“第二”、“第三”、“第四”、“第五”、“第六”仅用于描述目的,而不能理解为指示或暗示相对重要性。

在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。

出于简明和说明的目的,实施例的原理主要通过参考例子来描述。在以下描述中,很多具体细节被提出用以提供对实施例的彻底理解。然而明显的是,对于本领域普通技术人员,这些实施例在实践中可以不限于这些具体细节。在一些实例中,没有详细地描述公知方法和结构,以避免无必要地使这些实施例变得难以理解。另外,所有实施例可以互相结合使用。

请参阅图1,本发明提供一种技术方案:一种基于发明CRD的Galera集故障恢复的方法,所述基于发明CRD的Galera集故障恢复的方法包括以下步骤:

对kubernets支持的云资源的类型进行扩展,丰富其支持的资源类型;

对kubernets支持的云资源的类型进行扩展时,使用kubernetes CRD机制扩展kubernetes API使得kubernetes支持galera cluster云资源,扩展kubernetes能够编排的资源类型;

使用kubernetes CRD机制扩展kubernetes API使得kubernetes支持galeracluster云资源,管理注册到kubernetes集CRD的生命周期;

通过CRD扩展实现对底层Galera Cluster异常的处理的封装;

通过扩展kube-scheduler的接口实现自定义的健康检查,对galera cluster中的各个组件进行定时检查并和目标状态进行比较,当出现不一致时就进行相应的异常处理工作实现Galera Cluster的高可用;

对galera cluster异常的业务封装和配置更新的热部署和动态扩容;

对galera cluster异常的业务封装和配置更新的热部署和动态扩容时,采用galera控制器装置用于提供galera cluster故障自愈服务,包括galera cluster故障自动启动服务、galera cluster Innodb存储引擎故障自愈服务、galera cluster配置自动更新发布服务、galera cluster节点自动故障自愈服务;

对galera cluster资源的各种调度与监控,通过扩展kube-scheduler组件接口实现自定义的服务调度服务,当组件的服务状态与预期出现不一致时调用相应的控制器实现对集的恢复。

一种基于发明CRD的Galera集故障恢复的系统,该系统由CRD扩展模块、galera控制管理模块以及galera调度模块构成;

CRD扩展模块,用于对kubernets支持的云资源的类型进行扩展,丰富其支持的资源类型;CRD扩展模块对kubernets支持的云资源的类型进行扩展时,使用kubernetes CRD机制扩展kubernetes API使得kubernetes支持galera cluster云资源,扩展kubernetes能够编排的资源类型;

使用kubernetes CRD机制扩展kubernetes API使得kubernetes支持galeracluster云资源,管理注册到kubernetes集CRD的生命周期;

通过CRD扩展实现对底层Galera Cluster异常的处理的封装;

通过扩展kube-scheduler的接口实现自定义的健康检查,对galera cluster中的各个组件进行定时检查并和目标状态进行比较,当出现不一致时就进行相应的异常处理工作实现Galera Cluster的高可用;

galera控制管理模块,用于对galera cluster异常的业务封装和配置更新的热部署和动态扩容;galera控制管理模块对galera cluster异常的业务封装和配置更新的热部署和动态扩容时,采用galera控制器装置用于提供galera cluster故障自愈服务,包括galera cluster故障自动启动服务、galera cluster Innodb存储引擎故障自愈服务、galera cluster配置自动更新发布服务、galera cluster节点自动故障自愈服务;

galera控制管理模块对galera cluster资源的各种调度与监控时,通过扩展kube-scheduler组件接口实现自定义的服务调度服务,当组件的服务状态与预期出现不一致时调用相应的控制器实现对集的恢复;

galera调度模块,用于对galera cluster资源的各种调度与监控。

尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。

本文发布于:2024-09-21 20:26:07,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/81642.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议