Ceph Pacific版本OSD内存自动调整说明

发布时间 2023-04-23 17:50:46作者: Varden

警告:默认情况下,cephadm 在引导程序上启用osd_memory_target_autotune,mgr/cephadm/autotune_memory_target_ratio 设置为主机总内存的 .7。

~# ceph config get mgr mgr/cephadm/autotune_memory_target_ratio
0.700000

请参阅自动调整 OSD 内存。

https://docs.ceph.com/en/pacific/cephadm/services/osd/#osd-autotune

要使用 TripleO 部署超融合 Ceph,请参阅 TripleO 文档:场景:部署超融合 Ceph

https://docs.openstack.org/project-deploy-guide/tripleo-docs/latest/features/cephadm.html#scenario-deploy-hyperconverged-ceph

在集群硬件不是由 Ceph 独占使用(超融合)的其他情况下,请像这样减少 Ceph 的内存消耗:

# 仅限超融合:
ceph config set mgr mgr/cephadm/autotune_memory_target_ratio 0.2

然后启用内存自动整定:

ceph config set osd osd_memory_target_autotune true

1. 自动调整 OSD 内存

OSD 守护程序将根据osd_memory_target配置选项(默认情况下为几 GB)调整其内存消耗。如果 Ceph 部署在不与其他服务共享内存的专用节点上,cephadm 可以根据 RAM 总量和部署的 OSD 数量自动调整每个 OSD 的内存消耗。

警告:Cephadm 默认将osd_memory_target_autotune设置为 true,这不适合超融合基础架构。

Cephadm 将从系统中总 RAM 的一小部分(mgr/cephadm/autotune_memory_target_ratio,默认为 .7)开始,减去非自动调整守护程序(非 OSD,对于 osd_memory_target_autotune 为 false 的 OSD)消耗的任何内存,然后除以剩余的 OSD。

最终目标反映在配置数据库中,其中包含以下选项:

WHO   MASK      LEVEL   OPTION              VALUE
osd   host:foo  basic   osd_memory_target   126092301926
osd   host:bar  basic   osd_memory_target   6442450944

每个守护进程消耗的限制和当前内存都可以从 MEM LIMIT 列中的 ceph orch ps 输出中可见:

NAME        HOST  PORTS  STATUS         REFRESHED  AGE  MEM USED  MEM LIMIT  VERSION                IMAGE ID      CONTAINER ID
osd.1       dael         running (3h)     10s ago   3h    72857k     117.4G  17.0.0-3781-gafaed750  7015fda3cd67  9e183363d39c
osd.2       dael         running (81m)    10s ago  81m    63989k     117.4G  17.0.0-3781-gafaed750  7015fda3cd67  1f0cc479b051
osd.3       dael         running (62m)    10s ago  62m    64071k     117.4G  17.0.0-3781-gafaed750  7015fda3cd67  ac5537492f27

要从内存自动整定中排除 OSD,请禁用该 OSD 的自动调谐选项,并设置特定的内存目标。例如

ceph config set osd.123 osd_memory_target_autotune false
ceph config set osd.123 osd_memory_target 16G