一种数据存储系统及方法技术方案

技术编号:38622732 阅读:11 留言:0更新日期:2023-08-31 18:25
一种数据存储系统及方法,涉及信息技术领域,用于解决现有技术中在节点数受限的场景下,无法保障数据存储的高可用性的问题。在本申请中,数据存储系统包括:存储集群,存储集群中包括两个存储节点,两个存储节点分别为主存储节点和备存储节点。其中,主存储节点用于从容器管理集群中获取数据,将数据存储于主存储节点的本地数据库中,并向备存储节点发送该数据。相应的,备存储节点用于接收来自主存储节点的数据,将该数据存储于备存储节点的本地数据库中。如此,该数据同时存储于主存储节点的本地数据库和备存储节点的本地数据库中,保障数据存储的高可用性,而且一个存储集群中可以只包括两个存储节点,有助于降低存储节点的数量。量。量。

【技术实现步骤摘要】
一种数据存储系统及方法


[0001]本申请涉及信息
,尤其涉及一种数据存储系统及方法。

技术介绍

[0002]随着以应用容器引擎(docker)为代表的容器技术的发展和流行,业界逐渐开始接受并普及容器技术。单机的容器引擎和镜像解决的问题十分受限,想要在生产环境中直接使用容器还需要依赖容器管理集群。容器管理集群通常致力于解决容器的编排、调度、集群管理等问题。当前业界的容器管理集群主要是Kubernetes集群。
[0003]Kubernetes集群可使用ETCD集群作为数据的存储后端,ETCD集群中的各个存储节点基于分布式一致性(Raft)共识算法,实现ETCD集群中多个存储节点的数据同步,以及从中选择主存储节点。在ETCD集群中,至少需要部署三个存储节点,才可保障高可用性的数据存储。
[0004]而在节点数受限的场景下,可能无法保障ETCD集群中部署三个节点,从而无法运行Raft共识算法,以实现数据存储的高可用性。

技术实现思路

[0005]本申请提供一种数据存储系统及方法,其中,数据存储系统中的存储集群可用于存储容器管理集群中的数据,存储集群可设置有两个存储节点,该两个存储节点分别是主存储节点和备存储节点,通过主备方式实现数据存储的高可用性。
[0006]第一方面,本申请提供一种数据存储系统,包括:存储集群,存储集群中包括两个存储节点,两个存储节点分别为主存储节点和备存储节点。其中,主存储节点用于从容器管理集群中获取数据,将数据存储于主存储节点的本地数据库中,并向备存储节点发送数据。相应的,备存储节点用于接收来自主存储节点的数据,将该数据存储于备存储节点的本地数据库中。
[0007]如此,实现该数据同时存储于主存储节点的本地数据库和备存储节点的本地数据库中,保障数据存储的高可用性,而且一个存储集群中可以只包括两个存储节点,降低存储节点的数量。
[0008]在一种可能的实现方式中,主存储节点中还包括代理接口,主存储节点的代理接口与容器管理集群中的应用程序编程接口(application programming interface,API)服务器(server)通信。主存储节点的代理接口用于接收来自API server的第一请求,其中,第一请求包括待存储至主存储节点的本地数据库的数据。然后主存储节点的代理接口将该第一请求进行协议转换,得到主存储节点的本地数据库支持的第二请求。随后,主存储节点的代理接口还用于将第二请求发送至主存储节点的本地数据库,主存储节点的本地数据库用于存储第二请求中包括的数据。
[0009]如此,主存储节点的代理接口可将来自容器管理集群的API server的请求,转化成符合主存储节点的本地数据库的接口的请求。比如在主存储节点的本地数据库是MySQL
server的第一请求,其中,第一请求包括待存储至主存储节点的本地数据库的数据;主存储节点的代理接口对第一请求进行协议转换,得到主存储节点的本地数据库支持的第二请求;以及将第二请求发送至主存储节点的本地数据库;主存储节点的本地数据库存储第二请求中包括的数据。
[0019]在一种可能的实现方式中,数据存储系统还包括仲裁节点,仲裁节点分别与主存储节点和备存储节点连接;仲裁节点监测主存储节点和备存储节点的工作状态;在主存储节点的工作状态由正常变为故障、且备存储节点的工作状态为正常时,仲裁节点将备存储节点切换为存储集群中的主存储节点。
[0020]在一种可能的实现方式中,存储集群为多个,数据存储系统还包括仲裁节点,仲裁节点分别与每个存储集群中的两个存储节点连接;仲裁节点监测每个存储集群中的两个存储节点的工作状态;在多个存储集群中,任一个存储集群中的主存储节点的工作状态由正常变为故障、且备存储节点的工作状态为正常时,仲裁节点可将该存储集群中的备存储节点切换为存储集群中的主存储节点。
[0021]在一种可能的实现方式中,仲裁节点将备存储节点切换为存储集群中的主存储节点,包括:仲裁节点向备存储节点发送切换指示,切换指示用于指示备存储节点切换为存储集群中的主存储节点;备存储节点根据切换指示切换为存储集群中的主存储节点。
[0022]在一种可能的实现方式中,本地数据库包括:Oracle、MySQL、MongoDB或Redis等中的一项或多项。具体的,主存储节点的本地数据库和备存储节点的本地数据库中,均可包括:Oracle、MySQL、MongoDB或Redis等中的一项或多项。
[0023]在一种可能的实现方式中,容器管理集群为Kubernetes集群。
[0024]第三方面,本申请提供一种数据存储装置,包括处理器,处理器与存储器相连,存储器用于存储计算机程序,处理器用于执行存储器中存储的计算机程序,以使得数据存储装置执行上述第二方面或第二方面的任意可能的实现方式中的方法。
[0025]第四方面,本申请提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序或指令,当计算机程序或指令被数据存储装置执行时,实现上述第二方面或第二方面的任意可能的实现方式中的方法。
[0026]第五方面,本申请提供一种计算机程序产品,该计算机程序产品包括计算机程序或指令,当该计算机程序或指令被数据存储装置执行时,数据存储装置实现上述第二方面或第二方面的任意可能的实现方式中的方法。
[0027]上述第二方面至第五方面中任一方面可以达到的技术效果可以参照上述第一方面中有益效果的描述,此处不再重复赘述。
附图说明
[0028]图1为本申请提供的一种系统架构示意图;
[0029]图2为本申请提供的一种数据存储系统的架构示意图;
[0030]图3为本申请提供的一种主备存储节点中代理接口的示意图;
[0031]图4为本申请提供的再一种数据存储系统的架构示意图;
[0032]图5为本申请提供的又一种数据存储系统的架构示意图;
[0033]图6为本申请提供的一种数据存储方法的流程示意图。
具体实施方式
[0034]下面将结合附图,对本申请实施例进行详细描述。
[0035]如图1为本申请示例性提供的一种系统架构图。示例性的,该系统中包括客户端、容器管理集群、计算集群和存储集群。
[0036]其中,容器管理集群可用于容器集群的自动化部署、扩容以及运维。示例性的,容器管理集群中可以包括应用程序编程接口(application programming interface,API)服务器(server)和控制器(controller)。API server可作为容器管理集群的对外接口,客户端、计算集群和存储集群等均可以通过该API server访问容器管理集群。
[0037]示例性的,API server可用于客户端向容器管理集群下发容器集创建请求。Controller可从API server中获取到容器集创建请求,根据容器集创建请求创建容器集(pod),并将容器集调度到工作节点中运行。其中,容器管本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据存储系统,其特征在于,包括:存储集群,所述存储集群中包括两个存储节点,所述两个存储节点分别为主存储节点和备存储节点;所述主存储节点用于从容器管理集群中获取数据,将所述数据存储于所述主存储节点的本地数据库中,并向所述备存储节点发送所述数据;所述备存储节点用于将所述数据存储于所述备存储节点的本地数据库中。2.如权利要求1所述的系统,其特征在于,所述主存储节点的代理接口与所述容器管理集群中的接口服务器API server通信;所述主存储节点的代理接口,用于将来自所述API server的第一请求进行协议转换,得到所述主存储节点的本地数据库支持的第二请求;以及将所述第二请求发送至所述主存储节点的本地数据库;所述主存储节点的本地数据库,用于存储所述第二请求中包括的所述数据。3.如权利要求1或2所述的系统,其特征在于,所述数据存储系统还包括仲裁节点,所述仲裁节点分别与所述主存储节点和所述备存储节点连接;所述仲裁节点用于:监测所述主存储节点和所述备存储节点的工作状态;在确定所述主存储节点的工作状态由正常变为故障、且所述备存储节点的工作状态为正常时,将所述备存储节点切换为所述存储集群中的主存储节点。4.如权利要求1或2所述的系统,其特征在于,所述存储集群为多个,所述数据存储系统还包括仲裁节点,所述仲裁节点分别与每个存储集群中的两个存储节点连接;所述仲裁节点用于:监测每个存储集群中的两个存储节点的工作状态;在确定多个所述存储集群中,任一个存储集群中的主存储节点的工作状态由正常变为故障、且备存储节点的工作状态为正常时,将所述存储集群中的备存储节点切换为所述存储集群中的主存储节点。5.如权利要求3或4所述的系统,其特征在于,所述仲裁节点将所述备存储节点切换为所述存储集群中的主存储节点时,具体用于向所述备存储节点发送切换指示,所述切换指示用于指示所述备存储节点切换为所述存储集群中的主存储节点;所述备存储节点还用于根据所述切换指示,切换为所述存储集群中的主存储节点。6.如权利要求1至5中任一项所述的系统,其特征在于,所述容器管理集群为Kubernetes集群。7.一种数据存储方法,其特征在于,应用于数据存储系统,所述数据存储系统包括存储集群,所述存储集群中包括两个存储节点,所述两个存储节点分别为主存储节点和备存储节点;所述方法包括:所述主存储节点从容器管理集群中获取数据,将所述数据存储于所述主存储节点的本地数据库中,并向所述备存储节点...

【专利技术属性】
技术研发人员:潘麒安王谦任浪秦鹏飞王显宏
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1