Gnocchi 部署的附加角色

日期:

2016-01-20 11:20

标签:

gnocchi, openstack-ansible

本文档的目的是为 OpenStack-Ansible 添加对 OpenStack Gnocchi 程序的支持。这将允许使用 OpenStack-Ansible 部署 Gnocchi 以及核心 OpenStack 组件。

蓝图 - 在 OpenStack-Ansible 上部署 Gnocchi

https://blueprints.launchpad.net/openstack-ansible/+spec/role-gnocchi

问题描述

目前,使用 OpenStack-Ansible 部署 OpenStack 时,只有核心 OpenStack 组件会被部署。通过 Ansible playbook 部署其他组件(例如:Gnocchi)尚未得到支持,要使用此组件的服务,需要手动部署它们。

Gnocchi[1] 是一个多租户时序、指标和资源数据库。它被设计用于以非常大的规模存储指标,并允许通过 HTTP REST 接口快速有效地检索这些指标。此外,Gnocchi 被设计为 Ceilometer 处理的指标的替代存储引擎,依赖于更高效的存储格式。

提议的变更

本文档建议允许使用通用配置部署和管理此服务,该配置能够以符合 Gnocchi 和 Telemetry 社区的最佳实践以及 OpenStack-Ansible 社区最佳实践的方式进行扩展。

这包括将 Gnocchi 服务和 Gnocchi 客户端[2] 添加到适当的主机和容器中。它还包括可选配置 Ceilometer 以使用 Gnocchi 代替当前支持的 MongoDB 存储解决方案。

拟议的更改包括

  • 创建 openstack-ansible-os_gnocchi 仓库和 Ansible role,以支持 Gnocchi 服务的部署和管理。

  • 测试以验证新的 Ansible role 以及与 OpenStack 服务的集成。

  • 文档以支持 role 的操作和常见的部署配置。

备选方案

Playbook/Role 影响

测试 playbook 将放置在 openstack-ansible-os_gnocchi 仓库中,用于功能测试。预计 openstack-ansible-os_ceilometer role 会发生一些变化,以配置部署选项,这些选项对于可选集成是必需的,即 Ceilometer 使用 Gnocchi 作为其存储引擎。此外,将为 openstack-ansible 仓库提供一个 playbook、必要的 group_vars 以及 env 和 conf 配置文件,以完成集成。

升级影响

无。虽然之前部署过 Ceilometer 的操作员可能对部署 Gnocchi 感兴趣,但没有从 Ceilometer 内部存储导出到 Gnocchi 存储数据的迁移模型。Gnocchi role 和对 Ceilometer role 的任何支持性更改将使过渡尽可能简单,只需运行相关的 playbook 即可。

安全影响

无。

性能影响

Gnocchi 使用的基础存储将经历更高的流量,这可能需要部署者通过额外的调整来考虑额外的流量。

预计不会有其他性能影响。

最终用户影响

当部署者使用 role 和相关的 playbook 部署 Gnocchi 时,OpenStack 用户可以使用 Gnocchi 作为多租户高容量时序数据存储。

部署者影响

这项工作为 OpenStack-Ansible 工具提供了一个可选的 role,供其在各自的环境中使用。

开发人员影响

可能会向 Ceilometer role 引入一些条件语句,以促进 Gnocchi 作为 Ceilometer 存储引擎的干净部署。所有其他更改将是自包含的,或者仅限于引入新的变量和 playbook,这应该给开发人员带来很少或没有额外的认知负担。

依赖项

对于 Gnocchi 索引,仅建议使用兼容 MySQL 的 RDBMS。仅建议使用文件系统、Ceph 和 Swift 存储引擎。所有这些当前都可以在 OpenStack-Ansible 中使用。

目前不建议使用 Graffana 作为仪表板,也不建议使用 statsd 服务端点来用于 Gnocchi。这样可以避免引入任何新的依赖项。

实现

负责人

主要负责人

Steve Lewis (IRC: stevelle)

其他贡献者

工作项

  1. 请求创建新的仓库 openstack-ansible-os_gnocchi

  2. 创建 Gnocchi 支持的 role

  • 添加支持运行 Gnocchi 服务(api 和 metricd),并进行基本的收敛测试。

  • 添加一个 Ansible 模块来利用 gnocchiclient,它是使用和管理 Gnocchi 的命令行界面工具。

  • 引入一个 playbook,用于使用 OpenStack-Ansible 部署 Gnocchi。

  • 添加对 Gnocchi 作为 Ceilometer 可选存储引擎的支持。

  • 添加一个完整的场景测试(如下所述),以确保 Gnocchi 成功集成。

  • 为 role 添加文档,并可能为安装指南添加通用文档,以说明使用各种支持的存储引擎部署 Gnocchi。

测试

在通过 openstack-ansible 仓库在一个整体堆栈中集成测试 role 的环境中,部署此额外项目可能会增加几分钟的门控测试时间。这是不可取的。

为了避免在主门控中进行额外的步骤,建议在 openstack-ansible-os_gnocchi role 中包含一个更长的场景测试,以与 Keystone、Nova、Cinder、Glance、Neutron、Ceilometer 和 Gnocchi 集成,并启用指标收集,并对 Nova 进行操作以确保计量数据通过 OpenStack 环境传播。

然后可以使用 gnocchiclient 的 Ansible 模块通过查询预期指标来验证这一点。

文档影响

需要特定于 role 的文档来描述 Gnocchi 的配置。

参考资料