【senlin】senlin+ceilometer应用概述

弹性伸缩项目是云计算OpenStack开源社区的一个子项目,其主要为了实现资源(vm\stack\container等)的集群化管理。集群化应用场景非常多,这里主要介绍一下结合ceilometer性能监控搭建的弹性伸缩集群管理平台。

  • 详细设计如下图:


    【senlin】senlin+ceilometer应用概述_第1张图片
    弹性伸缩项目概述

从上图不难看出,整个项目涉及到三个模块:senlin、nova、ceilometer。三个模块各司其责,最终实现云主机的弹性伸缩能力。

  • senlin功能:
    senlin模块是整个弹性伸缩的核心模块,通过对集群资源建模,实现集群的抽象化管理。主要模型有:

    • cluster:集群,配置相同的资源的集合;
    • node:节点,资源的抽象,每创建一个node,同时会调用相关接口创建一个具体的资源,目前支持的资源类型包括nova实例、heat实例等;
    • profile:模板,创建资源实例所使用的配置信息,如:资源实例是nova云主机时,profile就是创建云主机相关的配置;
    • policy:策略,集群伸缩时相关策略,包括:伸展资源示例的个数、收缩资源示例个数、收缩资源示例顺序等;
    • receiver:接收器,生成集群伸展、收缩等动作的URL,作为外部调用的接口;
  • nova功能:
    提供用户业务功能的核心模块,提供创建云主机的URL接口。弹性伸缩集群管理平台归根结底是为了给用户提供服务,而nova虚拟机集群+neutron负载均衡器就是一种方式。

  • ceilometer功能:

    • 通过libvirt模块从虚拟机采集相关性能指标,包括CPU使用率、内存使用率等;
    • 支持用户创建alarm告警规则,如:当CPU平均使用率大于60%时,触发集群扩展动作;
    • 告警触发时,调用senlin receiver提供的接口,真正触发相关动作;

综合上述模块的功能,我们就可以搭建一个弹性伸缩集群管理平台:

  • 1.用户可以通过senlin,创建一个集群,集群下面多个node节点,每个node节点对应一个nova云主机;
  • 2.用户创建策略,通过绑定策略到集群上,来设置集群伸缩时的相关策略;
  • 3.用户创建集群伸展或者收缩的接收器,会得到接受器的一个URL;
  • 4.用户可以通过ceilometer,创建告警规则,把接收器生成的URL告诉告警规则,在告警触发时,调用URL,实现集群的伸缩。

本文对整个功能的讲解可能比较抽象,后续可以考虑结合命令行、代码再进行梳理,以及整理环境搭建的过程...


参考资料:

  • Ceilometer项目源码分析----ceilometer项目源码结构分析

你可能感兴趣的:(【senlin】senlin+ceilometer应用概述)