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 仓库
文档¶
将编写关于 ceph-benchmarking 和相关 Zaza 测试的使用说明文档。charm 的操作将在 charm 的 README 中记录。在有或没有 Zaza 的情况下使用操作的方法将作为 charm-guide 和/或 deployment-guide 的附录。
安全性¶
各种测试可能会留下测试残留物。将尽可能尝试清理,但操作员需要对任何安全影响负责。
测试¶
拟议的更改是测试本身。Zaza 目标将为 ceph-benchmarking charm 提供功能测试。
依赖项¶
基准测试 Ceph 集群性能 是各种测试的模板。