一种区块链服务容灾备份容器化部署方法与流程

文档序号:20916863发布日期:2020-05-29 13:38阅读:900来源:国知局
一种区块链服务容灾备份容器化部署方法与流程

本发明涉及区块链技术、容器技术,尤其涉及一种基于kubernetes部署的区块链服务异地容灾备份及服务迁移的方法。



背景技术:

区块链是一种新型去中心化分布式账本技术,能安全地存储数字货币交易或其他数据,特点是存储在区块链上的信息不可伪造和篡改,区块链共识算法驱动区块链上的每个节点都参与到交易的验证过程中,保证区块链上交易都是经过确认可信的,区块链上每个节点都维护一个公共的账本,用于存储区块链网络上所有用户的余额和智能合约数据,任何一个节点对自己所维护的账本的修改都将不被其他节点所承认,从而保证公共账本不可被伪造和篡改。

容器是轻量级的操作系统级虚拟化,可以让我们在一个资源隔离的进程中运行应用及其依赖项。运行应用程序所必需的组件都将打包成一个镜像并可以复用。执行镜像时,它运行在一个隔离环境中,并且不会共享宿主机的内存、cpu以及磁盘,这就保证了容器内进程不能监控容器外的任何进程。

区块链技术是当下很热门的新兴技术,由于区块链的去中心化和不可篡改的特性,往往在传统的部署模式中,当一个环境的区块链服务出现异常需要迁移到另一个环境提供服务时,区块链环境的迁移会导致共识节点的一些配置参数需要改变才能正常运行。



技术实现要素:

本发明的目的是针对现有区块链服务难以迁移备份的痛点,提供一种基于kubernetes部署的区块链服务异地容灾备份及服务迁移的方法,可以帮助区块链服务方便快捷的备份容灾及服务迁移。

本发明的目的是通过以下技术方案来实现:一种区块链服务容灾备份容器化部署方法,包括如下步骤:

1)搭建a(主)、b(备)两套kubernetes集群环境;

2)分别在a、b两环境中部署ingress-controller,两集群中的应用可以通过ingress互相暴露ip端口进行通信;

3)分别在a、b两集群中部署区块链baas服务组件,其中a、b两集群中baas的数据库存储相关服务通过ingresstcp四层代理建立主从复制关系,保证区块链baas服务的数据库数据一致性;

4)部署nas网络存储服务;

5)通过a集群的区块链baas服务调用kubernetesclient部署一条区块链,定义每一个区块链节点对应一个service,对应一个pod,baas数据库记录每一个节点对应的service及相关数据;

6)将每一个区块链节点pod的数据盘通过pvc绑定pv映射到4)中部署的nas存储上,baas服务数据库记录相关卷挂载信息;

7)b集群感知a集群区块链服务状态异常不能向外提供服务时,在b集群中的baas服务可以发起区块链迁移功能,b集群将通过两集群公共的数据库中的区块链节点数据信息,在b集群中重建区块链,并挂载区块链节点数据到公共的nas持久存储服务,使得区块链账本数据不丢失。

进一步的,所述的步骤1)中,a、b两kubernetes集群可以是隔离的两个集群环境,可以是位于不同地点不同机房的两个集群环境。

进一步的,所述的步骤2)中a、b两kubernetes集群可以通过代理互相暴露相关服务进行通信。

进一步的,所述的步骤3)分别在a、b两集群中部署区块链baas服务,其中a、b两集群中baas的数据库存储相关服务通过ingresstcp四层代理建立主从复制关系,保证两集群中的区块链baas平台中的区块链及区块链节点运维数据一致性。

进一步的,步骤4)中两集群都是用同一个nas持久化存储,其中a集群中部署的区块链节点的持久化数据,在b集群中也能够访问到。

进一步的,所述步骤5)中baas服务在kubernetes上部署的区块链每一个节点对应一个service、一个pod资源,资源对应数据都将记录在区块链baas服务的数据库中,区块链节点之间是通过servicename来相互访问通信的。

进一步地,所述步骤6)中区块链节点的数据挂载在nas文件系统中,a、b两集群都可以访问。

本发明的有益效果是:本发明将区块链服务平台及组件分别在两套kubernetes集群环境中容器化部署,两集群中的区块链baas服务的数据库主从复制保持一致性,通过区块链服务平台在一个集群中部署的区块链节点持久化数据外挂在分布式文件系统中,当一个集群的服务异常时,可以迅速在另一个集群中恢复区块链服务。对于传统的云服务器及物理服务器部署,采用此部署方式部署将减少服务对环境硬件及操作系统的依赖性,集群在异地机房部署将具备抗断电、断网等事故导致区块链服务异常,具有异地多活,容灾备份的特性。

附图说明

图1是两kubernetes集群区块链服务架构图。

具体实施方式

下面根据附图和具体实施例详细描述本发明,本发明的目的和效果将变得更加明显。

如图1所示,本发明提出的一种区块链服务容灾备份容器化部署方法方法,包括:

1)搭建a(主)、b(备)两套kubernetes集群环境;

2)分别在a、b两环境中部署ingress-controller,两集群中的应用可以通过ingress互相暴露ip端口进行通信;

3)分别在a、b两集群中部署区块链baas服务组件,其中a、b两集群中baas的数据库存储相关服务通过ingresstcp四层代理建立主从复制关系,保证区块链baas服务的数据库数据一致性;

4)部署nas网络存储服务;

5)通过a集群的区块链baas服务调用kubernetesclient部署一条区块链,定义每一个区块链节点对应一个service、一个pod,baas数据库记录每一个节点对应的service及相关数据;

6)将每一个区块链节点pod的数据盘通过pvc绑定pv映射到4)中部署的nas存储上,baas服务数据库记录相关卷挂载信息;

7)b集群感知a集群区块链服务状态异常不能向外提供服务时,在b集群中的baas服务可以发起区块链迁移功能,b集群将通过两集群公共的数据库中的区块链节点数据信息,在b集群中重建区块链,并挂载区块链节点数据到公共的nas持久存储服务,使得区块链账本数据不丢失;

进一步的,所述的步骤1)中,a、b两kubernetes集群可以是隔离的两个集群环境,可以是位于不同地点不同机房的两个集群环境。

进一步的,所述的步骤2)中a、b两kubernetes集群可以通过代理互相暴露相关服务进行通信。

进一步的,所述的步骤3)分别在a、b两集群中部署区块链baas服务,其中a、b两集群中baas的数据库存储相关服务通过ingresstcp四层代理建立主从复制关系,保证两集群中的区块链baas平台中的区块链及区块链节点运维数据一致性。

进一步的,步骤4)中两集群都是用同一个nas持久化存储,其中a集群中部署的区块链节点的持久化数据,在b集群中也能够访问到。

进一步的,所述步骤5)中baas服务在kubernetes上部署的区块链每一个节点对应一个service、一个pod资源,资源对应数据都将记录在区块链baas服务的数据库中,区块链节点之间是通过servicename来相互访问通信的。

进一步地,所述步骤6)中区块链节点的数据挂载在nas文件系统中,a、b两集群都可以访问。

下面用一个具体的区块链服务跨集群迁移实例来说明具体的实施方式:

模拟一个区块链服务跨kubernetes集群迁移的流程,如图1所示,步骤的输入有两个:一是删除a集群中区块链在kubernetes中的deployment、pods、service资源;二是在b集群中baas服务检测a集群baas服务异常后发起区块链迁移操作。

b集群中baas服务将从数据库中读取迁移的区块链及区块链节点信息,建构deployment、pods、service并读取挂载卷信息绑定到先前的数据卷,启动区块链,恢复区块链对外服务。

以上所述仅是本发明的优选实施方式,虽然本发明已以较佳实施例披露如上,然而并非用以限定本发明。任何熟悉本领域的技术人员,在不脱离本发明技术方案范围情况下,都可利用上述揭示的方法和技术内容对本发明技术方案做出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何的简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。

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