Ceph PG 自动调优

在 Nautilus 版本中,Ceph 引入了放置组 (PG) 自动调优。Charm 应该支持此模块,从而允许 Ceph 集群自然增长或缩小。

问题描述

如果现有集群在部署时尺寸不正确,操作员很难解决这种不平衡。PG 自动调优旨在消除 PG 调优的黑魔法。

提议的变更

将引入一个新的配置选项 (pg-autotune) 以启用新的 pg_autoscaler 模块。此配置选项对于 Ceph Nautilus 之前的版本无效,并且没有默认值。

在 Ceph 新部署中,版本高于 Nautilus,‘pg-autotune’ 的空值将导致 autoscaler 模块在所有池上启用并配置,并且全局默认值也配置为 ON。在升级到 Nautilus 时,空值不会导致加载 autoscaler 模块,也不会更改池元数据。

要为现有部署启用 autoscaler,管理员应将配置值更改为 ‘True’,之后 charm 将处理新的选项,并根据需要更新现有的池。

ceph-mon charm 已经处理通过预期比例调整默认放置组的大小,因此所需的数据已经存在。

备选方案

只要在部署时对池大小的期望正确,当前解决方案是一种可行的替代方案。其他替代方案包括手动操作员干预以解决尺寸不正确的池。

实现

负责人

主要负责人

chris.macnaughton

Gerrit Topic

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

git-review -t pg-autotune

工作项

  • 如果 Ceph 版本是 Nautilus 或更高版本,则启用 pg_autoscaler 管理器模块

  • 默认情况下禁用 autoscaler

  • 通过配置切换时启用 autoscaler 并配置池

仓库

不需要创建新的仓库。

charm.ceph 和 charm-ceph-mon 仓库将是此开发的主要重点。

文档

将添加一个新的配置选项来切换 Ceph 集群的 autoscaler。此配置选项还应在 ceph-mon charm 的 README 中突出显示。

安全性

此更改没有预期的安全风险。

测试

将添加一个额外的测试用例来启用此配置选项,以确保功能按预期工作。此外,还将通过检查 Ceph 的自动调优建议来验证功能。

依赖项

没有新的依赖项。