v12.2.10 Luminous 发布
TheAnalyst
这是 Luminous v12.2.x 长期稳定版系列的第十个错误修复版本。上一个版本 v12.2.9 引入了 PG hard-limit 补丁,发现在某些升级场景中会导致问题,因此这个版本加快发布以回退这些补丁。如果您已经成功升级到 v12.2.9,则不应升级到 v12.2.10,而应等待解决 http://tracker.ceph.com/issues/36686 中问题的版本。鼓励所有其他用户升级到此版本。
重要变更 ¶
OSD
- 此版本回退了 v12.2.9 中添加的 PG hard-limit 补丁 (https://tracker.ceph.com/issues/23979),在该版本中,在恢复或回填期间进行部分升级可能会导致上一版本的 OSD 失败并出现 assert(trim_to <= info.last_complete) 错误。运行 v12.2.9 的用户的解决方法是升级并重新启动所有 OSD 到具有 pg hard limit 的版本,或者仅在所有 PG 处于 active+clean 状态时才升级。
另请参阅:http://tracker.ceph.com/issues/36686
正如发布公告中所述,如果您已经更新到 v12.2.9,请不要升级到 v12.2.10,直到上述问题得到解决
不再需要 bluestore_cache_* 选项。它们被 osd_memory_target 取代,默认值为 4GB。BlueStore 将扩展和收缩其缓存以尝试保持在此限制内。升级的用户应注意,此默认值高于以前 bluestore_cache_size 的 1GB 默认值,因此使用 BlueStore 的 OSD 默认情况下将使用更多内存。
有关更多详细信息,请参阅 BlueStore 文档
变更日志 ¶
- ceph-volume: 添加一些 choose_disk 功能 (issue#36446, pr#24783, Erwan Velu)
- ceph-volume: 从 help 菜单中删除版本报告 (issue#36386, pr#24754, Alfredo Deza)
- ceph-volume: systemd 导入 main 以使 console_scripts 适用于可执行文件 (issue#36648, pr#24853, Alfredo Deza)
- ceph-volume: tests 安装 ceph-ansible 的 requirements.txt 依赖项 (issue#36672, pr#24960, Alfredo Deza)
- ceph-volume: util.encryption 不要将 stderr 推送到终端 (issue#36246, pr#24827, Alfredo Deza)
- ceph-volume: util.encryption 稳健地通过 blkid+lsblk 检测 lockbox (pr#24981, Alfredo Deza)
- ceph-volume: 使用 console_scripts (issue#36601, pr#24837, Mehdi Abaakouk)
- OSDMapMapping 不处理 active.size() > pool size 的情况 (issue#26866, issue#35935, pr#24432, Sage Weil)
- PG: 添加 custom_reaction Backfilled 并释放预留 (issue#24333, pr#23493, Neha Ojha)
- 回退 “PG: 添加 custom_reaction Backfilled 并在回填后释放预留” (pr#24902, Neha Ojha)
- 回退 pg log limit 更改 (issue#36686, pr#24903, Neha Ojha)
- 为 osd-scrub-repair.sh 回退和其他测试修复 (issue#35845, issue#36393, pr#24532, Xinying Song, David Zafman)
- ceph-volume tests.systemd 更新 systemd 模块的导入 (issue#36704, pr#24958, Alfredo Deza)
- ceph-volume: 为 lvm batch 添加 --prepare 标志 (issue#36363, pr#24759, Andrew Schoen)
- cls/user: cls_user_remove_bucket 写入修改后的 header (issue#36534, issue#36496, pr#24855, Casey Bodley)
- core: 如果执行深度擦除,则绕过缓存 (issue#35067, pr#24802, Xiaoguang Wang)
- crush/CrushWrapper: 修复 crush tree json dumper (issue#36149, pr#24482, Oshyn Song)
- ec: src/common/interval_map.h: 161: FAILED assert(len > 0) (issue#21931, issue#22330, pr#24582, Neha Ojha)
- gperftools-libs-2.6.1-1 或更高版本是必需的,以便在构建时链接到相应版本的二进制文件 (issue#36552, issue#23657, issue#36558, issue#36508, pr#24706, Brad Hubbard)
- osd: 将 creating 添加到 pg_string_state (issue#36174, issue#36297, pr#24602, Dan van der Ster)
- osd: 将 ‘whoami’ 转换为无符号整数,以便用作 RNG 的种子 (issue#26890, pr#24659, Kefu Chai)
- osd: 获取每个 cpu 的 loadavg 以进行 scrub 负载阈值检查 (pr#24593, kungf)
- osdc/Objecter: 连接重置时可能存在竞态条件 (issue#36183, issue#36295, pr#24574, Jason Dillaman)
- qa: 添加构建 example librados programs 的测试 (issue#36229, issue#15100, pr#24538, Nathan Cutler)
- qa/ceph-ansible: 指定 stable-3.2 分支 (issue#37331, pr#25170, Brad Hubbard)
- rgw/beast: 绑定端口后放弃权限 (issue#36041, pr#24454, Paul Emmerich)
- rgw: RGWAsyncGetBucketInstanceInfo 不访问协程内存 (issue#35812, issue#36212, pr#24507, Casey Bodley)
- rgw: 修复关闭时 curl handle 泄漏 (issue#35715, issue#36214, pr#24519, Casey Bodley)
- rgw: 启用 bucket versioning 时,list bucket 无法显示由 RGWPostObj 上传的对象 (pr#24570, yuliyang)
- rgw: multisite: 为数据完全同步强制执行 spawn_window (issue#26897, pr#24857, Casey Bodley)
- rgw: 设置默认 objecter_inflight_ops = 24576 (issue#36570, issue#25109, pr#24862, Matt Benjamin)
- rgw: 用户统计考虑 resharded buckets (pr#24854, Casey Bodley)
- BlueStore::OldExtent::create 中的 segv (issue#36526, issue#36591, pr#24746, Sage Weil)
- test/common: unittest_mclock_priority_queue 使用 “make” 命令构建 (pr#24808, J. Eric Ivancich)
v12.2.9 的更新日志 ¶
- build/ops: 添加 e2fsprogs 运行时依赖项 (pr#24663, Guillaume Abrioux, Alfredo Deza)
- build/ops: deb: 修复 ceph-mgr 留下的 .pyc 文件 (issue#26883, pr#23832, Dan Mick)
- build/ops: deb: ceph-fuse 需要 fuse (issue#21057, pr#23693, Thomas Serlin)
- build/ops: rpm: selinux-policy 修复 (pr#24136, Brad Hubbard)
- build/ops: rpm: 使用更新的 gperftools (issue#35969, pr#24259, Kefu Chai)
- ceph-volume: activate option --auto-detect-objectstore 遵循 --no-systemd (issue#36249, pr#24358, Alfredo Deza)
- ceph-volume: lsblk 可能无法找到 PARTLABEL,必须回退到 blkid (issue#36098, pr#24335, Alfredo Deza)
- ceph-volume: 添加来自 ceph-ansible 的新 ceph-handlers 角色 (issue#36251, pr#24338, Alfredo Deza)
- ceph-volume: batch 为 bluestore 划分 lvs (issue#34535, pr#24075, Alfredo Deza)
- ceph-volume: batch tests for mixed-type of devices (issue#35535, issue#27210, pr#23967, Alfredo Deza)
- ceph-volume: batch: 允许 --osds-per-device,默认为 1 (issue#35913, pr#24080, Alfredo Deza)
- ceph-volume: batch: 允许在 CLI 上调整 journal+block.db 大小 (issue#36088, pr#24209, Alfredo Deza)
- ceph-volume: 自定义集群名称在 filestore trigger 上失败 (issue#27210, pr#24280, Alfredo Deza)
- ceph-volume: 不要将 (lvm) stderr/stdout 发送到终端,使用日志文件 (issue#36492, pr#24741, Alfredo Deza)
- ceph-volume: 提前检测 --journal 和 --filestore 标志要求 (issue#24794, pr#24206, Alfredo Deza)
- ceph-volume: 修复 lvm batch --report 中的 journal 和 filestore 数据大小 (issue#36242, pr#24307, Andrew Schoen)
- ceph-volume: 修复 zap 不适用于 LVs 的问题 (issue#35970, pr#24082, Alfredo Deza)
- ceph-volume: lvm.prepare 更新帮助以指示需要分区,而不是设备 (issue#24795, pr#24451, Jeffrey Zhang, Alfredo Deza)
- ceph-volume: 使 lvm batch 幂等 (pr#24589, Andrew Schoen)
- ceph-volume: 从 help 菜单中删除版本报告 (issue#36386, pr#24754, Alfredo Deza)
- ceph-volume: 扫描系统磁盘时跳过处理不存在的设备 (issue#36247, pr#24382, Alfredo Deza)
- cephfs: MDSMonitor: 考虑提高来自 MDS 的 MMDSBeacons 的优先级,以便在其他客户端消息之前处理它们 (issue#26899, pr#23554, Patrick Donnelly)
- cephfs: MDSMonitor: 在 prepare_beacon 中查找已删除的 gid 会导致异常 (issue#35848, pr#23990, Patrick Donnelly)
- cephfs: ceph-fuse: 添加 SELinux 策略 (issue#36103, pr#24313, Patrick Donnelly)
- cephfs: ceph_volume_client: 允许原子更新 RADOS 对象 (issue#24173, pr#24084, Rishabh Dave)
- cephfs: ceph_volume_client: 将数据池添加到 MDSMap 后需要延迟 (issue#25141, pr#23726, Patrick Donnelly)
- cephfs: ceph_volume_client: py3 兼容 (issue#17230, pr#24083, Rishabh Dave, Patrick Donnelly)
- cephfs: cephfs-data-scan: 打印最大已使用 ino (issue#26925, pr#23881, “Yan, Zheng”)
- cephfs: cephfs-journal-tool: 使用了错误的布局信息 (issue#24644, pr#24033, Gu Zhongyan)
- cephfs: client: 在打印调试输出之前检查未挂载条件 (issue#25213, pr#23617, Jeff Layton)
- cephfs: client: 在尝试修剪 inode 的别名之前删除 null child dentries (issue#22293, pr#24119, “Yan, Zheng”)
- cephfs: client: 修复对执行名称查找的请求的 choose_target_mds (issue#26860, pr#23793, “Yan, Zheng”)
- cephfs: client: 在 dcache 失效失败时重试重新挂载 (issue#27657, pr#24303, Venky Shankar)
- cephfs: client: statfs inode count odd (issue#24849, pr#24376, Rishabh Dave)
- cephfs: client: 两个 ceph-fuse 客户端,一个无法列出另一个创建的文件 (issue#27051, pr#24282, Peng Xie)
- cephfs: client: 修改文件内容时更新 ctime (issue#35945, pr#24323, “Yan, Zheng”)
- common: 从容器/pod 环境获取真实主机名 (pr#23915, Sage Weil)
- core: PGPool::update 优化 (pr#23969, Zac Medico)
- core: ceph-disk: python 3 的兼容性修复 (issue#35906, pr#24347, Tim Serong)
- core: discover_all_missing() 在激活期间并非总是被调用 (issue#22837, pr#23817, Sage Weil, David Zafman)
- core: kv/KeyValueDB: 从 MergeOperator::name() 返回 const char* (issue#26875, pr#23566, Sage Weil)
- core: librados 应用程序的符号可能与 libceph-common 冲突 (issue#25154, pr#23483, Kefu Chai)
- core: mgr/MgrClient: 用锁保护 send_pgstats() (issue#23370, pr#23791, Kefu Chai)
- core: mgr/balancer: deepcopy best plan - 否则我们会得到最新的 (issue#27000, pr#23740, Stefan Priebe)
- core: mgrc: 通过 mgr_stats_threshold 禁用统计信息 (issue#25197, pr#23461, John Spray)
- core: mon/OSDMonitor: 在 cancel_report 上使 max_failed_since 失效 (issue#35860, pr#24257, xie xingguo)
- core: be_select_auth_object() 中发现的对象错误未以相同方式记录 (issue#25108, pr#23871, David Zafman)
- core: os/bluestore: bluestore_buffer_hit_bytes perf counter 不重置 (pr#23773, Igor Fedotov)
- core: os/bluestore: 缓存自动调整和内存限制 (pr#24065, Mark Nelson)
- core: osd,mon: 增加 mon_max_pg_per_osd 到 250 (issue#25112, pr#23862, Neha Ojha)
- core: osd/PG: 避免 choose_acting 选择 want > pool size items 的情况 (issue#35924, pr#24299, Sage Weil)
- core: osdc/Objecter: 修复 split vs reconnect 竞态条件 (issue#22544, pr#24188, Sage Weil)
- core: rados python bindings 使用堆栈中的 prval (issue#25175, pr#23864, Sage Weil)
- doc: 修复损坏的 url (issue#25185, pr#23621, Jos Collin)
- doc: 从 ceph(8) 中删除已弃用的 ‘scrubq’ (issue#35813, pr#24211, Ruben Kerkhof)
- doc: rgw: ldap-auth: 修复选项名称 ‘rgw_ldap_searchfilter’ (issue#23081, pr#23761, Konstantin Shalygin)
- mds: MDBalancer::try_rebalance() 可能会过早停止 (issue#26973, pr#23884, “Yan, Zheng”)
- mds: 允许客户端创建 .. 和 . dirents (issue#25113, pr#24329, Venky Shankar)
- mds: 避免在热路径中使用 g_conf->get_val<…>(…) (issue#24820, pr#23408, “Yan, Zheng”)
- mds: 通过检查自身 CPU 使用率计算负载 (issue#26834, pr#23505, “Yan, Zheng”)
- mds: 客户端驱逐的可配置超时 (issue#25188, pr#24086, Patrick Donnelly, Venky Shankar)
- mds: 在 dumping ops in flight 时崩溃 (issue#26894, pr#23677, “Yan, Zheng”)
- mds: 整理发送给 mgr 的 perf counters 的优先级 (issue#22097, issue#24004, pr#24089, Guan yunfei, Venky Shankar)
- mds: 解释由于子树迁移导致的延迟 client_request (issue#24840, pr#23678, Yan, Zheng, “Yan, Zheng”)
- mds: 慢元数据 IO 的健康警告 (issue#24879, pr#24171, “Yan, Zheng”)
- mds: 内部 op 缺少事件时间 ‘throttled’、‘all_read’、‘dispatched’ (issue#36114, pr#24410, Yanhu Cao)
- mds: mds 因为卡在 mqueue 中的 MDSBeacon 而变得 laggy (issue#23519, pr#23556, “Yan, Zheng”)
- mds: 优化执行最大导出大小的方式 (issue#25131, pr#23789, “Yan, Zheng”)
- mds: 防止 MDSRank::evict_client 阻塞 finisher 线程 (issue#35720, pr#23946, “Yan, Zheng”)
- mds: 只打印一次 is_laggy 消息 (issue#35250, pr#24138, Patrick Donnelly)
- mds: rctime 可能会回退 (issue#35916, pr#24378, “Yan, Zheng”)
- mds: 在潜在耗时的地方重置心跳映射 (issue#26858, pr#23507, Yan, Zheng, “Yan, Zheng”)
- mds: 几次重新生成后用完文件描述符 (issue#35850, pr#24310, Patrick Donnelly)
- mds: 跟踪平均会话正常运行时间 (issue#25013, pr#24421, Patrick Donnelly, Venky Shankar)
- mds: 使用单调时钟进行信标消息计时 (issue#26959, pr#24311, Patrick Donnelly)
- mgr: 同步 prometheus 模块 (pr#23216, Boris Ranto)
- mon: 自动为每个 OSD 拥有 >=100 个 PG 的新池设置 expected_num_objects (issue#24687, pr#24395, Douglas Fuller)
- msg: 当 debug_ms=0 时出现 “challenging authorizer” 消息 (issue#35251, pr#23943, Patrick Donnelly)
- msg: async: 在 dispatch 上清理本地缓冲区 (issue#35987, pr#24387, Greg Farnum)
- msg: 当 msg server 中有足够的 accepter errors 时 ceph_abort() (issue#23649, pr#24419, penglaiyxy@gmail.com)
- osd: EC: multimds suite test 中的慢/挂起操作 (issue#23769, pr#24393, Sage Weil)
- osd: ECBackend: 不要覆盖 subchunk-read 的结果代码 (issue#21769, pr#24342, songweibin)
- osd: 限制恢复/回填期间的 pg log 长度,以免内存不足 (issue#21416, pr#23211, Neha Ojha, xie xingguo)
- osd: OSDMap: 修复 apply upmap segfault (issue#22056, pr#23579, Brad Hubbard)
- osd: PG: 添加 custom_reaction Backfilled 并在 bac... 后释放预留 (issue#23614, pr#23493, Neha Ojha)
- osd: PrimaryLogPG: 修复潜在的 pg-log overtrimming (pr#24308, xie xingguo)
- osd: backport ‘bench’ 和 stdout 更改 (issue#24022, pr#23680, Коренберг Маркr, John Spray, Kefu Chai)
- osd: EC 恢复时读取 object attrs 失败 (issue#24406, pr#24327, xiaofei cui)
- osd: scrub livelock (issue#26890, pr#24396, Sage Weil)
- qa/suites/rados/upgrade/jewel-x-singleton: 排除 python3-rados, python3-cephfs (pr#24479, Neha Ojha)
- rbd: [rbd-mirror] 更新 mirror status 时断言失败 (issue#36084, pr#24320, Jason Dillaman)
- rbd: 修复当输入是 pipe 时 import 错误 (issue#34536, pr#24003, songweibin)
- rbd: librbd: 被列入黑名单的客户端可能没有注意到它失去了锁 (issue#34534, pr#24405, Song Shun, Mykola Golub, Jason Dillaman)
- rbd: librbd: discard 应该等待 in-flight cache writeback 完成 (issue#23548, pr#23594, Jason Dillaman)
- rbd: librbd: 确保在删除 sync point snaps... 时获取独占锁 (issue#24898, pr#24123, Mykola Golub, Jason Dillaman)
- rbd: librbd: 修复 rewatch 时 cookie 相同的情况下拒绝释放锁的问题 (issue#27986, pr#23758, Song Shun)
- rbd: librbd: 修复 flatten clone with zero overlap 时的断言 (issue#35702, pr#24285, Jason Dillaman)
- rbd: librbd: image create request 应验证数据池是否支持自管理快照 (issue#24675, pr#24390, Mykola Golub)
- rbd: librbd: journaling unable request 无法发送给远程锁所有者 (issue#26939, pr#24100, Mykola Golub)
- rbd: librbd: object map 被错误标记为已失效 (issue#24516, pr#24415, Jason Dillaman)
- rbd: librbd: image create request complete 时潜在的竞态条件 (issue#24910, pr#23892, Mykola Golub)
- rgw: ‘radosgw-admin sync error trim’ 只部分修剪 (issue#24873, pr#24054, Casey Bodley)
- rgw: 修复 gc_iterate_entries 的日志级别 (issue#23801, pr#23665, iliul)
- rgw: 限制单个 bucket 上的生命周期规则数量 (issue#24572, pr#23522, Zhang Shaowen)
- rgw: 对象过期生成的 delete markers 应该有 owner (issue#24568, pr#23545, Zhang Shaowen)
- rgw: abort_bucket_multiparts() 忽略单个 NoSuchUpload 错误 (issue#35986, pr#24389, Casey Bodley)
- rgw: 将默认 rgw_thread_pool_size 更改为 512 (issue#25214, issue#24544, pr#24034, Douglas Fuller, Casey Bodley)
- rgw: cls/rgw: 不要在 decode_list_index_key() 中断言 (issue#24117, pr#24391, Yehuda Sadeh)
- rgw: cls/rgw: 准备 rgw_usage_log_entry 通过 ceph-dencoder 提取 (issue#34537, pr#23974, Vaibhav Bhembre)
- rgw: 修复大于 1MiB 的 chunks 的 chunked-encoding (issue#35990, pr#24361, Robin H. Johnson)
- rgw: 修复 RGWIndexCompletionManager::stop 上的死锁 (issue#26949, pr#24069, Yao Zongyou)
- rgw: incremental data sync 使用 truncated 标志检测 listing 结束 (issue#26952, pr#24242, Casey Bodley)
- rgw: multisite: data sync error repo processing 在 empty 时不退避 (issue#26938, pr#24318, Casey Bodley)
- rgw: multisite: test_bucket_sync_disable_enable 中间歇性失败 (issue#26895, pr#24316, Casey Bodley)
- rgw: multisite: test_bucket_index_log_trim 中间歇性失败 (issue#36034, pr#24398, Casey Bodley)
- rgw: multisite: 对象元数据操作被同步跳过 (issue#24367, pr#24056, Casey Bodley)
- rgw: multisite: 将对象名称放入 ES 时应进行 url 编码 (issue#23216, pr#24424, Chang Liu)
- rgw: multisite: 同步状态标记的乱序更新 (issue#35539, pr#24317, Yehuda Sadeh)
- rgw: multisite: shutdown/realm reload 时段错误 (issue#35543, pr#24231, Casey Bodley)
- rgw: multisite: shutdown/realm reload 时更新 index segfault (issue#35905, pr#24397, Tianshan Qu)
- rgw: 提高冗余数据同步错误消息的调试级别 (issue#35830, issue#36037, pr#24135, Casey Bodley, Matt Benjamin)
- rgw: 将默认 rgw_curl_low_speed_time 提高到 300 秒 (issue#27989, pr#24046, Casey Bodley)
- rgw: resharding 产生无效的 bucket stats 值 (issue#36290, pr#24527, Abhishek Lekshmanan)
- rgw: 在 versioning suspended 的 bucket 中删除 obj 时返回 x-amz-version-id: null (issue#35814, pr#24190, yuliyang)
- rgw: rgw_file: 深度 stat 处理 (issue#24915, pr#23499, Matt Benjamin)
- tests: 从安装任务中排除 ‘python34-cephfs’ (pr#24650, Yuri Weinstein)
- tests: 使用 pids 而不是错误的 jobspecs (issue#27056, pr#23901, David Zafman)
- tests: cephfs: multifs 需要 4 个 mds,但只得到 2 个 (issue#24899, pr#24328, Patrick Donnelly)
- tests: cls_rgw 测试只在 rados suite 中运行:也将其添加到 rgw suite (issue#24815, pr#24070, Casey Bodley, Sage Weil)
- tests: librbd: 图像快照之间具有不同的父级无效 (issue#36097, pr#24245, Jason Dillaman)
- tests: 将 mds/client 配置从 teuthology ceph.conf.template 移动到 qa (issue#26900, issue#24839, pr#23877, Patrick Donnelly)
- tests: qa/tasks: s3a fix mirror (pr#24039, Vasu Kulkarni)
- tests: qa/workunits: 在 fsstress.sh 中将 ‘realpath’ 替换为 ‘readlink -f’ (issue#27211, issue#36409, pr#24620, Ilya Dryomov, Jason Dillaman)
- tests: qa: 添加 .qa helper link (pr#24134, Patrick Donnelly)
- tests: qa: 添加 v12.2.8 到组合中 (issue#35541, pr#23913, Yuri Weinstein)
- tests: 从未来版本中删除 knfs qa suite (issue#36075, pr#24268, Yuri Weinstein)
- tools: ceph-objectstore-tool: 允许目标级别作为第一个位置参数 (issue#35846, pr#24115, David Zafman)