v0.94.10 Hammer 发布
此 Hammer 版本点更新修复了多个错误并添加了两个新功能。
我们建议所有 Hammer v0.94.x 用户升级。
请注意,Hammer 将在今年春季晚些时候 Luminous 发布时退役。在此之前,重点将主要放在阻碍升级到 Jewel 的错误上。
有关更详细的信息,请参阅完整的更改日志。
新功能
ceph-objectstore-tool 和 ceph-monstore-tool 现在允许用户从 OSD 重建监控器数据库。(当所有监控器由于 leveldb 损坏而无法启动时,此功能特别有用。)
在 RADOS Gateway 中,现在可以使用离线工具对现有存储桶的索引进行重新分片。
用法
$ radosgw-admin bucket reshard --bucket=<bucket_name> --num_shards=<num_shards>
这将创建一个指向新创建的索引对象的新链接存储桶实例。旧的存储桶实例仍然存在,目前需要用户手动删除旧的存储桶索引对象。(请注意,存储桶重新分片目前要求对特定存储桶的所有 IO(尤其是写入)都处于静止状态。)
其他值得注意的更改
build/ops: ceph-create-keys 永久循环 (issue#17753, pr#12805, Alfredo Deza)
build/ops: 改进 ceph.in 错误消息 (issue#11101, pr#10905, Kefu Chai)
build/ops: 使 stop.sh 更具可移植性 (issue#16918, pr#10569, Mykola Golub)
build/ops: 从 initscript 中删除 SYSTEMD_RUN (issue#16440, issue#7627, pr#9873, Vladislav Odintsov)
cephx: 修复由于尝试加密或解密导致的多个段错误 (issue#16266, pr#11930, Brad Hubbard)
common: 在 TrackedOp::dump() 中通过 dump_ops_in_flight() 发生 SIGABRT (issue#8885, pr#12121, Jianpeng Ma, Zhiqiang Wang, David Zafman)
common: os/ObjectStore: 修复 split dest_cid 的 _update_op (issue#15345, pr#12071, Sage Weil)
crush: 移除树项目时重置 bucket->h.items[i] (issue#16525, pr#10724, Kefu Chai)
doc: 添加“升级到 Hammer”部分 (issue#17386, pr#11372, Kefu Chai)
doc: 将 orphan 选项添加到 radosgw-admin --help 和 man 页面 (issue#17281, issue#17280, pr#11140, Abhishek Lekshmanan, Casey Bodley, Ken Dreyer, Thomas Serlin)
doc: 澄清支持 RGW 存储桶对象版本控制 (issue#16574, pr#10437, Yuan Zhou, shawn chen)
librados: 错误的标志可能会导致 osd 崩溃 (issue#16012, pr#11936, Jianpeng Ma, Sage Weil)
librbd: ceph 10.2.2 rbd status on image format 2 returns "(2) No such file or directory" (issue#16887, pr#10987, Jason Dillaman)
librbd: 对克隆的第一个快照进行 diff 应该包含父 diff (issue#18068, pr#12446, Jason Dillaman)
librbd: librbdpy 中的 image.stat() 调用有时会失败 (issue#17310, pr#11949, Jason Dillaman)
librbd: 如果当前所有者无法执行操作,则请求排他锁 (issue#16171, pr#12018, Mykola Golub)
mds: 修复 cephfs-java ftruncate 单元测试失败 (issue#11258, pr#11939, Yan, Zheng)
mon: ceph df 的 %USED 不正确 (issue#16933, pr#11934, Kefu Chai)
mon: MonmapMonitor 在移除 MON 时应返回成功 (issue#17725, pr#12006, Joao Eduardo Luis)
mon: OSDMonitor: 缺少 nearfull 标志集 (issue#17390, pr#11273, Igor Podoski)
mon: 监控器故障转移后 OSD 被错误地标记为 OUT (issue#17719, pr#11946, Dong Wu)
mon: 修复 prepare_beacon 中的内存泄漏 (issue#17285, pr#10238, Igor Podoski)
mon: osd 标志健康消息具有误导性 (issue#18175, pr#12687, Sage Weil)
mon: prepare_pgtemp 仅当 up_thru 新于现有值时才需要更新它 (issue#16185, pr#11937, Samuel Just)
mon: 从 MonitorDBStore::Transaction::size() 返回 size_t (issue#14217, pr#10904, Kefu Chai)
mon: 向订阅者发送更新的 monmap (issue#17558, pr#11457, Kefu Chai)
msgr: OpTracker 需要在 _unregistered 中释放消息限制 (issue#14248, pr#11938, Samuel Just)
msgr: simple/Pipe: 解码 addr 错误 (issue#18072, pr#12266, Sage Weil)
osd: PG::_update_calc_stats 对于 CRUSH_ITEM_NONE up set items 不正确 (issue#16998, pr#11933, Samuel Just)
osd: PG::choose_acting valgrind 错误或 ./common/hobject.h: 182: FAILED assert(!max || (*this == hobject_t(hobject_t::get_max()))) (issue#13967, pr#11932, Tao Chang)
osd: ReplicatedBackend::build_push_op: 添加第二个配置以独立于对象数据限制 omap 条目/块 (issue#16128, pr#12417, Wanlong Gao)
osd: 深度清理期间 EIO 崩溃 (issue#16034, pr#11935, Nathan Cutler)
osd: filestore: FALLOC_FL_PUNCH_HOLE 必须与 FALLOC_FL_KEEP_SIZE 一起使用 (issue#18446, pr#13041, xinxin shu)
osd: 修复 map gap 后 PGPool::update 中的 cached_removed_snaps 错误 (issue#18628, issue#15943, pr#12906, Samuel Just)
osd: 修复 collection_list shadow 返回值 (issue#17713, pr#11927, Haomai Wang)
osd: 修复 xfs 中 #extents > 1364 时的 fiemap 问题 (issue#17610, pr#11615, Kefu Chai, Ning Yao)
osd: 更新 PGPool 以检测 map gap 并重置 cached_removed_snaps (issue#15943, pr#11676, Samuel Just)
rbd: export diff 应该以只读方式打开镜像 (issue#17671, pr#11948, liyankun)
rbd: 修复参数检查 (issue#18237, pr#12312, Yankun Li)
rbd: 修复可能的 rbd 数据损坏 (issue#16002, pr#11618, Yan, Zheng, Greg Farnum)
rgw: 匿名用户可以读取具有经过身份验证的读取 ACL 的存储桶 (issue#13207, pr#11045, rahul.1aggarwal@gmail.com)
rgw: 在 dumpling 下上传的多部分文件被 COPY 破坏 (issue#16435, pr#11950, Yehuda Sadeh)
rgw: radosgw 中的 TempURL 现在表现得像它的 Swift 对应物。 (issue#18316, pr#12619, Radoslaw Zarzynski)
rgw: 默认配额修复 (issue#16410, pr#10839, Pavan Rallabhandi, Daniel Gryniewicz)
rgw: 接受带有短源的 CORS 请求时不要中止 (issue#18187, pr#12398, LiuYang)
rgw: 不要使用 (u64)-1 max 进行 omap_getvals (issue#17985, pr#12418, Yehuda Sadeh, Sage Weil)
rgw: 修复客户端使用 null condition 发布对象时崩溃的问题 (issue#17635, pr#11809, Yehuda Sadeh)
rgw: 修复 radosgw-admin 中 uid/email 处理不一致的问题 (issue#13598, pr#11952, Matt Benjamin)
rgw: 实现离线重新分片命令 (issue#17745, pr#12227, Yehuda Sadeh, Orit Wasserman, weiqiaomiao)
rgw: swift: 对 DLO 的范围请求在 Content-Range HTTP 标头中提供错误的值 (issue#13452, pr#11951, Radoslaw Zarzynski)
rgw: 'radosgw-admin log show' opt 结果中的 total_time 值不正确 (issue#17598, pr#11899, weiqiaomiao)
tests: 无法克隆 ceph/s3-tests.git(缺少分支) (issue#18384, pr#12744, Orit Wasserman)
tests: 无法预留 CentOS 7.2 smithi 机器 (issue#18401, pr#12762, Nathan Cutler)
tests: 在 btrfs 上进行测试时,rbd 套件中的 OSD 自杀 (issue#18397, pr#12758, Nathan Cutler)
tests: Workunits 不必要地从 git.ceph.com wget (issue#18336, issue#18271, issue#18388, pr#12685, Sage Weil, Nathan Cutler)
tests: cephfs 测试失败(ceph.com/qa 已损坏,应为 download.ceph.com/qa) (issue#18574, pr#13022, John Spray)
tests: 合并 ceph-qa-suite (pr#12455, Sage Weil)
tests: objecter_requests workunit 在 wip 分支上失败 (issue#18393, pr#12759, Sage Weil)
tests: 在 qa/tasks/ceph.py 中填充 mnt_point (issue#18383, pr#12743, Nathan Cutler)
tests: qemu/tests/qemu-iotests/077 在 dumpling、hammer 和 jewel 中失败 (issue#10773, pr#12423, Jason Dillaman)
tests: 在 xfs 而不是 btrfs 上运行 fs/thrash (issue#17151, pr#13039, Nathan Cutler)
tests: ceph.com 重构后更新 Ubuntu 镜像 URL (issue#18542, pr#12957, Jason Dillaman)
tests: 更新 rbd/singleton/all/formatted-output.yaml 以支持 ceph-ci * (issue#18440, pr#12824 *, Venky Shankar, Nathan Cutler)
tools: 添加一个工具来从 OSD 重建 mon store (issue#17179, issue#17400, pr#11125, Kefu Chai, xie xingguo)
tools: 如果 --journal-path,ceph-objectstore-tool 崩溃
(issue#17307, pr#11929, Kefu Chai) tools: ceph-objectstore-tool: 添加一种离线拆分 filestore 目录的方法 (issue#17220, pr#11253, Josh Durgin)
tools: crushtool --compile 在缺少项目时生成输出 (issue#17306, pr#11931, Kefu Chai)