返回介绍

puppet-rally

发布于 2025-02-18 00:20:48 字数 3841 浏览 0 评论 0 收藏 0

    • class rally::settings

本节作者:余兴超
阅读级别:选读
阅读时间: 40 分钟

基础知识

Rally 项目是 Openstack 性能测试服务,可以被用于 Openstack CI/CD 中的基本工具链中,以提高 Openstack 的 SLA。下图给出了 Rally 与 Deployment,Verify,Benchmark 之间的关系以及其执行流程。不过 Rally 当前的主要工作仍然集中在 benchmark 上,社区的进度比较缓慢。

架构简介

Openstack 大多数项目属于 as-a-service 类型,因此 Rally 提供了 service 和 CLI 两种方式:

  • Rally as-a-Service 以 web service 方式对外提供服务
  • Rally as-an-App 作为轻量级命令行工具使用

先睹为快

puppet-rally 模块目前没有使用 Release 机制管理,请使用 master 分支代码

在终端下执行以下命令:

puppet apply -e 'include rally'

然后就可以开始使用 rally 了,是不是 so easy?

核心代码讲解

puppet-rally 模块中,我们主要介绍 class rallyclass rally::settings

class rally

  include ::rally::db   #配置数据库
  include ::rally::logging  #配置日志
  include ::rally::settings #rally.conf 配置文件

  # Keep backward compatibility
  $openstack_client_http_timeout_real = pick($::rally::settings::openstack_client_http_timeout,$openstack_client_http_timeout)

  # rally 软件包的安装
  package { 'rally':
    ensure => $ensure_package,
    name   => $::rally::params::package_name,
    tag    => ['openstack', 'rally-package'],
  }
  # 是否清理非 Puppet 管理的配置
  resources { 'rally_config':
    purge => $purge_config,

class rally::settings

rally 配置文件中涉及到各个服务的参数设置,以 cinder 为例,在[benchmark]下就有以下参数:

  • $volume_create_poll_interval
  • $volume_create_prepoll_delay
  • $volume_create_timeout
  • $volume_delete_poll_interval
  • $volume_delete_timeout

puppet-rally 模块下,将各服务的参数设置,拆为单独的 class ,放置在 settings/目录下,统一被 rally::settings 调用:

class rally::settings (
  $project_domain                = $::os_service_default,
  $resource_deletion_timeout     = $::os_service_default,
  $resource_management_workers   = $::os_service_default,
  $user_domain                   = $::os_service_default,
  $openstack_client_http_timeout = undef,
) {

  #管理 rally 各服务的配置
  include ::rally::settings::cinder
  include ::rally::settings::ec2
  include ::rally::settings::glance
  include ::rally::settings::heat
  include ::rally::settings::ironic
  include ::rally::settings::manila
  include ::rally::settings::murano
  include ::rally::settings::nova
  include ::rally::settings::sahara
  include ::rally::settings::swift
  # 此类等待 https://review.openstack.org/#/c/337412/被 Merge
  include ::rally::settings::tempest

  rally_config {
    'cleanup/resource_deletion_timeout':         value => $resource_deletion_timeout;
    'users_context/project_domain':              value => $project_domain;
    'users_context/resource_management_workers': value => $resource_management_workers;
    'users_context/user_domain':                 value => $user_domain;
  }
}

小结

本节简要介绍了 Rally 服务以及如何使用 puppet-rally 模块部署 Rally 服务。当前,Rally 服务作为 Openstack 平台的性能测试项目,目前的使用场景还是比较有限的,因为当前 Rally 只能支持 API 级别的性能测试,并且多数 API 的后端操作是异步的,如果只关注 API 的响应结果,意义不大。不过值得庆幸的是,Rally 项目有来自国内两家公司的 core reviewer (Kun Huang 和 Li Yingjun),我们期待着 Newton 版本中 Rally 的发展和变化。

动手练习

  1. 设置 glance_image_create_timeout 为 60s
  2. 使用 MySQL 替换默认的 SQlite 作为数据库后端
  3. 当前 puppet-rally 能否支持从源码安装 Rally?需要如何修改?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文