v12.2.8 发布
TheAnalyst
我们很高兴地宣布 Luminous v12.2.X 稳定版系列的下一个小版本发布。此版本包含 Ceph 所有组件的一系列错误修复和稳定性改进。我们感谢所有为本次发布做出贡献的人。
从以前的 Luminous 版本升级的注意事项 ¶
从 v12.2.5 或 v12.2.6 升级时,请注意 12.2.5 的升级注意事项将适用于所有_更新_的 Luminous 版本,包括 12.2.8。请阅读12.2.7 上的升级注意事项
对于安装了损坏的 12.2.6 版本的集群,12.2.7 修复了回归并引入了一个临时选项 `osd distrust data digest = true`,但 12.2.7 集群仍然会生成健康警告,例如:
[ERR] 11.288 shard 207: soid 11:1155c332:::rbd_data.207dce238e1f29.0000000000000527:head data_digest 0xc8997a5b != data_digest 0x2ca15853
12.2.8 改进了深度擦洗代码,可以自动修复这些不一致性。一旦整个集群升级并完全深度擦洗,并且所有此类不一致性都得到解决,就可以安全地禁用 `osd distrust data digest = true` 临时选项。
更新日志 ¶
- bluestore: 为已存在的 Collection 正确设置 shard (issue#24761, pr#22860, Jianpeng Ma)
- build/ops: 编译和链接示例 librados 程序不再需要 Boost system 库 (issue#25054, pr#23202, Nathan Cutler)
- build/ops: 为非 FreeBSD 带回 diff -y (issue#24396, issue#21664, pr#22848, Sage Weil, David Zafman)
- build/ops: install-deps.sh 在最新的 openSUSE Leap 上失败 (issue#25064, pr#23179, Kyr Shatskyy)
- build/ops: Mimic build 在 -DWITH_RADOSGW=0 时失败 (issue#24437, pr#22864, Dan Mick)
- build/ops: 将 rbdmap.service 放在 remote-fs-pre.target 之前排序 (issue#24713, pr#22844, Ilya Dryomov)
- build/ops: rpm: 隐藏 osd block chown (issue#25152, pr#23313, Dan van der Ster)
- cephfs-journal-tool: 导入零长度日志时修复清除问题 (issue#24239, pr#22980, yupeng chen, zhongyan gu)
- cephfs: MDSMonitor: 未提交状态暴露给客户端/mdss (issue#23768, pr#23013, Patrick Donnelly)
- ceph-fuse 挂载失败,因为没有 mds (issue#22205, pr#22895, liyan)
- ceph-volume: 添加 __release__ 字符串,以帮助版本条件调用 (issue#25170, pr#23331, Alfredo Deza)
- ceph-volume: 为 ceph-volume lvm list /dev/sda 添加测试 (issue#24784, issue#24957, pr#23350, Andrew Schoen)
- ceph-volume: 在 luminous 中不使用 stdin (issue#25173, issue#23260, pr#23367, Alfredo Deza)
- ceph-volume: 在 lvm 激活期间启用 ceph-osd (issue#24152, pr#23394, Dan van der Ster, Alfredo Deza)
- ceph-volume: 扩展 LVM API 以创建不同大小的多个 LV (issue#24020, pr#23395, Alfredo Deza)
- ceph-volume lvm.activate conditional mon-config on prime-osd-dir (issue#25216, pr#23397, Alfredo Deza)
- ceph-volume lvm.batch 移除不存在的 sys_api 属性 (issue#34310, pr#23811, Alfredo Deza)
- ceph-volume lvm.listing 仅包含存在的设备 (issue#24952, pr#23150, Alfredo Deza)
- ceph-volume: process.call with stdin in Python 3 fix (issue#24993, pr#23238, Alfredo Deza)
- ceph-volume: PVolumes.get() 使用 name 或 uuid 时应返回一个 PV (issue#24784, pr#23329, Andrew Schoen)
- ceph-volume: 拒绝 zap mapper 设备 (issue#24504, pr#23374, Andrew Schoen)
- ceph-volume: tests.functional 从 ansible 继承 SSH_ARGS (issue#34311, pr#23813, Alfredo Deza)
- ceph-volume tests/functional 在 OSD provisioning 后运行 lvm list (issue#24961, pr#23147, Alfredo Deza)
- ceph-volume: 在 zapping 前正确卸载 lvs (issue#24796, pr#23128, Andrew Schoen)
- ceph-volume: 更新 batch 文档以解释 filestore 策略 (issue#34309, pr#23825, Alfredo Deza)
- 更改默认 filestore_merge_threshold 为 -10 (issue#24686, pr#22814, Douglas Fuller)
- client: 将 inst 添加到 asok status 输出 (issue#24724, pr#23107, Patrick Donnelly)
- client: 修复 NFS FASL 中 ceph_ll_lookup_inode() 的并行调用 (issue#22683, pr#23012, huanwen ren)
- client: 增加 helper 方法中日志消息的详细程度 (issue#21014, pr#23014, Rishabh Dave)
- client: 根据已发布的 caps 更新 inode 字段 (issue#24269, pr#22783, “Yan, Zheng”)
- common: qa/standalone/erasure-code/test-erasure-eio.sh 期间 OSDMap::decode() 中中止 (issue#23492, pr#23025, Sage Weil)
- common/DecayCounter: 在解码衰减计数器时将 last_decay 设置为当前时间 (issue#24440, pr#22779, Zhi Zhang)
- doc: ceph-bluestore-tool manpage 未正确渲染 (issue#24800, pr#23177, Nathan Cutler)
- filestore: 在 filestore pg dir split log message 中添加 pgid (issue#24878, pr#23454, Vikhyat Umrao)
- 让 “ceph status” 在打印非大小数字时使用基数 10 (issue#22095, pr#22680, Jan Fajerski, Kefu Chai)
- librados: 修复 aio_exec python binding 的缓冲区溢出 (issue#23964, pr#22708, Aleksei Gutikov)
- librbd: 强制进行 'invalid object map' 标志的磁盘更新 (issue#24434, pr#22753, Mykola Golub)
- librbd: 移除镜像时利用 journal disabled 策略 (issue#23512, pr#23595, Jason Dillaman)
- mds: 不报告阻塞文件锁请求的慢速请求 (issue#22428, pr#22782, “Yan, Zheng”)
- mds: 在重新生成时转储最近的事件 (issue#24853, pr#23213, Patrick Donnelly)
- mds: 处理不连续的 mdsmap (issue#24856, pr#23169, “Yan, Zheng”)
- mds: 增加 dropped client cap msg 的调试级别 (issue#24855, pr#23214, Patrick Donnelly)
- mds: 由于 dirfrags 遍历导致 wrlock 效率低下 (issue#24467, pr#22885, Xuehan Xu)
- mds: 在低调试级别打印已处理的 mdsmap (issue#24852, pr#23212, Patrick Donnelly)
- mds: scrub 并不总是返回 JSON 结果 (issue#23958, pr#23222, Venky Shankar)
- mds: 在 shutdown_pass 中取消设置已删除的变量 (issue#23766, pr#23015, Patrick Donnelly)
- mgr: 为性能计数器添加单位 (issue#22747, pr#23266, Ernesto Puerta, Rubab Syed)
- mgr: ceph osd safe-to-destroy 导致 mgr 崩溃 (issue#23249, pr#22806, Sage Weil)
- mgr/MgrClient: 保护 daemon_health_metrics (issue#23352, pr#23459, Kjetil Joergensen, Brad Hubbard)
- mon: 添加选项以在 'ceph features' 输出中查看客户端的 IP 地址 (issue#21315, pr#22773, Paul Emmerich)
- mon/HealthMonitor: 不向 pre-luminous mon 发送 MMonHealthChecks (issue#24481, pr#22655, Sage Weil)
- os/bluestore: 修复 flush_commit 锁定 (issue#21480, pr#22904, Sage Weil)
- os/bluestore: 修复压缩时不完整的故障范围标记 (issue#21480, pr#22909, Igor Fedotov)
- os/bluestore: 修复 ~SharedBlob 中 SharedBlob::coll 上的竞争 (issue#24859, pr#23064, Radoslaw Zarzynski)
- osdc: 修复错误的 BufferHead 偏移量 (issue#24484, pr#22865, dongdong tao)
- osd: do_sparse_read(): 提前验证校验和,以便我们尝试修复并错过反向移植 (issue#24875, pr#23379, xie xingguo, David Zafman)
- osd: PG 永远卡在 'unfound_recovery' 中 (issue#24373, pr#22546, Sage Weil)
- osd: 在恢复时可能获取空信息 (issue#24588, pr#22862, Sage Weil)
- osd/OSDMap: CRUSH_TUNABLES5 在 jewel 中添加,而不是 kraken (issue#25057, pr#23227, Sage Weil)
- osd/Session: 修复 Sessoin::have_backoff() 中无效的迭代器解引用 (issue#24486, pr#22729, Sage Weil)
- pjd: cd: 参数过多 (issue#24307, pr#22883, Neha Ojha)
- PurgeQueue 有时忽略 Journaler 错误 (issue#24533, pr#22811, John Spray)
- pybind: pybind/mgr/mgr_module: 使 rados handle 可用于所有模块 (issue#24788, issue#25102, pr#23235, Ernesto Puerta, Sage Weil)
- pybind: Python bindings 使用的 iteritems 方法与 Python 3 不兼容 (issue#24779, pr#22918, Nathan Cutler, Kefu Chai)
- pybind: rados.pyx: 使所有异常接受关键字参数 (issue#24033, pr#22979, Rishabh Dave)
- rbd: 修复 IEC 单位处理中的问题 (issue#26927, issue#26928, pr#23776, Jason Dillaman)
- 重复驱逐空闲客户端直到发生一些 IO (issue#24052, pr#22780, “Yan, Zheng”)
- rgw: 添加 curl_low_speed_limit 和 curl_low_speed_time 配置以避免线程在数据同步中挂起 (issue#25019, pr#23144, Mark Kogan, Zhang Shaowen)
- rgw: 为 cls bi list command 添加单元测试 (issue#24483, pr#22846, Orit Wasserman, Xinying Song)
- rgw: 在 RGWPutObj::execute 中不忽略 EEXIST (issue#22790, pr#23207, Matt Benjamin)
- rgw: 从 crash luminous backport 恢复索引失败 (issue#24640, issue#24280, pr#23130, Tianshan Qu)
- rgw: 修复 gc 可能导致大量读取流量的问题 (issue#24767, pr#22984, Xin Liao)
- rgw: 修复 radowgw-admin zonegroup set requires realm 的 bug (issue#21583, pr#22767, lvshanchun)
- rgw: 具有可配置的身份验证顺序 (issue#23089, pr#23501, Abhishek Lekshmanan)
- rgw: index complete miss zones_trace set (issue#24590, pr#22820, Tianshan Qu)
- rgw: Invalid Access-Control-Request-Request 可能绕过 validate_cors_rule_method (issue#24223, pr#22934, Jeegn Chen)
- rgw: meta and data notify thread miss stop cr manager (issue#24589, pr#22822, Tianshan Qu)
- rgw-multisite: RGWBucketShardIncrementalSyncCR 中的无限循环 (issue#24603, pr#22817, cfanz)
- rgw luminous 12.2.4 的性能回归 (issue#23379, pr#22930, Mark Kogan)
- rgw: radogw-admin reshard status command should print text for reshar… (issue#23257, pr#23019, Orit Wasserman)
- rgw: “radosgw-admin objects expire” 即使 pro… 也总是返回 ok (issue#24592, pr#23000, Zhang Shaowen)
- rgw: 运行 radosgw-admin orphans find 需要 –yes-i-really-mean-it (issue#24146, pr#22985, Matt Benjamin)
- rgw: REST admin metadata API 分页失败 bucket & bucket.instance: InvalidArgument (issue#23099, pr#22932, Matt Benjamin)
- rgw: 如果 aio_read err 在 RGWCloneMetaLogCoroutine 中返回,则设置 cr 状态 (issue#24566, pr#22942, Tianshan Qu)
- spdk: 修复激活 SPDK 时 ceph-osd 崩溃 (issue#24371, pr#22686, tone-zhang)
- tools/ceph-objectstore-tool: 离线将 filestore 目录拆分为目标哈希级别 (issue#21366, pr#23418, Zhi Zhang)