注意
本文档适用于 Ceph 开发版本。
Firefly
Firefly 是 Ceph 的第 6 个稳定版本。它以萤火虫墨鱼(Watasenia scintillans)命名。
v0.80.11 Firefly
这是一个针对 Firefly 的错误修复版本。这个 Firefly 0.80.x 版本即将在 2016 年 1 月结束其计划的生命周期,也可能是最后一个版本。
我们建议所有 Firefly 用户升级。
更多详细信息,请参阅the complete changelog
.
值得注意的变化
build/ops: /etc/init.d/radosgw restart 不正确地工作(问题#11140, pr#5831, Dmitry Yatsushkevich)
build/ops: 修复 -Wno-format 和 -Werror=format-security 选项冲突 (issue#13417, pr#6207, Boris Ranto)
build/ops: ceph-common 在较旧的发行版上需要 python-argparse,但不需要它 (问题#12034, pr#5217, Nathan Cutler)
build/ops: ceph.spec.in 运行 fdupes 不必要地 (问题#12301, pr#5224, Nathan Cutler)
build/ops: ceph.spec.in: 50-rbd.rules 条件错误 (问题#12166, pr#5225, Nathan Cutler)
build/ops: ceph.spec.in: 无用的 %py_requires 破坏了 SLE11-SP3 构建 (问题#12351, pr#5394, Nathan Cutler)
build/ops: fedora21 有 junit,而不是 junit4 (issue#10728, pr#6203, Ken Dreyer, Loic Dachary)
common: 客户端管理员套接字泄漏文件描述符 (issue#11535, pr#4633, Jon Bernard)
common: FileStore 调用 syncfs(2),即使它不受支持 (issue#12512, pr#5529, Danny Al-Gaaf, Kefu Chai, Jianpeng Ma)
common: HeartBeat: 包括类型 (issue#13088, pr#6038, Sage Weil)
common: 当存在非 ASCII 字符串时,损坏的 JSON 命令输出 (issue#7387, pr#4635, Kefu Chai, Tim Serong)
common: 内存泄漏在 Mutex.cc, pthread_mutexattr_init 而没有 pthread_mutexattr_destroy (问题#11762, pr#5403, Ketor Meng)
common: 线程:pthread_attr_destroy(thread_attr) 在完成时使用它 (issue#12570, pr#6325, Piotr Dałek, Zheng Qiankun)
common: ThreadPool add/remove work queue methods not thread safe (issue#12662, pr#5991, Jason Dillaman)
common: buffer: 关键缓冲区::zero 缺陷 (问题#12252, pr#5388, Haomai Wang)
common: 日志:在打开 fd 时获取互斥锁 (issue#12465, pr#5406, Samuel Just)
common: 递归锁定 md_config_t (0) (问题#12614, pr#5814, Josh Durgin)
crush: take crashes due to invalid arg (issue#11602, pr#4769, Sage Weil)
doc: 将 v0.80.10 版本发布说明回滚到 firefly (issue#11090, pr#5307, Loic Dachary, Sage Weil)
doc: 更新文档以指向 download.ceph.com (问题#13162, pr#5993, Alfredo Deza)
fs: MDSMonitor: 正确处理 MDSBeacon 消息 (issue#11590, pr#5199, Kefu Chai)
fs: 客户端随机数冲突由于未共享的 pid 命名空间 (issue#13032, pr#6087, Josh Durgin, Sage Weil)
librbd: Objectcacher 设置最大对象计数过低 (issue#7385, pr#4639, Jason Dillaman)
librbd: aio calls may block (issue#11056, pr#4854, Haomai Wang, Sage Weil, Jason Dillaman)
librbd: internal.cc: 1967: FAILED assert(watchers.size() == 1) (issue#12176, pr#5171, Jason Dillaman)
mon: Clock skew causes missing summary and confuses Calamari (issue#11877, pr#4867, Thorsten Behrens)
mon: EC 池不允许用作缓存池,在 mon 中禁止 (issue#11650, pr#5389, Samuel Just)
mon: 使 firefly 中删除池更加困难 (issue#11800, pr#4788, Sage Weil)
mon: MonitorDBStore: get_next_key() only if prefix matches (issue#11786, pr#5360, Joao Eduardo Luis)
mon: PaxosService: 调用 post_refresh() 而不是 post_paxos_update() (问题#11470, pr#5358, Joao Eduardo Luis)
mon: 添加现有池作为层,使用 --force-nonempty 会清除 removed_snaps (issue#11493, pr#5236, Sage Weil, Samuel Just)
mon: ceph fails to compile with boost 1.58 (issue#11576, pr#5129, Kefu Chai)
mon: 每次事务都不检查 IO 错误 (issue#13089, pr#6091, Sage Weil)
mon: 增加全局 id 默认值用于 firefly (issue#13255, pr#6010, Sage Weil)
mon: pgmonitor: 错误的 at/near 目标 max“报告 (问题#12401, pr#5409, huangjun)
mon: register_new_pgs() 应检查 ruleno 而不是其索引 (问题#12210, pr#5404, Xinze Chi)
mon: 刷写错误(osdmap 编码不匹配?)从 0.80 升级到 ~0.80.2 (issue#8815, issue#8674, issue#9064, pr#5200, Sage Weil, Zhiqiang Wang, Samuel Just)
mon: 运行 ceph osd reweight 时输出错误 (问题#12251, pr#5408, Joao Eduardo Luis)
objecter: 如果 osdmap 纪元 == 最后强制操作重发,可能会陷入重定向循环 (issue#11026, pr#4597, Jianpeng Ma, Sage Weil)
objecter: 当使用限制时,pg 列表可能会死锁 (issue#9008, pr#5043, Guang Yang)
objecter: 重发悬留操作在拆分时 (issue#9806, pr#5062, Josh Durgin, Samuel Just)
osd: 清理 boost optionals for boost 1.56 (issue#9983, pr#5039, William A. Kennington III)
osd: LibRadosTwoPools[EC]PP.PromoteSnap 失败 (issue#10052, pr#5050, Sage Weil)
osd: Mutex 断言来自 PipeConnection::try_get_pipe (问题#12437, pr#5815, David Zafman)
osd: PG 卡在重映射中卡住 (issue#9614, pr#5044, Guang Yang)
osd: PG::handle_advance_map: 处理映射更改后的 on_pool_change (issue#12809, pr#5988, Samuel Just)
osd: PGLog: 将不同的优先级分开拆分 (issue#11069, pr#4631, Samuel Just)
osd: PGLog::proc_replica_log: 正确处理 olog.head 和 log.tail 之间条目被拆分的情况 (问题#11358, pr#5287, Samuel Just)
osd: WBThrottle::clear_object: 在我们减少限流值时在 cond 上发出信号 (问题#12223, pr#5822, Samuel Just)
osd: 缓存满模式仍然跳过年轻对象 (issue#10006, pr#5051, Xinze Chi, Zhiqiang Wang)
osd: 在 MOSDBoot 中明确指定 OSD 功能 (issue#10911, pr#4960, Sage Weil)
osd: is_new_interval() 修复 (问题#11771, 问题#10399, pr#5726, Samuel Just, Jason Dillaman)
osd: make the all osd/filestore thread pool suicide timeouts separately configurable (issue#11439, pr#5823, Samuel Just)
osd: 写入创建的对象不能在纠删码池上使用偏移量 (issue#11507, pr#4632, Jianpeng Ma, Loic Dachary)
osd: os/FileJournal: 修复日志写入失败,对直接 io 进行对齐 (issue#12943, pr#5619, Xie Rui)
osd: osd/PGLog.cc: 732: 失败断言(log.log.size() == log_keys_debug.size()) (问题#12652, pr#5820, Sage Weil)
rgw: 将 std::strings 的变长数组(C++ 中不合法)转换为 std::vector<std::string> (issue#12467, pr#4583, Daniel J. Hofmann)
rgw: Civetweb RGW appears to report full size of object as downloaded when only partially downloaded (issue#11851, pr#5234, Yehuda Sadeh)
rgw: Keystone PKI token expiration is not enforced (issue#11367, pr#4765, Anton Aksola)
rgw: Object copy bug (issue#11639, rgw: keystone 令牌缓存工作不正确 (, Javier M. Mellid)
rgw: RGW 在“Bucket”响应头中返回请求的桶名称原始值 (issue#11860, issue#12537, pr#5730, Yehuda Sadeh, Wido den Hollander)
rgw: Swift API: 当使用 FCGI 时,/container 上的 PUT 响应不包含强制 Content-Length 头 (issue#11036, pr#5170, Radoslaw Zarzynski)
rgw: 内容长度解析调用 strtol() 而不是 strtoll() (issue#10701, pr#5997, Yehuda Sadeh)
rgw: 删除桶不删除 .bucket.meta 文件 (issue#11149, pr#4641, Orit Wasserman)
rgw: 不在头中返回 ‘x-timestamp’,头用于 OpenStack 的“查看详细信息” (issue#8911, pr#4584, Yehuda Sadeh)
rgw: 日志文件没有正确更改所有者 (issue#12073, pr#5233, Thorsten Behrens)
rgw: logrotate.conf 调用具有错误 init 脚本名称的服务 (issue#12043, pr#5390, wuxingyi)
rgw: POST 对象不尊重配额 (issue#11323, pr#4642, Sergey Arkhipov)
rgw: swift 烟雾测试在 TestAccountUTF8 上失败 (issue#11091, issue#11438, 问题#12939, issue#12157, issue#12158, issue#12363, pr#5532, Radoslaw Zarzynski, Orit Wasserman, Robin H. Johnson)
rgw: 使用正确的 objv_tracker 用于桶实例 (issue#11416, pr#4535, Yehuda Sadeh)
tests: ceph-fuse crash in test_client_recovery (问题#12673, pr#5813, Loic Dachary)
tests: kernel_untar_build fails on EL7 (issue#11758, pr#6000, Greg Farnum)
测试: qemu 工作单元引用 apt-mirror.front.sepia.ceph.com (问题#13420, pr#6328, Yuan Zhou, Sage Weil)
tools: src/ceph-disk : disk zap sgdisk invocation (issue#11143, pr#4636, Thorsten Behrens, Owen Synge)
tools: ceph-disk: sometimes the journal symlink is not created (issue#10146, pr#5541, Dan van der Ster)
tools: ceph-disk: support NVMe device partitions (issue#11612, pr#4771, Ilja Slepnev)
tools: ceph-post-file fails on rhel7 (issue#11836, pr#5037, Joseph McDonald, Sage Weil)
tools: ceph_argparse_flag has no regular 3rd parameter (issue#11543, pr#4582, Thorsten Behrens)
tools: use a new disk as journal disk,ceph-disk prepare fail (issue#10983, pr#4630, Loic Dachary)
v0.80.10 Firefly
This is a bugfix release for Firefly.
我们建议所有 Firefly 用户升级。
更多详细信息,请参阅the complete changelog
.
值得注意的变化
build/ops: ceph.spec.in: package mkcephfs on EL6 (issue#11955, pr#4924, Ken Dreyer)
build/ops: debian: ceph-test and rest-bench debug packages should require their respective binary packages (issue#11673, pr#4766, Ken Dreyer)
build/ops: run RGW as root (issue#11453, pr#4638, Ken Dreyer)
common: messages/MWatchNotify: include an error code in the message (issue#9193, pr#3944, Sage Weil)
common: Rados.shutdown() dies with Illegal instruction (core dumped) (issue#10153, pr#3963, Federico Simoncelli)
common: SimpleMessenger: allow RESETSESSION whenever we forget an endpoint (issue#10080, pr#3915, Greg Farnum)
common: WorkQueue: make wait timeout on empty queue configurable (issue#10817, pr#3941, Samuel Just)
crush: set_choose_tries = 100 for erasure code rulesets (issue#10353, pr#3824, Loic Dachary)
doc: backport ceph-disk man page to Firefly (issue#10724, pr#3936, Nilamdyuti Goswami)
doc: Fix ceph command manpage to match ceph -h (issue#10676, pr#3996, David Zafman)
fs: mount.ceph: avoid spurious error message (issue#10351, pr#3927, Yan, Zheng)
librados: Fix memory leak in python rados bindings (issue#10723, pr#3935, Josh Durgin)
librados: fix resources leakage in RadosClient::connect() (issue#10425, pr#3828, Radoslaw Zarzynski)
librados: Translate operation flags from C APIs (issue#10497, pr#3930, Matt Richards)
librbd: acquire cache_lock before refreshing parent (issue#5488, pr#4206, Jason Dillaman)
librbd: snap_remove should ignore -ENOENT errors (issue#11113, pr#4245, Jason Dillaman)
mds: fix assertion caused by system clock backwards (issue#11053, pr#3970, Yan, Zheng)
mon: ignore osd failures from before up_from (issue#10762, pr#3937, Sage Weil)
mon: MonCap: take EntityName instead when expanding profiles (issue#10844, pr#3942, Joao Eduardo Luis)
mon: Monitor: fix timecheck rounds period (issue#10546, pr#3932, Joao Eduardo Luis)
mon: OSDMonitor: do not trust small values in osd epoch cache (issue#10787, pr#3823, Sage Weil)
mon: OSDMonitor: fallback to json-pretty in case of invalid formatter (issue#9538, pr#4475, Loic Dachary)
mon: PGMonitor: several stats output error fixes (issue#10257, pr#3826, Joao Eduardo Luis)
objecter: fix map skipping (issue#9986, pr#3952, Ding Dinghua)
osd: cache tiering: fix the atime logic of the eviction (issue#9915, pr#3949, Zhiqiang Wang)
osd: cancel_pull: requeue waiters (issue#11244, pr#4415, Samuel Just)
osd: check that source OSD is valid for MOSDRepScrub (issue#9555, pr#3947, Sage Weil)
osd: DBObjectMap: lock header_lock on sync() (issue#9891, pr#3948, Samuel Just)
osd: do not ignore deleted pgs on startup (issue#10617, pr#3933, Sage Weil)
osd: ENOENT on clone (issue#11199, pr#4385, Samuel Just)
osd: erasure-code-profile set races with erasure-code-profile rm (issue#11144, pr#4383, Loic Dachary)
osd: FAILED assert(soid < scrubber.start || soid >= scrubber.end) (issue#11156, pr#4185, Samuel Just)
osd: FileJournal: fix journalq population in do_read_entry() (issue#6003, pr#3960, Samuel Just)
osd: fix negative degraded objects during backfilling (issue#7737, pr#4021, Guang Yang)
osd: get the currently atime of the object in cache pool for eviction (issue#9985, pr#3950, Sage Weil)
osd: load_pgs: we need to handle the case where an upgrade from earlier versions which ignored non-existent pgs resurrects a pg with a prehistoric osdmap (issue#11429, pr#4556, Samuel Just)
osd: ObjectStore: Don’t use largest_data_off to calc data_align. (issue#10014, pr#3954, Jianpeng Ma)
osd: osd_types: op_queue_age_hist and fs_perf_stat should be in osd_stat_t::o… (issue#10259, pr#3827, Samuel Just)
osd: PG::actingset should be used when checking the number of acting OSDs for… (issue#11454, pr#4453, Guang Yang)
osd: PG::all_unfound_are_queried_or_lost for non-existent osds (issue#10976, pr#4416, Mykola Golub)
osd: PG: always clear_primary_state (issue#10059, pr#3955, Samuel Just)
osd: PGLog.h: 279: FAILED assert(log.log.size() == log_keys_debug.size()) (issue#10718, pr#4382, Samuel Just)
osd: PGLog: include rollback_info_trimmed_to in (read|write)_log (issue#10157, pr#3964, Samuel Just)
osd: pg stuck stale after create with activation delay (issue#11197, pr#4384, Samuel Just)
osd: ReplicatedPG: fail a non-blocking flush if the object is being scrubbed (issue#8011, pr#3943, Samuel Just)
osd: ReplicatedPG::on_change: clean up callbacks_for_degraded_object (issue#8753, pr#3940, Samuel Just)
osd: ReplicatedPG::scan_range: an object can disappear between the list and t… (issue#10150, pr#3962, Samuel Just)
osd: requeue blocked op before flush it was blocked on (issue#10512, pr#3931, Sage Weil)
rgw: check for timestamp for s3 keystone auth (issue#10062, pr#3958, Abhishek Lekshmanan)
rgw: civetweb should use unique request id (issue#11720, pr#4780, Orit Wasserman)
rgw: don’t allow negative / invalid content length (issue#11890, pr#4829, Yehuda Sadeh)
rgw: fail s3 POST auth if keystone not configured (issue#10698, pr#3966, Yehuda Sadeh)
rgw: flush xml header on get acl request (issue#10106, pr#3961, Yehuda Sadeh)
rgw: generate new tag for object when setting object attrs (issue#11256, pr#4571, Yehuda Sadeh)
rgw: generate the “Date” HTTP header for civetweb. (issue#11871,11891, pr#4851, Radoslaw Zarzynski)
rgw: keystone token cache does not work correctly (issue#11125, pr#4414, Yehuda Sadeh)
rgw: 合并清单正确(当存在前缀覆盖时) (d1dfe0: issue#11622issue#11622, pr#4697, Yehuda Sadeh)
rgw: 发送适当的操作以取消等待的桶索引操作 (issue#10770, pr#3938, Yehuda Sadeh)
rgw: 不需要禁用 rgw_socket_path 如果前端配置了 (d1dfe0: issue#11160issue#11160, pr#4275, Yehuda Sadeh)
rgw: Swift API. 导出容器的自定义元数据。 (issue#10665, pr#3934, Dmytro Iurchenko)
rgw: Swift API. 支持X-Remove-Container-Meta-{key} 头部。 (issue#10475, pr#3929, Dmytro Iurchenko)
rgw: 使用正确的 objv_tracker 用于桶实例 (issue#11416, pr#4379, Yehuda Sadeh)
tests: 强制检出子模块 (issue#11157, pr#4079, Loic Dachary)
tools: 将 ceph-objectstore-tool 更改回滚到 firefly (issue#12327, pr#3866, David Zafman)
tools: ceph-objectstore-tool: 仅当不兼容时输出不支持的特性 (issue#11176, tools: ceph-objectstore-tool: 使用退出状态 11 对于不兼容的导入尝试 … (, David Zafman)
tools: ceph-objectstore-tool: Use exit status 11 for incompatible import attemp… (issue#11139, pr#4129, David Zafman)
tools: 修复 do_autogen.sh 以允许 -L (issue#11303, pr#4247, Alfredo Deza)
v0.80.9 Firefly
这是一个针对 firefly 的错误修复版本。它修复了 librbd 中的性能回归,一个重要的 CRUSH 行为错误(见下文),以及几个 RGW 错误。我们还回滚了对 ceph-fuse 和 libcephfs 的 flock/fcntl 锁支持。
我们建议所有 Firefly 用户升级。
更多详细信息,请参阅the complete changelog
.
调整 CRUSH 地图
这个点发布版本修复了调整 OSD 权重时 CRUSH 触发过多数据迁移的几个问题。这些问题在非常小的权重变化(例如,从 0 变更到 0.01)触发大量移动时最为明显,但相同的一组错误也可能在其他情况下导致过多的(尽管不太明显)移动。
然而,由于错误可能已经影响了您的集群,修复它可能会触发移动回到更正确的位置。 to the more correct location. For this reason, you must manually opt-in to the fixed behavior.
为了设置新的可调参数以纠正行为:
ceph osd crush set-tunable straw_calc_version 1
请注意,此更改不会立即生效。但是,从此刻起,任何调整的 CRUSH 地图中的“straw”桶都将获得无错误的内部权重,并且这种转换可能会触发一些重新平衡。
您可以使用以下方法估计您的集群最终需要多少重新平衡:
ceph osd getcrushmap -o /tmp/cm crushtool -i /tmp/cm --num-rep 3 --test --show-mappings > /tmp/a 2>&1 crushtool -i /tmp/cm --set-straw-calc-version 1 -o /tmp/cm2 crushtool -i /tmp/cm2 --reweight -o /tmp/cm2 crushtool -i /tmp/cm2 --num-rep 3 --test --show-mappings > /tmp/b 2>&1 wc -l /tmp/a # num total mappings diff -u /tmp/a /tmp/b | grep -c ^+ # num changed mappings Divide the number of changed lines by the total number of lines in /tmp/a. We've found that most clusters are under 10%. You can force all of this rebalancing to happen at once with:: ceph osd crush reweight-all Otherwise, it will happen at some unknown point in the future when CRUSH weights are next adjusted.
值得注意的变化
ceph-fuse: flock, fcntl 锁支持(Yan, Zheng, Greg Farnum)
crush: 修复 straw 桶权重计算,添加 straw_calc_version 可调参数 (#10095 Sage Weil)
crush: 修复树桶(Rongzu Zhu)
crush: 修复树权重下溢(Loic Dachary, Sage Weil)
crushtool: 添加 --reweight (Sage Weil)
librbd: 完成挂起的操作之前丢失镜像 (#10299 Jason Dillaman)
librbd: 修复读取缓存性能回归 (#9854 Jason Dillaman)
librbd: 优雅地处理已删除/重命名的池 (#10270 Jason Dillaman)
mon: 修复 chooseleaf_vary_r 可调参数的转储(Sage Weil)
osd: 在对等体上的 snaptrimmer 中修复 PG 引用泄漏 (#10421 Kefu Chai)
osd: 使用快照处理无操作写入 (#10262 Sage Weil)
radosgw-admin: 创建用户时创建子用户 (#10103 Yehuda Sadeh)
rgw: 更改多部分上传 id 魔术 (#10271 Georgio Dimitrakakis, Yehuda Sadeh)
rgw: don’t overwrite bucket/object owner when setting ACLs (#10978 Yehuda Sadeh)
rgw: 启用 IPv6 对于嵌入式 civetweb (#10965 Yehuda Sadeh)
rgw: 修复 swift GET 的部分 (#10553 Yehuda Sadeh)
rgw: 修复配额禁用 (#9907 Dong Lei)
rgw: 适当对 swift 密钥进行索引 (#10471 Hemant Burman, Yehuda Sadeh)
rgw: 使 setattrs 更新桶索引 (#5595 Yehuda Sadeh)
rgw: 将 civetweb 可配置项传递给 librados 回调函数 (#10907 Yehuda Sadeh)
rgw: remove swift user manifest (DLO) hash calculation (#9973 Yehuda Sadeh)
rgw: 返回 0 长度对象的正确长度 (#9877 Yehuda Sadeh)
rgw: S3 对象复制内容类型修复 (#9478 Yehuda Sadeh)
rgw: 在 S3 对象复制时发送 ETag (#9479 Yehuda Sadeh)
rgw: 在 fastcgi 中明确指定 HTTP 状态原因(Yehuda Sadeh)
rgw: 从 sysvinit (el6) init 脚本设置 ul
rgw: 在身份验证时更新 swift 子用户权限掩码 (#9918 Yehuda Sadeh)
rgw: 正确解码查询参数 (#10271 Georgio Dimitrakakis, Yehuda Sadeh)
rgw: 读取对象属性时使用属性 (#10307 Yehuda Sadeh)
rgw: 使用 rn 用于 HTTP 头部 (#9254 Benedikt Fraunhofer, Yehuda Sadeh)
v0.80.8 Firefly
这是一个期待已久的针对 firefly 的错误修复版本。它包含几个重要的(但相对罕见)OSD 对等体修复,快照修剪时的性能问题,几个 RGW 修复,一个 paxos 边缘情况修复,以及一些打包更新。
我们建议所有 v0.80.x firefly 用户在方便的时候升级。
更多详细信息,请参阅the complete changelog
.
值得注意的变化
build: 从组装的代码段中删除堆栈执行位 (#10114 Dan Mick)
ceph-disk: 修复 dmcrypt 密钥权限 (#9785 Loic Dachary)
ceph-disk: 修复密钥环位置 (#9653 Loic Dachary)
ceph-disk: 使分区检查更加健壮 (#9721 #9665 Loic Dachary)
ceph: 在关闭时干净地关闭 librados 上下文 (#8797 Dan Mick)
common: 添加 $cctid 配置元变量 (#6228 Adam Crume)
crush: 对齐规则和规则集 id (#9675 Xiaoxi Chen)
crush: 在 create_or_move_item 创建期间修复负权重错误 (#9998 Pawel Sadowski)
crush: 修复纠删规则中的潜在缓冲区溢出 (#9492 Johnu George)
debian: 修复 python-ceph -> ceph 文件移动 (Sage Weil)
libcephfs,ceph-fuse: 修复刷新 tid 回绕错误 (#9869 Greg Farnum, Yan, Zheng)
libcephfs: 在卸载之前关闭 fd (#10415 Yan, Zheng)
librados: 修复启用读取超时时的 C API 崩溃 (#9582 Sage Weil)
librados: 处理池删除时的回复竞争 (#10372 Sage Weil)
librados: 限制读取请求的内存利用率 (Jason Dillaman)
librbd: 在失败时不要关闭已关闭的父镜像 (#10030 Jason Dillaman)
librbd: 修复 diff 测试 (#10002 Josh Durgin)
librbd: 保护 list_children 免受无效池的影响 (#10123 Jason Dillaman)
make check 改进 (Loic Dachary)
mds: 修复 ctime 更新 (#9514 Greg Farnum)
mds: 修复日志导入工具 (#10025 John Spray)
mds: 修复快照处理程序中的罕见 NULL 解引用 (Greg Farnum)
mds: 处理未知锁消息 (Yan, Zheng)
mds: 为 straydir 存储回溯 (Yan, Zheng)
mon: 如果磁盘已满,则中止启动 (#9502 Joao Eduardo Luis)
mon: 添加 paxos 仪器 (Sage Weil)
mon: 修复 OSD 启动路径中的罕见内存泄漏 (Sage Weil)
mon: 修复 osdmap 修剪 (#9987 Sage Weil)
mon: 修复 paxos 边缘情况 (#9301 #9053 Sage Weil)
osd: 在黑名单观察者上取消回调 (#8315 Samuel Just)
osd: 在升级期间干净地中止 set-alloc-hint 操作 (#9419 David Zafman)
osd: 在 PG 删除时清除回滚 PG 元数据 (#9293 Samuel Just)
osd: 如果 hinfo 缺失,则不要中止深度刷写 (#10018 Loic Dachary)
osd: 纠删码回归测试 (Loic Dachary)
osd: 修复对 SUSE 的 distro 元数据报告 (#8654 Danny Al-Gaaf)
osd: 在回填期间修复完整的 OSD 检查 (#9574 Samuel Just)
osd: 修复 ioprio 解析 (#9677 Loic Dachary)
osd: 修复日志直接 io 关闭 (#9073 Mark Kirkwood, Ma Jianpeng, Somnath Roy)
osd: 修复日志转储 (Ma Jianpeng)
osd: 在对等体或激活期间修复罕见的停滞 (#Sage Weil)
osd: fix past_interval display bug (#9752 Loic Dachary)
osd: 修复由管理员套接字转储_ops_in_filght 触发的罕见崩溃 (#9916 Dong Lei)
osd: 修复快照修剪性能问题 (#9487 #9113 Samuel Just, Sage Weil, Dan van der Ster, Florian Haas)
osd: 修复缓存驱逐时的快照处理 (#8629 Sage Weil)
osd: 在映射推进代码中处理映射间隙 (Sage Weil)
osd: 在间隔检查中处理未定义的 CRUSH 结果 (#9718 Samuel Just)
osd: 在 ghobject 的 JSON 转储中包括碎片 (#10063 Loic Dachary)
osd: 使回填保留拒绝处理更加健壮 (#9626 Samuel Just)
osd: 使误导向操作检查处理 EC + 主要亲和力 (#9835 Samuel Just, Sage Weil)
osd: 默认情况下使用 inode64 挂载 XFS (Sage Weil)
osd: 其他杂项错误 (#9821 #9875 Samuel Just)
rgw: 将 .log 添加到默认日志路径 (#9353 Alexandre Marangone)
rgw: 清理 fcgi 请求上下文 (#10194 Yehuda Sadeh)
rgw: 将头部下划线转换为连字符 (#9206 Yehuda Sadeh)
rgw: 如果复制目标在不同的池中,则复制对象数据 (#9039 Yehuda Sadeh)
rgw: 不要尝试对 CORS peflight 请求进行身份验证 (#8718 Robert Hubbard, Yehuda Sadeh)
rgw: 修复 civetweb URL 解码 (#8621 Yehuda Sadeh)
rgw: 在 PUT 过程中修复哈希计算 (Yehuda Sadeh)
rgw: 修复杂项错误 (#9089 #9201 Yehuda Sadeh)
rgw: 修复对象尾部测试 (#9226 Sylvain Munaut, Yehuda Sadeh)
rgw: 使 sysvinit 脚本按需以 systemd 上下文运行 rgw (#10125 Loic Dachary)
rgw: 将 civetweb 日志与 rgw 日志分开 (Yehuda Sadeh)
rgw: 为 keystone 令牌验证设置长度 (#7796 Mark Kirkwood, Yehuda Sadeh)
rgw: 子用户创建修复 (#8587 Yehuda Sadeh)
rpm: 杂项打包改进 (Sandon Van Ness, Dan Mick, Erik Logthenberg, Boris Ranto)
rpm: 使用标准 udev 规则为 CentOS7/RHEL7 (#9747 Loic Dachary)
v0.80.7 Firefly
这个版本修复了 v0.80.6 的几个关键问题,尤其是在运行混合版本的集群中。
我们建议所有 v0.80.x Firefly 用户升级到此版本。
更多详细信息,请参阅the complete changelog
.
值得注意的变化
osd: 修复日志修剪中的无效内存引用 (#9731 Samuel Just)
osd: 修复缓存分层代码中的 use-after-free (#7588 Sage Weil)
osd: 删除混合版本集群的坏回填断言 (#9696 Samuel Just)
v0.80.6 Firefly
这是一个针对 firefly 的重大错误修复版本,修复了 OSD 和监控器中的各种问题,尤其是在缓存分层方面。还有 librados 的重要修复,包括 librbd 使用的 watch/notify 机制,以及 radosgw 中的修复。
一些新功能已回滚,包括改进的“ceph df”输出(查看每个池的可写入空间量),在使用 sysvinit 或 systemd 时支持非默认集群名称,以及改进(并修复)对 dmcrypt 的支持。
我们建议所有 v0.80.x Firefly 用户升级到此版本。
更多详细信息,请参阅the complete changelog
.
值得注意的变化
build: 修复 i386 上的 atomic64_t (#8969 Sage Weil)
build: 修复 alpha 上的构建 (#8969 Sage Weil)
build: 修复 hppa 上的构建 (#8969 Sage Weil)
build: 修复 x32 架构上的 yasm 检测 (Sage Weil)
ceph-disk: 修复使用 dmcrypt 的“列表”函数 (#9785 Loic Dachary)
ceph-disk: 修复 dmcrypt 支持 (Alfredo Deza)
ceph: 允许指定非默认集群 (#8944)
common: 修复重复日志消息到 mon (#9080 Sage Weil)
global: 当使用 -f 时写入 pid 文件(systemd, upstart) (Alexandre Oliva)
librados: 修复启用读取超时时的崩溃 (#9362 Matthias Kiefer, Sage Weil)
librados: 修复错误路径中的锁泄漏 (#9022 Pavan Rallabhandi)
librados: 在 PG 行动集更改时重发操作 (#9220 Samuel Just)
librados: python: 修复 aio_read 处理 0 的情况 (Mohammad Salehe)
librbd: 添加接口以使缓存数据失效 (Josh Durgin)
librbd: 使用扁平化镜像的克隆时修复崩溃 (#8845 Josh Durgin)
librbd: 修复打开时的错误路径清理 (#8912 Josh Durgin)
librbd: 修复空指针检查 (Danny Al-Gaaf)
librbd: 限制脏对象计数 (Haomai Wang)
mds: 修复 root 和 mdsdir 的 rstats (#Yan, Zheng)
mon: 添加新缓存层池属性的新“获取”命令 (Joao Eduardo Luis)
mon: 添加“osd pool get-quota” (#8523 Joao Eduardo Luis)
mon: 添加集群指纹 (Sage Weil)
mon: 禁止无意义的缓存模式转换 (#8155 Joao Eduardo Luis)
mon: 修复 i386 上的缓存层舍入错误 (Sage Weil)
mon: 修复偶尔的内存泄漏 (#9176 Sage Weil)
mon: 修复“osd perf”报告的延迟 (#9269 Samuel Just)
mon: 在“ceph df”输出中包含“最大可用” (Sage Weil, Xioaxi Chen)
mon: 持久标记可能发现不完整克隆的池 (#8882 Sage Weil)
mon: 预加载纠删插件 (Loic Dachary)
mon: 防止非层池上的缓存特定设置 (#8696 Joao Eduardo Luis)
mon: 减少日志噪音 (Aanchal Agrawal, Sage Weil)
mon: 当缓存池没有启用 hit_sets 时发出警告 (Sage Weil)
msgr: 修复微不足道的内存泄漏 (Sage Weil)
osd: 自动刷写具有无效统计的 PGs (#8147 Sage Weil)
osd: 避免共享不可持久的 PG 元数据 (Samuel Just)
osd: 限制 hit_set 大小 (#9339 Samuel Just)
osd: 如果需要,则创建默认纠删配置文件 (#8601 Loic Dachary)
osd: 在适当的地方将 tid 转储为 JSON 整数(而不是字符串) (Joao Eduardo Luis)
osd: 以确定性顺序编码黑名单 (#9211 Sage Weil)
osd: 当缓存层没有启用 hit_sets 时修复行为 (#8982 Sage Weil)
osd: 修复缓存层快照刷新 (#9054 Samuel Just)
osd: 在从完整变为非完整时修复缓存层操作排序 (#8931 Sage Weil)
osd: 修复 dup 恢复保留的崩溃 (#8863 Sage Weil)
osd: 在 pg_num 调整而没有 OSD 时修复除零错误 (#9052 Sage Weil)
osd: 修复实验性键值存储_dev 后端中的 hint 崩溃 (Hoamai Wang)
osd: 在复制取消时修复泄漏 (#8894 Samuel Just)
osd: 修复复制完成时的锁定 (#8889 Sage Weil)
osd: 修复后端中的长文件名处理 (#8701 Sage Weil)
osd: 与回填一起检查 min_size (#9497 Samuel Just)
osd: 修复挂载/重新挂载同步竞争 (#9144 Sage Weil)
osd: 修复对象列表 + 纠删码错误 (Guang Yang)
osd: 修复重新连接到失败 OSD 的竞争 (#8944 Greg Farnum)
osd: 修复恢复保留死锁 (Samuel Just)
osd: 修复分层代理的负值算术 (#9082 Karan Singh)
osd: 改进关闭顺序 (#9218 Sage Weil)
osd: 改进子操作丢弃逻辑 (#9259 Samuel Just)
osd: 引入可选睡眠,io 优先级用于刷写和快照修剪 (Sage Weil)
osd: 刷写检查并删除陈旧的纠删码对象 (Samuel Just)
osd: 杂项修复 (#9481 #9482 #9179 Sameul Just)
osd: 混合 keyvaluestore_dev 改进 (Haomai Wang)
osd: 仅对使用中的规则要求 CRUSH 功能 (#8963 Sage Weil)
osd: 在启动时预加载纠删插件 (Loic Dachary)
osd: 预防 PG 在消耗 OSDMaps 时落后 (#7576 Sage Weil)
osd: 防止旧客户端使用分层池 (#8714 Sage Weil)
osd: 将纠删池的最小大小设置为数据块计数 (Sage Weil)
osd: 更积极地修剪旧纠删码对象 (Samuel Just)
rados: 强制纠删码对齐 (Lluis Pamies-Juarez)
rgw: 对象条带与纠删码池对齐 (#8442 Yehuda Sadeh)
rgw: 对于 civetweb,在 HEAD 请求中不发送错误正文 (#8539 Yehuda Sadeh)
rgw: 修复 CORS 预检请求中的崩溃 (Yehuda Sadeh)
rgw: 修复 URL 中 + 的解码 (#8702 Brian Rak)
rgw: 在对象创建时修复对象移除 (#8972 Patrycja Szabowska, Yehuda Sadeh)
rgw: 改进 swift temp URL 支持 (Yehuda Sadeh)
sysvinit: support non-default cluster name (Alfredo Deza)
v0.80.5 Firefly
This release fixes a few important bugs in the radosgw and fixes several packaging and environment issues, including OSD log rotation, systemd environments, and daemon restarts on upgrade.
We recommend that all v0.80.x Firefly users upgrade, particularly if they are using upstart, systemd, or radosgw.
值得注意的变化
ceph-dencoder: do not needlessly link to librgw, librados, etc. (Sage Weil)
do not needlessly link binaries to leveldb (Sage Weil)
mon: fix mon crash when no auth keys are present (#8851, Joao Eduardo Luis)
osd: fix cleanup (and avoid occasional crash) during shutdown (#7981, Sage Weil)
osd: fix log rotation under upstart (Sage Weil)
rgw: fix multipart upload when object has irregular size (#8846, Yehuda Sadeh, Sylvain Munaut)
rgw: improve bucket listing S3 compatibility (#8858, Yehuda Sadeh)
rgw: improve delimited bucket listing (Yehuda Sadeh)
rpm: do not restart daemons on upgrade (#8849, Alfredo Deza)
更多详细信息,请参阅the complete changelog
.
v0.80.4 Firefly
This Firefly point release fixes an potential data corruption problem when ceph-osd daemons run on top of XFS and service Firefly librbd clients. A recently added allocation hint that RBD utilizes triggers an XFS bug on some kernels (Linux 3.2, and likely others) that leads to data corruption and deep-scrub errors (and inconsistent PGs). This release avoids the situation by disabling the allocation hint until we can validate which kernels are affected and/or are known to be safe to use the hint on.
We recommend that all v0.80.x Firefly users urgently upgrade, especially if they are using RBD.
值得注意的变化
osd: disable XFS extsize hint by default (#8830, Samuel Just)
rgw: fix extra data pool default name (Yehuda Sadeh)
更多详细信息,请参阅the complete changelog
.
v0.80.3 Firefly
This is the third Firefly point release. It includes a single fix for a radosgw regression that was discovered in v0.80.2 right after it was released.
We recommend that all v0.80.x Firefly users upgrade.
值得注意的变化
radosgw: fix regression in manifest decoding (#8804, Sage Weil)
更多详细信息,请参阅the complete changelog
.
v0.80.2 Firefly
This is the second Firefly point release. It contains a range of important fixes, including several bugs in the OSD cache tiering, some compatibility checks that affect upgrade situations, several radosgw bugs, and an irritating and unnecessary feature bit check that prevents older clients from communicating with a cluster with any erasure coded pools.
One someone large change in this point release is that the ceph RPM package is separated into a ceph and ceph-common package, similar to Debian. The ceph-common package contains just the client libraries without any of the server-side daemons.
We recommend that all v0.80.x Firefly users skip this release and use v0.80.3.
值得注意的变化
ceph-disk: better debug logging (Alfredo Deza)
ceph-disk: fix preparation of OSDs with dmcrypt (#6700, Stephen F Taylor)
ceph-disk: partprobe on prepare to fix dm-crypt (#6966, Eric Eastman)
do not require ERASURE_CODE feature from clients (#8556, Sage Weil)
libcephfs-java: build with older JNI headers (Greg Farnum)
libcephfs-java: fix build with gcj-jdk (Dmitry Smirnov)
librados: fix osd op tid for redirected ops (#7588, Samuel Just)
librados: fix rados_pool_list buffer bounds checks (#8447, Sage Weil)
librados: resend ops when pool overlay changes (#8305, Sage Weil)
librbd, ceph-fuse: reduce CPU overhead for clean object check in cache (Haomai Wang)
mon: allow deletion of cephfs pools (John Spray)
mon: fix default pool ruleset choice (#8373, John Spray)
mon: fix health summary for mon low disk warning (Sage Weil)
mon: fix ‘osd pool set <pool> cache_target_full_ratio’ (Geoffrey Hartz)
mon: fix quorum feature check (Greg Farnum)
mon: fix request forwarding in mixed firefly+dumpling clusters 9#8727, Joao Eduardo Luis)
mon: fix rule vs ruleset check in ‘osd pool set … crush_ruleset’ command (John Spray)
mon: make osd ‘down’ count accurate (Sage Weil)
mon: set ‘next commit’ in primary-affinity reply (Ilya Dryomov)
mon: verify CRUSH features are supported by all mons (#8738, Greg Farnum)
msgr: fix sequence negotiation during connection reset (Guang Yang)
osd: block scrub on blocked objects (#8011, Samuel Just)
osd: call XFS hint ioctl less often (#8241, Ilya Dryomov)
osd: copy xattr spill out marker on clone (Haomai Wang)
osd: fix flush of snapped objects (#8334, Samuel Just)
osd: fix hashindex restart of merge operation (#8332, Samuel Just)
osd: fix osdmap subscription bug causing startup hang (Greg Farnum)
osd: fix potential null deref (#8328, Sage Weil)
osd: fix shutdown race (#8319, Sage Weil)
osd: handle ‘none’ in CRUSH results properly during peering (#8507, Samuel Just)
osd: set no spill out marker on new objects (Greg Farnum)
osd: skip op ordering debug checks on tiered pools (#8380, Sage Weil)
rados: enforce ‘put’ alignment (Lluis Pamies-Juarez)
rest-api: fix for ‘rx’ commands (Ailing Zhang)
rgw: calc user manifest etag and fix check (#8169, #8436, Yehuda Sadeh)
rgw: fetch attrs on multipart completion (#8452, Yehuda Sadeh, Sylvain Munaut)
rgw: fix buffer overflow for long instance ids (#8608, Yehuda Sadeh)
rgw: fix entity permission check on metadata put (#8428, Yehuda Sadeh)
rgw: fix multipart retry race (#8269, Yehuda Sadeh)
rpm: split ceph into ceph and ceph-common RPMs (Sandon Van Ness, Dan Mick)
sysvinit: continue startin daemons after failure doing mount (#8554, Sage Weil)
更多详细信息,请参阅the complete changelog
.
v0.80.1 Firefly
This first Firefly point release fixes a few bugs, the most visible being a problem that prevents scrub from completing in some cases.
值得注意的变化
osd: revert incomplete scrub fix (Samuel Just)
rgw: fix stripe calculation for manifest objects (Yehuda Sadeh)
rgw: improve handling, memory usage for abort reads (Yehuda Sadeh)
rgw: send Swift user manifest HTTP header (Yehuda Sadeh)
libcephfs, ceph-fuse: expose MDS session state via admin socket (Yan, Zheng)
osd: add simple throttle for snap trimming (Sage Weil)
monclient: fix possible hang from ill-timed monitor connection failure (Sage Weil)
osd: fix trimming of past HitSets (Sage Weil)
osd: fix whiteouts for non-writeback cache modes (Sage Weil)
osd: prevent divide by zero in tiering agent (David Zafman)
osd: prevent busy loop when tiering agent can do no work (David Zafman)
更多详细信息,请参阅the complete changelog
.
v0.80 Firefly
This release will form the basis for our long-term supported release Firefly, v0.80.x. The big new features are support for erasure coding and cache tiering, although a broad range of other features, fixes, and improvements have been made across the code base. Highlights include:
Erasure coding: support for a broad range of erasure codes for lower storage overhead and better data durability.
Cache tiering: support for creating ‘cache pools’ that store hot, recently accessed objects with automatic demotion of colder data to a base tier. Typically the cache pool is backed by faster storage devices like SSDs.
Primary affinity: Ceph now has the ability to skew selection of OSDs as the “primary” copy, which allows the read workload to be cheaply skewed away from parts of the cluster without migrating any data.
Key/value OSD backend (experimental): An alternative storage backend for Ceph OSD processes that puts all data in a key/value database like leveldb. This provides better performance for workloads dominated by key/value operations (like radosgw bucket indices).
Standalone radosgw (experimental): The radosgw process can now run in a standalone mode without an apache (or similar) web server or fastcgi. This simplifies deployment and can improve performance.
We expect to maintain a series of stable releases based on v0.80 Firefly for as much as a year. In the meantime, development of Ceph continues with the next release, Giant, which will feature work on the CephFS distributed file system, more alternative storage backends (like RocksDB and f2fs), RDMA support, support for pyramid erasure codes, and additional functionality in the block device (RBD) like copy-on-read and multisite mirroring.
Upgrade Sequencing
If your existing cluster is running a version older than v0.67 Dumpling, please first upgrade to the latest Dumpling release before upgrading to v0.80 Firefly. Please refer to the Upgrade Sequencing documentation.
We recommend adding the following to the [mon] section of your ceph.conf prior to upgrade:
mon warn on legacy crush tunables = false
This will prevent health warnings due to the use of legacy CRUSH placement. Although it is possible to rebalance existing data across your cluster (see the upgrade notes below), we do not normally recommend it for production environments as a large amount of data will move and there is a significant performance impact from the rebalancing.
按以下顺序升级守护进程:
Monitors
OSDs
MDSs and/or radosgw
如果 ceph-mds 守护进程首先重新启动,它将等待所有 OSD 都已升级后才能完成其启动序列。如果 ceph-mon 守护进程在 ceph-osd 守护进程之前没有重新启动,它们将无法正确注册它们的新功能,并且新功能可能直到重新启动后才能使用。
一起升级 radosgw 守护进程。对于多部分上传,行为有一个微妙的变化,这会阻止使用新 radosgw 启动的新多部分请求被旧 radosgw 完成。
Upgrading from v0.79
OSDMap’s json-formatted dump changed for keys ‘full’ and ‘nearfull’. What was previously being outputted as ‘true’ or ‘false’ strings are now being outputted ‘true’ and ‘false’ booleans according to json syntax.
HEALTH_WARN on ‘mon osd down out interval == 0’. Having this option set to zero on the leader acts much like having the ‘noout’ flag set. This warning will only be reported if the monitor getting the ‘health’ or ‘status’ request has this option set to zero.
Monitor ‘auth’ commands now require the mon ‘x’ capability. This matches dumpling v0.67.x and earlier, but differs from emperor v0.72.x.
A librados WATCH operation on a non-existent object now returns ENOENT; previously it did not.
Librados interface change: As there are no partial writes, the rados_write() and rados_append() operations now return 0 on success like rados_write_full() always has. This includes the C++ interface equivalents and AIO return values for the aio variants.
radosgw 初始化脚本(sysvinit)要求 ceph.conf 中的“host = …”行(如果存在)与短主机名(“hostname -s”的输出)匹配,而不是完全限定主机名或“hostname”的(偶尔非短)输出。在从 emperor 或 dumpling 升级时未能调整此设置可能会阻止 radosgw 守护进程启动。
Upgrading from v0.72 Emperor
See notes above.
The ‘ceph -s’ or ‘ceph status’ command’s ‘num_in_osds’ field in the JSON and XML output has been changed from a string to an int.
The recently added ‘ceph mds set allow_new_snaps’ command’s syntax has changed slightly; it is now ‘ceph mds set allow_new_snaps true’. The ‘unset’ command has been removed; instead, set the value to ‘false’.
The syntax for allowing snapshots is now ‘mds set allow_new_snaps <true|false>’ instead of ‘mds <set,unset> allow_new_snaps’.
‘rbd ls’ on a pool which never held rbd images now exits with code 0. It outputs nothing in plain format, or an empty list in non-plain format. This is consistent with the behavior for a pool which used to hold images, but contains none. Scripts relying on this behavior should be updated.
The MDS requires a new OSD operation TMAP2OMAP, added in this release. When upgrading, be sure to upgrade and restart the ceph-osd daemons before the ceph-mds daemon. The MDS will refuse to start if any up OSDs do not support the new feature.
The ‘ceph mds set_max_mds N’ command is now deprecated in favor of ‘ceph mds set max_mds N’.
The ‘osd pool create …’ syntax has changed for erasure pools.
The default CRUSH rules and layouts are now using the ‘bobtail’ tunables and defaults. Upgraded clusters using the old values will now present with a health WARN state. This can be disabled by adding ‘mon warn on legacy crush tunables = false’ to ceph.conf and restarting the monitors. Alternatively, you can switch to the new tunables with ‘ceph osd crush tunables firefly,’ but keep in mind that this will involve moving a significant portion of the data already stored in the cluster and in a large cluster may take several days to complete. We do not recommend adjusting tunables on a production cluster.
We now default to the ‘bobtail’ CRUSH tunable values that are first supported by Ceph clients in bobtail (v0.56) and Linux kernel version v3.9. If you plan to access a newly created Ceph cluster with an older kernel client, you should use ‘ceph osd crush tunables legacy’ to switch back to the legacy behavior. Note that making that change will likely result in some data movement in the system, so adjust the setting before populating the new cluster with data.
We now set the HASHPSPOOL flag on newly created pools (and new clusters) by default. Support for this flag first appeared in v0.64; v0.67 Dumpling is the first major release that supports it. It is first supported by the Linux kernel version v3.9. If you plan to access a newly created Ceph cluster with an older kernel or clients (e.g, librados, librbd) from a pre-dumpling Ceph release, you should add ‘osd pool default flag hashpspool = false’ to the ‘[global]’ section of your ‘ceph.conf’ prior to creating your monitors (e.g., after ‘ceph-deploy new’ but before ‘ceph-deploy mon create …’).
The configuration option ‘osd pool default crush rule’ is deprecated and replaced with ‘osd pool default crush replicated ruleset’. ‘osd pool default crush rule’ takes precedence for backward compatibility and a deprecation warning is displayed when it is used.
作为 #6796 修复的一部分,“ceph osd pool set <pool> <var> <arg>” 现在将 <arg> 接收为整数而不是字符串。这影响了“hashpspool”标志的设置/取消设置方式:现在必须是“0”或“1”,而不是“true”或“false”。
CRUSH “indep” 选择模式的行为了所更改。除非有人手动提取了一个 crush 映射,修改了一个 CRUSH 规则以将“firstn”替换为“indep”,重新编译并重新将新映射注入集群,否则没有任何 ceph 集群应该在使用这种行为。如果集群当前正在使用“indep”模式,则应将规则修改为使用“firstn”代替,管理员应在升级前等待任何数据移动完成。
“osd dump”命令现在将池快照作为数组而不是对象输出。
Upgrading from v0.67 Dumpling
See notes above.
ceph-fuse and radosgw now use the same default values for the admin socket and log file paths that the other daemons (ceph-osd, ceph-mon, etc.) do. If you run these daemons as non-root, you may need to adjust your ceph.conf to disable these options or to adjust the permissions on /var/run/ceph and /var/log/ceph.
The MDS now disallows snapshots by default as they are not considered stable. The command ‘ceph mds set allow_snaps’ will enable them.
For clusters that were created before v0.44 (pre-argonaut, Spring 2012) and store radosgw data, the auto-upgrade from TMAP to OMAP objects has been disabled. Before upgrading, make sure that any buckets created on pre-argonaut releases have been modified (e.g., by PUTing and then DELETEing an object from each bucket). Any cluster created with argonaut (v0.48) or a later release or not using radosgw never relied on the automatic conversion and is not affected by this change.
Any direct users of the ‘tmap’ portion of the librados API should be aware that the automatic tmap -> omap conversion functionality has been removed.
Most output that used K or KB (e.g., for kilobyte) now uses a lower-case k to match the official SI convention. Any scripts that parse output and check for an upper-case K will need to be modified.
librados::Rados::pool_create_async() and librados::Rados::pool_delete_async() don’t drop a reference to the completion object on error, caller needs to take care of that. This has never really worked correctly and we were leaking an object
‘ceph osd crush set <id> <weight> <loc..>’ no longer adds the osd to the specified location, as that’s a job for ‘ceph osd crush add’. It will however continue to work just the same as long as the osd already exists in the crush map.
The OSD now enforces that class write methods cannot both mutate an object and return data. The rbd.assign_bid method, the lone offender, has been removed. This breaks compatibility with pre-bobtail librbd clients by preventing them from creating new images.
librados now returns on commit instead of ack for synchronous calls. This is a bit safer in the case where both OSDs and the client crash, and is probably how it should have been acting from the beginning. Users are unlikely to notice but it could result in lower performance in some circumstances. Those who care should switch to using the async interfaces, which let you specify safety semantics precisely.
The C++ librados AioComplete::get_version() method was incorrectly returning an int (usually 32-bits). To avoid breaking library compatibility, a get_version64() method is added that returns the full-width value. The old method is deprecated and will be removed in a future release. Users of the C++ librados API that make use of the get_version() method should modify their code to avoid getting a value that is truncated from 64 to to 32 bits.
Notable changes since v0.79
ceph-fuse, libcephfs: fix several caching bugs (Yan, Zheng)
ceph-fuse: trim inodes in response to mds memory pressure (Yan, Zheng)
librados: fix inconsistencies in API error values (David Zafman)
librados: fix watch operations with cache pools (Sage Weil)
librados: new snap rollback operation (David Zafman)
mds: fix respawn (John Spray)
mds: misc bugs (Yan, Zheng)
mds: misc multi-mds fixes (Yan, Zheng)
mds: use shared_ptr for requests (Greg Farnum)
mon: fix peer feature checks (Sage Weil)
mon: 要求“x” mon caps 用于身份验证操作 (Joao Luis)
mon: 从 mon 集群中移除时关闭 (Joao Luis)
msgr: fix locking bug in authentication (Josh Durgin)
osd: 改进克隆的刷写检查 (Sage Weil, Sam Just)
osd: many many many bug fixes with cache tiering (Samuel Just)
osd: track omap and hit_set objects in pg stats (Samuel Just)
osd: warn if agent cannot enable due to invalid (post-split) stats (Sage Weil)
rados bench: track metadata for multiple runs separately (Guang Yang)
rgw: fixed subuser modify (Yehuda Sadeh)
rpm: 修复 redhat-lsb 依赖 (Sage Weil, Alfredo Deza)
Notable changes since v0.72 Emperor
buffer: 进行了一些零拷贝的基础工作 (Josh Durgin)
build: misc improvements (Ken Dreyer)
ceph-conf: 停止创建虚构的日志文件 (Josh Durgin, Sage Weil)
ceph-crush-location: new hook for setting CRUSH location of osd daemons on start)
ceph-disk: 避免使用 fd0 (Loic Dachary)
ceph-disk: generalize path names, add tests (Loic Dachary)
ceph-disk: misc improvements for puppet (Loic Dachary)
ceph-disk: several bug fixes (Loic Dachary)
ceph-fuse: fix race for sync reads (Sage Weil)
ceph-fuse, libcephfs: fix several caching bugs (Yan, Zheng)
ceph-fuse: trim inodes in response to mds memory pressure (Yan, Zheng)
ceph-kvstore-tool: 扩展了命令集和功能 (Joao Eduardo Luis)
ceph.spec: 修复构建依赖项 (Loic Dachary)
common: bloom filter improvements (Sage Weil)
common: check preexisting admin socket for active daemon before removing (Loic Dachary)
common: 修复对齐缓冲区分配 (Loic Dachary)
common: 修复大端架构上的身份验证 (Dan Mick)
common: fix config variable substitution (Loic Dachary)
common: portability changes to support libc++ (Noah Watkins)
common: switch to unordered_map from hash_map (Noah Watkins)
config: recursive metavariable expansion (Loic Dachary)
crush: 默认使用 bobtail 调整参数 (Sage Weil)
crush: 修复最近重构中的 off-by-one 错误 (Sage Weil)
crush: 添加了许多额外的测试 (Loic Dachary)
crush: 一些杂项修复和清理 (Loic Dachary)
crush: 新的规则步骤用于调整重试尝试 (Sage Weil)
crush, osd: s/rep/replicated/ for less confusion (Loic Dachary)
crush: refactor descend_once behavior; support set_choose*_tries for replicated rules (Sage Weil)
crush: usability and test improvements (Loic Dachary)
debian: 改变 ceph 和 ceph-common 之间的目录所有权 (Sage Weil)
debian: 集成了来自下游打包的杂项修复 (James Page)
doc: 安装文档进行了重大更新 (John Wilkins)
doc: 安装文档进行了许多许多改进 (John Wilkins)
doc: many many updates (John Wilkins)
doc: misc fixes (David Moreau Simard, Kun Huang)
erasure-code: improve buffer alignment (Loic Dachary)
erasure-code: rewrite region-xor using vector operations (Andreas Peters)
init: 修复 OSD 启动排序/超时问题 (Dmitry Smirnov)
libcephfs: 修复资源泄漏 (Zheng Yan)
librados: add C API coverage for atomic write operations (Christian Marie)
librados: fix inconsistencies in API error values (David Zafman)
librados: fix throttle leak (and eventual deadlock) (Josh Durgin)
librados: fix watch operations with cache pools (Sage Weil)
librados: new snap rollback operation (David Zafman)
librados, osd: new TMAP2OMAP operation (Yan, Zheng)
librados: read directly into user buffer (Rutger ter Borg)
librbd: fix use-after-free aio completion bug #5426 (Josh Durgin)
librbd: localize/distribute parent reads (Sage Weil)
librbd: 跳过复制稀疏图像时的零/空洞 (Josh Durgin)
mailmap: affiliation updates (Loic Dachary)
mailmap updates (Loic Dachary)
many portability improvements (Noah Watkins)
many unit test improvements (Loic Dachary)
mds: always store backtrace in default pool (Yan, Zheng)
mds: 处理创建期间 MDS 失败 (John Spray)
mds: fix cap migration behavior (Yan, Zheng)
mds: fix client session flushing (Yan, Zheng)
mds: 修复客户端睡眠/恢复时的崩溃 (Zheng Yan)
mds: fix many many multi-mds bugs (Yan, Zheng)
mds: 修复读取结束检查 (Zheng Yan)
mds: fix Resetter locking (Alexandre Oliva)
mds: fix respawn (John Spray)
mds: inline data support (Li Wang, Yunchuan Wen)
mds: misc bugs (Yan, Zheng)
mds: 与目录碎片相关的杂项修复 (Zheng Yan)
mds: 与大型目录相关的杂项修复 (Zheng Yan)
mds: 多个 MDS 的杂项修复 (Zheng Yan)
mds: misc multi-mds fixes (Yan, Zheng)
mds: 删除 .ceph 目录 (John Spray)
mds: store directories in omap instead of tmap (Yan, Zheng)
mds: 机会性地更新旧格式的回溯 (Zheng Yan)
mds: use shared_ptr for requests (Greg Farnum)
来自 Coverity 的杂项清理 (Xing Lin)
杂项 coverity 修复,清理 (Danny Al-Gaaf)
杂项 Coverity 修复 (Xing Lin, Li Wang, Danny Al-Gaaf)
杂项可移植性修复 (Noah Watkins, Alan Somers)
杂项可移植性修复 (Noah Watkins, Christophe Courtaut, Alan Somers, huanjun)
misc portability work (Noah Watkins)
mon: 添加纠删配置文件并改进纠删池创建 (Loic Dachary)
mon: 添加“mon getmap EPOCH” (Joao Eduardo Luis)
mon: allow adjustment of cephfs max file size via ‘ceph mds set max_file_size’ (Sage Weil)
mon: 允许通过管理员套接字使用调试 quorum_{enter,exit} 命令
mon: ‘ceph osd pg-temp …’ 和 primary-temp 命令 (Ilya Dryomov)
mon: 改变 mds allow_new_snaps 语法以使其更一致 (Sage Weil)
mon: 清理初始 crush 规则创建 (Loic Dachary)
mon: 收集关于 osd 的杂项元数据(操作系统、内核等),新的“osd metadata”命令 (Sage Weil)
mon: do not create erasure rules by default (Sage Weil)
mon: do not generate spurious MDSMaps in certain cases (Sage Weil)
mon: do not use keyring if auth = none (Loic Dachary)
mon: fix peer feature checks (Sage Weil)
mon: fix pg_temp leaks (Joao Eduardo Luis)
mon: 修复池计数在“ceph -s”输出中 (#9502 Sage Weil)
mon: handle more whitespace (newline, tab) in mon capabilities (Sage Weil)
mon: 改进(复制或纠删)池创建 UX (Loic Dachary)
mon: 基础设施来处理混合版本 mon 集群和 cli/rest API (Greg Farnum)
mon: MForward 测试 (Loic Dachary)
mon: mkfs 现在是 idempotent (Loic Dachary)
mon: 只为新 osdmaps 种子到当前 OSDs (Sage Weil)
mon, osd: 创建纠删样式 crush 规则 (Loic Dachary, Sage Weil)
mon: “osd crush show-tunables” (Sage Weil)
mon: “osd dump”将池快照作为数组输出,而不是对象 (Dan Mick)
mon, osd: 新的“erasure”池类型(仍然不完全支持)
mon: 将配额特征持久保存到磁盘 (Greg Farnum)
mon: 防止池 pg_num 发生极端变化 (Greg Farnum)
mon: 要求“x” mon caps 用于身份验证操作 (Joao Luis)
mon: 从 mon 集群中移除时关闭 (Joao Luis)
mon: 将“osd pool set …”值作为整数,而不是字符串 (Joao Eduardo Luis)
mon: 跟踪 OSD 特征在 OSDMap 中 (Joao Luis, David Zafman)
mon: 修剪 MDSMaps (Joao Eduardo Luis)
mon: 如果 crush 具有非最优的调参发出警告 (Sage Weil)
mount.ceph: 添加 -n 用于 autofs 支持 (Steve Stock)
msgr: fix locking bug in authentication (Josh Durgin)
msgr: 修复 messenger 重启竞争 (Xihui He)
msgr: 改进客户端和监控器之间的连接错误检测 (Greg Farnum, Sage Weil)
osd: 添加/修复 jerasure 的 CPU 功能检测 (Loic Dachary)
osd: add HitSet tracking for read ops (Sage Weil, Greg Farnum)
osd: avoid touching leveldb for some xattrs (Haomai Wang, Sage Weil)
osd: backfill to multiple targets (David Zafman)
osd: backfill to osds not in acting set (David Zafman)
osd: cache pool support for snapshots (Sage Weil)
osd: client IO path changes for EC (Samuel Just)
osd: 默认使用 3 倍复制
osd: 不在活动集中包含回填目标 (David Zafman)
osd: enable new hashpspool layout by default (Sage Weil)
osd: erasure plugin benchmarking tool (Loic Dachary)
osd: fix and cleanup misc backfill issues (David Zafman)
osd: 改进克隆的刷写检查 (Sage Weil, Sam Just)
osd: fix copy-get omap bug (Sage Weil)
osd: fix linux kernel version detection (Ilya Dryomov)
osd: fix memstore segv (Haomai Wang)
osd: 修复来自 emperor 的 object_info_t 编码错误 (Sam Just)
osd: fix omap_clear operation to not zap xattrs (Sam Just, Yan, Zheng)
osd: fix several bugs with tier infrastructure
osd: fix throttle thread (Haomai Wang)
osd: fix XFS detection (Greg Farnum, Sushma Gurram)
osd: generalize scrubbing infrastructure to allow EC (David Zafman)
osd: handle more whitespace (newline, tab) in osd capabilities (Sage Weil)
osd: ignore num_objects_dirty on scrub for old pools (Sage Weil)
osd: 改进克隆的刷写检查 (Sage Weil, Sam Just)
osd: improve locking in fd lookup cache (Samuel Just, Greg Farnum)
osd: include more info in pg query result (Sage Weil)
osd, librados: fix full cluster handling (Josh Durgin)
osd: 许多纠删修复 (Sam Just)
osd: many many many bug fixes with cache tiering (Samuel Just)
osd: 移动到 jerasure2 库 (Loic Dachary)
osd: 默认的 crush 层次结构中添加了新的“chassis”类型 (Sage Weil)
osd: new keyvaluestore-dev backend based on leveldb (Haomai Wang)
osd: new OSDMap encoding (Greg Farnum)
osd: 新的纠删池测试 (David Zafman)
osd: preliminary cache pool support (no snaps) (Greg Farnum, Sage Weil)
osd: 减少刷写锁竞争 (Guang Yang)
osd: 重新查询未找到的随机通知 (#6909) (Samuel Just)
osd: 一些 PGBackend 基础设施 (Samuel Just)
osd: 支持新的“memstore”(内存后端)后端 (Sage Weil)
osd: track erasure compatibility (David Zafman)
osd: track omap and hit_set objects in pg stats (Samuel Just)
osd: warn if agent cannot enable due to invalid (post-split) stats (Sage Weil)
rados: add ‘crush location’, smart replica selection/balancing (Sage Weil)
rados bench: track metadata for multiple runs separately (Guang Yang)
rados: some performance optimizations (Yehuda Sadeh)
rados tool: fix listomapvals (Josh Durgin)
rbd: 添加“rbdmap”初始化脚本用于在 book 上映射 rbd 图像 (Adam Twardowski)
rbd: add rbdmap support for upstart (Laurent Barbe)
rbd: expose kernel rbd client options via ‘rbd map’ (Ilya Dryomov)
rbd: fix bench-write command (Hoamai Wang)
rbd: 使“rbd list”返回空列表并在空池中返回成功 (Josh Durgin)
rbd: prevent deletion of images with watchers (Ilya Dryomov)
rbd: support for 4096 mapped devices, up from ~250 (Ilya Dryomov)
rest-api: do not fail when no OSDs yet exist (Dan Mick)
rgw: 向 sysvinit 脚本添加“status”命令 (David Moreau Simard)
rgw: allow multiple frontends (Yehuda Sadeh)
rgw: allow use of an erasure data pool (Yehuda Sadeh)
rgw: convert bucket info to new format on demand (Yehuda Sadeh)
rgw: fixed subuser modify (Yehuda Sadeh)
rgw: 修复设置空所有者时在 ACLs 上的错误 (Yehuda Sadeh)
rgw: 修复 fastcgi 死锁(不要从 librados 回调返回数据)(Yehuda Sadeh)
rgw: fix many-part multipart uploads (Yehuda Sadeh)
rgw: fix misc CORS bugs (Robin H. Johnson)
rgw: 修复对象放置读取操作 (Yehuda Sadeh)
rgw: 修复读取存储桶策略 (#6940)
rgw: 修复 read_user_buckets ‘max’ 行为 (Yehuda Sadeh)
rgw: 修复几个 CORS 错误 (Robin H. Johnson)
rgw: 释放完成句柄时修复使用后释放 (Yehuda Sadeh)
rgw: improve swift temp URL support (Yehuda Sadeh)
rgw: 使多对象删除 id 不可变 (Yehuda Sadeh)
rgw: 可选地推迟到存储桶 ACL 而不是对象 ACL (Liam Monahan)
rgw: 原型 mongoose 前端 (Yehuda Sadeh)
rgw: 几个文档修复 (Alexandre Marangone)
rgw: 支持 keystone 身份验证的密码(而不是管理员令牌)(Christophe Courtaut)
rgw: 从 mongoose 切换到 civetweb (Yehuda Sadeh)
rgw: 用户配额 (Yehuda Sadeh)
rpm: 修复 redhat-lsb 依赖 (Sage Weil, Alfredo Deza)
specfile: 修复 RHEL6 上的 RPM 构建 (#Ken Dreyer, Derek Yarnell)
specfile: 发送 libdir/ceph (Key Dreyer)
sysvinit, upstart: 防止两个初始化系统启动相同的守护进程 (Josh Durgin)
Notable changes since v0.79
build 在 clang 下干净地运行 (Christophe Courtaut)
build: Makefile 重构 (Roald J. van Loon)
build: 修复 [/usr]/sbin 位置 (Alan Somers)
ceph-disk: 修复日志预分配
ceph-fuse, radosgw: 默认情况下启用管理员套接字和日志记录
ceph-fuse: 修复 readahead 与截断竞争问题 (Yan, Zheng)
ceph-fuse: 从缓存中删除已删除的 inodes (Yan, Zheng)
ceph-fuse: 使用更新的 fuse api (Jianpeng Ma)
ceph-kvstore-tool: 新工具用于使用 leveldb(复制,crc) (Joao Luis)
ceph-post-file: 新命令轻松共享日志或其他文件与 ceph 开发人员
ceph: 改进 CEPH_ARGS 的解析 (Benoit Knecht)
ceph: 当监控器宕机时使 -h 行为正常
ceph: 解析 CEPH_ARGS 环境变量
common: bloom_filter 改进,清理
common: 在可能的情况下缓存 crc32c 值
common: 正确的 SI 是 kB 不是 KB (Dan Mick)
common: 修复在 BSD 上循环 (Alan Somers)
common: 将 SharedPtrRegistry 迁移到使用 boost::shared_ptr<> (Loic Dachary)
common: 杂项可移植性修复 (Noah Watkins)
crc32c: 修复优化的 crc32c 代码(它现在可以正确检测架构支持)
crc32c: 改进 intel-优化的 crc32c 支持(在我的笔记本电脑上速度提高了 ~8 倍!)
crush: 修复名称缓存
doc: 纠删码设计说明 (Loic Dachary)
hadoop: 删除旧版本的 shim 以避免用户混淆 (Noah Watkins)
librados, mon: 能够查询/ping 出局多数监控器状态 (Joao Luis)
librados: 修复异步 aio 完成唤醒
librados: 修复安装的标题 #includes (Dan Mick)
librados: get_version64() 方法用于 C++ API
librados: hello_world 示例 (Greg Farnum)
librados: 同步调用现在返回提交(而不是确认) (Greg Farnum)
librbd python 绑定:修复父镜像名称限制 (Josh Durgin)
librbd, ceph-fuse: 避免一些 ceph-fuse, rbd 缓存停滞的来源
mds: 删除截断文件时避免泄漏对象 (Yan, Zheng)
mds: 修复 F_GETLK (Yan, Zheng)
mds: 修复 LOOKUPSNAP 错误
mds: 修复堆分析器命令 (Joao Luis)
mds: 修复锁定死锁 (David Disseldorp)
mds: 修复与 stray(未链接)inodes 相关的许多错误 (Yan, Zheng)
mds: 修复许多目录碎片错误 (Yan, Zheng)
mds: 修复使用旧父指针 xattrs 的 mds 重新加入 (Alexandre Oliva)
mds: 修复创建文件系统期间的罕见重启/失败竞争
mds: 修复当我们落后时的 standby-replay (Yan, Zheng)
mds: 修复 stray 目录清理 (Yan, Zheng)
mds: 通知客户端已删除的文件(以便他们可以从缓存中释放) (Yan, Zheng)
mds: 与集群 mds 相关的几个错误修复 (Yan, Zheng)
mon, osd: 改进 osdmap 修剪逻辑 (Samuel Just)
mon, osd: 初始 CLI 用于配置分层
mon: 修复几个“ceph mon add”竞争 (命令现在不可变) (Joao Luis)
mon: 允许在现有池上设置/取消设置 HASHPSPOOL 标志 (Joao Luis)
mon: 允许带有 . 的 cap 字符串不引号
mon: 允许调整集群日志(/var/log/ceph/ceph.log)的日志级别
mon: 避免在重启时重写完整的 osdmaps (Joao Luis)
mon: 在选举阶段继续发现对等地址信息
mon: 禁止直到“ceph mds set allow_new_snaps” 才能启用 CephFS 快照 (Greg Farnum)
mon: 不要暴露未提交状态来自“osd crush {add,set} …” (Joao Luis)
mon: 修复“ceph osd crush reweight …” (Joao Luis)
mon: 修复用于桶的“osd crush move …”命令 (Joao Luis)
mon: 修复字节计数(差 4 倍) (Dan Mick, Joao Luis)
mon: 修复 paxos 边缘情况
mon: 池的键值属性以支持 EC (Loic Dachary)
mon: 使“osd pool rename”不可变 (Joao Luis)
mon: 修改“auth add”语义以使其更有意义 (Joao Luis)
mon: 新“osd perf”命令用于转储最近的性能信息 (Samuel Just)
mon: 新和改进的“ceph -s”或“ceph status”命令(更多信息,更易于阅读)
mon: 一些身份验证检查清理 (Joao Luis)
mon: 跟踪每个池的统计信息 (Joao Luis)
mon: 警告具有坏 pg_num 的池
mon: 当 mon 数据存储增长非常大时发出警告 (Joao Luis)
monc: 修复小内存泄漏
新的 wireshark 补丁已合并到树中 (Kevin Jones)
objecter, librados: 根据缓存层配置重定向请求
objecter: 修复集群未暂停时可能挂起的可能性 (Josh Durgin)
osd, librados: 添加新的 COPY_FROM rados 操作
osd, librados: 添加新的 COPY_GET rados 操作(由 COPY_FROM 使用)
osd: ‘osd recover clone overlap limit’ 选项限制恢复期间的克隆 (Samuel Just)
osd: COPY_GET 在线编码改进 (Greg Farnum)
osd: 添加“osd heartbeat min healthy ratio”可配置项(原来是硬编码为 33%) (Zheng Qiankun)
osd: 添加选项以禁用 pg 日志调试代码(这会消耗 CPU)
osd: 允许 cap 字符串带有 . 不需要引号
osd: 自动检测适当的 xattr 限制 (David Zafman)
osd: 在纠删码参考实现中避免额外的复制 (Loic Dachary)
osd: 基本缓存池重定向 (Greg Farnum)
osd: 基本白名单,脏标志支持(尚未使用)
osd: bloom_filter 编码能力,修复,清理 (Loic Dachary, Sage Weil)
osd: 清理和通用化复制代码 (Greg Farnum)
osd: cls_hello OSD 类示例
osd: 纠删码文档更新 (Loic Dachary)
osd: 纠删码插件基础设施,测试 (Loic Dachary)
osd: 实验性支持 ZFS (zfsonlinux.org) (Yan, Zheng)
osd: 修复 RWORDER 标志
osd: 修复慢请求警告的指数退避 (Loic Dachary)
osd: 修复竞争读取与写入的处理 (Samuel Just)
osd: 修复各种操作返回的版本值 (Greg Farnum)
osd: 广义临时对象基础设施
osd: ghobject_t 基础设施用于 EC (David Zafman)
osd: 兼容集支持和存储的改进 (David Zafman)
osd: 基础设施从其他 OSD 复制对象
osd: 仪器对等状态 (David Zafman)
osd: 杂项复制改进
osd: 在存储数据上进行机会性 crc 检查(默认情况下关闭)
osd: 正确执行 RD/WR 标志对于 rados 类
osd: 减少对底层文件系统的阻塞 (Samuel Just)
osd: 使用 PGBackend 重新整理恢复 (Samuel Just)
osd: 移除旧的神奇 tmap->omap 转换
osd: 在升级时移除旧的 pg 日志 (Samuel Just)
osd: 重置 xattr 大小限制(修复大 rgw 上传)
osd: 使用 fdatasync(2) 而不是 fsync(2) 以提高性能 (Samuel Just)
pybind: 修复黑名单随机数 (Loic Dachary)
radosgw-agent: 多区域复制/DR
rgw: 在关闭之前完成进行中的请求
rgw: 默认日志级别现在更合理 (Yehuda Sadeh)
rgw: 修复 S3 身份验证与响应-* 查询字符串参数 (Sylvain Munaut, Yehuda Sadeh)
rgw: 修复几个小的内存泄漏 (Yehuda Sadeh)
rgw: 修复 acl 组检查 (Yehuda Sadeh)
rgw: 修复对 std::list::size() 的低效使用 (Yehuda Sadeh)
rgw: 修复内部缓存中的重大 CPU 利用率错误 (Yehuda Sadeh, Mark Nelson)
rgw: 修复写操作的排序(防止崩溃时数据丢失) (Yehuda Sadeh)
rgw: 修复多部分上传的写操作排序 (Yehuda Sadeh)
rgw: 修复各种 CORS 错误 (Yehuda Sadeh)
rgw: 改进 swift COPY 支持 (Yehuda Sadeh)
rgw: 改进帮助输出 (Christophe Courtaut)
rgw: 支持灾难恢复的杂项修复 (Josh Durgin, Yehuda Sadeh)
rgw: 每个桶配额 (Yehuda Sadeh)
rgw: 验证 S3 令牌与 keystone (Roald J. van Loon)
rgw: keystone 角色的通配符支持 (Christophe Courtaut)
rpm: 修复.junit 依赖 (Alan Grosskurth)
sysvinit radosgw: 修复状态返回代码 (Danny Al-Gaaf)
sysvinit rbdmap: 修复错误“服务 rbdmap 停止” (Laurent Barbe)
sysvinit: 添加 condrestart 命令 (Dan van der Ster)
sysvinit: 修复关闭顺序(监视器最后) (Alfredo Deza)
v0.78
此版本旨在作为 firefly 的候选版本,希望是 v0.80. 目前除了修复错误之外,代码库没有进行任何更改。如果您打算使用 firefly 中的纠删码池或缓存层,请测试此版本。
此版本修复了 v0.78 中发现的一系列错误,并简化了创建纠删码池的用户体验。还有对 MDS 的大量修复,包括混合版本的 MDS、目录碎片和大型目录。主要的新功能是一个小的更改,允许 radosgw 使用纠删码池用于对象数据。
升级
使用 v0.78 创建的纠删码池将不再与 v0.79 兼容。您需要删除旧池并创建一个新池。
在大端架构的身份验证握手过程中修复了一个错误,该错误阻止了大端和little-endian 机器之间的身份验证。如果您有一个完全由大端机器组成的集群,您需要升级所有守护进程和客户端并重新启动。
“ceph.file.layout” 和 “ceph.dir.layout” 扩展属性不再包含在 listxattr(2) 结果中,以防止与“cp -a”和类似工具的问题。
监控器“auth”只读命令现在期望用户具有“rx”权限。
ceph auth export ceph auth get ceph auth get-key ceph auth print-key ceph auth list
值得注意的变化
ceph-conf: 停止创建虚构的日志文件 (Josh Durgin, Sage Weil)
common: 修复大端架构上的身份验证 (Dan Mick)
debian: 改变 ceph 和 ceph-common 之间的目录所有权 (Sage Weil)
init: 修复 OSD 启动排序/超时问题 (Dmitry Smirnov)
librbd: 跳过复制稀疏图像时的零/空洞 (Josh Durgin)
mds: 处理创建期间 MDS 失败 (John Spray)
mds: 修复客户端睡眠/恢复时的崩溃 (Zheng Yan)
mds: 与目录碎片相关的杂项修复 (Zheng Yan)
mds: 与大型目录相关的杂项修复 (Zheng Yan)
mds: 多个 MDS 的杂项修复 (Zheng Yan)
mds: 删除 .ceph 目录 (John Spray)
杂项 coverity 修复,清理 (Danny Al-Gaaf)
mon: 添加纠删配置文件并改进纠删池创建 (Loic Dachary)
mon: ‘ceph osd pg-temp …’ 和 primary-temp 命令 (Ilya Dryomov)
mon: 修复池计数在“ceph -s”输出中 (#9502 Sage Weil)
msgr: 改进客户端和监控器之间的连接错误检测 (Greg Farnum, Sage Weil)
osd: 添加/修复 jerasure 的 CPU 功能检测 (Loic Dachary)
osd: 改进克隆的刷写检查 (Sage Weil, Sam Just)
osd: 许多纠删修复 (Sam Just)
osd: 移动到 jerasure2 库 (Loic Dachary)
osd: 新的纠删池测试 (David Zafman)
osd: 减少刷写锁竞争 (Guang Yang)
rgw: allow use of an erasure data pool (Yehuda Sadeh)
v0.78
此开发版本包括两个关键功能:纠删码和缓存分层。合并了大量代码,并且花费了额外的几周时间来稳定代码库,现在它已经处于可以由更广泛的用户基础进行测试的状态。
这不是firefly 发布。Firefly 将延迟至少另一个冲刺,以便我们可以对新代码进行一些操作经验,并进行一些额外的测试,然后再承诺长期支持。 the firefly release. Firefly will be delayed for at least another sprint so that we can get some operational experience with the new code and do some additional testing before committing to long term support.
Note
请注意,虽然在此版本中可以创建和测试纠删码池,但在升级到 v0.79 时,池将无法使用,因为 OSDMap 编码将微妙地更改。请不要用重要数据填充您的测试池,这些数据无法重新加载。
升级
按以下顺序升级守护进程:
Monitors
OSDs
MDSs and/or radosgw
如果 ceph-mds 守护进程首先重新启动,它将等待所有 OSD 都已升级后才能完成其启动序列。如果 ceph-mon 守护进程在 ceph-osd 守护进程之前没有重新启动,它们将无法正确注册它们的新功能,并且新功能可能直到重新启动后才能使用。
一起升级 radosgw 守护进程。对于多部分上传,行为有一个微妙的变化,这会阻止使用新 radosgw 启动的新多部分请求被旧 radosgw 完成。
CephFS 最近添加了对文件数据对象上新的“backtrace”属性的支持,该属性用于通过 inode 编号(即 NFS 重新导出和硬链接)进行查找,并将稍后用于 fsck 修复。这取代了用于硬链接解析的现有锚表机制。为了完全淘汰该机制,任何具有过时 backtrace 属性的 inode 在 inode 本身修改时将得到更新。这将导致在升级旧 CephFS 文件系统后一些额外的工作量。
librados 的 Compound 操作接口中的每个操作返回代码现在填充了。
librados 的 cmpxattr 操作现在处理包含空字节作为数据的 xattr,而不是空终止字符串。
librados 中创建然后删除相同对象的复合操作现在明确禁止(它们使用 -EINVAL 失败)。
ceph-osd 守护进程的默认 leveldb 缓存大小已从 4 MB 增加到 128 MB。这将增加该进程的内存占用,但通常会增加 omap(键/值)对象(用于 CephFS 和 radosgw)的性能。如果您的部署内存紧张,您可以通过在 ceph.conf 中添加:
leveldb write buffer size = 0 leveldb cache size = 0
来保留旧行为并恢复(leveldb)默认值。
值得注意的变化
ceph-brag: 新客户端和服务器工具 (Sebastien Han, Babu Shanmugam)
ceph-disk: 使用 partx 在 RHEL 或 CentOS 上而不是 partprobe (Alfredo Deza)
ceph: 修复“tell”和交互模式组合 (Joao Eduardo Luis)
ceph-fuse: 修复内联数据和多个 MDSs 的错误 (Zheng Yan)
客户端: 修复 getcwd() 以使用新的 LOOKUPPARENT 操作 (Zheng Yan)
common: 在管理员套接字中回退到 json-pretty (Loic Dachary)
common: 修复“config dump”调试前缀 (Danny Al-Gaaf)
common: 杂项 coverity 修复 (Danny Al-Gaaf)
common: throtller, shared_cache 性能改进,TrackedOp (Greg Farnum, Samuel Just)
crush: 修复转储的 JSON schema (John Spray)
crush: 杂项清理,测试 (Loic Dachary)
crush: 新 vary_r 可调参数 (Sage Weil)
crush: 防止类型为 0 的无效桶 (Sage Weil)
keyvaluestore: 添加 perfcounters,杂项错误修复 (Haomai Wang)
keyvaluestore: 可移植性改进 (Noah Watkins)
libcephfs: API 更改以更好地支持通过 Ganesha 进行 NFS 重新导出 (Matt Benjamin, Adam Emerson, Andrey Kuznetsov, Casey Bodley, David Zafman)
librados: API 文档改进 (John Wilkins, Josh Durgin)
librados: 修复对象枚举错误;允许迭代器赋值 (Josh Durgin)
librados: 简化测试 (Josh Durgin)
librados: 支持 C API 的原子读取和 omap 操作 (Josh Durgin)
librados: 支持 OSD 和 mon 命令超时 (Josh Durgin)
librbd: 将分配提示传递给 OSD (Ilya Dryomov)
logrotate: 修复阻止某些守护进程旋转的 bug (Loic Dachary)
mds: 避免在恢复期间重复发现 (Zheng Yan)
mds: 修复文件锁所有者检查 (Zheng Yan)
mds: 修复 LOOKUPPARENT,新的 LOOKUPNAME 操作用于可靠的 NFS 重新导出 (Zheng Yan)
mds: 修复 setxattr 上的 xattr 处理 (Zheng Yan)
mds: getattr 响应中的 xattr (Sage Weil)
mds: 在更新时强制回溯更新旧 inodes (Zheng Yan)
mds: 几个多 MDS 和目录碎片错误修复 (Zheng Yan)
mon: 在池元数据中编码纠删条纹宽度 (Loic Dachary)
mon: 纠删码 crush 规则创建 (Loic Dachary)
mon: 纠删码插件支持 (Loic Dachary)
mon: 修复初始 post-mkfs quorum 创建中的错误 (Sage Weil)
mon: 修复启动期间错误输出到终端的错误 (Joao Eduardo Luis)
mon: 修复旧的 CRUSH 调试警告 (Sage Weil)
mon: 修复映射修剪的 osd_epochs 下限跟踪 (Sage Weil)
mon: 修复 OSDMap 编码功能 (Sage Weil, Aaron Ten Clay)
mon: 修复“pg dump” JSON 输出 (John Spray)
mon: 在“ceph df detail”中包含脏统计信息 (Sage Weil)
mon: 以 quorum 顺序列出配额成员名称 (Sage Weil)
mon: 防止添加非空的缓存层 (Sage Weil)
mon: 防止删除 CephFS 池 (John Spray)
mon: 当缓存层接近“满”时发出警告 (Sage Weil)
osd: 分配提示,带有 XFS 支持 (Ilya Dryomov)
osd: 纠删码池支持 (Samuel Just)
osd: 修复导致慢/停滞恢复 (#7706) (Samuel Just)
osd: 修复日志合并中的错误 (Samuel Just)
osd: 修复读取时对象结束处理的/澄清 (Loic Dachary)
osd: 修复 mon 会话回退和重新连接行为 (Greg Farnum)
osd: 修复 SnapContext 缓存 id 错误 (Samuel Just)
osd: increase default leveldb cache size and write buffer (Sage Weil, Dmitry Smirnov)
osd: limit size of ‘osd bench …’ arguments (Joao Eduardo Luis)
osdmaptool: new --test-map-pgs mode (Sage Weil, Ilya Dryomov)
osd, mon: add primary-affinity to adjust selection of primaries (Sage Weil)
osd: new ‘status’ admin socket command (Sage Weil)
osd: simple tiering agent (Sage Weil)
osd: store checksums for erasure coded object stripes (Samuel Just)
osd: tests for objectstore backends (Haomai Wang)
osd: various refactoring and bug fixes (Samuel Just, David Zafman)
rados: add ‘set-alloc-hint’ command (Ilya Dryomov)
rbd-fuse: fix enumerate_images overflow, memory leak (Ilya Dryomov)
rbdmap: fix upstart script (Stephan Renatus)
rgw: avoid logging system events to usage log (Yehuda Sadeh)
rgw: fix Swift range reponse (Yehuda Sadeh)
rgw: improve scalability for manifest objects (Yehuda Sadeh)
rgw: misc fixes for multipart objects, policies (Yehuda Sadeh)
rgw: support non-standard MultipartUpload command (Yehuda Sadeh)
v0.77
This is the final development release before the Firefly feature freeze. The main items in this release include some additional refactoring work in the OSD IO path (include some locking improvements), per-user quotas for the radosgw, a switch to civetweb from mongoose for the prototype radosgw standalone mode, and a prototype leveldb-based backend for the OSD. The C librados API also got support for atomic write operations (read side transactions will appear in v0.78).
升级
The ‘ceph -s’ or ‘ceph status’ command’s ‘num_in_osds’ field in the JSON and XML output has been changed from a string to an int.
The recently added ‘ceph mds set allow_new_snaps’ command’s syntax has changed slightly; it is now ‘ceph mds set allow_new_snaps true’. The ‘unset’ command has been removed; instead, set the value to ‘false’.
The syntax for allowing snapshots is now ‘mds set allow_new_snaps <true|false>’ instead of ‘mds <set,unset> allow_new_snaps’.
值得注意的变化
osd: client IO path changes for EC (Samuel Just)
common: portability changes to support libc++ (Noah Watkins)
common: switch to unordered_map from hash_map (Noah Watkins)
rgw: 从 mongoose 切换到 civetweb (Yehuda Sadeh)
osd: improve locking in fd lookup cache (Samuel Just, Greg Farnum)
doc: many many updates (John Wilkins)
rgw: 用户配额 (Yehuda Sadeh)
mon: 将配额特征持久保存到磁盘 (Greg Farnum)
mon: MForward 测试 (Loic Dachary)
mds: inline data support (Li Wang, Yunchuan Wen)
rgw: fix many-part multipart uploads (Yehuda Sadeh)
osd: new keyvaluestore-dev backend based on leveldb (Haomai Wang)
rbd: prevent deletion of images with watchers (Ilya Dryomov)
osd: avoid touching leveldb for some xattrs (Haomai Wang, Sage Weil)
mailmap: affiliation updates (Loic Dachary)
osd: new OSDMap encoding (Greg Farnum)
osd: generalize scrubbing infrastructure to allow EC (David Zafman)
rgw: 几个文档修复 (Alexandre Marangone)
librados: add C API coverage for atomic write operations (Christian Marie)
rgw: improve swift temp URL support (Yehuda Sadeh)
rest-api: do not fail when no OSDs yet exist (Dan Mick)
common: check preexisting admin socket for active daemon before removing (Loic Dachary)
osd: handle more whitespace (newline, tab) in osd capabilities (Sage Weil)
mon: handle more whitespace (newline, tab) in mon capabilities (Sage Weil)
rgw: 使多对象删除 id 不可变 (Yehuda Sadeh)
crush: 修复最近重构中的 off-by-one 错误 (Sage Weil)
rgw: 修复 read_user_buckets ‘max’ 行为 (Yehuda Sadeh)
mon: 改变 mds allow_new_snaps 语法以使其更一致 (Sage Weil)
v0.76
This release includes another batch of updates for firefly functionality. Most notably, the cache pool infrastructure now support snapshots, the OSD backfill functionality has been generalized to include multiple targets (necessary for the coming erasure pools), and there were performance improvements to the erasure code plugin on capable processors. The MDS now properly utilizes (and seamlessly migrates to) the OSD key/value interface (aka omap) for storing directory objects. There continue to be many other fixes and improvements for usability and code portability across the tree.
升级
‘rbd ls’ on a pool which never held rbd images now exits with code 0. It outputs nothing in plain format, or an empty list in non-plain format. This is consistent with the behavior for a pool which used to hold images, but contains none. Scripts relying on this behavior should be updated.
The MDS requires a new OSD operation TMAP2OMAP, added in this release. When upgrading, be sure to upgrade and restart the ceph-osd daemons before the ceph-mds daemon. The MDS will refuse to start if any up OSDs do not support the new feature.
The ‘ceph mds set_max_mds N’ command is now deprecated in favor of ‘ceph mds set max_mds N’.
值得注意的变化
build: misc improvements (Ken Dreyer)
ceph-disk: generalize path names, add tests (Loic Dachary)
ceph-disk: misc improvements for puppet (Loic Dachary)
ceph-disk: several bug fixes (Loic Dachary)
ceph-fuse: fix race for sync reads (Sage Weil)
config: recursive metavariable expansion (Loic Dachary)
crush: usability and test improvements (Loic Dachary)
doc: misc fixes (David Moreau Simard, Kun Huang)
erasure-code: improve buffer alignment (Loic Dachary)
erasure-code: rewrite region-xor using vector operations (Andreas Peters)
librados, osd: new TMAP2OMAP operation (Yan, Zheng)
mailmap updates (Loic Dachary)
many portability improvements (Noah Watkins)
many unit test improvements (Loic Dachary)
mds: always store backtrace in default pool (Yan, Zheng)
mds: store directories in omap instead of tmap (Yan, Zheng)
mon: allow adjustment of cephfs max file size via ‘ceph mds set max_file_size’ (Sage Weil)
mon: do not create erasure rules by default (Sage Weil)
mon: do not generate spurious MDSMaps in certain cases (Sage Weil)
mon: do not use keyring if auth = none (Loic Dachary)
mon: fix pg_temp leaks (Joao Eduardo Luis)
osd: backfill to multiple targets (David Zafman)
osd: cache pool support for snapshots (Sage Weil)
osd: fix and cleanup misc backfill issues (David Zafman)
osd: fix omap_clear operation to not zap xattrs (Sam Just, Yan, Zheng)
osd: ignore num_objects_dirty on scrub for old pools (Sage Weil)
osd: include more info in pg query result (Sage Weil)
osd: track erasure compatibility (David Zafman)
rbd: 使“rbd list”返回空列表并在空池中返回成功 (Josh Durgin)
rgw: 修复对象放置读取操作 (Yehuda Sadeh)
rgw: 修复几个 CORS 错误 (Robin H. Johnson)
specfile: 修复 RHEL6 上的 RPM 构建 (#Ken Dreyer, Derek Yarnell)
specfile: 发送 libdir/ceph (Key Dreyer)
v0.75
This is a big release, with lots of infrastructure going in for firefly. The big items include a prototype standalone frontend for radosgw (which does not require apache or fastcgi), tracking for read activity on the osds (to inform tiering decisions), preliminary cache pool support (no snapshots yet), and lots of bug fixes and other work across the tree to get ready for the next batch of erasure coding patches.
For comparison, here are the diff stats for the last few versions:
v0.75 291 files changed, 82713 insertions(+), 33495 deletions(-)
v0.74 192 files changed, 17980 insertions(+), 1062 deletions(-)
v0.73 148 files changed, 4464 insertions(+), 2129 deletions(-)
升级
The ‘osd pool create …’ syntax has changed for erasure pools.
The default CRUSH rules and layouts are now using the latest and greatest tunables and defaults. Clusters using the old values will now present with a health WARN state. This can be disabled by adding ‘mon warn on legacy crush tunables = false’ to ceph.conf.
值得注意的变化
common: bloom filter improvements (Sage Weil)
common: fix config variable substitution (Loic Dachary)
crush, osd: s/rep/replicated/ for less confusion (Loic Dachary)
crush: refactor descend_once behavior; support set_choose*_tries for replicated rules (Sage Weil)
librados: fix throttle leak (and eventual deadlock) (Josh Durgin)
librados: read directly into user buffer (Rutger ter Borg)
librbd: fix use-after-free aio completion bug #5426 (Josh Durgin)
librbd: localize/distribute parent reads (Sage Weil)
mds: fix Resetter locking (Alexandre Oliva)
mds: fix cap migration behavior (Yan, Zheng)
mds: fix client session flushing (Yan, Zheng)
mds: fix many many multi-mds bugs (Yan, Zheng)
misc portability work (Noah Watkins)
mon, osd: 创建纠删样式 crush 规则 (Loic Dachary, Sage Weil)
mon: “osd crush show-tunables” (Sage Weil)
mon: 清理初始 crush 规则创建 (Loic Dachary)
mon: 改进(复制或纠删)池创建 UX (Loic Dachary)
mon: 基础设施来处理混合版本 mon 集群和 cli/rest API (Greg Farnum)
mon: mkfs 现在是 idempotent (Loic Dachary)
mon: 只为新 osdmaps 种子到当前 OSDs (Sage Weil)
mon: 跟踪 OSD 特征在 OSDMap 中 (Joao Luis, David Zafman)
mon: 如果 crush 具有非最优的调参发出警告 (Sage Weil)
mount.ceph: 添加 -n 用于 autofs 支持 (Steve Stock)
msgr: 修复 messenger 重启竞争 (Xihui He)
osd, librados: fix full cluster handling (Josh Durgin)
osd: add HitSet tracking for read ops (Sage Weil, Greg Farnum)
osd: backfill to osds not in acting set (David Zafman)
osd: enable new hashpspool layout by default (Sage Weil)
osd: erasure plugin benchmarking tool (Loic Dachary)
osd: fix XFS detection (Greg Farnum, Sushma Gurram)
osd: fix copy-get omap bug (Sage Weil)
osd: fix linux kernel version detection (Ilya Dryomov)
osd: fix memstore segv (Haomai Wang)
osd: fix several bugs with tier infrastructure
osd: fix throttle thread (Haomai Wang)
osd: preliminary cache pool support (no snaps) (Greg Farnum, Sage Weil)
rados tool: fix listomapvals (Josh Durgin)
rados: add ‘crush location’, smart replica selection/balancing (Sage Weil)
rados: some performance optimizations (Yehuda Sadeh)
rbd: add rbdmap support for upstart (Laurent Barbe)
rbd: expose kernel rbd client options via ‘rbd map’ (Ilya Dryomov)
rbd: fix bench-write command (Hoamai Wang)
rbd: support for 4096 mapped devices, up from ~250 (Ilya Dryomov)
rgw: allow multiple frontends (Yehuda Sadeh)
rgw: convert bucket info to new format on demand (Yehuda Sadeh)
rgw: fix misc CORS bugs (Robin H. Johnson)
rgw: 原型 mongoose 前端 (Yehuda Sadeh)
v0.74
This release includes a few substantial pieces for Firefly, including a long-overdue switch to 3x replication by default and a switch to the “new” CRUSH tunables by default (supported since bobtail). There is also a fix for a long-standing radosgw bug (stalled GET) that has already been backported to emperor and dumpling.
升级
We now default to the ‘bobtail’ CRUSH tunable values that are first supported by Ceph clients in bobtail (v0.56) and Linux kernel version v3.9. If you plan to access a newly created Ceph cluster with an older kernel client, you should use ‘ceph osd crush tunables legacy’ to switch back to the legacy behavior. Note that making that change will likely result in some data movement in the system, so adjust the setting before populating the new cluster with data.
We now set the HASHPSPOOL flag on newly created pools (and new clusters) by default. Support for this flag first appeared in v0.64; v0.67 Dumpling is the first major release that supports it. It is first supported by the Linux kernel version v3.9. If you plan to access a newly created Ceph cluster with an older kernel or clients (e.g, librados, librbd) from a pre-dumpling Ceph release, you should add ‘osd pool default flag hashpspool = false’ to the ‘[global]’ section of your ‘ceph.conf’ prior to creating your monitors (e.g., after ‘ceph-deploy new’ but before ‘ceph-deploy mon create …’).
The configuration option ‘osd pool default crush rule’ is deprecated and replaced with ‘osd pool default crush replicated ruleset’. ‘osd pool default crush rule’ takes precedence for backward compatibility and a deprecation warning is displayed when it is used.
值得注意的变化
buffer: 进行了一些零拷贝的基础工作 (Josh Durgin)
ceph-disk: 避免使用 fd0 (Loic Dachary)
crush: 默认使用 bobtail 调整参数 (Sage Weil)
crush: 添加了许多额外的测试 (Loic Dachary)
crush: 一些杂项修复和清理 (Loic Dachary)
crush: 新的规则步骤用于调整重试尝试 (Sage Weil)
debian: 集成了来自下游打包的杂项修复 (James Page)
doc: 安装文档进行了重大更新 (John Wilkins)
libcephfs: 修复资源泄漏 (Zheng Yan)
杂项 Coverity 修复 (Xing Lin, Li Wang, Danny Al-Gaaf)
杂项可移植性修复 (Noah Watkins, Alan Somers)
mon, osd: 新的“erasure”池类型(仍然不完全支持)
mon: 添加“mon getmap EPOCH” (Joao Eduardo Luis)
mon: 收集关于 osd 的杂项元数据(操作系统、内核等),新的“osd metadata”命令 (Sage Weil)
osd: 默认使用 3 倍复制
osd: 不在活动集中包含回填目标 (David Zafman)
osd: 默认的 crush 层次结构中添加了新的“chassis”类型 (Sage Weil)
osd: 重新查询未找到的随机通知 (#6909) (Samuel Just)
osd: 一些 PGBackend 基础设施 (Samuel Just)
osd: 支持新的“memstore”(内存后端)后端 (Sage Weil)
rgw: 修复 fastcgi 死锁(不要从 librados 回调返回数据)(Yehuda Sadeh)
rgw: 修复读取存储桶策略 (#6940)
rgw: 释放完成句柄时修复使用后释放 (Yehuda Sadeh)
v0.73
本版本是 emperor 之后的首个开发版本,包括许多错误修复和一些额外的功能。第一批较大的更改将在下一个版本 v0.74 中发布。
升级
作为 #6796 修复的一部分,“ceph osd pool set <pool> <var> <arg>” 现在将 <arg> 接收为整数而不是字符串。这影响了“hashpspool”标志的设置/取消设置方式:现在必须是“0”或“1”,而不是“true”或“false”。
CRUSH “indep” 选择模式的行为了所更改。除非有人手动提取了一个 crush 映射,修改了一个 CRUSH 规则以将“firstn”替换为“indep”,重新编译并重新将新映射注入集群,否则没有任何 ceph 集群应该在使用这种行为。如果集群当前正在使用“indep”模式,则应将规则修改为使用“firstn”代替,管理员应在升级前等待任何数据移动完成。
“osd dump”命令现在将池快照作为数组而不是对象输出。
radosgw 初始化脚本(sysvinit)要求 ceph.conf 中的“host = …”行(如果存在)与短主机名(“hostname -s”的输出)匹配,而不是完全限定主机名或“hostname”的(偶尔非短)输出。在从 emperor 或 dumpling 升级时未能调整此设置可能会阻止 radosgw 守护进程启动。
值得注意的变化
ceph-crush-location: 新的钩子用于在启动时设置 osd 守护进程的 CRUSH 位置
ceph-kvstore-tool: 扩展了命令集和功能 (Joao Eduardo Luis)
ceph.spec: 修复构建依赖项 (Loic Dachary)
common: 修复对齐缓冲区分配 (Loic Dachary)
doc: 安装文档进行了许多许多改进 (John Wilkins)
mds: 修复读取结束检查 (Zheng Yan)
mds: 机会性地更新旧格式的回溯 (Zheng Yan)
来自 Coverity 的杂项清理 (Xing Lin)
杂项可移植性修复 (Noah Watkins, Christophe Courtaut, Alan Somers, huanjun)
mon: “osd dump”将池快照作为数组输出,而不是对象 (Dan Mick)
mon: 允许通过管理员套接字使用调试 quorum_{enter,exit} 命令
mon: 防止池 pg_num 发生极端变化 (Greg Farnum)
mon: 将“osd pool set …”值作为整数,而不是字符串 (Joao Eduardo Luis)
mon: 修剪 MDSMaps (Joao Eduardo Luis)
osd: 修复来自 emperor 的 object_info_t 编码错误 (Sam Just)
rbd: 添加“rbdmap”初始化脚本用于在 book 上映射 rbd 图像 (Adam Twardowski)
rgw: 向 sysvinit 脚本添加“status”命令 (David Moreau Simard)
rgw: 修复设置空所有者时在 ACLs 上的错误 (Yehuda Sadeh)
rgw: 可选地推迟到存储桶 ACL 而不是对象 ACL (Liam Monahan)
rgw: 支持 keystone 身份验证的密码(而不是管理员令牌)(Christophe Courtaut)
sysvinit, upstart: 防止两个初始化系统启动相同的守护进程 (Josh Durgin)
由 Ceph 基金会带给您
Ceph 文档是一个社区资源,由非盈利的 Ceph 基金会资助和托管Ceph Foundation. 如果您想支持这一点和我们的其他工作,请考虑加入现在加入.