Ceph 基准测试

提出一个新的 charm,ceph-benchmarking,以及对 Zaza 测试框架的补充,以便提供一种简单可重复的方法来测试 Ceph 性能。

这个新的 charm 将允许进行 A/B 测试。可以在启用某个功能和禁用该功能的部署之间比较性能,以便就功能的使用做出明智的决策。

基准测试 Ceph 集群性能 将作为各种测试的模板。

问题描述

通常,人们很难确定像 Ceph 这样的软件堆栈应该具有什么样的性能。例如,很难用绝对术语(例如 IOPS、吞吐量等)给出性能期望,因为性能取决于硬件和技术。确定要使用哪些功能套件以及它们的相对成本/效益比也可能很困难。

拟议的更改将允许在给定的硬件集上获取相对性能(IOPS),可以将其与启用或禁用各种功能进行比较。可以在生产部署之前的硬件上执行测试,以便从前后的角度了解 Ceph 集群的性能,从而帮助检测瓶颈。

提议的变更

  • ceph-benchmarking charm

    一个具有多个操作来运行 Ceph 性能基准测试并收集其结果的 charm。(例如‘rados bench’、‘rbd bench’、‘fio’、‘swift bench’)新的 charm 将利用 Ops Framework 并利用 ops_openstack 代码库。

    • 拟议的操作和参数

      • net-iperf

        • Ceph 集群的 IP(s)

      • fio-disk

        • 磁盘(s)

        • readwrite

        • blocksize

        • iodepth

      • rados-bench

        • pool

        • duration

        • task (write, random, sequential)

      • rbd-bench

        • pool

        • 镜像

      • fio-ceph

        • readwrite

        • blocksize

        • iodepth

      • swift-bench

  • 对 Zaza 测试框架的补充

    Zaza 测试框架在底层使用 libjuju,并允许从 bundles 启动部署并对它们执行测试套件。将为新 charm 的每个操作添加测试目标,从而可以根据需要重复执行一套 Ceph 性能测试。

备选方案

基准测试 Ceph 集群性能 中的所有测试都可以手动运行。目标是使此过程更有效。

实现

负责人

主要负责人:David Ames (thedac)

Gerrit Topic

对于与此规范相关的所有补丁,请使用 Gerrit 主题“ceph-benchmarking”。

git-review -t ceph-benchmarking

工作项

  • ceph-benchmarking charm

  • Zaza 目标

仓库

ceph-benchmarking charm 最初将驻留在 openstack-charmers 命名空间中,并最终可能会迁移到 openstack 命名空间

https://github.com/openstack-charmers/charm-ceph-benchmarking

对 Zaza 的补充将添加到 zaza-openstack-tests 仓库

https://github.com/openstack-charmers/zaza-openstack-tests

文档

将编写关于 ceph-benchmarking 和相关 Zaza 测试的使用说明文档。charm 的操作将在 charm 的 README 中记录。在有或没有 Zaza 的情况下使用操作的方法将作为 charm-guide 和/或 deployment-guide 的附录。

安全性

各种测试可能会留下测试残留物。将尽可能尝试清理,但操作员需要对任何安全影响负责。

测试

拟议的更改是测试本身。Zaza 目标将为 ceph-benchmarking charm 提供功能测试。

依赖项