适用于FT2000+平台部署Ceph的主节点转让专利

申请号 : CN202110100743.6

文献号 : CN112468349B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 龚立义胡玉晟

申请人 : 柏科数据技术(深圳)股份有限公司

摘要 :

本发明公开了一种适用于FT2000+平台部署Ceph的主节点,包括:管理模板配置模块,用于根据设定规则配置管理模板,所述管理模板包括ansible配置脚本;分发模块,用于将所述管理模板分发至Slave节点,以使得所述Slave节点根据所述管理模板执行配置脚本,完成Ceph部署;所述管理模板配置模块,包括:网络配置单元,用于提供配置Slave节点的网络配置脚本;磁盘配置管理单元,用于提供配置Slave节点的磁盘配置脚本,根据定义好的磁盘规则来创建磁盘到容器映射关系,达到容器存储持久化的目的能够实现分布式存储系统Ceph的快速自动化的部署。

权利要求 :

1.一种适用于FT2000+平台部署Ceph的主节点,其特征在于,包括:Slave节点状态管理模块,用于通过根据定义的ansible任务对所有Slave节点进行状态的查询;

管理模板配置模块,用于根据设定规则配置管理模板,所述管理模板包括ansible配置脚本;

分发模块,用于将所述管理模板分发至在线Slave节点,以使得所述Slave在线节点根据所述管理模板执行配置脚本,完成Ceph部署;

所述管理模板配置模块,包括:

网络配置单元,用于提供配置Slave节点的网络配置脚本,实现配置每个Slave节点的网络模式为桥接模式或Host模式,以使得Slave节点提供Ceph访问接口;

磁盘配置管理单元,用于提供配置Slave节点的磁盘配置脚本,以使得利用ansible任务对Slave节点上的物理磁盘进行配置管理,根据定义好的磁盘规则来创建磁盘到容器映射关系,达到容器存储持久化的目的。

2.根据权利要求1所述的适用于FT2000+平台部署Ceph的主节点,其特征在于,所述适用于FT2000+平台部署Ceph的主节点还包括:Docker容器安装模板配置模块,用于根据预设的配置生成Docker容器安装模板,以使得所述Slave节点根据接收到的Docker容器安装模板,完成相应的Docker容器安装。

3.根据权利要求2所述的适用于FT2000+平台部署Ceph的主节点,其特征在于,所述Docker容器安装模板配置模块包括:Docker容器安装配置模板生成单元,用于根据预先设定容器运行的内存大小,CPU的使用量,磁盘的绑定关系生成Docker容器安装配置模板。

4.根据权利要求3所述的适用于FT2000+平台部署Ceph的主节点,其特征在于,所述Docker容器安装配置模板生成单元包括:根据服务内容分别创建MON、OSD和MDSDocker容器安装模板。

5.根据权利要求3所述的适用于FT2000+平台部署Ceph的主节点,其特征在于,所述适用于FT2000+平台部署Ceph的主节点还包括:Docker容器管理模块,用于根据Docker容器安装模板配置模块实现对Slave节点的Docker容器创建、删除、状态管理。

6.根据权利要求5所述的适用于FT2000+平台部署Ceph的主节点,其特征在于,所述Docker容器管理模块,包括:容器状态监控单元,用于对Slave节点的Docker容器状态进行监控。

7.根据权利要求1所述的适用于FT2000+平台部署Ceph的主节点,其特征在于,所述适用于FT2000+平台部署Ceph的主节点还包括:模板配置修改模块,用于在集群网络配置,或者容器存储持久化配置存在变更需求时,生成修改配置模板并下发部署指令到所有Slave节点,以使得所有Slave节点快速完成修改。

8.根据权利要求1所述的适用于FT2000+平台部署Ceph的主节点,其特征在于,所述适用于FT2000+平台部署Ceph的主节点还包括:模板配置升级模块,用于在集群环境有版本更新的需求时,根据指定更新的版本生成升级配置模板,并将升级配置模板下发所有Slave节点,以使得所有Slave节点的容器环境进行升级。

说明书 :

适用于FT2000+平台部署Ceph的主节点

技术领域

[0001] 本发明涉及分布式数据库技术领域,尤其涉及一种适用于FT2000+平台部署Ceph的主节点。

背景技术

[0002] 分布式存储系统,是指通过某种通信方式将运行在多个物理主机或节点从逻辑上整合到一起,并通过业务网关对外提供可动态扩展的存储资源的技术或系统。
[0003] Ceph是一种为优秀的性能、可靠性和可扩展性而设计的统一的、分布式文件系统。 Ceph摒弃了传统的集中式存储元数据寻址的方案,采用CRUSH算法,数据分布均衡,并行度
高。并考虑了容灾域的隔离,能够实现各类负载的副本放置规则,例如跨机房、机架感知等。
能够支持上千个存储节点的规模,支持TB到PB级的数据。
[0004] 目前,分布式存储在国产化平台上的实践也越来越丰富。国产化平台FT2000+是飞腾国产化芯片技术的升级产品,在处理能力上有了明显的提升。
[0005] 飞腾芯片已经开始进入国产云计算基础设施。飞腾芯片已得到了包括麒麟云、阿里云和腾讯云在内多家云服务厂商的搭载:麒麟云支持飞腾的FT‑1500A和FT‑2000等新型
ARM家族服务器芯片,并通过KVM、LXC等主流虚拟化方式提供基于国产操作系统麒麟OS的软
件云服务环境。
[0006] 目前,针对国产芯片对应的国产化平台FT2000+尚无合适的Ceph部署方案。只能通过人工部署的方式进行。但人工部署的方法在时间成本就很高,影响了FT2000+在Ceph部署
应用;其次,人工部署时难免会导致一些不可控的误操作。

发明内容

[0007] 本发明实施例提供了一种适用于FT2000+平台部署Ceph的主节点,以解决现有技术中针对Ceph分布式存储系统部署技术难度和成本较高的技术问题。
[0008] 本发明实施例提供了一种适用于FT2000+平台部署Ceph的主节点,包括:
[0009] 管理模板配置模块,用于根据设定规则配置管理模板,所述管理模板包括ansible配置脚本;
[0010] 分发模块,用于将所述管理模板分发至Slave节点,以使得所述Slave节点根据所述管理模板执行配置脚本,完成Ceph部署;
[0011] 所述管理模板配置模块,包括:
[0012] 网络配置单元,用于提供配置Slave节点的网络配置脚本,以使得Slave节点提供Ceph访问接口;
[0013] 磁盘配置管理单元,用于提供配置Slave节点的磁盘配置脚本,以使得利用ansible任务对Slave节点上的物理磁盘进行配置管理,根据定义好的磁盘规则来创建磁盘
到容器映射关系,达到容器存储持久化的目的。
[0014] 进一步的,所述适用于FT2000+平台部署Ceph的主节点还包括:
[0015] Docker容器安装模板配置模块,用于根据预设的配置生成Docker容器安装模板,以使得所述Slave节点根据接收到的Docker容器安装模板,完成相应的Docker容器安装。
[0016] 进一步的,所述Docker容器安装模板配置模块包括:
[0017] Docker容器安装配置模板生成单元,用于根据预先设定容器运行的内存大小,CPU的使用量,磁盘的绑定关系生成Docker容器安装配置模板。
[0018] 进一步的,所述Docker容器安装配置模板生成单元包括:
[0019] 根据服务内容分别创建MON、OSD和MDS Docker容器安装模板。
[0020] 进一步的,所述适用于FT2000+平台部署Ceph的主节点还包括:
[0021] Docker容器管理模块,用于根据Docker容器安装模板配置模块实现对Slave节点的Docker容器创建、删除、状态管理。
[0022] 进一步的,所述Docker容器管理模块,包括:
[0023] 容器状态监控单元,用于对Slave节点的Docker容器状态进行监控。
[0024] 进一步的,所述适用于FT2000+平台部署Ceph的主节点还包括:
[0025] Slave节点状态管理模块,用于通过根据定义的ansible任务对所有Slave节点进行状态的查询。
[0026] 进一步的,所述适用于FT2000+平台部署Ceph的主节点还包括:
[0027] 模板配置修改模块,用于在集群网络配置,或者容器存储持久化配置存在变更需求时,生成修改配置模板并下发部署指令到所有Slave节点,以使得所有Slave节点快速完
成修改。
[0028] 更进一步的,所述适用于FT2000+平台部署Ceph的主节点还包括:
[0029] 模板配置升级模块,用于在集群环境有版本更新的需求时,根据指定更新的版本生成升级配置模板,并将升级配置模板下发所有Slave节点,以使得所有Slave节点的容器
环境进行升级。
[0030] 本发明实施例提供的适用于FT2000+平台部署Ceph的主节点,通过管理模板配置模块据预设的规则配置管理模板,并将将所述管理模板分发至Slave节点,以使得所述
Slave节点根据所述管理模板执行配置脚本,完成Ceph部署。实现对外Ceph正常访问。与现
有技术相比,实现了开源生态在国产化平台,特别是在FT2000+平台实现Ceph部署应。并且
能够实现分布式存储系统Ceph的快速自动化的部署,减少了人工部署的各种缺点。

附图说明

[0031] 通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
[0032] 图1是本发明实施例提供的适用于FT2000+平台部署Ceph的主节点的结构示意图;
[0033] 图2是本发明实施例提供的适用于FT2000+平台部署Ceph的主节点进行Ceph部署的流程示意图。

具体实施方式

[0034] 下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便
于描述,附图中仅示出了与本发明相关的部分而非全部结构。
[0035] 图1是本发明实施例提供的适用于FT2000+平台部署Ceph的主节点的结构示意图;图2是本发明实施例提供的适用于FT2000+平台部署Ceph的主节点进行Ceph部署的流程示
意图。
[0036] 参考图1及图2,所述的用于FT2000+平台部署Ceph的主节点,包括:
[0037] 管理模板配置模块,用于根据设定规则配置管理模板,所述管理模板包括ansible配置脚本;分发模块,用于将所述管理模板分发至Slave节点,以使得所述Slave节点根据所
述管理模板执行配置脚本,完成Ceph部署;所述管理模板配置模块,包括:网络配置单元,用
于提供配置Slave节点的网络配置脚本,以使得Slave节点提供Ceph访问接口;磁盘配置管
理单元,用于提供配置Slave节点的磁盘配置脚本,以使得利用ansible任务对Slave节点上
的物理磁盘进行配置管理,根据定义好的磁盘规则来创建磁盘到容器映射关系,达到容器
存储持久化的目的。
[0038] 在本实施例中,可以预先通过网络设定相应的节点。该网络可以为主\从方式的网络,主节点负责对从节点进行管理和控制。在本实施例中,可以预先选取一个网络中的一个
节点作为master节点。可选的,可以根据其计算性能和\或网络性能选取其中一个节点作为
master节点,将其他节点作为Slave节点。
[0039] 在本实施例中,Master节点,即配置管理节点;Slave节点,即管理对象节点,具体为运行Docker容器环境的物理节点。
[0040] 具体的,所述Master节点可以根据预设的规则配置管理模块。所述规则可以是人工输入的相应规则。在本实施例中,所述规则可以是指不同Slave节点所对应的组件。
[0041] 具体的,Ceph包括如下组件:Ceph OSDs: Ceph OSD守护进程(Ceph OSD)的功能是存储数据,处理数据的复制、恢复、回填、再均衡,并通过检查其他OSD守护进程的心跳来向
Ceph Monitors提供一些监控信息。当Ceph存储集群设定为有2个副本时,至少需要2个OSD
守护进程,集群才能达到active+clean状态;
[0042] Monitors: Ceph Monitor维护着展示集群状态的各种图表,包括监视器图、OSD图、归置组(PG)图、和CRUSH图。Ceph保存着发生在Monitors、OSD和PG上的每一次状态变更
的历史信息。MDSs: Ceph元数据服务器(MDS)为Ceph文件系统存储元数据(也就是说,Ceph
块设备和Ceph对象存储不使用MDS)。元数据服务器使得POSIX文件系统的用户们,可以在不
对Ceph存储集群造成负担的前提下,执行诸如ls、find等基本命令。
[0043] 在本实施例中,所述容器A、B、C运行Ceph分布式集群的MON服务,容器D、E、F、G、H、I、J、K、L运行Ceph分布式集群的OSD服务。容器M、N运行Ceph分布式集群的MDS服务。
[0044] 管理模板操作主要包括以下内容:容器的网络配置、容器存储集持久化配置、Ceph集群节点预配置、容器创建MON服务、容器创建OSD服务、容器创建MDS服务。以上每个步骤操
作都有对应配置脚本,脚本都是标准shell脚本。该脚本可以通过ansible生成及传输。容器
中能够直接运行脚本进行配置,Master节点只需要去配置Slave节点脚本的执行流程,就能
实现整个部署流程。
[0045] ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、chef、func、fabric)的优点,便于实现批量系统配置、批量程序部署、批量运行命
令等功能。ansible不需要在远程主机上安装client/agents,因为它们是基于ssh来和远程
主机通讯的。因此,特别适用于批量快速部署CEPH的要求。利用ansible可以实现快速部署
Ceph。而不需要人工干预,特别适用于大量节点的Ceph部署。ansible基于ssh协议进行节点
间的配置管理,属于无代理类型的配置管理,对管理对象无需代理配置,直接使用系统的
ssh服务即可进行管理。在部署和维护的时候,ansible可以进行批量操作Slave节点,通过
定义好的操作脚本相对简单且易于管理。
[0046] 在本实施例中,可以通过设置指令对Slave节点上的物理网卡进行配置管理。示例性的,可以通过ansible任务根据定义好的网络规则来创建容器网络配置。配置每个Slave
节点的网络模式,如:桥接模式还是Host模式。配置网络模式后,容器中部署的Ceph分布式
存储集群才能对外提供访问接口。可选的,可以根据所述Slave节点对应的角色预先设定,
并进行相应的配置。
[0047] 并且可以通过ansible任务对Slave节点上的物理磁盘进行配置管理,根据定义好的磁盘规则来创建磁盘到容器映射关系。通过上述配置可以实现创建MON、创建OSD、创建
MDS,配置业务网关,对外提供文件、块、对象存储服务。进而实现Ceph的部署。
[0048] 本发明实施例提供的适用于FT2000+平台部署Ceph的主节点,通过管理模板配置模块据预设的规则配置管理模板,并将将所述管理模板分发至Slave节点,以使得所述
Slave节点根据所述管理模板执行配置脚本,完成Ceph部署。实现对外Ceph正常访问。与现
有技术相比,能够实现分布式存储系统Ceph的快速自动化的部署,减少了人工部署的各种
缺点。
[0049] 相应的,所述适用于FT2000+平台部署Ceph的主节点还包括:Slave节点状态管理模块,用于通过根据定义的ansible任务对所有Slave节点进行状态的查询。Master节点对
所有Slave节点的状态管理,包括Slave节点的上线、离线、故障等的管理。具体的,Master节
点将根据定义的ansible任务对所有Slave节点进行状态的查询。进一步的,Master节点将
通过定义的Slave轮循规则对所有Slave节点的进行在线判断,对于一段时间内无响应的节
点即判定为离线,反之为在线状态。Master在发现所有Slave节点上线后即可对其进行进一
步的管理,配置或资源的分发。
[0050] 在本实施例中,所述Docker容器安装模板配置模块还可包括:
[0051] Docker容器安装配置模板生成单元,用于根据预先设定容器运行的内存大小,CPU的使用量,磁盘的绑定关系生成Docker容器安装配置模板。
[0052] 在本实施例中,对Slave节点进行Ceph配置需要通过容器实现,因此,需要预先对各个Slave节点进行Docker容器安装配置。Docker容器是一个开源的应用容器引擎,让开发
者可以以统一的方式打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何
安装了docker引擎的服务器上。FT2000+平台对于docker容器具有较好的支持度,因此,在
本实施例中采用docker容器。
[0053] 其目的是定义好CEPH服务所需要的容器配配置,可以使用统一的标准进行配置,但标准的指标可以适当的修改,这里的容器资源配置是指设定容器运行的内存大小,设定
CPU的使用量,设定磁盘的绑定关系。Master节点根据定义好的CEPH服务配置进行容器资源
的预配置,并生成模板。并通过ansible部署分发至各个Slave节点,以使得所述Slave节点
执行ansible任务,实现Docker容器安装。可选的,可以根据服务内容分别创建MON、OSD和
MDSDocker容器安装模板。此外,还可通过容器状态监控单元,用于对Slave节点的Docker容
器状态进行监控。在容器状态,特别是内存占用率和cpu使用率等性能指标进行监控。避免
影响对外服务性能。
[0054] 在本实施例中,所述适用于FT2000+平台部署Ceph的主节点还可包括:Docker容器管理模块,用于根据Docker容器安装模板配置模块实现对Slave节点的Docker容器创建、删
除、状态管理。
[0055] 在本实施例的另一优选实施方式中,所述适用于FT2000+平台部署Ceph的主节点还包括:模板配置修改模块,用于在集群网络配置,或者容器存储持久化配置存在变更需求
时,生成修改配置模板并下发部署指令到所有Slave节点,以使得所有Slave节点快速完成
修改。
[0056] 在Ceph分布式存储系统部署完成后,可以提供相应的对外服务。然而Ceph分布式存储系统会受到其他外界环境的影响,可能某些节点无法提供相应的对外服务,因此,需要
对集群网络或者持久化配置进行相应的变更。在本实施例中,MASTER节点可以根据变更需
求,生成相应的配置,并将所述配置生成对应的ansible任务,将所述ansiblee任务下发至
所有的Slave节点,以使得Slave节点解析所述ansible任务,完成变更配置。并且可以在在
集群环境有版本更新的需求时,根据指定更新的版本,生成ansible升级操作任务,并下发
至所有Slave节点。利用上述方式可以快速完成CEPH分布式存储系统的升级。
[0057] 下面结合基于ansible部署Ceph的具体实现步骤对本发明实施例提供的ansible部署Ceph的主节点的工作原理做进一步阐述,参见图2,
[0058] 首先利用Slave节点状态管理模块,用于通过代理实现Slave节点的上线、离线、和故障状态的管理。确定在线的Slave节点。并利用管理模板配置模块生成配置管理模板,该
管理模块可以采用ansible配置脚本实现,并通过分发模块,用于将所述管理模板分发至
Slave节点,以使得所述Slave节点根据所述管理模板执行配置脚本,完成Ceph部署。
[0059] 具体的,可以通过网络配置单元,配置Slave的访问接口,并通过磁盘配置管理单元对Slave节点上的物理磁盘进行配置管理,根据定义好的磁盘规则来创建磁盘到容器映
射关系,达到容器存储持久化的目的。Slave节点可以通过对ansible任务进行脚本解析运
行实现上述技术效果。
[0060] 并设定容器运行的内存大小,设定CPU的使用量,设定磁盘的绑定关系。Master节点根据定义好的CEPH服务配置进行容器资源的预配置,并生成模板。并可根据服务内容分
别创建MON、OSD和MDS Docker容器安装模板。并可根据Docker容器安装模板根据CEPH的服
务分别创建MON服务容器、OSD服务容器、MDS服务容器。并分别创建MON、创建OSD、创建MDS,
配置业务网关,对外提供文件、块、对象存储服务。
[0061] 并可在后期服务中,利用模板配置修改模块在集群网络配置,或者容器存储持久化配置存在变更需求时,生成修改配置模板并下发部署指令到所有Slave节点,以使得所有
Slave节点快速完成修改。以适应外界环境或者需求的变化。并可利用模板配置升级模块,
在集群环境有版本更新的需求时,根据指定更新的版本生成升级配置模板,并将升级配置
模板下发所有Slave节点,以使得所有Slave节点的容器环境进行升级。
[0062] 本领域技术人员可以理解,可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的适用于FT2000+平台部署Ceph的主节点及实部署Ceph实现方法,所述程
序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程
式程序设计语言—诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算
机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上
部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的
情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接
到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连
接)。
[0063] 注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、
重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行
了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还
可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。