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 文档

变更日志

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)