4.6. RADOS
将 bluestore_cache_trim_max_skip_pinned
设置为 10000
可修剪对象的元数据
LRU (least recently used) 缓存用于对象的元数据。对缓存的修剪从最早访问的对象开始进行。固定的对象免于被驱除,这意味着它们仍然被 Bluestore 使用。
在以前的版本中,配置变量 bluestore_cache_trim_max_skip_pinned
控制了被调用的固定对象数量,因此清理过程会导致对象被长时间固定。当固定在 LRU 元数据缓存底部的对象数量大于 bluestore_cache_trim_max_skip_pinned
时,修剪缓存的操作没有完成。
在这个版本中,您可以将 bluestore_cache_trim_max_skip_pinned
设置为 10000
,超过可能的元数据缓存计数。这会启用修剪,元数据缓存大小遵循配置设置。
将存储集群从 Red Hat Ceph Storage 4 升级到 5 完成,状态为 HEALTH_WARN
当将 Red Hat Ceph Storage 集群从之前支持的版本升级到 Red Hat Ceph Storage 5 时,升级过程完成后存储集群状态为 HEALTH_WARN,声明 monitor 允许不安全的 global_id
重新声明。这是因为一个补丁的 CVE,其详细信息包括在 CVE-2021-20288 中。
拒绝健康警告的建议:
-
通过检查
AUTH_INSECURE_GLOBAL_ID_RECLAIM
警报的ceph health detail
输出,识别尚未更新的客户端。 - 将所有客户端升级到 Red Hat Ceph Storage 5.0。
如果所有客户端没有立即升级,则可以临时静默健康警报:
语法
ceph health mute AUTH_INSECURE_GLOBAL_ID_RECLAIM 1w # 1 week ceph health mute AUTH_INSECURE_GLOBAL_ID_RECLAIM_ALLOWED 1w # 1 week
当验证所有客户端都已更新,并且客户端不再存在 AUTH_INSECURE_GLOBAL_ID_RECLAIM 警报后,将
auth_allow_insecure_global_id_reclaim
设置为false
语法
ceph config set mon auth_allow_insecure_global_id_reclaim false
-
确保没有使用
AUTH_INSECURE_GLOBAL_ID_RECLAIM
警报列出客户端。
RocksDB 刷新和压缩的触发条件可以正常工作
BlueStore 将数据以名为 blobs 的块(chunk)进行组织,其大小默认为 64K。对于大型写入,它被分成 64K blob 写入序列。
在以前的版本中,当延迟的大小等于或大于 blob 大小时,所有数据都会被延迟,并在"L"列中列出。一个典型的示例是 HDD 配置,其中 bluestore_prefer_deferred_size_hdd
和 bluestore_max_blob_size_hdd
参数的值都是 64K。这会更快地消耗"L"列,从而导致 RocksDB 刷新计数和压缩频率增加。在这种情况下触发条件是 data size in blob
⇐ minimum deferred size
。
在这个版本中,延迟触发器条件会检查磁盘上扩展的大小,而不是 blob。小于 delay_size
的扩展会转到延迟机制,大的扩展会立即写入磁盘。触发器条件改为 data size in extent
< minimum deferred size
。
小的写操作位于"L"列下,此列的增长较慢,没有额外的紧凑。
bluestore_prefer_deferred_size
参数控制延迟而不受到 blob 大小的干扰,并根据其"写入小于这个大小"的描述工作。
Ceph Manager 在大量增大到 pg_num
和 pgp_num
期间不再崩溃
在以前的版本中,调整放置组的代码无法正确处理 pg_num
和 pgp_num
参数,并在flow下导致一个可以崩溃 Ceph Manager 的整数。
在这个版本中,调整放置组的代码已被修复。因此,放置组的大量增加不会导致 Ceph Manager 崩溃。