v15.2.4 Octopus 发布

TheAnalyst

这是 Ceph Octopus 稳定版本系列的第四个发布版本。除了 RGW 中的一个安全修复之外,此版本还带来了所有组件的一系列修复。我们建议所有 Octopus 用户升级到此版本。

重要变更

  • CVE-2020-10753:rgw:清理 s3 CORSConfiguration 的 ExposeHeader 中的换行符(William Bowling, Adam Mohammed, Casey Bodley)

  • Cephadm:进行了一些小的可用性改进和错误修复

    • 通过 Cephadm 部署的 Grafana 现在绑定到所有网络接口。

    • cephadm check-host 现在一次性打印所有检测到的问题。

    • Cephadm 现在在生成 Grafana 的 SSL 证书时调用 ceph dashboard set-grafana-api-ssl-verify false

    • 警报管理器现在已正确指向 Ceph Dashboard

    • cephadm adopt 现在支持采用警报管理器

    • ceph orch ps 现在支持按服务名称过滤

    • ceph orch host ls 现在将无法访问的主机标记为离线。

  • Cephadm 现在可以部署 NFS Ganesha 服务。例如,要使用 RADOS 存储池 nfs-ganesha 和命名空间 nfs-ns 部署具有服务 ID 为 mynfs 的 NFS

    ceph orch apply nfs mynfs nfs-ganesha nfs-ns

  • Cephadm:cephadm ls --export 现在返回所有服务规范的 yaml 表示形式,该形式可被 ceph orch apply 消耗。此外,命令 orch psorch ls 现在支持 --format yaml--format json-pretty

  • Cephadm:ceph orch apply osd 支持一个 --preview 标志,该标志在部署 OSD 之前打印 OSD 规范的预览。这使得在应用它之前验证规范是否正确成为可能。

  • RGW:处理孤儿的 radosgw-admin 子命令 – radosgw-admin orphans findradosgw-admin orphans finishradosgw-admin orphans list-jobs – 已被弃用。它们没有得到积极维护,并且它们将中间结果存储在集群上,这可能会填满几乎已满的集群。它们已被一个工具取代,目前被认为是实验性的,即 rgw-orphan-list

  • RBD:用于存储 rbd trash purge 计划的 rbd 存储池对象的名称已从“rbd_trash_trash_purge_schedule”更改为“rbd_trash_purge_schedule”。已经开始使用 rbd trash purge schedule 功能并且具有每个存储池或命名空间计划的用户应在升级之前将“rbd_trash_trash_purge_schedule”对象复制到“rbd_trash_purge_schedule”,并使用以下命令删除“rbd_trash_purge_schedule”在每个 RBD 存储池和命名空间中之前配置了 trash purge 计划

    rados -p <pool-name> [-N namespace] cp rbd_trash_trash_purge_schedule rbd_trash_purge_schedule rados -p <pool-name> [-N namespace] rm rbd_trash_trash_purge_schedule

    或者使用任何其他方便的方法在升级后恢复计划。

变更日志

  • build/ops:解决 rgw/multisite 测试运行中观察到的 SElinux 拒绝 (pr#34538, Kefu Chai, Kaleb S. Keithley)

  • ceph-volume:添加和删除 lvm 标签到一个 lvchange 调用 (pr#35452, Jan Fajerski)

  • ceph-volume:添加 ceph.osdspec_affinity 标签 (pr#35134, Joshua Schmid)

  • cephadm:批量回溯五月 (1) (pr#34893, Michael Fritch, Ricardo Marques, Matthew Oliver, Sebastian Wagner, Joshua Schmid, Zac Dover, Varsha Rao)

  • cephadm:批量回溯五月 (2) (pr#35188, Michael Fritch, Sebastian Wagner, Kefu Chai, Georgios Kyratsas, Kiefer Chang, Joshua Schmid, Patrick Seidensal, Varsha Rao, Matthew Oliver, Zac Dover, Juan Miguel Olmo Martínez, Tim Serong, Alexey Miasoedov, Ricardo Marques, Satoru Takeuchi)

  • cephadm:批量回溯六月 (1) (pr#35347, Sebastian Wagner, Zac Dover, Georgios Kyratsas, Kiefer Chang, Ricardo Marques, Patrick Seidensal, Patrick Donnelly, Joshua Schmid, Matthew Oliver, Varsha Rao, Juan Miguel Olmo Martínez, Michael Fritch)

  • cephadm:批量回溯六月 (2) (pr#35475, Sebastian Wagner, Kiefer Chang, Joshua Schmid, Michael Fritch, shinhwagk, Kefu Chai, Juan Miguel Olmo Martínez, Daniel Pivonka)

  • cephfs:允许带有连字符和句点的存储池名称 (pr#35251, Ramana Raja)

  • cephfs:bash_completion:不要自动完成过时和隐藏的命令 (pr#34996, Kotresh HR)

  • cephfs:cephfs-shell:将 tox testenv 名称更改为 py3 (pr#34998, Kefu Chai, Varsha Rao, Aditya Srivastava)

  • cephfs:客户端:通过 libcephfs 暴露 Client::ll_register_callback (pr#35150, Jeff Layton)

  • cephfs:客户端:修复 Finisher 断言失败 (pr#34999, Xiubo Li)

  • cephfs:客户端:仅在刷新脏 auth caps 时设置 MClientCaps::FLAG_SYNC (pr#34997, Jeff Layton)

  • cephfs:fuse:将“-d”选项返回给 libfuse (pr#35449, Xiubo Li)

  • cephfs:mds:处理 purge 队列中的黑名单错误 (pr#35148, Varsha Rao)

  • cephfs:mds:在接收到 OP_FINISH 之前保留 ESlaveUpdate logevent (pr#35253, songxinying)

  • cephfs:mds:以请求开始锁定顺序锁定 (pr#35252, “Yan, Zheng”)

  • cephfs:src/client/fuse_ll:与 libfuse3.5 或更高版本兼容 (pr#35450, Jeff Layton, Xiubo Li)

  • cephfs:vstart_runner:在 mount() 结束时将 mounted 设置为 True (pr#35447, Rishabh Dave)

  • core:bluestore:修复 bluefs_buffered_io = true 时的较大(>2GB)写入 (pr#35446, Igor Fedotov)

  • core:bluestore:引入混合分配器 (pr#35498, Igor Fedotov, Adam Kupczyk)

  • core:cls/queue:修复列出条目时的空标记 (pr#35241, Pritha Srivastava, Yuval Lifshitz)

  • core:objecter:不要尝试在 EC 存储池上从非主节点读取 (pr#35444, Ilya Dryomov)

  • core:osd:添加 --osdspec-affinity 标志 (pr#35382, Joshua Schmid)

  • core:osd:将“missing incremental map”变成调试日志消息 (pr#35442, Nathan Cutler)

  • core:osd:防止 ShardedOpWQ suicide_grace 掉落,在等待工作时 (pr#34881, Dan Hill)

  • core:rocksdb:更新到 ceph-octopus-v5.8-1436 (pr#35036, Brad Hubbard)

  • doc:删除过时的缓存层选项 (pr#35105, Nathan Cutler)

  • doc:mgr/dashboard:添加故障排除指南 (pr#34947, Tatjana Dehler)

  • doc:rgw:记录 ‘rgw gc max concurrent io’ (pr#34987, Casey Bodley)

  • mds:在 mds 变为 active 之前清理未提交的片段 (pr#35448, “Yan, Zheng”)

  • mds:不要在关闭时断言空的 io 上下文列表 (pr#34509, “Yan, Zheng”)

  • mds:在解码 xattr map 时不要浅拷贝 (pr#35147, “Yan, Zheng”)

  • mds:标记新文件的 scrub 失败的 backtrace 为正常 (pr#35555, Milind Changire)

  • mgr/dashboard/grafana:添加 rbd-image 详细信息仪表板 (pr#35247, Enno Gotthold)

  • mgr/dashboard:用户组件的异步唯一用户名验证 (pr#34849, Nizamudeen)

  • mgr/dashboard:ECP 模态增强 (pr#35152, Stephan Müller)

  • mgr/dashboard:修复 HomeTest 设置 (pr#35085, Tiago Melo)

  • mgr/dashboard:修复 e2e chromium 二进制验证 (pr#35679, Tiago Melo)

  • mgr/dashboard:修复 mgr-modules 中的随机 E2E 错误 (pr#35706, Tiago Melo)

  • mgr/dashboard:修复更改密码后的重定向 (pr#35243, Tiago Melo)

  • mgr/dashboard:防止在选择错误的存储池时仪表板崩溃 (pr#35135, Stephan Müller)

  • mgr/dashboard:提出的关于模态框 (pr#35291, Ngwa Sedrick Meh, Tiago Melo)

  • mgr/dashboard:减少镜像页面中的请求 (pr#34992, Tiago Melo)

  • mgr/dashboard:用 Cypress 替换 Protractor (pr#34910, Tiago Melo)

  • mgr/dashboard:显示主机页面中的标签 (pr#35517, Volker Theile)

  • mgr/dashboard:在数据表中显示详细信息 (pr#35270, Sebastian Krah)

  • mgr/dashboard:添加遥测报告组件 (pr#34850, Tatjana Dehler)

  • mgr/dashboard:显示服务详细信息在表格中 (pr#35269, Kiefer Chang)

  • mgr/dashboard:修复 chrome 和 firefox 中的自动完成输入背景 (pr#35718, Ishan Rai)

  • mgr/dashboard:rgw 多站点同步性能的 grafana 面板 (pr#35693, Alfonso Martínez)

  • mgr/dashboard:监控菜单条目应指示正在触发的警报 (pr#34822, Tiago Melo, Volker Theile)

  • mgr/dashboard:重新设计登录屏幕 (pr#35268, Ishan Rai)

  • mgr/dashboard:删除主机列表表格中服务名称后的空格 (pr#35531, Kiefer Chang)

  • mgr/dashboard:替换硬编码的遥测 URL (pr#35231, Tatjana Dehler)

  • mgr/rbd_support:重命名“rbd_trash_trash_purge_schedule” oid (pr#35436, Nathan Cutler, Mykola Golub)

  • mgr/status:修复“ceph fs status” json 格式写入 stderr (pr#34727, Kotresh HR)

  • mgr/test_orchestrator:修复 _get_ceph_daemons() (pr#34979, Alfonso Martínez)

  • mgr/volumes:添加快照信息命令 (pr#35670, Kotresh HR)

  • mgr/volumes:使用隔离的 rados 命名空间创建子卷 (pr#35671, Kotresh HR)

  • mgr/volumes:修复子卷创建幂等性 (pr#35256, Kotresh HR)

  • mgr:同步 ClusterState 的健康和 mon_status (pr#34995, Radoslaw Zarzynski)

  • monitoring:修复“10% OSD 宕机”警报描述 (pr#35151, Benoît Knecht)

  • monitoring:修复 RBD 详细信息仪表板中的一些问题 (pr#35463, Kiefer Chang)

  • rbd:librbd:监视器不应在检测到黑名单后尝试重新监视 (pr#35439, Jason Dillaman)

  • rbd: librbd: 避免在持有锁的情况下完成镜像:DisableRequest (pr#35126, Jason Dillaman)

  • rbd: librbd: 复制 API 默认不应继承 v1 镜像格式 (pr#35255, Jason Dillaman)

  • rbd: librbd: 使 rbd_read_from_replica_policy 真正起作用 (pr#35438, Ilya Dryomov)

  • rbd: pybind: RBD.create() 方法的 ‘old_format’ 参数现在默认值为 False (pr#35435, Jason Dillaman)

  • rbd: rbd-mirror: 不要持有(过时)本地镜像日志指针的副本 (pr#35430, Jason Dillaman)

  • rbd: rbd-mirror: 在关机期间首先停止本地日志重放器 (pr#35440, Jason Dillaman, Mykola Golub)

  • rbd: rbd-mirror: 等待正在进行的启动/停止/重启 (pr#35437, Mykola Golub)

  • rgw: 添加 “rgw-orphan-list” 工具和 “radosgw-admin bucket radoslist …” (pr#34991, J. Eric Ivancich)

  • rgw: amqp: 修复 “routable” 传递模式 (pr#35433, Yuval Lifshitz)

  • rgw: 匿名 swift 到不存在的对象应该返回 401 (pr#35120, Matthew Oliver)

  • rgw: 修复 bucket listing 结束标记未正确设置的 bug (pr#34993, J. Eric Ivancich)

  • rgw: 修复 rgw 尝试获取匿名用户 (pr#34988, Or Friedmann)

  • rgw: 修复一些 list buckets 处理程序泄漏 (pr#34985, Tianshan Qu)

  • rgw: gc: 清除 bufferlist 中的紧急数据,之前 (pr#35434, Pritha Srivastava)

  • rgw: lc: 在 RGWLC 中启用线程并行性 (pr#35431, Matt Benjamin)

  • rgw: notifications: 修复通知中的零大小 (pr#34940, J. Eric Ivancich, Yuval Lifshitz)

  • rgw: notifications: 版本 ID 未在版本化的 bucket 中发送 (pr#35254, Yuval Lifshitz)

  • rgw: radosgw-admin: 修复 ‘datalog list’ 中的无限循环 (pr#34989, Casey Bodley)

  • rgw: url: 修复带有 vhost 的 amqp url (pr#35432, Yuval Lifshitz)

  • tests: 将 qa/ 迁移到 Python3 (pr#35364, Kyr Shatskyy, Ilya Dryomov, Xiubo Li, Kefu Chai, Casey Bodley, Rishabh Dave, Patrick Donnelly, Sidharth Anupkrishnan, Michael Fritch)