v10.2.8 Jewel 发布
ncutler
此点版本修复了 Ceph 所有主要组件中的一些重要错误。然而,它也引入了一个可能导致 MDS 损坏的回归错误,因此发布了 v10.2.9 版本来解决这个问题。因此,Jewel 用户**不应**升级到此版本 - 相反,我们建议直接升级到 v10.2.9。
尽管如此,v10.2.8 版本说明确实包含重要信息,请继续阅读。
有关更详细的信息,请参阅完整的变更日志。
OSD 移除注意事项 ¶
Jewel 中引入了一个错误 (#19119),当使用 'osd rm' 移除一个仍然存在于 CRUSH map 中的“out”状态的 OSD 时,它会破坏映射行为。这可能导致“误导操作”和其他错误。现在此错误已修复,但修复本身也引入了相同的风险,因为客户端和 OSD 之间的行为可能不同。为避免问题,请确保在删除 OSD 之前将其从 CRUSH map 中移除。也就是说,请务必在执行以下操作之前执行:
ceph osd crush rm osd.123
before
ceph osd rm osd.123
快照修剪器改进 ¶
此版本极大地改进了快照修剪器的控制和限制。它引入了 "osd max trimming pgs" 选项(默认为 2),用于限制 OSD 上可以同时修剪快照的 PG 数量。它恢复了 "osd snap trim sleep" 选项的安全使用,该选项默认为 0,但会为每次向底层系统分派修剪操作增加给定秒数的延迟。
其他值得注意的更改 ¶
- build/ops: 如果主机在关机/重启时运行 mon + osd,则不会识别“osd marked itself down”(issue#18516, pr#13492, Boris Ranto)
- build/ops: ceph-base 包缺少 psmisc 依赖项(issue#19129, pr#13786, Nathan Cutler)
- build/ops: 在基于 rpm 的操作系统上启用 ceph-resource-agents 包的构建(issue#17613, issue#19546, pr#13606, Nathan Cutler)
- build/ops: rbdmap.service 未包含在 debian 打包中(仅限 jewel)(issue#19547, pr#14383, Ken Dreyer)
- cephfs: Journaler 可能会过早执行 on_safe contexts(issue#20055, pr#15468, “Yan, Zheng”)
- cephfs: MDS 在关闭时断言失败(issue#19204, pr#14683, John Spray)
- cephfs: MDS 在为一个数据池已被移除的文件回写回溯时变为只读(issue#19401, pr#14682, John Spray)
- cephfs: MDS 服务器因元数据不一致而崩溃(issue#19406, pr#14676, John Spray)
- cephfs: ceph mds rmfailed 0 –yes-i-really-mean-it 命令没有输出(issue#16709, pr#14674, John Spray)
- cephfs: 测试失败:test_data_isolated (tasks.cephfs.test_volume_client.TestVolumeClient)(issue#18914, pr#14685, “Yan, Zheng”)
- cephfs: 测试失败:test_open_inode(issue#18661, pr#14669, John Spray)
- cephfs: MDS 切换时挂载点断开(issue#19437, pr#14679, Guan yunfei)
- cephfs: ceph-fuse 在与 MDS 断开连接后无法恢复(issue#16743, issue#18757, pr#14698, Kefu Chai, Henrik Korkuc, Patrick Donnelly)
- cephfs: client: 修复跨配额重命名边界检查条件(issue#18699, pr#14667, Greg Farnum)
- cephfs: mds is crushed, after I set about 400 64KB xattr kv pairs to a file(issue#19033, pr#14684, Yang Honggang)
- cephfs: 非本地配额更改在完成一些 IO 之前不可见(issue#17939, pr#15466, John Spray, Nathan Cutler)
- cephfs: 内部使用的 cephfs 文件打开标志规范化(issue#18872, issue#19890, pr#15000, Jan Fajerski, “Yan, Zheng”)
- common: 使用 IPv6 公共网络创建监视器时发生段错误(issue#19371, pr#14324, Fabian Grünbichler)
- common: radosstriper: 保护 aio_write API 免受 0 字节调用的影响(issue#14609, pr#13254, Sebastien Ponce)
- core: Objecter::epoch_barrier 在 _op_submit() 中未被遵守(issue#19396, pr#14332, Ilya Dryomov)
- core: 清除磁盘上的 divergent_priors set(issue#17916, pr#14596, Greg Farnum)
- core: 改进快照修剪,启用并行性限制(issue#19241, pr#14492, Samuel Just, Greg Farnum)
- core: os/filestore/HashIndex: 对拆分发出警告(issue#18235, pr#13788, Dan van der Ster)
- core: os/filestore: 修复 clang 静态检查警告 use-after-free(issue#19311, pr#14044, liuchang0812, yaoning)
- core: transient jerasure 单元测试失败(issue#18070, issue#17762, issue#18128, issue#17951, pr#14701, Kefu Chai, Pan Liu, Loic Dachary, Jason Dillaman)
- core: omap_digest 不匹配的两个实例(issue#18533, pr#14204, Samuel Just, David Zafman)
- doc: crushtool manpage 改进(issue#19649, pr#14635, Loic Dachary, Nathan Cutler)
- doc: PendingReleaseNotes: 关于 19119 的说明(issue#19119, pr#13732, Sage Weil)
- doc: admin ops: 修复配额部分(issue#19397, pr#14654, Chu, Hua-Rong)
- doc: radosgw-admin: 将 ‘object stat’ 命令添加到用法中(issue#19013, pr#13872, Pavan Rallabhandi)
- doc: rgw S3 create bucket 不应返回 json 响应(issue#18889, pr#13874, Abhishek Lekshmanan)
- fs: MDS 返回的错误代码无效导致内核客户端 WARNING(issue#19205, pr#13831, Jan Fajerski, xie xingguo)
- librbd: librbd/Journal.h 中 ContextWQ 的不完整声明(issue#18862, pr#14152, Boris Ranto)
- librbd: C API 镜像元数据检索函数存在问题(issue#19588, pr#14666, Mykola Golub)
- librbd: 在刷新进行中时执行同步 API 操作可能导致死锁(issue#18419, pr#13154, Jason Dillaman)
- librbd: is_exclusive_lock_owner API 应该 ping OSD(issue#19287, pr#14481, Jason Dillaman)
- librbd: 移除镜像头锁断言(issue#18244, pr#13809, Jason Dillaman)
- mds: C_MDSInternalNoop::complete 没有释放自身(issue#19501, pr#14677, “Yan, Zheng”)
- mds: 尝试探测大文件时 stat 操作过多(issue#19955, pr#15472, “Yan, Zheng”)
- mds: 避免在 StrayManager::_purge_stray_logged 中重复使用已删除的 inode(issue#18877, pr#14670, Zhi Zhang)
- mds: 在会话 ino 信息损坏时启用启动(issue#19708, issue#16842, pr#14700, John Spray)
- mds: fragment space check 可能导致重放请求失败(issue#18660, pr#14668, “Yan, Zheng”)
- mds: 在重新加入期间心跳超时,当处理大量 caps/inodes 时(issue#19118, pr#14672, John Spray)
- mds: 在向客户端发送回复时发出新 caps(issue#19635, pr#15438, “Yan, Zheng”)
- mon: OSDMonitor: 使 'osd crush move ...' 适用于 osds(issue#18587, pr#13261, Sage Weil)
- mon: 修复 jewel 上的 'sortbitwise' 警告(issue#20578, pr#15208, huanwen ren, Sage Weil)
- mon: 使 get_mon_log_message() 成为原子操作(issue#19427, pr#14587, Kefu Chai)
- mon: 移除错误的 rocksdb 选项(issue#19392, pr#14236, Sage Weil)
- msg: IPv6 心跳包未标记 DSCP QoS - 简单信使(issue#18887, pr#13450, Yan Jun, Robin H. Johnson)
- msg: 设置 close on exec 标志(issue#16390, pr#13585, Kefu Chai)
- osd: –flush-journal: 退出时偶尔发生段错误(issue#18820, pr#13477, Alexey Sheplyakov)
- osd: 给予请求的 scrub 更高的优先级(issue#15789, pr#14686, David Zafman)
- osd: 实现异步 scrub sleep(issue#19986, issue#19497, pr#15529, Brad Hubbard)
- osd: 如果没有可用的权限,则跟踪并使用对象级别分片错误(issue#20089, pr#15416, David Zafman)
- osd: ReplicatedPG: 如果未找到 hitset archive,则使用 pool 的 use-gmt 设置(issue#19185, pr#13827, Kefu Chai)
- osd: 允许客户端限制器动态调整,无需重启(issue#18791, pr#13214, Piotr Dałek)
- osd: osd full 时绕过只读操作(issue#19394, pr#14181, Jianpeng Ma, yaoning)
- osd: degraded 和 misplaced 状态输出不准确(issue#18619, pr#14325, David Zafman)
- osd: 设置 full 标志时新添加的 OSD 总是 down(issue#15025, pr#14326, Mingxin Liu)
- osd: pg_pool_t::encode(): 与 Hammer <= 0.94.6 兼容(issue#19508, pr#14392, Alexey Sheplyakov)
- osd: pre-jewel “osd rm” incremental 被错误解释(issue#19119, pr#13884, Ilya Dryomov)
- osd: 在恢复期间保留 allocation hint 属性(issue#19083, pr#13647, yaoning)
- osd: promote throttle 参数被颠倒(issue#19773, pr#14791, Mark Nelson)
- osd: 在 pg log split 时正确地重新索引(issue#18975, pr#14047, Alexey Sheplyakov)
- osd: 在恢复完成时将 want_acting 限制为 up+acting(issue#18929, pr#13541, Sage Weil)
- rbd-nbd: 检查 /sys/block/nbdX/size 以确保内核正确映射(issue#18335, pr#13932, Mykola Golub, Alexey Sheplyakov)
- rbd: [api] 暂时限制 (rbd_)mirror_peer_add 添加多个对等体(issue#19256, pr#14664, Jason Dillaman)
- rbd: qemu 因网络问题触发崩溃(issue#18436, pr#13244, Jason Dillaman)
- rbd: rbd –pool=x rename y z 不起作用(issue#18326, pr#14148, Gaurav Kumar Garg)
- rbd: systemctl stop rbdmap 取消映射所有 rbd,而不仅仅是 /etc/ceph/rbdmap 中的那些(issue#18884, issue#18262, pr#14083, David Disseldorp, Nathan Cutler)
- rgw: "cluster [WRN] bad locator @X on object @X...." 出现在集群日志中(issue#18980, pr#14064, Casey Bodley)
- rgw: 非 master zonegroup 的 master zone 上的 'radosgw-admin sync status'(issue#18091, pr#13779, Jing Wenjun)
- rgw: 将 'System already converted' 消息的日志级别更改为 20(issue#18919, pr#13834, Vikhyat Umrao)
- rgw: 在验证 TempURL 时使用解码后的 URI(issue#18590, pr#13724, Alexey Sheplyakov)
- rgw: rgw_obj 初始化不正确的几种情况(issue#19096, pr#13842, Yehuda Sadeh)
- rgw: 添加 api 以支持 ragweed suite(issue#19804, pr#14851, Yehuda Sadeh)
- rgw: 将 bucket 大小限制检查添加到 radosgw-admin(issue#17925, pr#14787, Matt Benjamin)
- rgw: 允许系统用户读取 SLO parts(issue#19027, pr#14752, Casey Bodley)
- rgw: 不在预签名 url 中返回 skew time(issue#18828, issue#18829, pr#14605, liuchang0812)
- rgw: 从 admin rest api 创建 s3 类型子用户失败(issue#16682, pr#14815, snakeAngel2015)
- rgw: 修复 RGWFetchAllMetaCR 中 yield 内部的 break(issue#17655, pr#14066, Casey Bodley)
- rgw: 修复如果非 master zonegroup 只有一个 zone 则无法创建 bucket 的问题(issue#19756, pr#14766, weiqiaomiao)
- rgw: health check 错误地报错(issue#19025, pr#13865, Pavan Rallabhandi)
- rgw: list_plain_entries() 在 bi_log entries 之前停止(issue#19876, pr#15383, Casey Bodley)
- rgw: multisite: 从远程复制时 fetch_remote_obj() 获取错误版本(issue#19599, pr#14607, Zhang Shaowen, Casey Bodley)
- rgw: multisite: RGWMetaSyncShardCR::full_sync() 中的一些 yield 在 incremental_sync() 中恢复(issue#18076, pr#13837, Casey Bodley, Abhishek Lekshmanan)
- rgw: 仅在不为空时将 zonegroups 追加到 rest params(issue#20078, pr#15312, Yehuda Sadeh, Karol Mroz)
- rgw: pullup civet chunked(issue#19736, pr#14776, Matt Benjamin)
- rgw: rgw_file: 修复事件过期检查,不要使正在读取的目录过期(issue#19623, issue#19270, issue#19625, issue#19624, issue#19634, issue#19435, pr#14653, Gui Hecheng, Matt Benjamin)
- rgw: swift: 在某些情况下禁用撤销线程(issue#19499, issue#9493, pr#14789, Marcus Watts)
- rgw: swift 容器 acl 不支持字段 .ref(issue#18484, pr#13833, Jing Wenjun)
- rgw: rgw_admin.cc 中的拼写错误(issue#19026, pr#13863, Ronak Jain)
- rgw: RGWListBucket_ObjStore_SWIFT::send_response() 中的不安全访问(issue#19249, pr#14661, Yehuda Sadeh)
- rgw: 如果存在没有 zone info 的 zone,升级到 multisite v2 失败(issue#19231, pr#14136, Danny Al-Gaaf, Orit Wasserman)
- rgw: 对 read_sync_status 使用单独的 http_manager(issue#19236, pr#14195, Casey Bodley, Shasha Lu)
- rgw: 转换 region_map 时需要使用 rgw_zone_root_pool(issue#19195, pr#14143, Orit Wasserman)
- rgw: zonegroupmap set 不起作用(issue#19498, issue#18725, pr#14660, Orit Wasserman, Casey Bodley)
- rgw: 修复 data/md sync 中的内存泄漏(issue#20088, pr#15382, weiqiaomiao)
- tests: 'ceph auth import -i' 覆盖 caps,应在覆盖前提醒用户(issue#18932, pr#13544, Vikhyat Umrao)
- tests: #19508 的新升级测试(issue#19829, issue#19508, pr#14930, Nathan Cutler)
- tests: [ FAILED ] TestLibRBD.ImagePollIO in upgrade:client-upgrade-kraken-distro-basic-smithi(issue#18617, pr#13107, Jason Dillaman)
- tests: [librados_test_stub] cls_cxx_map_get_XYZ 方法不返回正确的值(issue#19597, pr#14665, Jason Dillaman)
- tests: 额外的 rbd-mirror 测试稳定性改进(issue#18935, pr#14154, Jason Dillaman)
- tests: api_misc: [ FAILED ] LibRadosMiscConnectFailure.ConnectFailure(issue#15368, pr#14763, Sage Weil)
- tests: test LibCephFS.DirLs 中的缓冲区溢出(issue#18941, pr#14671, “Yan, Zheng”)
- tests: 使用任务指定的 branch 克隆 workunit(issue#19429, pr#14371, Kefu Chai, Dan Mick)
- tests: 删除 upgrade/hammer-jewel-x(issue#20574, pr#15933, Nathan Cutler)
- tests: dummy suite 在 OpenStack 中失败(issue#18259, pr#14070, Nathan Cutler)
- tests: 消除 Thrasher 构造函数中的竞争条件(issue#18799, pr#13608, Nathan Cutler)
- tests: 为 pre-luminous 配额测试启用配额(issue#20412, pr#15936, Patrick Donnelly)
- tests: 修复 yaml 注释中的疏忽(issue#20581, pr#14449, Nathan Cutler)
- tests: 将 swift.py 任务从 teuthology 移动到 ceph,第一阶段(jewel)(issue#20392, pr#15870, Nathan Cutler, Sage Weil, Warren Usui, Greg Farnum, Ali Maredia, Tommi Virtanen, Zack Cerza, Sam Lang, Yehuda Sadeh, Joe Buck, Josh Durgin)
- tests: qa/Fixed upgrade sequence to 10.2.0 -> 10.2.7 -> latest -x (10.2.8)(issue#20572, pr#16089, Yuri Weinstein)
- tests: qa/suites/upgrade/hammer-x: 为 jewel 集群设置 "sortbitwise"(issue#20342, pr#15842, Nathan Cutler)
- tests: qa/workunits/rados/test-upgrade-*: master 的白名单测试(第 1 部分)(issue#20577, pr#15360, Sage Weil)
- tests: qa/workunits/rados/test-upgrade-*: master 的白名单测试(第 2 部分)(issue#20576, pr#15778, Kefu Chai)
- tests: qa/workunits/rados/test-upgrade-*: 以正确的方式对测试进行白名单(issue#20575, pr#15824, Kefu Chai)
- tests: rados: 在重启后 ceph tell osd.0 flush_pg_stats 之前 sleep(issue#16239, issue#20489, pr#14710, Kefu Chai, Nathan Cutler)
- tests: 在最新的 CentOS 7.3 上运行 upgrade/client-upgrade(issue#20573, pr#16088, Nathan Cutler)
- tests: run-rbd-unit-tests.sh assert in lockdep_will_lock, TestLibRBD.ObjectMapConsistentSnap(issue#17447, pr#14150, Jason Dillaman)
- tests: systemd test backport to jewel(issue#19717, pr#14694, Vasu Kulkarni)
- tests: test/librados/tmap_migrate: g_ceph_context->put() upon return(issue#20579, pr#14809, Kefu Chai)
- tests: test_notify.py: rbd.InvalidArgument: error updating features for image test_notify_clone2(issue#19692, pr#14680, Jason Dillaman)
- tests: upgrade/hammer-x failing with OSD has the store locked when Thrasher runs ceph-objectstore-tool on down PG(issue#19556, pr#14416, Nathan Cutler)
- tests: upgrade:hammer-x/stress-split-erasure-code-x86_64 fails in 10.2.8 integration testing(issue#20413, pr#15904, Nathan Cutler)
- tools: brag 无法计算 "in" mds(issue#19192, pr#14112, Oleh Prypin, Peng Zhang)
- tools: ceph-disk 不支持与 'ceph' 不同的集群名称(issue#17821, pr#14765, Loic Dachary)
- tools: ceph-disk: 分区创建和设备节点创建之间的竞争条件(issue#19428, pr#14329, Erwan Velu)
- tools: ceph-disk: bluestore –setgroup incorrectly set with user(issue#18955, pr#13489, craigchi)
- tools: ceph-disk: ceph-disk list 报告 OSD 挂载错误,因为挂载选项带有 SELinux 上下文(issue#17331, pr#14402, Brad Hubbard)
- tools: ceph-disk: 不要在 trigger 上 setup_statedir(issue#19941, pr#15504, Loic Dachary)
- tools: ceph-disk: 在启动时启用目录支持的 OSD(issue#19628, pr#14602, Loic Dachary)
- tools: rados: RadosImport::import 应在 Rados::connect 失败时返回错误(issue#19319, pr#14113, Brad Hubbard)