1.7. OSD 内存目标
BlueStore 将 OSD 堆内存使用量保留在指定目标大小下,并使用 osd_memory_target
配置选项。
选项 osd_memory_target
根据系统中可用的 RAM 来设置 OSD 内存。当 TCMalloc 配置为内存分配器,BlueStore 中的 bluestore_cache_autotune
选项设为 true
时,则使用此选项。
当块设备速度较慢时(例如,传统的硬盘驱动器),Ceph OSD 内存缓存更为重要,因为缓存命中的好处要高于固态硬盘的情况。但是,这需要考虑 OSD 与其他服务共处的情况,比如在超融合基础架构 (HCI) 或其他应用程序中。
1.7.1. 设置 OSD 内存目标
使用 osd_memory_target
选项,为存储集群中的所有 OSD 或特定 OSD 设置最大内存阈值。带有 osd_memory_target
选项被设置为 16 的 OSD 最多可使用 16 GB 内存。
单个 OSD 的配置选项会优先于对所有 OSD 的设置。
先决条件
- 一个正在运行的 Red Hat Ceph Storage 集群。
- 对存储集群中所有主机的根级别访问权限。
流程
为存储集群中的所有 OSD 设置
osd_memory_target
:语法
ceph config set osd osd_memory_target VALUE
VALUE 是要分配给存储集群中每个 OSD 的内存数量。
为存储集群中的特定 OSD 设置
osd_memory_target
:语法
ceph config set osd.id osd_memory_target VALUE
.id
是 OSD 的 ID,VALUE 是要分配给指定 OSD 的内存数量。例如,将 ID 为 8 的 OSD 配置为使用最多 16 GBytes 内存:示例
[ceph: root@host01 /]# ceph config set osd.8 osd_memory_target 16G
要设置单个 OSD 使用一个最大内存量,并将其余 OSD 配置为使用其他数量,请首先指定单个 OSD:
示例
[ceph: root@host01 /]# ceph config set osd osd_memory_target 16G [ceph: root@host01 /]# ceph config set osd.8 osd_memory_target 8G
其他资源
- 要配置 Red Hat Ceph Storage 以自动调优 OSD 内存用量,请参阅 操作指南中的自动调整 OSD 内存。