v10.0.3 发布

sage

这是 Jewel 的第四个开发版本。此版本中添加了几个重要的部分,包括 BlueStore(取代 FileStore 的新 OSD 后端)、许多 ceph-disk 修复程序、一个提高映射稳定性的新 CRUSH 可调参数、一个新的 librados 对象枚举 API,以及大量的 OSD 和 RADOS 优化。

请注意,由于开发人员普遍忙碌,我们没有为此开发版本构建官方发布包。您可以从常规位置(http://gitbuilder.ceph.com)获取自动构建的 gitbuilder 包。

值得注意的更改

  • bluestore: 最新和最棒的 (issue#14210, issue#13801, pr#6896, xie.xingguo, Jianpeng Ma, YiQiang Chen, Sage Weil, Ning Yao)
  • buffer: 修复重建时的内部迭代器失效问题, get_contiguous (pr#6962, Sage Weil)
  • build: 修复一些警告 (pr#6847, Orit Wasserman)
  • build: 杂项 make check 修复 (pr#7153, Sage Weil)
  • ceph-detect-init: 修复 py3 测试 (pr#7025, Kefu Chai)
  • ceph-disk: 为 btrfs mkfs 添加 -f 标志 (pr#7222, Darrell Enns)
  • ceph-disk: ceph-disk list 在 /dev/cciss!c0d0 上失败 (issue#13970, issue#14233, issue#14230, pr#6879, Loic Dachary)
  • ceph-disk: 修复 udev > 214 时准备磁盘失败的问题 (issue#14080, issue#14094, pr#6926, Loic Dachary, Ilya Dryomov)
  • ceph-disk: 修复微不足道的拼写错误 (pr#7472, Brad Hubbard)
  • ceph-disk: 警告具有错误 GUID 的准备分区 (issue#13943, pr#6760, David Disseldorp)
  • ceph-fuse: 修复修剪 cap 时计数双重减少的问题 (issue#14319, pr#7229, Zhi Zhang)
  • ceph-fuse: 修复 args 的双重释放问题 (pr#7015, Ilya Shipitsin)
  • ceph-fuse: 修复 fsync() (pr#6388, Yan, Zheng)
  • ceph-fuse: 未指定参数时打印使用信息 (pr#6868, Bo Cai)
  • ceph: 改进错误消息 (issue#11101, pr#7106, Kefu Chai)
  • ceph.in: 使用 ceph 命令时避免 broken pipe 错误 (issue#14354, pr#7212, Bo Cai)
  • ceph.spec.in: 添加版权声明 (issue#14694, pr#7569, Nathan Cutler)
  • ceph.spec.in: 添加许可声明 (pr#7574, Nathan Cutler)
  • ceph_test_libcephfs: 容忍 readdir 中的重复条目 (issue#14377, pr#7246, Yan, Zheng)
  • client: 处理读取时检查 Fh 是否可读 (issue#11517, pr#7209, Yan, Zheng)
  • client: 正确修剪未链接的 inode (issue#13903, pr#7297, Yan, Zheng)
  • cls_rbd: 为错误情况添加防护 (issue#14316, issue#14317, pr#7165, xie xingguo)
  • cls_rbd: 为 object_map_save 启用对象映射校验和 (issue#14280, pr#7149, Douglas Fuller)
  • cmake: 添加 ENABLE_GIT_VERSION 以避免重建 (pr#7171, Kefu Chai)
  • cmake: 添加对 HAVE_EXECINFO_H 的缺失检查 (pr#7270, Casey Bodley)
  • cmake: 清理和更多来自 automake 的功能 (pr#7103, Casey Bodley, Ali Maredia)
  • cmake: 检测 bzip2 和 lz4 (pr#7126, Kefu Chai)
  • cmake: 修复 bluestore 的构建 (pr#7099, John Spray)
  • cmake: 修复 trusty 上的构建 (pr#7249, Kefu Chai)
  • cmake: 使 rocksdb 成为导入的库 (pr#7131, Ali Maredia)
  • cmake: run-cmake-check.sh 不需要运行 configure (pr#6959, Orit Wasserman)
  • cmake: test_build_libcephfs 需要 ${ALLOC_LIBS} (pr#7300, Ali Maredia)
  • common/address_help.cc: 修复 entity_addr_from_url() 中的内存泄漏 (issue#14132, pr#6987, Qiankun Zheng)
  • common: 添加线程名称 (pr#5882, Igor Podoski)
  • common: assert: abort() 而不是 throw (pr#6804, Adam C. Emerson)
  • common: buffer/assert 小修复 (pr#6990, Matt Benjamin)
  • common/Formatter: 如果没有输出则避免换行 (pr#5351, Aran85)
  • common: 使用哈希表提高 shared_cache 和 simple_cache 效率 (pr#6909, Ning Yao)
  • common/lockdep: 增加最大锁名称数量 (pr#6961, Sage Weil)
  • common: 新的时间管理通用代码,以及 Objecter 转换 (pr#5782, Adam C. Emerson)
  • common: signal_handler: 添加了使用可重入 strsignal() 实现而不是 sys_siglist[] 的支持 (pr#6796, John Coyle)
  • config: 当设置未被跟踪时发出警告 (issue#11692, pr#7085, Kefu Chai)
  • configure: 检测 bz2 和 lz4 (issue#13850, issue#13981, pr#7030, Kefu Chai)
  • 正确的 radosgw-admin 命令 (pr#7006, YankunLi)
  • crush: 添加 chooseleaf_stable 可调参数 (pr#6572, Sangdi Xu, Sage Weil)
  • crush: 清理空白字符删除 (issue#14302, pr#7157, songbaisen)
  • crush/CrushTester: 检查重叠规则 (pr#7139, Kefu Chai)
  • crushtool: 改进用法/提示消息 (pr#7142, xie xingguo)
  • crushtool: 为 –build 选项设置 type 0 名称 "device" (pr#6824, Sangdi Xu)
  • doc: 在减小 rbd 块大小时添加 “–allow-shrink” 以区别于增大选项 (pr#7020, Yehua)
  • doc: admin/build-doc: 使路径为绝对路径 (pr#7119, Dan Mick)
  • doc: dev: 文档 ceph-qa-suite (pr#6955, Loic Dachary)
  • doc: 文档 “readforward” 和 “readproxy” 缓存模式 (pr#7023, Kefu Chai)
  • doc: 修复 “mon osd down out subtree limit” 选项名称 (pr#7164, François Lafont)
  • doc: 修复拼写错误 (pr#7004, tianqing)
  • doc: 更新 rados 命令手册页以包含 –run-name 选项… (issue#12899, pr#5900, ritz303)
  • fs: 对 “mds setmap” 命令更加谨慎,防止损坏 (issue#14380, pr#7262, Yan, Zheng)
  • helgrind: 额外的竞态条件librbd: 日志重放应遵循事件间依赖关系 (pr#7274, Jason Dillaman)
  • helgrind: 修复真实(和想象的)竞态条件 (issue#14163, pr#7208, Jason Dillaman)
  • kv: 实现 value_as_ptr() 并在 .get() 中使用它 (pr#7052, Piotr Dałek)
  • librados: 添加 c++ 风格 osd/pg 命令接口 (pr#6893, Yunchuan Wen)
  • librados: 修复 enumeration_objects API 引入的几个缺陷 (issue#14299, issue#14301, issue#14300, pr#7156, xie xingguo)
  • librados: 新风格(分片)对象列表 (pr#6405, John Spray, Sage Weil)
  • librados: list_(n)objects 中潜在的空指针访问 (issue#13822, pr#6639, xie xingguo)
  • librbd: 克隆期间如果父快照消失则退出 (issue#14118, pr#6968, xie xingguo)
  • librbd: 修复潜在的内存泄漏 (issue#14332, issue#14333, pr#7174, xie xingguo)
  • librbd: 修复 snap_exists API 返回代码溢出 (issue#14129, pr#6986, xie xingguo)
  • librbd: 日志重放应遵循事件间依赖关系 (pr#7019, Jason Dillaman)
  • librbd: 如果删除 object_map head 对象失败则返回错误 (issue#14098, pr#6958, xie xingguo)
  • librbd: 错误消息和预读计数器的小修复 (issue#14127, pr#6983, xie xingguo)
  • librbd: 快照删除状态机中的未初始化状态 (pr#6982, Jason Dillaman)
  • mailmap: 更改 Dongmao Zhang 的组织 (pr#7173, Dongmao Zhang)
  • mailmap: Igor Podoski 隶属关系 (pr#7219, Igor Podoski)
  • mailmap 更新 (pr#7210, M Ranga Swami Reddy)
  • mailmap 更新 (pr#6992, Loic Dachary)
  • mailmap 更新 (pr#7189, Loic Dachary)
  • man: 在 “rados” 手册页中记录 listwatchers 命令 (pr#7021, Kefu Chai)
  • mds: 回复时推进 clientreplay (issue#14357, pr#7216, John Spray)
  • mds: 将恢复状态暴露给 status ASOK 命令 (issue#14146, pr#7068, Yan, Zheng)
  • mds: 修复重启时客户端 cap/消息重放顺序 (issue#14254, issue#13546, pr#7199, Yan, Zheng)
  • mds: 修复 standby 重放线程创建 (issue#14144, pr#7132, John Spray)
  • mds: MDSDaemon suicide 时我们应该等待 messenger (pr#6996, Wei Feng)
  • mon: 添加 osd 黑名单清除 (pr#6945, John Spray)
  • mon: 在 ceph df detail 中添加 RAW USED 列 (pr#7087, Ruifeng Yang)
  • mon: 将日志消息降级到 level 2 (pr#6929, Kongming Wu)
  • mon: 修复 PG 相关 Monitor 文件中的编码风格 (pr#6881, Wido den Hollander)
  • mon: 与 mondbstore->get() 更改相关的修复 (pr#6564, Piotr Dałek)
  • mon: 修复 osd id 的重用问题(删除 osd 时清除 osd info) (issue#13988, pr#6900, Loic Dachary, Sage Weil)
  • mon: 修复 monitoring log 中无法更改订阅级别的问题 (pr#7031, Zhiqiang Wang)
  • mon/MDSMonitor: 为 “ceph mds rmfailed” 添加确认 (issue#14379, pr#7248, Yan, Zheng)
  • mon: 修改 OSDMonitor.cc 中的 dout 级别 (pr#6928, Yongqiang He)
  • mon: MonmapMonitor: 不向客户端暴露未提交的状态 (pr#6854, Joao Eduardo Luis)
  • mon/OSDMonitor: osdmap laggy 为间隔设置最大限制 (pr#7109, Zengran Zhang)
  • mon: paxos is_recovering calc error (pr#7227, Weijun Duan)
  • mon/PGMap: 在状态报告中分别显示 rd/wr iops (pr#7072, Cilang Zhao)
  • mon: PGMonitor: acting primary 与 cur_stat 不同,不应将 pg 设置为 stale (pr#7083, Xiaowei Chen)
  • msg: 为 virutal 方法添加 override (pr#6977, Michal Jarzabek)
  • msg/async: 清理死连接和杂项 (pr#7158, Haomai Wang)
  • msg/async: 不要使用 shared_ptr 来管理 EventCallback (pr#7028, Haomai Wang)
  • msg: 绑定 osd addr 时过滤掉 lo addr (pr#7012, Ji Chen)
  • msg: 从 Dispatcher 中删除不需要的包含文件 (pr#6814, Michal Jarzabek)
  • msg: 删除不需要的 inline (pr#6989, Michal Jarzabek)
  • msgr: 修复大消息数据内容长度导致溢出 (pr#6809, Jun Huang, Haomai Wang)
  • msg/simple: pipe: 签名检查失败时内存泄漏 (pr#7096, Ruifeng Yang)
  • msg/simple: 删除不需要的 friend 声明 (pr#6924, Michal Jarzabek)
  • objecter: 避免 Objecter::rwlock 的递归锁定 (pr#7343, Yan, Zheng)
  • os/bluestore: 修复 bluestore_wal_transaction_t 编码测试 (pr#7419, Kefu Chai, Brad Hubbard)
  • osd: 恢复期间推送原始克隆时添加缓存提示 (pr#7069, Zhiqiang Wang)
  • osd: 避免在 PG::get/put 中调试 std::string 初始化 (pr#7117, Evgeniy Firsov)
  • osd: 避免 osd_op_thread 因为 osd_scrub_sleep 而自杀 (pr#7009, Jianpeng Ma)
  • osd: bluestore: bluefs: 修复几个小错误 (issue#14344, issue#14343, pr#7200, xie xingguo)
  • osd: bluestore: 在没有 libaio 时不包含 (issue#14207, pr#7169, Mykola Golub)
  • osd: bluestore: 修复 bluestore onode_t attr 泄漏 (pr#7125, Ning Yao)
  • osd: bluestore: 修复 bluestore_wal_transaction_t 编码测试 (pr#7168, Kefu Chai)
  • osd: bluestore: 修复几个错误 (issue#14259, issue#14353, issue#14260, issue#14261, pr#7122, xie xingguo)
  • osd: bluestore: 修复空间重新平衡、集合拆分、缓冲读取 (pr#7196, Sage Weil)
  • osd: bluestore: 更多修复 (pr#7130, Sage Weil)
  • osd: 缓存层: 添加逐出检查列表大小的配置选项 (pr#6997, Yuan Zhou)
  • osdc: 修复 tick_event 和 shutdown 的竞态条件 (issue#14256, pr#7151, Adam C. Emerson)
  • osd: 在 pre_booting 之前检查健康状态 (issue#14181, pr#7053, Xiaoxi Chen)
  • osd: 停止 pgs 后清除 pg_stat_queue (issue#14212, pr#7091, Sage Weil)
  • osd: 延迟填充内存 PG 日志哈希映射 (pr#6425, Piotr Dałek)
  • osd: 默认禁用 filestore_xfs_extsize (issue#14397, pr#7265, Ken Dreyer)
  • osd: 不在 pg 中保留旧 osdmap 的引用 (issue#13990, pr#7007, Kefu Chai)
  • osd: 删除已弃用的 removal pg 类型 (pr#6970, Igor Podoski)
  • osd: FileJournal: 修复 create 方法的返回代码 (issue#14134, pr#6988, xie xingguo)
  • osd: FileJournal: 支持从 writeq 批量 peak 和 pop (pr#6701, Xinze Chi)
  • osd: FileStore: 驱动器元数据的有条件收集 (pr#6956, Somnath Roy)
  • osd: FileStore:: 优化 lfn_unlink (pr#6649, Jianpeng Ma)
  • osd: 修复空指针访问和竞态条件 (issue#14072, pr#6916, xie xingguo)
  • osd: 修复 scrub start hobject (pr#7467, Sage Weil)
  • osd: 修复 sparse-read 结果代码检查逻辑 (issue#14151, pr#7016, xie xingguo)
  • osd: 修复升级后临时对象删除问题 (issue#13862, pr#6976, David Zafman)
  • osd: 修复 wip (l_osd_op_wip) perf counter 并删除 repop_map (pr#7077, Xinze Chi)
  • osd: 修复错误放置的断言和一些清理工作 (pr#6766, xiexingguo, xie xingguo)
  • osd: KeyValueStore: 修复 mkfs 的返回代码 (pr#7036, xie xingguo)
  • osd: KeyValueStore: 修复错误放置的断言 (issue#14176, issue#14178, pr#7047, xie xingguo)
  • osd: kstore: 几个小修复 (issue#14351, issue#14352, pr#7213, xie xingguo)
  • osd: kstore: kstore 的小修复 (issue#14204, pr#7095, xie xingguo)
  • osd: 使 list_missing 查询 missing_loc.needs_recovery_map (pr#6298, Guang Yang)
  • osdmap: 删除未使用的局部变量 (pr#6864, luo kexue)
  • osd: memstore: 修复两个错误 (pr#6963, Casey Bodley, Sage Weil)
  • osd: 杂项 FileStore 修复 (issue#14192, issue#14188, issue#14194, issue#14187, issue#14186, pr#7059, xie xingguo)
  • osd: 杂项映射利用率优化 (pr#6950, Ning Yao)
  • osd,mon: 将 leveldb 和 rocksdb 日志记录到 ceph log (pr#6921, Sage Weil)
  • osd: Omap 小错误适应 (pr#6669, Jianpeng Ma, David Zafman)
  • osd: 优化 session_handle_reset 函数 (issue#14182, pr#7054, songbaisen)
  • osd: OSDService: 修复 osdmap 注释中的拼写错误 (pr#7275, Brad Hubbard)
  • osd: os: 跳过检查 FileStore 中 pg_meta 对象是否存在 (pr#6870, Ning Yao)
  • osd: PGLog: 清理 read_log (pr#7092, Jie Wang)
  • osd: 防止 osd_recovery_sleep 导致 recovery-thread 自杀 (pr#7065, Jianpeng Ma)
  • osd: 减少 coll_t::calc_str() 中的字符串使用 (pr#6505, Igor Podoski)
  • osd: scrub 中断时释放相关资源 (pr#6744, Jianpeng Ma)
  • osd: 删除未使用的 OSDMap::set_weightf() (issue#14369, pr#7231, huanwen ren)
  • osd: ReplicatedPG: 清理未使用的函数 (pr#7211, Xiaowei Chen)
  • osd/ReplicatedPG: 修复晋升时新近度逻辑 (issue#14320, pr#6702, Sage Weil)
  • osd: 几个小清理工作 (pr#7055, xie xingguo)
  • osd: 如果在短时间内波动太多次则关闭 (pr#6708, Xiaoxi Chen)
  • osd: 跳过带有 FADVISE_DONTNEED/NOCACHE 的 writefull 的晋升 (pr#7010, Jianpeng Ma)
  • osd: memstore 的小修复 (issue#14228, issue#14229, issue#14227, pr#7107, xie xingguo)
  • osd: 冲洗完成后尝试逐出 (pr#5630, Zhiqiang Wang)
  • osd: 使用 atomic 生成 ceph_tid (pr#7017, Evgeniy Firsov)
  • osd: 在 object_stat_sum_t.is_zero() 中使用优化的 is_zero (pr#7203, Piotr Dałek)
  • osd: utime_t, eversion_t, osd_stat_sum_t 编码优化 (pr#6902, Xinze Chi)
  • pybind: 为 Manila 和类似框架添加 ceph_volume_client 接口 (pr#6205, John Spray)
  • pybind: 修复构建失败,删除方法中多余的分号 (issue#14371, pr#7235, Abhishek Lekshmanan)
  • pybind/test_rbd: 修复 test_create_defaults (issue#14279, pr#7155, Josh Durgin)
  • qa: 在 RHEL/CentOS 上禁用 rbd/qemu-iotests 测试用例 055librbd: 日志重放应遵循事件间依赖关系 (issue#14385, pr#7272, Jason Dillaman)
  • qa/workunits: merge_diff 不应尝试使用条带化 (issue#14165, pr#7041, Jason Dillaman)
  • qa/workunits/snaps: 将快照测试移动到 fs 子目录 (pr#6496, Yan, Zheng)
  • rados: 实现 rm –force 选项以在满时强制删除 (pr#6202, Xiaowei Chen)
  • rbd: 条带化参数的额外验证 (pr#6914, Na Xie)
  • rbd: 添加池名称以消除 rbd admin socket 命令的歧义 (pr#6904, wuxiangwei)
  • rbd: 修复 merge-diff 的输出字符串 (pr#7046, Kongming Wu)
  • rbd: 修复静态初始化顺序问题 (pr#6978, Mykola Golub)
  • rbd-fuse: 镜像名称不能包含快照名称 (pr#7044, Yongqiang He)
  • rbd-fuse: 实现 mv 操作 (pr#6938, wuxiangwei)
  • rbd: 指定 stripingv2 功能时必须同时指定 stripe-unit 和 stripe-count (pr#7026, Donghai Xu)
  • rbd-nbd: 添加版权信息 (pr#7166, Li Wang)
  • rbd-nbd: 修复返回代码处理 (pr#7215, Mykola Golub)
  • rbd-nbd: 改进日志记录和 fork (pr#7127, Mykola Golub)
  • rbd: 当在 config_opt 中设置为 0 时,rbd order 将位于 22 (issue#14139, issue#14047, pr#6886, huanwen ren)
  • rbd: 条带化参数应支持 64 位整数 (pr#6942, Na Xie)
  • rbd: 未指定时使用配置中的默认 order (pr#6965, Yunchuan Wen)
  • rgw: 添加一个方法来在删除子用户时清除所有关联的密钥 (issue#12890, pr#6002, Sangdi Xu)
  • rgw: 为 admin op API 添加缺失的错误代码 (pr#7037, Dunrong Huang)
  • rgw: 为 Swift 账户的 GET 操作添加 “end_marker” 参数支持。 (issue#10682, pr#4216, Radoslaw Zarzynski)
  • rgw_admin: orphans finish 段错误 (pr#6652, Igor Fedotov)
  • rgw: content length (issue#13582, pr#6975, Yehuda Sadeh)
  • rgw: 删除默认区域 (pr#7005, YankunLi)
  • rgw: 使用带有错误参数的 admin op API 时不中止 radowgw 服务器 (issue#14190, issue#14191, pr#7063, Dunrong Huang)
  • rgw: 删除调试消息 (pr#7280, Pete Zaitcev)
  • rgw: 修复 init-radosgw 中的拼写错误 (pr#6817, Zhi Zhang)
  • rgw: 修复编译警告 (pr#7160, Yehuda Sadeh)
  • rgw: 修复 parse() 返回值的错误检查 (pr#6797, Dunrong Huang)
  • rgw: 使 radosgw-admin bucket stats 返回标准的 json (pr#7029, Ruifeng Yang)
  • rgw: 修改执行命令 “log show” 时操作 radosgw-admin metadata list user 时的命令卡住问题 (pr#7032, Peiyang Liu)
  • rgw: 修改文档和帮助信息中关于执行命令 “log show” 时选项 date 用法的描述 (pr#6080, Kongming Wu)
  • rgw: 更好地解析 –subuser (pr#7279, Pete Zaitcev)
  • rgw: radosgw-admin bucket check –fix 不起作用 (pr#7093, Weijun Duan)
  • rgw: 警告可疑的 civetweb 前端参数 (pr#6944, Matt Benjamin)
  • rocksdb: 从 dist tarball 中删除 rdb 来源 (issue#13554, pr#7105, Venky Shankar)
  • 字符串化输出的错误代码并修复不匹配的括号。 (pr#6998, xie.xingguo, xie xingguo)
  • test/librbd/fsx: 使用 c++11 std::mt19937 生成器而不是 random_r() (pr#6332, John Coyle)
  • test/mon/osd-erasure-code-profile: 选择新的 mon 端口 (pr#7161, Sage Weil)
  • tests: 为 ec 测试添加 const (pr#6911, Michal Jarzabek)
  • tests: 默认使用 rocksdb 配置 (issue#14220, pr#7100, Loic Dachary)
  • tests: 修复 make check。 (pr#7102, David Zafman)
  • tests: notification slave 需要等待 master (issue#13810, pr#7220, Jason Dillaman)
  • tests: 客户端更新测试中的快照重命名和重建对象映射 (pr#7224, Jason Dillaman)
  • tests: unittest_bufferlist: 修复 hexdump 测试 (pr#7152, Sage Weil)
  • tests: unittest_ipaddr: 修复 segv (pr#7154, Sage Weil)
  • tools: ceph_monstore_tool: 添加 inflate-pgmap 命令 (issue#14217, pr#7097, Kefu Chai)
  • tools: monstore: 添加 ‘show-versions’ 命令。 (pr#7073, Cilang Zhao)

获取 Ceph