4.6. RADOS
rgw
守护进程不再会因为堆栈溢出而崩溃
在以前的版本中,超过 10,000 个守护进程的大型集群,基于堆栈的分配变量长度阵列会导致堆栈溢出。因此,Ceph 对象网关守护进程会崩溃。
在这个版本中,基于堆栈的分配不再被使用,并避免堆栈溢出,Ceph 对象网关守护进程按预期工作。
池移除现在从 OSDMap 中删除 pg_upmap_primary
映射
在以前的版本中,删除池不会从 OSDMap 中删除 pg_upmap_primary
映射。因此,可以看到 pg_upmap_primary
映射,但不能被删除,因为池和 pgid
不再存在。
在这个版本中,pg_upmap_primary
映射会从 OSDMap 中自动移除,每次删除池时都会自动删除。
ceph node ls
命令不再列出销毁的 OSD
在以前的版本中,销毁的 OSD 在不指示其状态的情况下被列出,从而导致用户混淆,并导致 cephadm 错误地报告为 stray。
在这个版本中,命令会在显示它们之前检查其状态,确保输出准确且可靠的输出来过滤被销毁的 OSD。
现在启用了对 ISA-L 纠删代码插件的 AVX512 支持
在以前的版本中,由于构建脚本中的一个问题,插件不会利用 AVX512 指令集(即使在支持以降低性能)的 CPU 上也是如此。
在这个版本中,构建脚本可以正确地启用 AVX512 支持,允许插件使用可用的 CPU 功能来提高性能。
Multiple OSDs crashing while replaying bluefs -- ceph_assert(delta.offset == fnode.allocated)
在以前的版本中,实施了一个修复,以防止 RocksDB 的 SST 文件扩展,但它包含一个程序错误。因此,BlueFS 日志被破坏,从而导致阻止 OSD 引导的错误,即使它可以被忽略。
在这个版本中,标记会跳过错误,BlueFS 已被更新,以防止发生错误。现在,原始修复用于防止 RocksDB 磁盘空间超预期。
因为竞争条件,BlueFS 日志不再被破坏
在以前的版本中,BlueFS 中的 truncate 和 unlink 操作之间有一个罕见的情况,这会导致日志引用已删除的文件。这会损坏 BlueFS 日志,在 OSD 启动期间触发断言失败,并导致崩溃循环。
在这个版本中,可以使用正确的锁定正确处理操作,防止日志崩溃并消除断言失败。