快速部署Ceph方法、装置、服务器及存储介质与流程

文档序号:25212516发布日期:2021-05-28 14:08阅读:184来源:国知局
快速部署Ceph方法、装置、服务器及存储介质与流程

本发明涉及分布式数据库技术领域,尤其涉及一种快速部署ceph方法、装置、服务器及存储介质。



背景技术:

ceph是一种为优秀的性能、可靠性和可扩展性而设计的统一的、分布式文件系统。ceph摒弃了传统的集中式存储元数据寻址的方案,采用crush算法,数据分布均衡,并行度高。并考虑了容灾域的隔离,能够实现各类负载的副本放置规则,例如跨机房、机架感知等。能够支持上千个存储节点的规模,支持tb到pb级的数据。

目前,ceph分布式存储系统通常采用系统工具ceph-deploy部署,其具体需要在主机上预先生成一个干净完整环境,并设置相应的host文件,然后安装ceph-deploy工具,创建monitor服务,在所有节点安装ceph,部署osd服务,统一配置并部署mds服务以及创建ceph文件系统。其操作较为复杂,且对人员技术要求较高。

ceph分布式存储系统在生产部署和运维的技术门槛相对较高,对于小规模的ceph集群部署尚且可以人工来应对。但对于具一定规模的ceph集群部署时人工的方法往往显得有些困难。首先,人工部署的方法在时间成本就很高;其次,人工部署时难免会导致一些不可控的误操作。

在实现本发明的过程中,发明人发现如下技术问题:ceph分布式存储系统在生产部署和运维的技术门槛相对较高,对于小规模的ceph集群部署尚且可以人工来应对。但对于具一定规模的ceph集群部署时人工的方法往往显得有些困难。首先,人工部署的方法在时间成本就很高;其次,人工部署时难免会导致一些不可控的误操作。



技术实现要素:

本发明实施例提供了一种快速部署ceph方法、装置、服务器备及存储介质,以解决现有技术中存在的针对ceph分布式存储系统部署技术难度和成本较高的技术问题。

第一方面,本发明实施例提供了一种快速部署ceph方法,包括:

按照预设的配置对slave节点进行podman容器安装配置;

根据预设的规则将业务所需的容器镜像分发至对应的slave节点,以使得所述slave节点根据所述容器镜像实现业务的安装;

按照轮循规则对所述slave节点是否在线进行判断;

对于在线的slave节点利用ansible任务进行网络配置,以使得slave节点提供ceph访问接口;

利用ansible任务对slave节点上的物理磁盘进行配置管理,根据定义好的磁盘规则来创建磁盘到容器映射关系,达到容器存储持久化的目的。

第二方面,本发明实施例还提供了一种快速部署ceph装置,包括:

安装模块,用于按照预设的配置对slave节点进行podman容器安装配置;

分发模块,根据预设的规则将业务所需的容器镜像分发至对应的slave节点,以使得所述slave节点根据所述容器镜像实现业务的安装,所述预设的规则包括:根据各个节点的容器性能确定对应的多个相同或者不同的业务;

判断模块,用于按照轮循规则对所述slave节点是否在线进行判断;

网络配置模块,用于对于在线的slave节点根据自身的业务规则利用网络配置ansible任务进行网络配置,以使得slave节点提供多种不同服务内容对应的ceph访问接口;

磁盘配置管理模块,用于利用ansible任务对slave节点上的物理磁盘进行配置管理,根据定义好的磁盘规则来创建磁盘到容器映射关系,达到容器存储持久化的目的。

第三方面,本发明实施例还提供了一种服务器,包括:

一个或多个处理器;

存储装置,用于存储一个或多个程序,

当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述实施例提供的快速部署ceph方法方法。

第四方面,本发明实施例还提供了包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如上述实施例提供的快速部署ceph方法。

本发明实施例提供的快速部署ceph方法、装置、服务器及存储介质,通过根据预设的规则将业务所需的容器镜像分发至对应的slave节点,以使得所述slave节点根据所述容器镜像实现业务的安装。并且对在线的slave节点进行配置,实现对外ceph正常访问。与现有技术相比,能够实现分布式存储系统ceph的快速自动化的部署,减少了人工部署的各种缺点。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:

图1是本发明实施例一提供的快速部署ceph方法的流程示意图;

图2是本发明实施例二提供的快速部署ceph方法的流程示意图;

图3是本发明实施例三提供的快速部署ceph装置的结构示意图;

图4是本发明实施例四提供的服务器的结构图。

具体实施方式

下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。

实施例一

图1是本发明实施例一提供的快速部署ceph方法的流程图,本实施例可适用于快速自动化部署ceph分布式存储系统的情况,该方法可以由快速部署ceph装置来执行,并可集成于ceph服务器中,具体包括如下步骤:

s110,按照预设的配置对slave节点进行podman容器安装配置。

在本实施例中,可以预先通过网络设定相应的节点。该网络可以为主\从方式的网络,主节点负责对从节点进行管理和控制。在本实施例中,可以预先选取一个网络中的一个节点作为master节点。可选的,可以根据其计算性能和\或网络性能选取其中一个节点作为master节点,将其他节点作为slave节点。

在本实施例中,通过容器方式实现对各个slave节点进行ceph业务的安装。容器技术是指在物理主机或节点上提供基于进程隔离的轻量虚拟化技术。通过容器技术不仅可以和物理主机共享硬件资源和操作系统,也可以达到资源隔离和限制。基于这一特征,将ceph分布式存储系统部署于容器中时可以有效的进行内存、cpu等资源的隔离和限制,避免和其他程序间进的资源争抢而降低ceph存储服务的稳定性。

示例性的,所述按照预设的配置对slave节点进行podman容器安装配置,可以包括:根据预先设定容器运行的内存大小,cpu的使用量,磁盘的绑定关系生成podman容器安装配置模板;根据服务内容分别创建mon、osd和mds服务容器模板。在本实施例中,可以分别通过两次容器创建,第一次用于对slave节点进行配置,第二次用于对slave节点配置相应的mon、osd和mds服务容器。在一种情况下,所述slave节点可以配置包括多个不同类型的服务容器。例如,某个slave节点可同时包括mon、osd和mds服务容器。

在本实施例中,可以预先根据slave节点的性能确定对应的服务容器确定对应的服务模板。并根据所述服务模板分别设定对应的容器相应的性能,即运行的内存大小,cpu的使用量,磁盘的绑定关系。并根据上述内容生成podman容器安装配置模板。并根据服务内容分别创建对应的mon、osd和mds服务容器模板。将所述服务容器模板封装为对应的ansibel任务,并将所述ansibel任务分发至对应的slave节点。以使得所述slave节点根据所述ansibel任务进行解析完成podman容器的安装。

可选的,所述容器可以选择podman容器,podman是一个开源的容器运行时项目,可在大多数linux平台上使用。其不需要在你的系统上运行任何守护进程,并且它也可以在没有root权限的情况下运行。podman可以管理和运行任何符合oci(opencontainerinitiative)规范的容器和容器镜像。便于后期快速部署ceph分布式服务系统。

具体的,ceph包括如下组件:cephosds:cephosd守护进程(cephosd)的功能是存储数据,处理数据的复制、恢复、回填、再均衡,并通过检查其他osd守护进程的心跳来向cephmonitors提供一些监控信息。当ceph存储集群设定为有2个副本时,至少需要2个osd守护进程,集群才能达到active+clean状态;

monitors:cephmonitor维护着展示集群状态的各种图表,包括监视器图、osd图、归置组(pg)图、和crush图。ceph保存着发生在monitors、osd和pg上的每一次状态变更的历史信息。

mdss:ceph元数据服务器(mds)为ceph文件系统存储元数据(也就是说,ceph块设备和ceph对象存储不使用mds)。元数据服务器使得posix文件系统的用户们,可以在不对ceph存储集群造成负担的前提下,执行诸如ls、find等基本命令。

s120,根据预设的规则将业务所需的容器镜像分发至对应的slave节点,以使得所述slave节点根据所述容器镜像实现业务的安装,所述预设的规则包括:根据各个节点的容器性能确定对应的多个相同或者不同的业务。

在本实施例中,可以设定所述容器a、b、c运行ceph分布式集群的mon服务,容器d、e、f、g、h、i、j、k、l运行ceph分布式集群的osd服务。容器m、n运行ceph分布式集群的mds服务。此时无需考虑从节点性能。

因此,需要针对各个节点的容器性能设定相应的规则,并根据所述规则,将各个业务容器镜像分发至对应的slave节点,每个节点根据接收到的容器镜像进行安装。在本实施例中,可以采用ansible任务来执行上述分发。ansible是新出现的自动化运维工具,基于python开发,集合了众多运维工具(puppet、chef、func、fabric)的优点,便于实现批量系统配置、批量程序部署、批量运行命令等功能。ansible不需要在远程主机上安装client/agents,因为它们是基于ssh来和远程主机通讯的。因此,特别适用于批量快速部署ceph的要求。

相应的,所述slave节点在接收到容器镜像后,对导入的容器镜业务的像进行解析,获取封装的ansible任务,并根据所述ansible任务实现相应业务的安装。

s120,按照轮循规则对所述slave节点是否在线进行判断。

由于部分节点的网络状态是随时变化的,因此,在本实施例中,可以先对slave节点的状态进行判断,以确定所述slave节点是否在线。示例性的,可以采用轮询方式确定是否slave节点是否能够连通。

s130,对于在线的slave节点根据自身的业务规则利用网络配置ansible任务进行网络配置,以使得slave节点提供多种不同服务内容对应的ceph访问接口。

在本实施例中,可以通过设置指令对slave节点上的物理网卡进行配置管理。示例性的,可以通过ansible任务根据定义好的网络规则来创建容器网络配置。配置每个slave节点的网络模式,如:桥接模式还是host模式。配置网络模式后,容器中部署的ceph分布式存储集群才根据自身的业务规则、能对外提供访问接口。可选的,可以根据所述slave节点对应的角色预先设定,并进行相应的配置。

s140,利用ansible任务对slave节点上的物理磁盘进行配置管理,根据定义好的磁盘规则来创建磁盘到容器映射关系,达到容器存储持久化的目的。

示例性的,可以通过ansible任务对slave节点上的物理磁盘进行配置管理,根据定义好的磁盘规则来创建磁盘到容器映射关系。

本发明实施例通过根据预设的规则将业务所需的容器镜像分发至对应的slave节点,以使得所述slave节点根据所述容器镜像实现业务的安装。并且对在线的slave节点进行配置,实现对外ceph正常访问。与现有技术相比,能够实现分布式存储系统ceph的快速自动化的部署,减少了人工部署的各种缺点。

在本实施例的一个优选实施方式中,所述方法还可包括:对各个容器的状态进行监控,在容器状态环境参数异常时,发出警告信息。示例性的,所述状态可以包括:运行的内存大小,cpu的使用量等,在其超出预设的范围时,发出警告信息,便于及时调整,以避免存储服务稳定性减低的可能。

实施例二

图2为本发明实施二提供的快速部署ceph方法的流程示意图。本实施例以上述实施例为基础进行优化,在本实施例中,所述方法还可增加如下步骤:在集群网络配置,或者容器存储持久化配置有变更需求时,根据所述变更需求生成配置,并将所述配置利用ansible任务下发部署指令到所有的minion节点。

相应的,本实施例所提供的快速部署ceph方法,具体包括:

s210,按照预设的配置对slave节点进行podman容器安装配置。

s220,根据预设的规则将业务所需的容器镜像分发至对应的slave节点,以使得所述slave节点根据所述容器镜像实现业务的安装,所述预设的规则包括:根据各个节点的容器性能确定对应的多个相同或者不同的业务。

s230,按照轮循规则对所述slave节点是否在线进行判断。

s240,对于在线的slave节点根据自身的业务规则利用网络配置ansible任务进行网络配置,以使得slave节点提供多种不同服务内容对应的ceph访问接口。

s250,利用磁盘配置ansible任务对slave节点上的物理磁盘进行配置管理,根据定义好的磁盘规则来创建磁盘到容器映射关系,达到容器存储持久化的目的。

s260,在集群网络配置,或者容器存储持久化配置有变更需求时,根据所述变更需求生成配置,并将所述配置利用ansible任务下发部署指令到所有的slave节点。

在ceph分布式存储系统部署完成后,可以提供相应的对外服务。然而ceph分布式存储系统会受到其他外界环境的影响,可能某些节点无法提供相应的对外服务,因此,需要对集群网络或者持久化配置进行相应的变更。在本实施例中,master节点可以根据变更需求,生成相应的配置,并将所述配置生成对应的ansible任务,将所述ansible任务下发至所有的slave节点,以使得slave节点解析所述ansible任务,完成变更配置。

本实施例通过在可增加如下步骤:在集群网络配置,或者容器存储持久化配置有变更需求时,根据所述变更需求生成配置,并将所述配置利用ansible任务下发部署指令到所有的mislave节点。可以在外界环境,特别是网络环境发生变化时,快速对ceph分布式存储系统进行变更配置。避免了人工干预,提升了配置变更的准确性。

在本实施例一个优选实施方式中,所述方法还可包括如下步骤:在集群环境有版本更新的需求时,根据指定更新的版本,生成ansible升级操作任务,并下发至所有slave节点。利用上述方式可以快速完成ceph分布式存储系统的升级。

实施例三

图3是本发明实施例三提供的快速部署ceph装置的结构示意图,如图3所示,所述装置包括:

安装模块410,用于按照预设的配置对slave节点进行podman容器安装配置;

分发模块420,根据预设的规则将业务所需的容器镜像分发至对应的slave节点,以使得所述slave节点根据所述容器镜像实现业务的安装,所述预设的规则包括:根据各个节点的容器性能确定对应的多个相同或者不同的业务;

判断模块430,用于按照轮循规则对所述slave节点是否在线进行判断;

网络配置模块440,用于对于在线的slave节点根据自身的业务规则利用网络配置ansible任务进行网络配置,以使得slave节点提供多种不同服务内容对应的ceph访问接口;

磁盘配置管理模块450,用于利用ansible任务对slave节点上的物理磁盘进行配置管理,根据定义好的磁盘规则来创建磁盘到容器映射关系,达到容器存储持久化的目的。

本实施例提供的快速部署ceph装置,通过根据预设的规则将业务所需的容器镜像分发至对应的slave节点,以使得所述slave节点根据所述容器镜像实现业务的安装。并且对在线的slave节点进行配置,实现对外ceph正常访问。与现有技术相比,能够实现分布式存储系统ceph的快速自动化的部署,减少了人工部署的各种缺点。

在上述各实施例的基础上,所述分发模块用于:

以使得对导入的容器镜像进行解析,获取封装的ansible任务。

在上述各实施例的基础上,所述装置还包括:

容器安装配置模块,用于按照预设的配置对slave节点进行podman容器安装配置。

在上述各实施例的基础上,所述容器安装配置模块包括:

生成单元,用于根据预先设定容器运行的内存大小,cpu的使用量,磁盘的绑定关系生成podman容器安装配置模板。

在上述各实施例的基础上,所述容器安装配置模块还包括:

创建单元,用于根据服务内容分别创建mon、osd和mds服务容器模板。

在上述各实施例的基础上,所述装置还包括:

监控模块,用于对各个容器的状态进行监控,在容器状态环境参数异常时,发出警告信息。

在上述各实施例的基础上,所述装置还包括:

变更配置模块,用于在集群网络配置,或者容器存储持久化配置有变更需求时,根据所述变更需求生成配置,并将所述配置利用ansible任务下发部署指令到所有的minion节点。

在上述各实施例的基础上,所述装置还包括:

更新模块,用于在集群环境有版本更新的需求时,根据指定更新的版本,生成ansible升级操作任务,并下发至所有minion节点。

本发明实施例所提供的快速部署ceph装置可执行本发明任意实施例所提供的快速部署ceph方法,具备执行方法相应的功能模块和有益效果。

实施例四

图4为本发明实施例四提供的一种服务器的结构示意图。图4示出了适于用来实现本发明实施方式的示例性服务器12的框图。图4显示的服务器12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

如图4所示,服务器12以通用计算设备的形式表现。服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。

总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(isa)总线,微通道体系结构(mac)总线,增强型isa总线、视频电子标准协会(vesa)局域总线以及外围组件互连(pci)总线。

服务器12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被服务器12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。

系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(ram)30和/或高速缓存存储器32。服务器12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图4未显示,通常称为“硬盘驱动器”)。尽管图4中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如cd-rom,dvd-rom或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。

具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。

服务器12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该服务器12交互的设备通信,和/或与使得该服务器12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口22进行。并且,服务器12还可以通过网络适配器20与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与服务器12的其它模块通信。应当明白,尽管图中未示出,可以结合服务器12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。

处理单元16通过运行存储在系统存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的快速部署ceph方法。

实施例五

本发明实施五还提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如上述实施例提供的快速部署ceph方法。

本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。

计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于无线、电线、光缆、rf等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c++,还包括常规的过程式程序设计语言—诸如”c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

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