Ceph Pacific版本OSD内存自动调整说明
警告:默认情况下,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