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,超过可能的元数据缓存计数。这会启用修剪,元数据缓存大小遵循配置设置。

(BZ#1931504)

将存储集群从 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 中。

拒绝健康警告的建议:

  1. 通过检查 AUTH_INSECURE_GLOBAL_ID_RECLAIM 警报的 ceph health detail 输出,识别尚未更新的客户端。
  2. 将所有客户端升级到 Red Hat Ceph Storage 5.0。
  3. 如果所有客户端没有立即升级,则可以临时静默健康警报:

    语法

    ceph health mute AUTH_INSECURE_GLOBAL_ID_RECLAIM 1w  # 1 week
    ceph health mute AUTH_INSECURE_GLOBAL_ID_RECLAIM_ALLOWED 1w  # 1 week

  4. 当验证所有客户端都已更新,并且客户端不再存在 AUTH_INSECURE_GLOBAL_ID_RECLAIM 警报后,将 auth_allow_insecure_global_id_reclaim 设置为 false

    语法

    ceph config set mon auth_allow_insecure_global_id_reclaim false

  5. 确保没有使用 AUTH_INSECURE_GLOBAL_ID_RECLAIM 警报列出客户端。

(BZ#1953494)

RocksDB 刷新和压缩的触发条件可以正常工作

BlueStore 将数据以名为 blobs 的块(chunk)进行组织,其大小默认为 64K。对于大型写入,它被分成 64K blob 写入序列。

在以前的版本中,当延迟的大小等于或大于 blob 大小时,所有数据都会被延迟,并在"L"列中列出。一个典型的示例是 HDD 配置,其中 bluestore_prefer_deferred_size_hddbluestore_max_blob_size_hdd 参数的值都是 64K。这会更快地消耗"L"列,从而导致 RocksDB 刷新计数和压缩频率增加。在这种情况下触发条件是 data size in blobminimum deferred size

在这个版本中,延迟触发器条件会检查磁盘上扩展的大小,而不是 blob。小于 delay_size 的扩展会转到延迟机制,大的扩展会立即写入磁盘。触发器条件改为 data size in extent < minimum deferred size

小的写操作位于"L"列下,此列的增长较慢,没有额外的紧凑。

bluestore_prefer_deferred_size 参数控制延迟而不受到 blob 大小的干扰,并根据其"写入小于这个大小"的描述工作。

(BZ#1991677)

Ceph Manager 在大量增大到 pg_numpgp_num期间不再崩溃

在以前的版本中,调整放置组的代码无法正确处理 pg_numpgp_num 参数,并在flow下导致一个可以崩溃 Ceph Manager 的整数。

在这个版本中,调整放置组的代码已被修复。因此,放置组的大量增加不会导致 Ceph Manager 崩溃。

(BZ#2001152)