v0.94.6 Hammer 发布
sage
此 Hammer 版本点发布修复了一系列错误,其中最值得注意的是解决了监视器 leveldb 存储空间无限制增长的问题,以及在 OSD 中进行了一项变通方法,以使大多数 xattrs 足够小,可以以内联方式存储在 XFS inode 中。
我们建议所有 Hammer v0.94.x 用户升级。
有关更多详细信息,请参阅完整的更改日志。
值得注意的更改 ¶
- build/ops:Ceph 守护程序启动失败,因为服务名称已被使用。(issue#13474, pr#6832, Chuanhong Wang)
- build/ops:LTTng-UST 跟踪应动态启用 (issue#13274, pr#6415, Jason Dillaman)
- build/ops:ceph upstart 脚本 rbdmap.conf 错误地处理了参数 (issue#13214, pr#6159, Sage Weil)
- build/ops:ceph.spec.in License 行未反映 COPYING (issue#12935, pr#6680, Nathan Cutler)
- build/ops:ceph.spec.in libcephfs_jni1 没有 %post 和 %postun (issue#12927, pr#5789, Owen Synge)
- build/ops:configure.ac: 在 ac_ext=c 之前添加 “+” 没有用 (issue#14330, pr#6973, Kefu Chai, Robin H. Johnson)
- build/ops:deb: 从 Wheezy/Precise 构建中剥离 tracepoint 库 (issue#14801, pr#7316, Jason Dillaman)
- build/ops:init 脚本重新加载在 EL7 上不起作用 (issue#13709, pr#7187, Hervé Rousseau)
- build/ops:init-rbdmap 使用特定于发行版的功能 (issue#12415, pr#6528, Boris Ranto)
- build/ops:logrotate 在 Ubuntu 14.04 上重新加载错误 (issue#11330, pr#5787, Sage Weil)
- build/ops:杂项 spec 文件修复 (issue#12931, issue#12994, issue#12924, issue#12360, pr#5790, Boris Ranto, Nathan Cutler, Owen Synge, Travis Rhoden, Ken Dreyer)
- build/ops:将 tcmalloc env 传递给 ceph-os (issue#14802, pr#7365, Sage Weil)
- build/ops:rbd-replay-* 也从 ceph-test-dbg 移到 ceph-common-dbg (issue#13785, pr#6580, Loic Dachary)
- build/ops:udevadm settle 中的未知参数 –quiet (issue#13560, pr#6530, Jason Dillaman)
- common:Objecter: pool op 回调可能会永久挂起。(issue#13642, pr#6588, xie xingguo)
- common:Objecter: 执行 pool_snap_list 时可能出现空指针访问。(issue#13639, pr#6839, xie xingguo)
- common:ThreadPool add/remove work queue 方法不是线程安全的 (issue#12662, pr#5889, Jason Dillaman)
- common:auth/cephx: osd 产生大量日志 (issue#13610, pr#6835, Qiankun Zheng)
- common:由于未共享的 pid 命名空间导致的客户端 nonce 冲突 (issue#13032, pr#6151, Josh Durgin)
- common:common/Thread:pthread_attr_destroy(thread_attr) 在完成后 (issue#12570, pr#6157, Piotr Dałek)
- common:log: Log.cc: 为 syslog 调用分配 LOG_DEBUG 优先级 (issue#13993, pr#6994, Brad Hubbard)
- common:objecter: 取消错误 (issue#13071, pr#6155, Jianpeng Ma)
- common:调用纯虚方法 (issue#13636, pr#6587, Jason Dillaman)
- common:设置 rados_osd_op_timeout 时出现小概率 sigabrt (issue#13208, pr#6143, Ruifeng Yang)
- common:布尔函数 KeyServer::get_auth() 的错误条件 (issue#9756, issue#13424, pr#6213, Nathan Cutler)
- crush:如果在早期规则步骤中看到 CRUSH_ITEM_NONE 则崩溃 (issue#13477, pr#6430, Sage Weil)
- doc:man: 在 “rados” manpage 中记录 listwatchers 命令 (issue#14556, pr#7434, Kefu Chai)
- doc:重新生成 man 页面,将 orphans 命令添加到 radosgw-admin(8) (issue#14637, pr#7524, Ken Dreyer)
- fs:CephFS 对删除缓存层的限制过于严格 (issue#11504, pr#6402, John Spray)
- fs:fsstress.sh 失败 (issue#12710, pr#7454, Yan, Zheng)
- librados:LibRadosWatchNotify.WatchNotify2Timeout (issue#13114, pr#6336, Sage Weil)
- librbd:ImageWatcher 不应阻塞通知线程 (issue#14373, pr#7407, Jason Dillaman)
- librbd:diff_iterate 需要处理父图像中的空洞 (issue#12885, pr#6097, Jason Dillaman)
- librbd:修复 >2GB diff-files 的 merge-diff (issue#14030, pr#6980, Jason Dillaman)
- librbd:即使没有持有锁,也要在出错时使对象映射无效 (issue#13372, pr#6289, Jason Dillaman)
- librbd:大于缓存大小的读取挂起 (issue#13164, pr#6354, Lu Shi)
- mds:ceph mds add_data_pool 对 EC pool 的检查是错误的 (issue#12426, pr#5766, John Spray)
- mon:MonitorDBStore: 仅当前缀匹配时才 get_next_key() (issue#11786, pr#5361, Joao Eduardo Luis)
- mon:OSDMonitor: 在 send_incremental() 中不要假设会话存在 (issue#14236, pr#7150, Joao Eduardo Luis)
- mon:在参与选举之前检查存储是否可写 (issue#13089, pr#6144, Sage Weil)
- mon:也压缩完整的 epoch (issue#14537, pr#7446, Kefu Chai)
- mon:在 PGMap::print_summary 和 PGMap::dump 中包含 min_last_epoch_clean (issue#13198, pr#6152, Guang Yang)
- mon:如果 osd 没有接收到 osdmaps,map_cache 可能会不准确 (issue#10930, pr#5773, Kefu Chai)
- mon:当 cephx_verify_authorizer 返回 false 时,不应设置 isvalid = true (issue#13525, pr#6391, Ruifeng Yang)
- osd:如果某些 OSD 的权重为 0,则 Ceph Pools 的 MAX AVAIL 为 0 (issue#13840, pr#6834, Chengyuan Li)
- osd:FileStore 调用 syncfs(2),即使它不受支持 (issue#12512, pr#5530, Kefu Chai)
- osd:FileStore: 如果 getattrs 失败,可能存在内存泄漏。(issue#13597, pr#6420, xie xingguo)
- osd:使用纠删码池层时 kvm/rbd 上的 IO 错误 (issue#12012, pr#5897, Kefu Chai)
- osd:OSD::build_past_intervals_parallel() 应在开始新的 past_interval 时重置 primary 和 up_primary。(issue#13471, pr#6398, xiexingguo)
- osd:ReplicatedBackend: 为克隆填充 recovery_info.size(错误症状是在 scrub 中克隆的复制后端上大小不匹配)(issue#12828, pr#6153, Samuel Just)
- osd:ReplicatedPG: sparse_read 期间错误的结果代码检查逻辑 (issue#14151, pr#7179, xie xingguo)
- osd:ReplicatedPG::hit_set_trim osd/ReplicatedPG.cc: 11006: FAILED assert(obc) (issue#13192, issue#9732, issue#12968, pr#5825, Kefu Chai, Zhiqiang Wang, Samuel Just, David Zafman)
- osd:避免在层池中设置多个 osd_op.outdata (issue#12540, pr#6060, Xinze Chi)
- osd:缓存/分层和快照读取的错误 (issue#12748, pr#6589, Kefu Chai)
- osd:ceph osd pool stats 在 hammer 中损坏 (issue#13843, pr#7180, BJ Lougee)
- osd:如果设备是符号链接,ceph-disk prepare 失败 (issue#13438, pr#7176, Joe Julian)
- osd:在更改缓存的 obc 之前检查是否已满 (hammer) (issue#13098, pr#6918, Alexey Sheplyakov)
- osd:config_opts: 将自杀超时增加到 300 以匹配恢复 (issue#14376, pr#7236, Samuel Just)
- osd:默认禁用 filestore_xfs_extsize (issue#14397, pr#7411, Ken Dreyer)
- osd:不要在 attrs 中缓存未使用的内存 (issue#12565, pr#6499, Xinze Chi, Ning Yao)
- osd:dumpling incremental 在 hammer 和更新版本上无法正常工作 (issue#13234, pr#6132, Samuel Just)
- osd:filestore: 修复 OpSequencer 的 peek_queue (issue#13209, pr#6145, Xinze Chi)
- osd:在与地图更改相同的 epoch 中触发的 hit set clear repops – 段错误,因为它们落入新的间隔,即使 repops 已清除 (issue#12809, pr#5890, Samuel Just)
- osd:object_info_t::decode() 版本错误 (issue#13462, pr#6335, David Zafman)
- osd:osd/OSD.cc: 2469: FAILED assert(pg_stat_queue.empty()) 在关闭时 (issue#14212, pr#7178, Sage Weil)
- osd:osd/PG.cc: 288: FAILED assert(info.last_epoch_started >= info.history.last_epoch_started) (issue#14015, pr#7177, David Zafman)
- osd:osd/PG.cc: 3837: FAILED assert(0 == “Running incompatible OSD”) (issue#11661, pr#7206, David Zafman)
- osd:osd/ReplicatedPG: Recency 修复 (issue#14320, pr#7207, Sage Weil, Robert LeBlanc)
- osd:pg 停滞在重放中 (issue#13116, pr#6401, Sage Weil)
- osd:send_failures 期间检测到竞争条件 (issue#13821, pr#6755, Sage Weil)
- osd:随机化 scrub 时间 (issue#10973, pr#6199, Kefu Chai)
- osd:kick_object_context_blocked 时重新排队 scrub (issue#12515, pr#5891, Xinze Chi)
- osd:revert: 对 hitsets 使用 GMT 时间 (issue#13812, pr#6644, Loic Dachary)
- osd:agent_work 中的段错误 (issue#13199, pr#6146, Samuel Just)
- osd:解码 PGMap 时应重新计算 min_last_epoch_clean (issue#13112, pr#6154, Kefu Chai)
- osd:更小的 object_info_t xattrs (issue#14803, pr#6544, Sage Weil)
- osd:我们不会忽略来自 down osd 的通知 (issue#12990, pr#6158, Samuel Just)
- rbd:创建快照并停止 VM 后 QEMU 挂起 (issue#13726, pr#6586, Jason Dillaman)
- rbd:TaskFinisher::cancel 应该从 SafeTimer 中删除事件 (issue#14476, pr#7417, Douglas Fuller)
- rbd:避免在调整大小时重写旧格式的图像头 (issue#13674, pr#6585, Jason Dillaman)
- rbd:修复 bench-write (issue#14225, pr#7183, Sage Weil)
- rbd:rbd-replay 不检查 EOF 并进入无限循环 (issue#14452, pr#7416, Mykola Golub)
- rbd:rbd-replay-prep 和 rbd-replay 改进 (issue#13221, issue#13220, issue#13378, pr#6286, Jason Dillaman)
- rbd:在图像创建时验证自我管理快照功能 (issue#13633, pr#7182, Jason Dillaman)
- rgw:使 RGW_MAX_PUT_SIZE 可配置 (issue#6999, pr#7441, Vladislav Odintsov, Yuan Zhou)
- rgw:在对象上设置 ACL 会删除 ETag (issue#12955, pr#6620, Brian Felton)
- rgw:backport content-type 大小写 (issue#12939, pr#5910, Robin H. Johnson)
- rgw:对版本化存储桶的存储桶列表挂起 (issue#12913, pr#6352, Yehuda Sadeh)
- rgw:修复 S3 存储桶上 POST 期间错误的 etag 计算。(issue#11241, pr#7442, Vladislav Odintsov, Radoslaw Zarzynski)
- rgw:获取存储桶位置返回区域名称,而不是区域 api 名称 (issue#13458, pr#6349, Yehuda Sadeh)
- rgw:在列出存储桶中的密钥时缺少对 encoding-type=url 的处理 (issue#12735, pr#6527, Jeff Weber)
- rgw:orphan 工具应小心删除头部对象 (issue#12958, pr#6351, Yehuda Sadeh)
- rgw:orphans finish 段错误 (issue#13824, pr#7186, Igor Fedotov)
- rgw:rgw-admin: 在 usage 中记录 orphans 命令 (issue#14516, pr#7526, Yehuda Sadeh)
- rgw:Swift API 在检索帐户元数据时返回的实际对象计数和已用字节数过多 (issue#13140, pr#6512, Sangdi Xu)
- rgw:swift 使用 Civetweb ssl 无法获取正确的 url (issue#13628, pr#6491, Weijun Duan)
- rgw:Swift API 的 X-Object-Manifest 标头的值在段查找期间未进行 url_decode (issue#12728, pr#6353, Radoslaw Zarzynski)
- tests:ttng 集成到 rados 后修复了损坏的 Makefiles (issue#13210, pr#6322, Sebastien Ponce)
- tests:fsx 编译失败 (issue#14384, pr#7501, Greg Farnum)
- tests:通知从属需要等待主控 (issue#13810, pr#7226, Jason Dillaman)
- tests:qa: 从 rbd/qemu-iotests 中删除旧版操作系统支持 (issue#13483, issue#14385, pr#7252, Vasu Kulkarni, Jason Dillaman)
- tests:testprofile 必须在重新创建之前删除 (issue#13664, pr#6450, Loic Dachary)
- tools:ceph-monstore-tool 必须执行 out_store.close() (issue#10093, pr#7347, huangjun)
- tools:rados bench 中的大量内存洗牌 (issue#12946, pr#5810, Piotr Dałek)
- tools:rados bench 中的竞争条件 (issue#12947, pr#6791, Piotr Dałek)
- tools:用于人为膨胀 mon 存储 leveldb 以进行测试的工具 (issue#10093, issue#11815, issue#14217, pr#7412, Cilang Zhao, Bo Cai, Kefu Chai, huangjun, Joao Eduardo Luis)
获取 Ceph ¶
- Git 在 git://github.com/ceph/ceph.git
- Tarball 地址: https://ceph.net.cn/download/ceph-0.94.6.tar.gz
- 有关软件包,请参阅 https://ceph.net.cn/docs/master/install/get-packages
- 有关 ceph-deploy,请参阅 https://ceph.net.cn/docs/master/install/install-ceph-deploy