一种快速部署分布式存储集群及应用服务的方法与流程

文档序号:37543795发布日期:2024-04-08 13:45阅读:10来源:国知局
一种快速部署分布式存储集群及应用服务的方法与流程

本技术涉及新型信息技术和大规模节点的应用部署,特别涉及一种快速部署分布式存储集群及应用服务的方法。


背景技术:

1、部署大规模部署分布式存储服务ceph时主要采用官方提供的部署工具ceph-deploy以及ceph-ansible,前者是基于python开发的部署工具而,而后者则是使用基于ansible的playbook运行。此外,还有基于saltstack的ceph-salt和基于puppet的puppet-ceph。对于最新的ceph容器化部署,还有更为便捷的cephadm工具。但cephadm工具只支持对octopus15及更新版本的部署,而不支持目前广泛使用的ceph 12~14版本。此外,还有众多针对分布式存储集群衍生的外围应用部署,比如各种监控、安全加固脚本、集群运维管理平台等。这些部署工作都费时费力,尤其是同时部署多个大规模集群。

2、目前现有的分布式存储服务以及衍生的应用部署方案存在以下的问题:

3、1、不管哪种部署方案,对于非容器化部署,尤其是存储节点以及存储网关节点较多的情况下,对于分布式存储服务的部署效率还有极大提升空间,尤其是针对ceph-ansible工具;

4、2、关于解决后续大量应用的部署问题,许多应用部署于不同节点且应用之间具有独立性,完全可以并行完成;

5、3、对于相互之前存在依赖的应用部署,如何能实现相互依赖情况下的并行部署。


技术实现思路

1、本技术旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本技术的一个目的在于提出一种快速部署分布式存储集群及应用服务的方法、系统、电子设备以及可读存储介质,本技术能合理的利用所有节点同时部署存储服务及其衍生应用,实现高效部署。

2、本技术公开的第一个方面,提供一种快速部署分布式存储集群及应用服务的方法,所述方法包括:

3、对部署ceph集群的服务组件进行合理划分,将所述ceph集群的每个服务组件中的部署步骤进行合理规划;

4、利用redis的模块机制完成在redis端生成所述ceph集群id及所述ceph集群的每个服务组件密钥并保存,利用redis的发布和订阅机制向ceph集群的服务组件的节点下发部署任务;

5、基于redis完成存储集群部署,基于redis的发布与订阅模式完成独立应用部署,基于puppet完成有依赖应用的并行部署。

6、所述对部署ceph集群的服务组件进行合理划分,将所述ceph集群的每个服务组件中的部署步骤进行合理规划,包括:

7、mon:ceph-mon服务部署,生成相关集群id和各种ceph集群的服务组件的密钥,这些信息将在redis中生成并最终发送给对应角色的节点;

8、mgr:ceph-mgr服务部署,所述服务组件基本可以并行执行;

9、osd:ceph-osd服务部署,每个节点上会根据磁盘情况部署指定个数的osd进程,而这一步是整个集群创建中最耗时部分,存在大量部署优化空间;

10、rgw:ceph-radosgw服务部署,各节点之间可以并行部署。

11、所述利用redis的模块机制完成在redis端生成所述ceph集群id及所述ceph集群的每个服务组件密钥并保存的步骤,包括:

12、编写redis模块;

13、在所述redis模块中定义数据结构;

14、redis服务器上加载所述redis模块文件;

15、在redis模块中实现生成ceph集群id和每个服务组件密钥;

16、将所述生成ceph集群id和每个服务组件密钥保存在redis模块数据库中。

17、所述利用redis的发布和订阅机制向ceph集群的服务组件的节点下发部署任务,包括:

18、为ceph集群的每个服务组件创建一个独立的频道;

19、利用redis的订阅机制监听相应频道的消息并执行部署任务;

20、利用redis的发布机制,向不同的服务组件发布部署任务的消息;

21、利用redis的订阅机制将监听并收到发布者发布的部署任务消息,并行在ceph集群的服务组件的节点上执行相应的部署任务。

22、所述基于redis完成存储集群部署的步骤,包括:

23、redis模块在服务端通过指令生成集群的fsid、mon keyring、osd keyring和rgwkeyring;

24、向所有服务组件的节点下发一个c开发的二进制,监听指定redis的部署任务频道;

25、位于统一中心节点的服务将向对应的任务频道发布fsid和各种服务组件的密钥信息;

26、服务组件的对应节点收到密钥信息后根据所述密钥信息部署相应的服务,如ceph-mon、ceph-mgr、ceph-osd以及ceph-radosgw;

27、将原先部署osd时的裸盘提前进行格式化,格式化盘的动作可以同时进行,创建osd时将直接指定对应的逻辑卷。

28、所述基于redis的发布与订阅模式完成独立应用部署的步骤,包括:

29、通过编写部署脚本并连同安装包一同放在固定的存储服务器上;

30、由指定url下载并运行;

31、各个应用分布在不同节点。

32、所述基于puppet完成有依赖应用的并行部署的步骤,包括:

33、部署前对应用部署节点已知,将有依赖应用的配置固定下来;

34、假定c-manager是一个有依赖项的应用组件,将puppet为指定节点维护c-manager的在线状态;

35、puppet agent发现指定节点上需要有该服务,获取其包以及配置模块并根据当前部署情况生成应用的配置文件,同时会尝试在指定节点上启动有依赖应用;

36、若c-manager由于依赖的mysql和redis未成功部署而启动失败,puppet agent会尝试在下一次再次启动c-manager服务,直到能成功启动为止。

37、本技术公开的第二个方面,提供一种快速部署分布式存储集群及应用服务的系统,所述系统包括:

38、服务组件划分模块,用于对部署ceph集群的服务组件进行合理划分,将所述ceph集群的每个服务组件中的部署步骤进行合理规划;

39、redis模块,用于利用redis的模块机制完成在redis端生成所述ceph集群id及所述ceph集群的每个服务组件密钥并保存,利用redis的发布和订阅机制向ceph集群的服务组件的节点下发部署任务;

40、并行部署模块,用于基于redis完成存储集群部署,基于redis的发布与订阅模式完成独立应用部署,基于puppet完成有依赖应用的并行部署。

41、本技术公开的第三个方面,一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时,以实现一种快速部署分布式存储集群及应用服务的方法中的步骤。

42、本技术公开的第四个方面,一种可读存储介质,所述可读存储介质存储有计算机程序,所述计算机程序适于处理器进行加载,以执行所述的一种快速部署分布式存储集群及应用服务的方法中的步骤。

43、与现有技术相比,本技术提出的一种快速部署分布式存储集群及应用服务的方法,本技术的优点在于:

44、(1)通过借助redis服务大幅提升ceph集群部署效率,各个ceph服务组件之间不会有相互依赖,部署并行度高;

45、(2)改造ceph-ansible以及ceph-deploy中部署osd服务时指定裸盘的方式,改为先给对应磁盘创建逻辑卷,这样每个磁盘创建卷时可以并行完成,最后创建osd进程时能进一步提速;

46、(3)借助redis的发布和订阅机制部署无依赖应用,采用提供部署脚本和部署包方式,后续新增无依赖的应用部署可以按照此方式加入进来;

47、(4)借助puppet工具将有依赖的应用部署脱离其依赖,不用等到依赖应用部署完后再进行部署,而是可以同所有应用同时开始部署,puppet agent将定时维护该应用的在线状态,直到该服务可以正常启动为止;

48、(5)若将redis服务改造成集群模式,可以支持对海量节点的同时部署,集群中的每个节点可以服务于某个分布式集群的部署工作。

49、(6)本技术能提升大规模集群的存储服务及其衍生的应用部署效率,即使有较多的应用,无论是依赖还是独立应用,其部署时间都不会随着应用规模扩大而增长。

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