6.8. RADOS
如果在集群升级后没有设置 require-osd-release
标志,Ceph 集群会发出警告。
在以前的版本中,在代码重构过程中意外删除升级后,检测 require-osd-release
标记的代码逻辑。由于升级后 ceph -s
输出中没有引发警告,在对集群进行改变时没有将标志设置为适当的版本会导致出现问题,如放置组 (PG) 一直处于某些状态,消耗大量 Ceph 进程内存,请求变慢等问题。
在这个版本中,如果在集群升级后没有设置 require-osd-release
标志,Ceph 集群会发出警告。
PG 不再错误地处于 remapped+peering
状态。
在以前的版本中,由于一个逻辑错误,当以扩展模式运行集群时,一些放置组 (PG) 可能会在某些集群条件下永久卡在 remapped+peering
状态,从而导致数据不可用,直到 OSD 被离线为止。
在这个版本中,PG 选择稳定的 OSD 集,它们不会再卡在 remapped+peering
状态。
OSD 部署工具会在对集群进行更改时成功部署所有 OSD
KVMonitor paxos 服务管理在执行集群更改时添加、删除或修改的密钥。在以前的版本中,当使用 OSD 部署工具添加新 OSD 时,添加密钥而无需验证服务是否可以写入它。因此,paxos 代码中会出现断言失败,从而导致监控器崩溃。
最新的修复程序可确保 KVMonitor 服务可以在添加新 OSD 之前写入,否则,重新将命令推送回相关队列,以便稍后重试。OSD 部署工具可在没有任何问题的情况下成功部署所有 OSD。
可以通过脱机和在线修剪删除 PG 日志条目损坏
在以前的版本中,在低级 PG 分割操作期间,PG 日志 dups 条目的修剪会无法被 PG 自动扩展器使用,超过人为 operator 的频率。使 dups 修剪导致 PG 日志的内存增长造成大量内存增长,因为 OSD 内存不足时会导致 OSD 崩溃。重启 OSD 不会解决此问题,因为 PG 日志存储在磁盘上,并在启动时重新加载到 RAM。
在这个版本中,离线(使用 ceph-objectstore-tool
命令)和在线(带有 OSD)进行修剪可能会移除 PG Log 的损坏的 dups 条目,该条目会阻塞修建机制并导致内存增长。实施了调试功能,它将 dups 条目的数量输出到 OSD 的日志,以帮助调查未来。