注意
本文档适用于 Ceph 开发版本。
Infernalis
Infernalis 是 Ceph 的第 9 个稳定版本。它以吸血鬼乌贼(Vampyroteuthis infernalis,即“地狱吸血鬼乌贼”)命名。
v9.2.1 Infernalis
这个 Infernalis 点发布版本修复了几个打包和初始化脚本问题,默认启用 librbd 对象映射功能,一些 librbd 错误,以及系统范围内的各种小错误。
我们建议所有 infernalis v9.2.0 用户升级。
更多详细信息,请参阅the complete changelog
.
升级
v9.1.0 和 v9.2.0 中 C++ 接口错误暴露的一些符号已被移除。如果你针对这些版本附带的 librados 编译了自己的应用程序,它很可能引用这些已移除的符号。因此,你需要重新编译它。
显著变化
build/ops: Ceph 守护进程未能启动,因为服务名称已被使用。 (问题#13474, 补丁#6833, Chuanhong Wang)
build/ops: ceph upstart 脚本 rbdmap.conf 不正确地处理参数 (issue#13214, 补丁#6396, Sage Weil)
build/ops: libunwind 包在 CentOS 7 上缺失 (issue#13997, 补丁#6845, Loic Dachary)
build/ops: rbd-replay-* 从 ceph-test-dbg 移动到 ceph-common-dbg (issue#13785, 补丁#6628, Loic Dachary)
build/ops: systemd/ceph-disk@.service 假设 /bin/flock (issue#13975, 补丁#6852, Loic Dachary)
build/ops: systemd: 没有 rbdmap systemd 单元文件 (issue#13374, 补丁#6500, Boris Ranto)
common: auth/cephx: osd 产生大量日志 (问题#13610, 补丁#6836, Qiankun Zheng)
common: log: Log.cc: 将 syslog 调用分配给 LOG_DEBUG 优先级 (issue#13993, 补丁#6993, Brad Hubbard)
crush: 如果在早期规则步骤中看到 CRUSH_ITEM_NONE,则会崩溃 (issue#13477, 补丁#6626, Sage Weil)
fs: Ceph 文件系统没有释放空间 (issue#13777, 补丁#7431, Yan, Zheng, John Spray)
fs: Ceph-fuse 在 ceph.conf 中设置选项 log_max_new 为零时无法正确启动 (issue#13443, 补丁#6395, Wenjun Huang)
fs: 使用 fuse 挂载访问文件时出现段错误 (issue#13714, 补丁#6853, Yan, Zheng)
librbd: 避免在调整大小时重写旧格式图像头 (issue#13674, 补丁#6630, Jason Dillaman)
librbd: ImageWatcher 不应该阻塞通知线程 (问题#14373, 补丁#7406, Jason Dillaman)
librbd: 创建快照后停止 VM 后 QEMU 挂起 (issue#13726, 补丁#6632, Jason Dillaman)
librbd: 在图像创建时验证自我管理的快照功能 (issue#13633, 补丁#7080, Jason Dillaman)
librbd: [ 失败 ] TestLibRBD.SnapRemoveViaLockOwner (issue#14164, 补丁#7079, Jason Dillaman)
librbd: 启用对象映射功能 (issue#13558, 补丁#6477, xinxin shu)
librbd: fix merge-diff for >2GB diff-files (issue#14030, 补丁#6981, Jason Dillaman)
librbd: 使用活动 IO 展平 rbd 图像可能会导致挂起 (issue#14092, 问题#14483, 补丁#7484, Jason Dillaman)
mds: 修复重新连接期间客户端功能(client.XXXX 没有响应 mclientcaps 警告) (issue#11482, 补丁#6752, Yan, Zheng)
mon: 如果某些 OSD 的权重为 0,Ceph 池的 MAX AVAIL 为 0 (问题#13840, 补丁#6907, Chengyuan Li)
mon: 当 cephx_verify_authorizer 返回时不应将 isvalid 设置为 true (issue#13525, 补丁#6392, Ruifeng Yang)
objecter: 池操作回调可能会永远挂起。 (issue#13642, 补丁#6627, xie xingguo)
objecter: 在执行 pool_snap_list 时可能会出现潜在的空指针访问。 (issue#13639, 补丁#6840, xie xingguo)
osd: FileStore: 如果 getattrs 失败,则潜在的内存泄漏。 (issue#13597, 补丁#6846, xie xingguo)
osd: OSD::build_past_intervals_parallel() 在开始新的 past_interval 时应重置主和 up_primary。 (issue#13471, 补丁#6397, xiexingguo)
osd: call on_new_interval on newly split child PG (issue#13962, 补丁#6849, Sage Weil)
osd: ceph-disk 列表在 /dev/cciss!c0d0 上失败 (issue#13970, issue#14230, 补丁#6880, Loic Dachary)
osd: ceph-disk: 使用 blkid 而不是 sgdisk -i (issue#14080, 补丁#7001, Loic Dachary, Ilya Dryomov)
osd: osd/PG.cc: 288: 失败的断言(info.last_epoch_started >= info.history.last_epoch_started) (问题#14015, 补丁#6851, David Zafman)
osd: 在 infernalis 升级后 pgs 卡在不一致状态 (issue#13862, 补丁#7421, David Zafman)
rbd: TaskFinisher::cancel 应该从 SafeTimer 中移除事件 (issue#14476, 补丁#7426, Douglas Fuller)
rbd: cls_rbd: object_map_save 应该启用校验和 (issue#14280, 补丁#7428, Douglas Fuller)
rbd: rbd balance-reads 测试中的错误操作 (issue#13491, 补丁#6629, Jason Dillaman)
rbd: 调用纯虚拟方法 (issue#13636, 补丁#6633, Jason Dillaman)
rbd: rbd 克隆问题 (issue#13553, 补丁#6474, xinxin shu)
rbd: rbd-replay 没有检查 EOF 并进入无限循环 (问题#14452, 补丁#7427, Mykola Golub)
rbd: udevadm settle 中的未知参数 --quiet (issue#13560, 补丁#6634, Jason Dillaman)
rgw: 初始化脚本重新加载在 EL7 上不起作用 (问题#13709, 补丁#6650, Hervé Rousseau)
rgw: radosgw-admin --help 没有显示或phans find 命令 (问题#14516, 补丁#7543, Yehuda Sadeh)
测试: ceph-disk workunit 使用 configobj (问题#14004, 补丁#6828, Loic Dachary)
tests: notification slave needs to wait for master (issue#13810, 补丁#7225, Jason Dillaman)
测试: testprofile 必须在重新创建之前删除 (issue#13664, 补丁#6449, Loic Dachary)
测试: 验证是否可以重用 OSD id (issue#13988, 补丁#6882, Loic Dachary)
v9.2.0 Infernalis
这个主要发布将成为下一个稳定系列的基石。自 v0.94.x Hammer 以来,有一些重大变化,升级过程并不简单。请仔细阅读这些发布说明。
Major Changes from Hammer
General:
Ceph daemons are now managed via systemd (with the exception of Ubuntu Trusty, which still uses upstart).
Ceph 守护进程作为 ‘ceph’ 用户运行,而不是 root。
On Red Hat distros, there is also an SELinux policy.
RADOS:
The RADOS cache tier can now proxy write operations to the base tier, allowing writes to be handled without forcing migration of an object into the cache.
The SHEC erasure coding support is no longer flagged as experimental. SHEC trades some additional storage space for faster repair.
There is now a unified queue (and thus prioritization) of client IO, recovery, scrubbing, and snapshot trimming.
There have been many improvements to low-level repair tooling (ceph-objectstore-tool).
内部 ObjectStore API 已得到显著清理,以促进新的存储后端,如 NewStore。
RGW:
The Swift API now supports object expiration.
There are many Swift API compatibility improvements.
RBD:
The
rbd du
command shows actual usage (quickly, when object-map is enabled).The object-map feature has seen many stability improvements.
对象映射和独占锁功能可以动态启用或禁用。
You can now store user metadata and set persistent librbd options associated with individual images.
新的 deep-flatten 功能允许展平克隆及其所有快照。(以前快照不能被展平。)
The export-diff command is now faster (it uses aio). There is also a new fast-diff feature.
The --size argument can be specified with a suffix for units (e.g.,
--size 64G
搜索)。There is a new
rbd status
command that, for now, shows who has the image open/mapped.
CephFS:
You can now rename snapshots.
There have been ongoing improvements around administration, diagnostics, and the check and repair tools.
The caching and revocation of client cache state due to unused inodes has been dramatically improved.
The ceph-fuse client behaves better on 32-bit hosts.
Distro compatibility
我们决定放弃对许多旧发行版的支持,以便我们可以迁移到更新的编译器工具链(例如,C++11)。尽管仍然可以通过安装回滚的开发工具在旧发行版上构建 Ceph,但我们不再为 ceph.com 构建和发布发布软件包。
我们现在为以下系统构建软件包:
CentOS 7 或更高版本。我们已经停止了对 CentOS 6(以及其他 RHEL 6 衍生版本,如 Scientific Linux 6)的支持。
Debian Jessie 8.x 或更高版本。Debian Wheezy 7.x 的 g++ 对 C++11 的支持不完整(并且没有 systemd)。
Ubuntu Trusty 14.04 或更高版本。Ubuntu Precise 12.04 不再受支持。
Fedora 22 or later.
Upgrading from Firefly
直接从 Firefly v0.80.z 升级不推荐。可以进行直接升级,但不会没有停机。我们建议集群首先升级到 Hammer v0.94.4 或更高版本的 v0.94.z 发布版;只有到那时,才有可能升级到 Infernalis 9.2.z 进行在线升级(见下文)。
要直接从 Firefly 升级,所有 Firefly OSD 都必须在任何 Infernalis OSD 允许启动之前停止并标记为下线。这种围栏由 Infernalis 监控器强制执行,因此请使用如下的升级过程:
Upgrade Ceph on monitor hosts
Restart all ceph-mon daemons
Upgrade Ceph on all OSD hosts
Stop all ceph-osd daemons
使用类似以下命令标记所有 OSD 为下线:
ceph osd down `seq 0 1000`
Start all ceph-osd daemons
升级并重新启动剩余的守护进程(ceph-mds, radosgw)
Upgrading from Hammer
所有集群节点必须首先升级到 Hammer v0.94.4 或更高版本的 v0.94.z 发布版;只有到那时,才有可能升级到 Infernalis 9.2.z。
For all distributions that support systemd (CentOS 7, Fedora, Debian Jessie 8.x, OpenSUSE), ceph daemons are now managed using native systemd files instead of the legacy sysvinit scripts. For example:
systemctl start ceph.target # start all daemons systemctl status ceph-osd@12 # check status of osd.12
The main notable distro that is not yet using systemd is Ubuntu trusty 14.04. (The next Ubuntu LTS, 16.04, will use systemd instead of upstart.)
Ceph daemons now run as user and group
ceph
默认情况下。ceph 用户由 Fedora 和 Debian 分配静态 UID(也用于衍生发行版,如 RHEL/CentOS 和 Ubuntu)。在 SUSE 上,当用户创建时,ceph 用户目前会获得动态分配的 UID。If your systems already have a ceph user, upgrading the package will cause problems. We suggest you first remove or rename the existing ‘ceph’ user and ‘ceph’ group before upgrading.
When upgrading, administrators have two options:
Add the following line to
ceph.conf
on all hosts:setuser match path = /var/lib/ceph/$type/$cluster-$id
This will make the Ceph daemons run as root (i.e., not drop privileges and switch to user ceph) if the daemon’s data directory is still owned by root. Newly deployed daemons will be created with data owned by user ceph and will run with reduced privileges, but upgraded daemons will continue to run as root.
Fix the data ownership during the upgrade. This is the preferred option, but it is more work and can be very time consuming. The process for each host is to:
Upgrade the ceph package. This creates the ceph user and group. For example:
ceph-deploy install --stable infernalis HOST
Stop the daemon(s):
service ceph stop # fedora, centos, rhel, debian stop ceph-all # ubuntu
Fix the ownership:
chown -R ceph:ceph /var/lib/ceph chown -R ceph:ceph /var/log/ceph
Restart the daemon(s):
start ceph-all # ubuntu systemctl start ceph.target # debian, centos, fedora, rhel
Alternatively, the same process can be done with a single daemon type, for example by stopping only monitors and chowning only
/var/lib/ceph/mon
.
The on-disk format for the experimental KeyValueStore OSD backend has changed. You will need to remove any OSDs using that backend before you upgrade any test clusters that use it.
当池配额达到时,librados 操作现在会无限期阻塞,就像集群填满时一样。(以前它们会返回 -ENOSPC)。默认情况下,现在满的集群或池会阻塞。如果你的 librados 应用程序可以优雅地处理 ENOSPC 或 EDQUOT 错误,你可以通过使用新的 librados OPERATION_FULL_TRY 标志来获取错误返回。
The return code for librbd’s rbd_aio_read and Image::aio_read API methods no longer returns the number of bytes read upon success. Instead, it returns 0 upon success and a negative value upon failure.
‘ceph scrub’,‘ceph compact’ 和 ‘ceph sync force’ 现在已弃用。用户应改用 ‘ceph mon scrub’,‘ceph mon compact’ 和 ‘ceph mon sync force’。
‘ceph mon_metadata’ should now be used as ‘ceph mon metadata’. There is no need to deprecate this command (same major release since it was first introduced).
The--dump-json option of “osdmaptool” is replaced by --dump json.
The commands of “pg ls-by-{pool,primary,osd}” and “pg ls” now take “recovering” instead of “recovery”, to include the recovering pgs in the listed pgs.
自 Hammer 以来值得注意的变化
aarch64: add optimized version of crc32c (Yazen Ghannam, Steve Capper)
auth: cache/reuse crypto lib key objects, optimize msg signature check (Sage Weil)
auth: reinit NSS after fork() (#11128 Yan, Zheng)
autotools: fix out of tree build (Krxysztof Kosinski)
autotools: improve make check output (Loic Dachary)
buffer: add invalidate_crc() (Piotr Dalek)
buffer: fix zero bug (#12252 Haomai Wang)
buffer: some cleanup (Michal Jarzabek)
build: allow tcmalloc-minimal (Thorsten Behrens)
build: C++11 now supported
build: cmake: fix nss linking (Danny Al-Gaaf)
build: cmake: misc fixes (Orit Wasserman, Casey Bodley)
build: disable LTTNG by default (#11333 Josh Durgin)
build: do not build ceph-dencoder with tcmalloc (#10691 Boris Ranto)
build: fix junit detection on Fedora 22 (Ira Cooper)
build: fix pg ref disabling (William A. Kennington III)
build: fix ppc build (James Page)
build: install-deps: misc fixes (Loic Dachary)
build: install-deps.sh improvements (Loic Dachary)
build: install-deps: support OpenSUSE (Loic Dachary)
build: make_dist_tarball.sh (Sage Weil)
build: many cmake improvements
build: misc cmake fixes (Matt Benjamin)
build: misc fixes (Boris Ranto, Ken Dreyer, Owen Synge)
build: OSX build fixes (Yan, Zheng)
build: remove rest-bench
ceph-authtool: fix return code on error (Gerhard Muntingh)
ceph-detect-init: added Linux Mint (Michal Jarzabek)
ceph-detect-init: robust init system detection (Owen Synge)
ceph-disk: ensure ‘zap’ only operates on a full disk (#11272 Loic Dachary)
ceph-disk: fix zap sgdisk invocation (Owen Synge, Thorsten Behrens)
ceph-disk: follow ceph-osd hints when creating journal (#9580 Sage Weil)
ceph-disk: handle re-using existing partition (#10987 Loic Dachary)
ceph-disk: improve parted output parsing (#10983 Loic Dachary)
ceph-disk: install pip > 6.1 (#11952 Loic Dachary)
ceph-disk: make suppression work for activate-all and activate-journal (Dan van der Ster)
ceph-disk: many fixes (Loic Dachary, Alfredo Deza)
ceph-disk: fixes to respect init system (Loic Dachary, Owen Synge)
ceph-disk: pass --cluster arg on prepare subcommand (Kefu Chai)
ceph-disk: support for multipath devices (Loic Dachary)
ceph-disk: support NVMe device partitions (#11612 Ilja Slepnev)
ceph: fix ‘df’ units (Zhe Zhang)
ceph: fix parsing in interactive cli mode (#11279 Kefu Chai)
cephfs-data-scan: many additions, improvements (John Spray)
ceph-fuse: do not require successful remount when unmounting (#10982 Greg Farnum)
ceph-fuse, libcephfs: don’t clear COMPLETE when trimming null (Yan, Zheng)
ceph-fuse, libcephfs: drop inode when rmdir finishes (#11339 Yan, Zheng)
ceph-fuse,libcephfs: fix uninline (#11356 Yan, Zheng)
ceph-fuse, libcephfs: hold exclusive caps on dirs we “own” (#11226 Greg Farnum)
ceph-fuse: mostly behave on 32-bit hosts (Yan, Zheng)
ceph: improve error output for ‘tell’ (#11101 Kefu Chai)
ceph-monstore-tool: fix store-copy (Huangjun)
ceph: new ‘ceph daemonperf’ command (John Spray, Mykola Golub)
ceph-objectstore-tool: many many improvements (David Zafman)
ceph-objectstore-tool: refactoring and cleanup (John Spray)
ceph-post-file: misc fixes (Joey McDonald, Sage Weil)
ceph_test_rados: test pipelined reads (Zhiqiang Wang)
client: avoid sending unnecessary FLUSHSNAP messages (Yan, Zheng)
client: exclude setfilelock when calculating oldest tid (Yan, Zheng)
client: fix error handling in check_pool_perm (John Spray)
client: fsync waits only for inode’s caps to flush (Yan, Zheng)
client: invalidate kernel dcache when cache size exceeds limits (Yan, Zheng)
client: make fsync wait for unsafe dir operations (Yan, Zheng)
client: pin lookup dentry to avoid inode being freed (Yan, Zheng)
common: add descriptions to perfcounters (Kiseleva Alyona)
common: add perf counter descriptions (Alyona Kiseleva)
common: bufferlist performance tuning (Piotr Dalek, Sage Weil)
common: detect overflow of int config values (#11484 Kefu Chai)
common: fix bit_vector extent calc (#12611 Jason Dillaman)
common: fix json parsing of utf8 (#7387 Tim Serong)
common: fix leak of pthread_mutexattr (#11762 Ketor Meng)
common: fix LTTNG vs fork issue (Josh Durgin)
common: fix throttle max change (Henry Chang)
common: make mutex more efficient
common: make work queue addition/removal thread safe (#12662 Jason Dillaman)
common: optracker improvements (Zhiqiang Wang, Jianpeng Ma)
common: PriorityQueue tests (Kefu Chai)
common: some async compression infrastructure (Haomai Wang)
crush: add --check to validate dangling names, max osd id (Kefu Chai)
crush: cleanup, sync with kernel (Ilya Dryomov)
crush: fix crash from invalid ‘take’ argument (#11602 Shiva Rkreddy, Sage Weil)
crush: fix divide-by-2 in straw2 (#11357 Yann Dupont, Sage Weil)
crush: fix has_v4_buckets (#11364 Sage Weil)
crush: fix subtree base weight on adjust_subtree_weight (#11855 Sage Weil)
crush: respect default replicated ruleset config on map creation (Ilya Dryomov)
crushtool: fix order of operations, usage (Sage Weil)
crypto: fix NSS leak (Jason Dillaman)
crypto: fix unbalanced init/shutdown (#12598 Zheng Yan)
deb: fix rest-bench-dbg and ceph-test-dbg dependendies (Ken Dreyer)
debian: minor package reorg (Ken Dreyer)
deb, rpm: move ceph-objectstore-tool to ceph (Ken Dreyer)
doc: docuemnt object corpus generation (#11099 Alexis Normand)
doc: document region hostnames (Robin H. Johnson)
doc: fix gender neutrality (Alexandre Maragone)
doc: fix install doc (#10957 Kefu Chai)
doc: fix sphinx issues (Kefu Chai)
doc: man page updates (Kefu Chai)
doc: mds data structure docs (Yan, Zheng)
doc: misc updates (Francois Lafont, Ken Dreyer, Kefu Chai, Owen Synge, Gael Fenet-Garde, Loic Dachary, Yannick Atchy-Dalama, Jiaying Ren, Kevin Caradant, Robert Maxime, Nicolas Yong, Germain Chipaux, Arthur Gorjux, Gabriel Sentucq, Clement Lebrun, Jean-Remi Deveaux, Clair Massot, Robin Tang, Thomas Laumondais, Jordan Dorne, Yuan Zhou, Valentin Thomas, Pierre Chaumont, Benjamin Troquereau, Benjamin Sesia, Vikhyat Umrao, Nilamdyuti Goswami, Vartika Rai, Florian Haas, Loic Dachary, Simon Guinot, Andy Allan, Alistair Israel, Ken Dreyer, Robin Rehu, Lee Revell, Florian Marsylle, Thomas Johnson, Bosse Klykken, Travis Rhoden, Ian Kelling)
doc: swift tempurls (#10184 Abhishek Lekshmanan)
doc: switch doxygen integration back to breathe (#6115 Kefu Chai)
doc: update release schedule docs (Loic Dachary)
erasure-code: cleanup (Kefu Chai)
erasure-code: improve tests (Loic Dachary)
erasure-code: shec: fix recovery bugs (Takanori Nakao, Shotaro Kawaguchi)
erasure-code: update ISA-L to 2.13 (Yuan Zhou)
gmock: switch to submodule (Danny Al-Gaaf, Loic Dachary)
hadoop: add terasort test (Noah Watkins)
init-radosgw: merge with sysv version; fix enumeration (Sage Weil)
java: fix libcephfs bindings (Noah Watkins)
libcephfs: add pread, pwrite (Jevon Qiao)
libcephfs,ceph-fuse: cache cleanup (Zheng Yan)
libcephfs,ceph-fuse: fix request resend on cap reconnect (#10912 Yan, Zheng)
librados: add config observer (Alistair Strachan)
librados: add FULL_TRY and FULL_FORCE flags for dealing with full clusters or pools (Sage Weil)
librados: add src_fadvise_flags for copy-from (Jianpeng Ma)
librados: define C++ flags from C constants (Josh Durgin)
librados: fadvise flags per op (Jianpeng Ma)
librados: fix last_force_resent handling (#11026 Jianpeng Ma)
librados: fix memory leak from C_TwoContexts (Xiong Yiliang)
librados: fix notify completion race (#13114 Sage Weil)
librados: fix striper when stripe_count = 1 and stripe_unit != object_size (#11120 Yan, Zheng)
librados, libcephfs: randomize client nonces (Josh Durgin)
librados: op perf counters (John Spray)
librados: pybind: fix binary omap values (Robin H. Johnson)
librados: pybind: fix write() method return code (Javier Guerra)
librados: respect default_crush_ruleset on pool_create (#11640 Yuan Zhou)
libradosstriper: fix leak (Danny Al-Gaaf)
librbd: add const for single-client-only features (Josh Durgin)
librbd: add deep-flatten operation (Jason Dillaman)
librbd: add purge_on_error cache behavior (Jianpeng Ma)
librbd: allow additional metadata to be stored with the image (Haomai Wang)
librbd: avoid blocking aio API methods (#11056 Jason Dillaman)
librbd: better handling for dup flatten requests (#11370 Jason Dillaman)
librbd: cancel in-flight ops on watch error (#11363 Jason Dillaman)
librbd: default new images to format 2 (#11348 Jason Dillaman)
librbd: fadvise for copy, export, import (Jianpeng Ma)
librbd: fast diff implementation that leverages object map (Jason Dillaman)
librbd: fix fast diff bugs (#11553 Jason Dillaman)
librbd: fix image format detection (Zhiqiang Wang)
librbd: fix lock ordering issue (#11577 Jason Dillaman)
librbd: fix reads larger than the cache size (Lu Shi)
librbd: fix snapshot creation when other snap is active (#11475 Jason Dillaman)
librbd: flatten/copyup fixes (Jason Dillaman)
librbd: handle NOCACHE fadvise flag (Jinapeng Ma)
librbd: 锁依赖,helgrind 验证 (Jason Dillaman, Josh Durgin)
librbd: 元数据过滤器修复 (Haomai Wang)
librbd: 混乱 aio 修复 (#5488 Jason Dillaman)
librbd: 混乱 rbd 修复 (#11478 #11113 #11342 #11380 Jason Dillaman, Zhiqiang Wang)
librbd: 新的 diff_iterate2 API (Jason Dillaman)
librbd: 对象映射重建支持 (Jason Dillaman)
librbd: 仅在持有排他锁时更新图像标志 (#11791 Jason Dillaman)
librbd: 可选禁用分配提示 (Haomai Wang)
librbd: 防止调整请求之间的竞争 (#12664 Jason Dillaman)
librbd: readahead 修复 (Zhiqiang Wang)
librbd: 从关闭中返回结果代码 (#12069 Jason Dillaman)
librbd: 将元数据(包括配置选项)存储在图像中 (Haomai Wang)
librbd: 在获取图像元数据时容忍旧的 osds (#11549 Jason Dillaman)
librbd: 在可能的情况下使用 write_full (
日志:修复日志旋转导致的数据损坏竞争 (#12465 Samuel Just)
日志rotate.d: 偏好服务而不是 invoke-rc.d (#11330 Win Hierman, Sage Weil)
mds: 向 MDSMap 添加“损坏”状态 (John Spray)
mds: 为性能计数器添加昵称 (John Spray)
mds: 避免在驱逐会话之前发出 cap 警告 (John Spray)
mds, 客户端:为 file_layout_t 添加命名空间(以前是 ceph_file_layout)(
mds: 禁用有问题的 rstat 传播到快照父项 (Yan, Zheng)
mds: 不要将快照项添加到布隆过滤器 (Yan, Zheng)
mds: 通过 asok 暴露碎片 (
mds: 修复事务日志对象中的预期空洞 (#13167 Yan, Zheng)
mds: 修复处理缺少 mydir 目录片段 (#11641 John Spray)
mds: 修复大型客户端 ID 上的整数截断 (Henry Chang)
mds: 修复 mydir 副本在关闭时的重复问题 (#10743 John Spray)
mds: 修复顺序消息 (#11258 Yan, Zheng)
mds: 修复重新加入 (Yan, Zheng)
mds: 修复在一次 setxattr 中设置整个文件布局 (
mds: 修复关闭 (
mds: 修复带有 strays 的关闭 (
mds: 修复 SnapServer 在已删除池上崩溃 (John Spray)
mds: 修复快照错误 (Yan, Zheng)
mds: 修复 stray 重新集成 (Yan, Zheng)
mds: 修复 stray 处理 (John Spray)
mds: 修复自杀信标 (John Spray)
mds: 在 do_open_truncate 中立即刷新 (
mds: 处理各种损坏问题 (John Spray)
mds: 改进转储方法 (John Spray)
mds: 许多修复 (Yan, Zheng, John Spray, Greg Farnum)
mds: 许多快照和 stray 修复 (Yan, Zheng)
mds: 各种修复 (Jianpeng Ma, Dan van der Ster, Zhang Zhi)
mds: 各种事务日志清理和修复 (#10368 John Spray)
mds: 各种修复改进 (John Spray)
mds: 各种快照修复 (Zheng Yan)
mds: 多文件系统支持 (
mds: 使用 omap 存储新的 SessionMap 存储区 (#10649 John Spray)
mds: 可靠地持久化 completed_requests (#11048 John Spray)
mds: 减少内存消耗 (Yan, Zheng)
mds: 在黑名单上重新生成而不是自杀 (John Spray)
mds: 将 safe_pos 分离到 Journaler 中 (#10368 John Spray)
mds: 快照重命名支持 (#3645 Yan, Zheng)
mds: 将布局存储在头对象上 (#4161 John Spray)
mds: 节流 stray 操作 (#10390 John Spray)
mds: 容忍时钟向后跳跃 (#11053 Yan, Zheng)
mds: 当客户端未能推进 oldest_client_tid 时发出警告 (#10657 Yan, Zheng)
各种清理和修复 (Danny Al-Gaaf)
各种 coverity 修复 (Danny Al-Gaaf)
各种性能和清理 (Nathan Cutler, Xinxin Shu)
mon: 为 MonitorDBStore 添加缓存 (Kefu Chai)
mon: 添加“mon_metadata <id>”命令 (Kefu Chai)
mon: 添加“节点 ls …”命令 (Kefu Chai)
mon: 为 mon 命令添加 NOFORWARD, OBSOLETE, DEPRECATE 标志 (Joao Eduardo Luis)
mon: 向“ceph osd df”输出添加 PG 计数 (Michal Jarzabek)
mon: “ceph osd metadata”可以转储所有 osds (Haomai Wang)
mon: 清理,重新组织一些 mon 命令 (Joao Eduardo Luis)
monclient: flush_log (John Spray)
mon: 检测 kv 后端故障 (Sage Weil)
mon: 不允许超过 2 层级 (#11840 Kefu Chai)
mon: 不允许 ec 池作为层级 (#11650 Samuel Just)
mon: 不要停用最后一个 mds (#10862 John Spray)
mon: 修复“osd df”的平均利用率计算 (Mykola Golub)
mon: 修复新池的 CRUSH 地图测试 (Sage Weil)
mon: 在调试时修复日志转储崩溃 (Mykola Golub)
mon: 修复 mds 信标回复 (#11590 Kefu Chai)
mon: 修复元数据更新竞争 (Mykola Golub)
mon: 修复 min_last_epoch_clean 跟踪 (Kefu Chai)
mon: 修复“pg ls”排序顺序,状态名称 (#11569 Kefu Chai)
mon: 修复刷新 (#11470 Joao Eduardo Luis)
mon: 修复“osd df”中方差计算 (Sage Weil)
mon: 改善对 crushtool 的调用 (Mykola Golub)
mon: 使阻塞操作消息更易于阅读 (Jianpeng Ma)
mon: 使 osd 获取池“all”仅返回适用字段 (#10891 Michal Jarzabek)
mon: 各种扩展修复 (Sage Weil)
mon: 为存储和比较规范化 erasure-code 配置 (Loic Dachary)
mon: 仅向支持对等方发送 mon 元数据 (Sage Weil)
mon: 可选指定 osd id 在“osd create” (
mon: “osd tree”修复 (Kefu Chai)
mon: 定期后台清理 (Joao Eduardo Luis)
mon: 防止在 crush 规则中引用的桶被删除 (#11602 Sage Weil)
mon: 防止 pgp_num > pg_num (#12025 Xinxin Shu)
mon: 防止具有快照状态的池被用作层级 (#11493 Sage Weil)
mon: 在 CRUSH 地图更改时启动 pg_temp (Sage Weil)
mon: 改进 check_remove_tier 检查 (#11504 John Spray)
mon: 拒绝大的 max_mds 值 (#12222 John Spray)
mon: 从“mds rm …”中删除虚假的 who 参数 (John Spray)
mon: 简化会话处理,修复内存泄漏 (Sage Weil)
mon: 升级必须通过 hammer (Sage Weil)
mon: 在虚构的缓存层级配置上发出警告 (Jianpeng Ma)
msgr: 添加 ceph_perf_msgr 工具 (Hoamai Wang)
msgr: 异步:修复序列处理 (Haomai Wang)
msgr: 异步:许多,许多修复 (Haomai Wang)
msgr: 简单:修复 clear_pipe (#11381 Haomai Wang)
msgr: 简单:修复 connect_seq 断言 (Haomai Wang)
msgr: xio: 快速路径改进 (Raju Kurunkad)
msgr: xio: 修复 ip 和 nonce (Raju Kurunkad)
msgr: xio: 改善车道分配 (Vu Pham)
msgr: xio: 与 accellio v1.4 同步 (Vu Pham)
msgr: xio: 各种修复 (#10735 Matt Benjamin, Kefu Chai, Danny Al-Gaaf, Raju Kurunkad, Vu Pham, Casey Bodley)
消息: 单元测试 (Haomai Wang)
objectcacher: 各种错误修复 (Jianpeng Ma)
osd: 为层级操作添加延迟性能计数器 (Xinze Chi)
osd: 添加各种性能计数器 (Xinze Chi)
osd: 在恢复期间添加简单的睡眠注入 (Sage Weil)
osd: 允许 SEEK_HOLE/SEEK_DATA 用于稀疏读取 (Zhiqiang Wang)
osd: avoid dup omap sets for in pg metadata (Sage Weil)
osd: avoid multiple hit set insertions (Zhiqiang Wang)
osd: avoid transaction append in some cases (Sage Weil)
osd: break PG removal into multiple iterations (#10198 Guang Yang)
osd: cache proxy-write support (Zhiqiang Wang, Samuel Just)
osd: check scrub state when handling map (Jianpeng Ma)
osd: clean up some constness, privateness (Kefu Chai)
osd: clean up temp object if promotion fails (Jianpeng Ma)
osd: configure promotion based on write recency (Zhiqiang Wang)
osd: constrain collections to meta and PGs (normal and temp) (Sage Weil)
osd: don’t send dup MMonGetOSDMap requests (Sage Weil, Kefu Chai)
osd: EIO injection (David Zhang)
osd: elminiate txn apend, ECSubWrite copy (Samuel Just)
osd: erasure-code: drop entries according to LRU (Andreas-Joachim Peters)
osd: erasure-code: fix SHEC floating point bug (#12936 Loic Dachary)
osd: erasure-code: update to ISA-L 2.14 (Yuan Zhou)
osd: filejournal: cleanup (David Zafman)
osd: filestore: 使用 splice 克隆 (Jianpeng Ma)
osd: filestore: 修复递归锁定 (Xinxin Shu)
osd: 修复 check_for_full (
osd: 在 make_writeable 中修复脏计费 (
osd: 修复 dup promotion 丢失 op bug (Zhiqiang Wang)
osd: 修复对象不可恢复时无限修复 (
osd: 修复 hitset 对象命名以使用 GMT (Kefu Chai)
osd: 修复各种内存泄漏 (Sage Weil)
osd: 修复回填期间负退化统计 (
osd: 修复 osdmap 中黑名单项的转储 (
osd: 修复 FileStore 中 peek_queue 锁定 (Xinze Chi)
osd: 修复 pg 复苏 (#11429 Samuel Just)
osd: 修复 promotion 与完整缓存层之间的竞争 (Samuel Just)
osd: 修复 pg 仍然激活时重播重新排队 (#13116 Samuel Just)
osd: 修复 scrub 统计错误 (Sage Weil, Samuel Just)
osd: 修复从缓存层快照刷新(再次)(#11787 Samuel Just)
osd: 修复在
osd: fix temp-clearing (David Zafman)
osd: force promotion for ops EC can’t handle (Zhiqiang Wang)
osd: handle log split with overlapping entries (#11358 Samuel Just)
osd: ignore non-existent osds in unfound calc (#10976 Mykola Golub)
osd: improve behavior on machines with large memory pages (Steve Capper)
osd: include a temp namespace within each collection/pgid (Sage Weil)
osd: increase default max open files (Owen Synge)
osd: keyvaluestore: misc fixes (Varada Kari)
osd: low and high speed flush modes (Mingxin Liu)
osd: make suicide timeouts individually configurable (Samuel Just)
osd: merge multiple setattr calls into a setattrs call (Xinxin Shu)
osd: misc fixes (Ning Yao, Kefu Chai, Xinze Chi, Zhiqiang Wang, Jianpeng Ma)
osd: move scrub in OpWQ (Samuel Just)
osd: newstore prototype (Sage Weil)
osd: ObjectStore internal API refactor (Sage Weil)
osd: peer_features includes self (David Zafman)
osd: pool size change triggers new interval (#11771 Samuel Just)
osd: prepopulate needs_recovery_map when only one peer has missing (#9558 Guang Yang)
osd: randomize scrub times (#10973 Kefu Chai)
osd: recovery, peering fixes (#11687 Samuel Just)
osd: refactor scrub and digest recording (Sage Weil)
osd: refuse first write to EC object at non-zero offset (Jianpeng Ma)
osd: relax reply order on proxy read (#11211 Zhiqiang Wang)
osd: require firefly features (David Zafman)
osd: set initial crush weight with more precision (Sage Weil)
osd: SHEC no longer experimental
osd: skip promotion for flush/evict op (Zhiqiang Wang)
osd: stripe over small xattrs to fit in XFS’s 255 byte inline limit (Sage Weil, Ning Yao)
osd: sync object_map on syncfs (Samuel Just)
osd: take excl lock of op is rw (Samuel Just)
osd: throttle evict ops (Yunchuan Wen)
osd: upgrades must pass through hammer (Sage Weil)
osd: use a temp object for recovery (Sage Weil)
osd: use blkid to collection partition information (Joseph Handzik)
osd: use SEEK_HOLE / SEEK_DATA for sparse copy (Xinxin Shu)
osd: WBThrottle cleanups (Jianpeng Ma)
osd: write journal header on clean shutdown (Xinze Chi)
osdc/Objecter: allow per-pool calls to op_cancel_writes (John Spray)
os/filestore: enlarge getxattr buffer size (Jianpeng Ma)
pybind: pep8 cleanups (Danny Al-Gaaf)
pycephfs: many fixes for bindings (Haomai Wang)
qa: fix filelock_interrupt.py test (Yan, Zheng)
qa: improve ceph-disk tests (Loic Dachary)
qa: improve docker build layers (Loic Dachary)
qa: run-make-check.sh script (Loic Dachary)
rados: add --striper option to use libradosstriper (#10759 Sebastien Ponce)
rados: bench: add --no-verify option to improve performance (Piotr Dalek)
rados bench: misc fixes (Dmitry Yatsushkevich)
rados: fix error message on failed pool removal (Wido den Hollander)
radosgw-admin: add ‘bucket check’ function to repair bucket index (Yehuda Sadeh)
radosgw-admin: fix subuser modify output (#12286 Guce)
rados: handle --snapid arg properly (Abhishek Lekshmanan)
rados: improve bench buffer handling, performance (Piotr Dalek)
rados: misc bench fixes (Dmitry Yatsushkevich)
rados: new pool import implementation (John Spray)
rados: translate errno to string in CLI (#10877 Kefu Chai)
rbd: accept map options config option (Ilya Dryomov)
rbd: add disk usage tool (#7746 Jason Dillaman)
rbd: allow unmapping by spec (Ilya Dryomov)
rbd: cli: fix arg parsing with --io-pattern (Dmitry Yatsushkevich)
rbd: deprecate --new-format option (Jason Dillman)
rbd: fix error messages (#2862 Rajesh Nambiar)
rbd: fix link issues (Jason Dillaman)
rbd: improve CLI arg parsing, usage (Ilya Dryomov)
rbd: rbd-replay-prep and rbd-replay improvements (Jason Dillaman)
rbd: recognize queue_depth kernel option (Ilya Dryomov)
rbd: support G and T units for CLI (Abhishek Lekshmanan)
rbd: update rbd man page (Ilya Dryomov)
rbd: update xfstests tests (Douglas Fuller)
rbd: use image-spec and snap-spec in help (Vikhyat Umrao, Ilya Dryomov)
rest-bench: misc fixes (Shawn Chen)
rest-bench: support https (#3968 Yuan Zhou)
rgw: add max multipart upload parts (#12146 Abshishek Dixit)
rgw: add missing headers to Swift container details (#10666 Ahmad Faheem, Dmytro Iurchenko)
rgw: add stats to headers for account GET (#10684 Yuan Zhou)
rgw: add Trasnaction-Id to response (Abhishek Dixit)
rgw: add X-Timestamp for Swift containers (#10938 Radoslaw Zarzynski)
rgw: always check if token is expired (#11367 Anton Aksola, Riku Lehto)
rgw: conversion tool to repair broken multipart objects (#12079 Yehuda Sadeh)
rgw: document layout of pools and objects (Pete Zaitcev)
rgw: do not enclose bucket header in quotes (#11860 Wido den Hollander)
rgw: do not prefetch data for HEAD requests (Guang Yang)
rgw: do not preserve ACLs when copying object (#12370 Yehuda Sadeh)
rgw: do not set content-type if length is 0 (#11091 Orit Wasserman)
rgw: don’t clobber bucket/object owner when setting ACLs (#10978 Yehuda Sadeh)
rgw: don’t use end_marker for namespaced object listing (#11437 Yehuda Sadeh)
rgw: don’t use rgw_socket_path if frontend is configured (#11160 Yehuda Sadeh)
rgw: enforce Content-Length for POST on Swift cont/obj (#10661 Radoslaw Zarzynski)
rgw: error out if frontend did not send all data (#11851 Yehuda Sadeh)
rgw: expose the number of unhealthy workers through admin socket (Guang Yang)
rgw: fail if parts not specified on multipart upload (#11435 Yehuda Sadeh)
rgw: fix assignment of copy obj attributes (#11563 Yehuda Sadeh)
rgw: fix broken stats in container listing (#11285 Radoslaw Zarzynski)
rgw: fix bug in domain/subdomain splitting (Robin H. Johnson)
rgw: fix casing of Content-Type header (Robin H. Johnson)
rgw: fix civetweb max threads (#10243 Yehuda Sadeh)
rgw: fix Connection: header handling (#12298 Wido den Hollander)
rgw: fix copy metadata, support X-Copied-From for swift (#10663 Radoslaw Zarzynski)
rgw: fix data corruptions race condition (#11749 Wuxingyi)
rgw: fix decoding of X-Object-Manifest from GET on Swift DLO (Radslow Rzarzynski)
rgw: fix GET on swift account when limit == 0 (#10683 Radoslaw Zarzynski)
rgw: fix handling empty metadata items on Swift container (#11088 Radoslaw Zarzynski)
rgw: fix JSON response when getting user quota (#12117 Wuxingyi)
rgw: fix locator for objects starting with _ (#11442 Yehuda Sadeh)
rgw: fix log rotation (Wuxingyi)
rgw: fix mulitipart upload in retry path (#11604 Yehuda Sadeh)
rgw: fix quota enforcement on POST (#11323 Sergey Arkhipov)
rgw: fix reset_loc (#11974 Yehuda Sadeh)
rgw: fix return code on missing upload (#11436 Yehuda Sadeh)
rgw: fix sysvinit script
rgw: fix sysvinit script w/ multiple instances (Sage Weil, Pavan Rallabhandi)
rgw: force content_type for swift bucket stats requests (#12095 Orit Wasserman)
rgw: force content type header on responses with no body (#11438 Orit Wasserman)
rgw: generate Date header for civetweb (#10873 Radoslaw Zarzynski)
rgw: generate new object tag when setting attrs (#11256 Yehuda Sadeh)
rgw: improve content-length env var handling (#11419 Robin H. Johnson)
rgw: improved support for swift account metadata (Radoslaw Zarzynski)
rgw: improve handling of already removed buckets in expirer (Radoslaw Rzarzynski)
rgw: issue aio for first chunk before flush cached data (#11322 Guang Yang)
rgw: log to /var/log/ceph instead of /var/log/radosgw
rgw: make init script wait for radosgw to stop (#11140 Dmitry Yatsushkevich)
rgw: make max put size configurable (#6999 Yuan Zhou)
rgw: make quota/gc threads configurable (#11047 Guang Yang)
rgw: make read user buckets backward compat (#10683 Radoslaw Zarzynski)
rgw: merge manifests properly with prefix override (#11622 Yehuda Sadeh)
rgw: only scan for objects not in a namespace (#11984 Yehuda Sadeh)
rgw: orphan detection tool (Yehuda Sadeh)
rgw: pass in civetweb configurables (#10907 Yehuda Sadeh)
rgw: rectify 202 Accepted in PUT response (#11148 Radoslaw Zarzynski)
rgw: remove meta file after deleting bucket (#11149 Orit Wasserman)
rgw: remove trailing :port from HTTP_HOST header (Sage Weil)
rgw: return 412 on bad limit when listing buckets (#11613 Yehuda Sadeh)
rgw: rework X-Trans-Id header to conform with Swift API (Radoslaw Rzarzynski)
rgw: s3 encoding-type for get bucket (Jeff Weber)
rgw: send ETag, Last-Modified for swift (#11087 Radoslaw Zarzynski)
rgw: set content length on container GET, PUT, DELETE, HEAD (#10971, #11036 Radoslaw Zarzynski)
rgw: set max buckets per user in ceph.conf (Vikhyat Umrao)
rgw: shard work over multiple librados instances (Pavan Rallabhandi)
rgw: support end marker on swift container GET (#10682 Radoslaw Zarzynski)
rgw: support for Swift expiration API (Radoslaw Rzarzynski, Yehuda Sadeh)
rgw: swift: allow setting attributes with COPY (#10662 Ahmad Faheem, Dmytro Iurchenko)
rgw: swift: do not override sent content type (#12363 Orit Wasserman)
rgw: swift: enforce Content-Type in response (#12157 Radoslaw Zarzynski)
rgw: swift: fix account listing (#11501 Radoslaw Zarzynski)
rgw: swift: fix metadata handling on copy (#10645 Radoslaw Zarzynski)
rgw: swift: send Last-Modified header (#10650 Radoslaw Zarzynski)
rgw: swift: set Content-Length for account GET (#12158 Radoslav Zarzynski)
rgw: swift: set content-length on keystone tokens (#11473 Herv Rousseau)
rgw: update keystone cache with token info (#11125 Yehuda Sadeh)
rgw: update to latest civetweb, enable config for IPv6 (#10965 Yehuda Sadeh)
rgw: use attrs from source bucket on copy (#11639 Javier M. Mellid)
rgw: use correct oid for gc chains (#11447 Yehuda Sadeh)
rgw: user rm is idempotent (Orit Wasserman)
rgw: use unique request id for civetweb (#10295 Orit Wasserman)
rocksdb: add perf counters for get/put latency (Xinxin Shu)
rocksdb, leveldb: fix compact_on_mount (Xiaoxi Chen)
rocksdb: pass options as single string (Xiaoxi Chen)
rocksdb: update to latest (Xiaoxi Chen)
rpm: add suse firewall files (Tim Serong)
rpm: always rebuild and install man pages for rpm (Owen Synge)
rpm: loosen ceph-test dependencies (Ken Dreyer)
rpm: many spec file fixes (Owen Synge, Ken Dreyer)
rpm: misc fixes (Boris Ranto, Owen Synge, Ken Dreyer, Ira Cooper)
rpm: misc systemd and SUSE fixes (Owen Synge, Nathan Cutler)
selinux policy (Boris Ranto, Milan Broz)
systemd: logrotate fixes (Tim Serong, Lars Marowsky-Bree, Nathan Cutler)
systemd: many fixes (Sage Weil, Owen Synge, Boris Ranto, Dan van der Ster)
systemd: run daemons as user ceph
sysvinit compat: misc fixes (Owen Synge)
test: misc fs test improvements (John Spray, Loic Dachary)
test: python tests, linter cleanup (Alfredo Deza)
tests: fixes for rbd xstests (Douglas Fuller)
tests: fix tiering health checks (Loic Dachary)
tests for low-level performance (Haomai Wang)
tests: many ec non-regression improvements (Loic Dachary)
tests: many many ec test improvements (Loic Dachary)
upstart: throttle restarts (#11798 Sage Weil, Greg Farnum)
v9.1.0 Infernalis 发布候选
这是第一个 Infernalis 发布候选版本。自 Hammer 以来,有一些重大变化,升级过程并不简单。请仔细阅读。
获取发布候选版本
v9.1.0 软件包已推送到开发发布存储库:
http://download.ceph.com/rpm-testing
http://download.ceph.com/debian-testing
更多信息,请参阅:
http://docs.ceph.com/docs/master/install/get-packages/
或者通过 ceph-deploy 安装:
ceph-deploy install --testing HOST
已知问题
librbd 和 librados ABI 兼容性已损坏。在客户端机器(例如,运行 qemu 的机器)上安装此 RC 时要小心。它将在最终的 v9.2.0 发布中修复。
Major Changes from Hammer
General:
Ceph daemons are now managed via systemd (with the exception of Ubuntu Trusty, which still uses upstart).
Ceph 守护进程作为 ‘ceph’ 用户运行,而不是 root。
On Red Hat distros, there is also an SELinux policy.
RADOS:
The RADOS cache tier can now proxy write operations to the base tier, allowing writes to be handled without forcing migration of an object into the cache.
The SHEC erasure coding support is no longer flagged as experimental. SHEC trades some additional storage space for faster repair.
现在有一个统一的队列(因此有优先级)的客户端 IO、清理和快照修剪。
There have been many improvements to low-level repair tooling (ceph-objectstore-tool).
内部 ObjectStore API 已得到显著清理,以促进新的存储后端,如 NewStore。
RGW:
The Swift API now supports object expiration.
There are many Swift API compatibility improvements.
RBD:
The
rbd du
command shows actual usage (quickly, when object-map is enabled).The object-map feature has seen many stability improvements.
对象映射和独占锁功能可以动态启用或禁用。
You can now store user metadata and set persistent librbd options associated with individual images.
新的 deep-flatten 功能允许展平克隆及其所有快照。(以前快照不能被展平。)
The export-diff command is now faster (it uses aio). There is also a new fast-diff feature.
The --size argument can be specified with a suffix for units (e.g.,
--size 64G
搜索)。There is a new
rbd status
command that, for now, shows who has the image open/mapped.
CephFS:
You can now rename snapshots.
There have been ongoing improvements around administration, diagnostics, and the check and repair tools.
The caching and revocation of client cache state due to unused inodes has been dramatically improved.
The ceph-fuse client behaves better on 32-bit hosts.
Distro compatibility
我们决定放弃对许多旧发行版的支持,以便我们可以迁移到更新的编译器工具链(例如,C++11)。尽管仍然可以通过安装回滚的开发工具在旧发行版上构建 Ceph,但我们不再在 ceph.com 上为它们构建和发布发布软件包。
特别是,
CentOS 7 或更高版本;我们已经停止了对 CentOS 6(以及其他 RHEL 6 衍生版本,如 Scientific Linux 6)的支持。
Debian Jessie 8.x 或更高版本;Debian Wheezy 7.x 的 g++ 对 C++11 的支持不完整(并且没有 systemd)。
Ubuntu Trusty 14.04 或更高版本;Ubuntu Precise 12.04 不再受支持。
Fedora 22 or later.
Upgrading from Firefly
直接从 Firefly v0.80.z 升级是不可能的。所有集群都必须首先升级到 Hammer v0.94.4 或更高版本的 v0.94.z 发布版;只有到那时,才有可能进行在线升级到 Infernalis 9.2.z。
用户可以从 gitbuilder 升级到最新的 hammer v0.94.z(也请参考 hammer 发布说明以获取更多详细信息):
ceph-deploy install --release hammer HOST
Upgrading from Hammer
所有集群节点必须首先升级到 Hammer v0.94.4 或更高版本的 v0.94.z 发布版;只有到那时,才有可能进行在线升级到 Infernalis 9.2.z。
For all distributions that support systemd (CentOS 7, Fedora, Debian Jessie 8.x, OpenSUSE), ceph daemons are now managed using native systemd files instead of the legacy sysvinit scripts. For example:
systemctl start ceph.target # start all daemons systemctl status ceph-osd@12 # check status of osd.12
The main notable distro that is not yet using systemd is Ubuntu trusty 14.04. (The next Ubuntu LTS, 16.04, will use systemd instead of upstart.)
Ceph daemons now run as user and group
ceph
默认情况下。ceph 用户由 Fedora 和 Debian 分配静态 UID(也用于衍生发行版,如 RHEL/CentOS 和 Ubuntu)。在 SUSE 上,当用户创建时,ceph 用户目前会获得动态分配的 UID。如果您的系统已经有一个 ceph 用户,软件包升级过程通常会因错误而失败。我们建议您首先删除或重命名现有的 ‘ceph’ 用户,然后再升级。
When upgrading, administrators have two options:
Add the following line to
ceph.conf
on all hosts:setuser match path = /var/lib/ceph/$type/$cluster-$id
This will make the Ceph daemons run as root (i.e., not drop privileges and switch to user ceph) if the daemon’s data directory is still owned by root. Newly deployed daemons will be created with data owned by user ceph and will run with reduced privileges, but upgraded daemons will continue to run as root.
修复升级期间的数据所有权。这是首选选项,但需要更多工作。每个主机的过程将是:
Upgrade the ceph package. This creates the ceph user and group. For example:
ceph-deploy install --stable infernalis HOST
Stop the daemon(s):
service ceph stop # fedora, centos, rhel, debian stop ceph-all # ubuntu
Fix the ownership:
chown -R ceph:ceph /var/lib/ceph chown -R ceph:ceph /var/log/ceph
Restart the daemon(s):
start ceph-all # ubuntu systemctl start ceph.target # debian, centos, fedora, rhel
The on-disk format for the experimental KeyValueStore OSD backend has changed. You will need to remove any OSDs using that backend before you upgrade any test clusters that use it.
升级说明
当池配额达到时,librados 操作现在会无限期阻塞,就像集群填满时一样。(以前它们会返回 -ENOSPC)。默认情况下,现在满的集群或池会阻塞。如果你的 librados 应用程序可以优雅地处理 ENOSPC 或 EDQUOT 错误,你可以通过使用新的 librados OPERATION_FULL_TRY 标志来获取错误返回。
值得注意的变化
注意:在找到一个更耗时的生成过程之前,这些说明被部分简化了。
build: C++11 now supported
build: many cmake improvements
build: OSX build fixes (Yan, Zheng)
build: remove rest-bench
ceph-disk: 许多修复(Loic Dachary)
ceph-disk: support for multipath devices (Loic Dachary)
ceph-fuse: mostly behave on 32-bit hosts (Yan, Zheng)
ceph-objectstore-tool: 许多改进(David Zafman)
common: bufferlist performance tuning (Piotr Dalek, Sage Weil)
common: make mutex more efficient
common: some async compression infrastructure (Haomai Wang)
librados: add FULL_TRY and FULL_FORCE flags for dealing with full clusters or pools (Sage Weil)
librados: fix notify completion race (#13114 Sage Weil)
librados, libcephfs: randomize client nonces (Josh Durgin)
librados: pybind: fix binary omap values (Robin H. Johnson)
librbd: fix reads larger than the cache size (Lu Shi)
librbd: 元数据过滤器修复 (Haomai Wang)
librbd: 在可能的情况下使用 write_full (
mds: 避免在驱逐会话之前发出 cap 警告 (John Spray)
mds: 修复事务日志对象中的预期空洞 (#13167 Yan, Zheng)
mds: 修复 SnapServer 在已删除池上崩溃 (John Spray)
mds: 许多修复 (Yan, Zheng, John Spray, Greg Farnum)
mon: 为 MonitorDBStore 添加缓存 (Kefu Chai)
mon: “ceph osd metadata”可以转储所有 osds (Haomai Wang)
mon: 检测 kv 后端故障 (Sage Weil)
mon: 修复新池的 CRUSH 地图测试 (Sage Weil)
mon: 修复 min_last_epoch_clean 跟踪 (Kefu Chai)
mon: 各种扩展修复 (Sage Weil)
mon: 简化会话处理,修复内存泄漏 (Sage Weil)
mon: 升级必须通过 hammer (Sage Weil)
msg/async: 许多修复(Haomai Wang)
osd: cache proxy-write support (Zhiqiang Wang, Samuel Just)
osd: configure promotion based on write recency (Zhiqiang Wang)
osd: don’t send dup MMonGetOSDMap requests (Sage Weil, Kefu Chai)
osd: erasure-code: fix SHEC floating point bug (#12936 Loic Dachary)
osd: erasure-code: update to ISA-L 2.14 (Yuan Zhou)
osd: 修复 hitset 对象命名以使用 GMT (Kefu Chai)
osd: 修复各种内存泄漏 (Sage Weil)
osd: 修复 FileStore 中 peek_queue 锁定 (Xinze Chi)
osd: 修复 promotion 与完整缓存层之间的竞争 (Samuel Just)
osd: 修复 pg 仍然激活时重播重新排队 (#13116 Samuel Just)
osd: 修复 scrub 统计错误 (Sage Weil, Samuel Just)
osd: force promotion for ops EC can’t handle (Zhiqiang Wang)
osd: improve behavior on machines with large memory pages (Steve Capper)
osd: merge multiple setattr calls into a setattrs call (Xinxin Shu)
osd: newstore prototype (Sage Weil)
osd: ObjectStore internal API refactor (Sage Weil)
osd: SHEC no longer experimental
osd: throttle evict ops (Yunchuan Wen)
osd: upgrades must pass through hammer (Sage Weil)
osd: use SEEK_HOLE / SEEK_DATA for sparse copy (Xinxin Shu)
rbd: rbd-replay-prep and rbd-replay improvements (Jason Dillaman)
rgw: expose the number of unhealthy workers through admin socket (Guang Yang)
rgw: fix casing of Content-Type header (Robin H. Johnson)
rgw: fix decoding of X-Object-Manifest from GET on Swift DLO (Radslow Rzarzynski)
rgw: fix sysvinit script
rgw: fix sysvinit script w/ multiple instances (Sage Weil, Pavan Rallabhandi)
rgw: improve handling of already removed buckets in expirer (Radoslaw Rzarzynski)
rgw: log to /var/log/ceph instead of /var/log/radosgw
rgw: 重新设计 X-Trans-Id 标头以符合 Swift API (Radoslaw Rzarzynski)
rgw: s3 encoding-type for get bucket (Jeff Weber)
rgw: set max buckets per user in ceph.conf (Vikhyat Umrao)
rgw: support for Swift expiration API (Radoslaw Rzarzynski, Yehuda Sadeh)
rgw: user rm is idempotent (Orit Wasserman)
selinux policy (Boris Ranto, Milan Broz)
systemd: many fixes (Sage Weil, Owen Synge, Boris Ranto, Dan van der Ster)
systemd: run daemons as user ceph
v9.0.3
这是 Infernalis 周期中最后一次开发工作的一部分。最侵入性的变化是 OSD 的内部(非用户可见)ObjectStore 接口的更改。RGW、RBD 和另一个大堆 CephFS 清理/修复改进的其他地方有许多修复和改进。
升级
The return code for librbd’s rbd_aio_read and Image::aio_read API methods no longer returns the number of bytes read upon success. Instead, it returns 0 upon success and a negative value upon failure.
‘ceph scrub’,‘ceph compact’ 和 ‘ceph sync force’ 现在已弃用。用户应改用 ‘ceph mon scrub’,‘ceph mon compact’ 和 ‘ceph mon sync force’。
‘ceph mon_metadata’ 现在应使用 ‘ceph mon metadata’。
The--dump-json option of “osdmaptool” is replaced by --dump json.
‘pg ls-by-{pool,primary,osd}’ 和 ‘pg ls’ 命令现在使用 ‘recovering’ 而不是 ‘recovery’ 来包括列表中的恢复 pgs。
显著变化
autotools: fix out of tree build (Krxysztof Kosinski)
autotools: improve make check output (Loic Dachary)
buffer: add invalidate_crc() (Piotr Dalek)
buffer: fix zero bug (#12252 Haomai Wang)
build: fix junit detection on Fedora 22 (Ira Cooper)
ceph-disk: install pip > 6.1 (#11952 Loic Dachary)
cephfs-data-scan: many additions, improvements (John Spray)
ceph: improve error output for ‘tell’ (#11101 Kefu Chai)
ceph-objectstore-tool: 杂项改进(David Zafman)
ceph-objectstore-tool: refactoring and cleanup (John Spray)
ceph_test_rados: test pipelined reads (Zhiqiang Wang)
common: fix bit_vector extent calc (#12611 Jason Dillaman)
common: make work queue addition/removal thread safe (#12662 Jason Dillaman)
common: optracker improvements (Zhiqiang Wang, Jianpeng Ma)
crush: add --check to validate dangling names, max osd id (Kefu Chai)
crush: cleanup, sync with kernel (Ilya Dryomov)
crush: fix subtree base weight on adjust_subtree_weight (#11855 Sage Weil)
crypo: 修复 NSS 泄漏 (Jason Dillaman)
crypto: fix unbalanced init/shutdown (#12598 Zheng Yan)
文档: 杂项更新 (Kefu Chai, Owen Synge, Gael Fenet-Garde, Loic Dachary, Yannick Atchy-Dalama, Jiaying Ren, Kevin Caradant, Robert Maxime, Nicolas Yong, Germain Chipaux, Arthur Gorjux, Gabriel Sentucq, Clement Lebrun, Jean-Remi Deveaux, Clair Massot, Robin Tang, Thomas Laumondais, Jordan Dorne, Yuan Zhou, Valentin Thomas, Pierre Chaumont, Benjamin Troquereau, Benjamin Sesia, Vikhyat Umrao)
erasure-code: cleanup (Kefu Chai)
erasure-code: improve tests (Loic Dachary)
erasure-code: shec: fix recovery bugs (Takanori Nakao, Shotaro Kawaguchi)
libcephfs: add pread, pwrite (Jevon Qiao)
libcephfs,ceph-fuse: cache cleanup (Zheng Yan)
librados: add src_fadvise_flags for copy-from (Jianpeng Ma)
librados: respect default_crush_ruleset on pool_create (#11640 Yuan Zhou)
librbd: fadvise for copy, export, import (Jianpeng Ma)
librbd: handle NOCACHE fadvise flag (Jinapeng Ma)
librbd: 可选禁用分配提示 (Haomai Wang)
librbd: 防止调整请求之间的竞争 (#12664 Jason Dillaman)
日志:修复日志旋转导致的数据损坏竞争 (#12465 Samuel Just)
mds: 通过 asok 暴露碎片 (
mds: 修复在一次 setxattr 中设置整个文件布局 (
mds: 修复关闭 (
mds: 处理各种损坏问题 (John Spray)
mds: 各种修复 (Jianpeng Ma, Dan van der Ster, Zhang Zhi)
mds: 各种快照修复 (Zheng Yan)
mds: 将布局存储在头对象上 (#4161 John Spray)
各种性能和清理 (Nathan Cutler, Xinxin Shu)
mon: 为 mon 命令添加 NOFORWARD, OBSOLETE, DEPRECATE 标志 (Joao Eduardo Luis)
mon: 向“ceph osd df”输出添加 PG 计数 (Michal Jarzabek)
mon: 清理,重新组织一些 mon 命令 (Joao Eduardo Luis)
mon: 不允许超过 2 层级 (#11840 Kefu Chai)
mon: 在调试时修复日志转储崩溃 (Mykola Golub)
mon: 修复元数据更新竞争 (Mykola Golub)
mon: 修复刷新 (#11470 Joao Eduardo Luis)
mon: 使阻塞操作消息更易于阅读 (Jianpeng Ma)
mon: 仅向支持对等方发送 mon 元数据 (Sage Weil)
mon: 定期后台清理 (Joao Eduardo Luis)
mon: 防止 pgp_num > pg_num (#12025 Xinxin Shu)
mon: 拒绝大的 max_mds 值 (#12222 John Spray)
msgr: 添加 ceph_perf_msgr 工具 (Hoamai Wang)
msgr: 异步:修复序列处理 (Haomai Wang)
msgr: xio: 快速路径改进 (Raju Kurunkad)
msgr: xio: 与 accellio v1.4 同步 (Vu Pham)
osd: clean up temp object if promotion fails (Jianpeng Ma)
osd: constrain collections to meta and PGs (normal and temp) (Sage Weil)
osd: filestore: 使用 splice 克隆 (Jianpeng Ma)
osd: filestore: 修复递归锁定 (Xinxin Shu)
osd: 修复 dup promotion 丢失 op bug (Zhiqiang Wang)
osd: fix temp-clearing (David Zafman)
osd: include a temp namespace within each collection/pgid (Sage Weil)
osd: low and high speed flush modes (Mingxin Liu)
osd: peer_features includes self (David Zafman)
osd: recovery, peering fixes (#11687 Samuel Just)
osd: require firefly features (David Zafman)
osd: set initial crush weight with more precision (Sage Weil)
osd: use a temp object for recovery (Sage Weil)
osd: use blkid to collection partition information (Joseph Handzik)
rados: add --striper option to use libradosstriper (#10759 Sebastien Ponce)
radosgw-admin: fix subuser modify output (#12286 Guce)
rados: handle --snapid arg properly (Abhishek Lekshmanan)
rados: improve bench buffer handling, performance (Piotr Dalek)
rados: new pool import implementation (John Spray)
rbd: fix link issues (Jason Dillaman)
rbd: improve CLI arg parsing, usage (Ilya Dryomov)
rbd: recognize queue_depth kernel option (Ilya Dryomov)
rbd: support G and T units for CLI (Abhishek Lekshmanan)
rbd: use image-spec and snap-spec in help (Vikhyat Umrao, Ilya Dryomov)
rest-bench: misc fixes (Shawn Chen)
rest-bench: support https (#3968 Yuan Zhou)
rgw: add max multipart upload parts (#12146 Abshishek Dixit)
rgw: add Trasnaction-Id to response (Abhishek Dixit)
rgw: document layout of pools and objects (Pete Zaitcev)
rgw: do not preserve ACLs when copying object (#12370 Yehuda Sadeh)
rgw: fix Connection: header handling (#12298 Wido den Hollander)
rgw: fix data corruptions race condition (#11749 Wuxingyi)
rgw: fix JSON response when getting user quota (#12117 Wuxingyi)
rgw: force content_type for swift bucket stats requests (#12095 Orit Wasserman)
rgw: improved support for swift account metadata (Radoslaw Zarzynski)
rgw: make max put size configurable (#6999 Yuan Zhou)
rgw: orphan detection tool (Yehuda Sadeh)
rgw: swift: do not override sent content type (#12363 Orit Wasserman)
rgw: swift: set Content-Length for account GET (#12158 Radoslav Zarzynski)
rpm: always rebuild and install man pages for rpm (Owen Synge)
rpm: misc fixes (Boris Ranto, Owen Synge, Ken Dreyer, Ira Cooper)
systemd: logrotate 修复 (Tim Seron, Lars Marowsky-Bree, Nathan Cutler)
sysvinit compat: misc fixes (Owen Synge)
test: misc fs test improvements (John Spray, Loic Dachary)
test: python tests, linter cleanup (Alfredo Deza)
v9.0.2
这个开发发布版本包含更多的 OSD 工作队列统一、随机 osd 清理时间、大量的 librbd 修复、更多的 MDS 修复和快照修复,以及对测试和构建基础设施的大量工作。
显著变化
buffer: some cleanup (Michal Jarzabek)
build: cmake: fix nss linking (Danny Al-Gaaf)
build: cmake: misc fixes (Orit Wasserman, Casey Bodley)
build: install-deps: misc fixes (Loic Dachary)
build: make_dist_tarball.sh (Sage Weil)
ceph-detect-init: added Linux Mint (Michal Jarzabek)
ceph-detect-init: 鲁棒的初始化系统检测 (Owen Synge, Loic Dachary)
ceph-disk: ensure ‘zap’ only operates on a full disk (#11272 Loic Dachary)
ceph-disk: 对初始化系统进行杂项修复 (Loic Dachary, Owen Synge)
ceph-disk: support NVMe device partitions (#11612 Ilja Slepnev)
ceph: fix ‘df’ units (Zhe Zhang)
ceph: fix parsing in interactive cli mode (#11279 Kefu Chai)
ceph-objectstore-tool: 许多许多更改 (David Zafman)
ceph-post-file: misc fixes (Joey McDonald, Sage Weil)
client: avoid sending unnecessary FLUSHSNAP messages (Yan, Zheng)
client: exclude setfilelock when calculating oldest tid (Yan, Zheng)
client: fix error handling in check_pool_perm (John Spray)
client: fsync waits only for inode’s caps to flush (Yan, Zheng)
client: invalidate kernel dcache when cache size exceeds limits (Yan, Zheng)
client: make fsync wait for unsafe dir operations (Yan, Zheng)
client: pin lookup dentry to avoid inode being freed (Yan, Zheng)
common: detect overflow of int config values (#11484 Kefu Chai)
common: fix json parsing of utf8 (#7387 Tim Serong)
common: fix leak of pthread_mutexattr (#11762 Ketor Meng)
crush: respect default replicated ruleset config on map creation (Ilya Dryomov)
deb, rpm: move ceph-objectstore-tool to ceph (Ken Dreyer)
doc: man page updates (Kefu Chai)
文档: 杂项更新 (#11396 Nilamdyuti, Francois Lafont, Ken Dreyer, Kefu Chai)
init-radosgw: merge with sysv version; fix enumeration (Sage Weil)
librados: add config observer (Alistair Strachan)
librbd: add const for single-client-only features (Josh Durgin)
librbd: add deep-flatten operation (Jason Dillaman)
librbd: avoid blocking aio API methods (#11056 Jason Dillaman)
librbd: fix fast diff bugs (#11553 Jason Dillaman)
librbd: fix image format detection (Zhiqiang Wang)
librbd: fix lock ordering issue (#11577 Jason Dillaman)
librbd: flatten/copyup fixes (Jason Dillaman)
librbd: 锁依赖,helgrind 验证 (Jason Dillaman, Josh Durgin)
librbd: 仅在持有排他锁时更新图像标志 (#11791 Jason Dillaman)
librbd: 从关闭中返回结果代码 (#12069 Jason Dillaman)
librbd: 在获取图像元数据时容忍旧的 osds (#11549 Jason Dillaman)
mds: 不要将快照项添加到布隆过滤器 (Yan, Zheng)
mds: 修复处理缺少 mydir 目录片段 (#11641 John Spray)
mds: 修复重新加入 (Yan, Zheng)
mds: 修复 stra 重新集成 (Yan, Zheng)
mds: 修复自杀原因 (John Spray)
mds: 各种修复改进 (John Spray)
mds: 多文件系统支持 (
mds: 在黑名单上重新生成而不是自杀 (John Spray)
各种 coverity 修复 (Danny Al-Gaaf)
mon: 添加“mon_metadata <id>”命令 (Kefu Chai)
mon: 添加“节点 ls …”命令 (Kefu Chai)
mon: 不允许 ec 池作为层级 (#11650 Samuel Just)
mon: 修复 mds 信标回复 (#11590 Kefu Chai)
mon: 修复“pg ls”排序顺序,状态名称 (#11569 Kefu Chai)
mon: 为存储和比较规范化 erasure-code 配置 (Loic Dachary)
mon: 可选指定 osd id 在“osd create” (
mon: “osd tree”修复 (Kefu Chai)
mon: 防止具有快照状态的池被用作层级 (#11493 Sage Weil)
mon: 改进 check_remove_tier 检查 (#11504 John Spray)
mon: 从“mds rm …”中删除虚假的 who 参数 (John Spray)
msgr: 异步: 杂项修复 (Haomai Wang)
msgr: xio: 修复 ip 和 nonce (Raju Kurunkad)
msgr: xio: 改善车道分配 (Vu Pham)
msgr: xio: 杂项修复 (#10735 Matt Benjamin, Kefu Chai, Danny Al-Gaaf, Raju Kurunkad, Vu Pham)
osd: avoid transaction append in some cases (Sage Weil)
osdc/Objecter: allow per-pool calls to op_cancel_writes (John Spray)
osd: elminiate txn apend, ECSubWrite copy (Samuel Just)
osd: filejournal: cleanup (David Zafman)
osd: 修复 check_for_full (
osd: 在 make_writeable 中修复脏计费 (
osd: 修复 osdmap 中黑名单项的转储 (
osd: 修复从缓存层快照刷新(再次)(#11787 Samuel Just)
osd: 修复在
osd: handle log split with overlapping entries (#11358 Samuel Just)
osd: keyvaluestore: misc fixes (Varada Kari)
osd: make suicide timeouts individually configurable (Samuel Just)
osd: move scrub in OpWQ (Samuel Just)
osd: pool size change triggers new interval (#11771 Samuel Just)
osd: randomize scrub times (#10973 Kefu Chai)
osd: refactor scrub and digest recording (Sage Weil)
osd: refuse first write to EC object at non-zero offset (Jianpeng Ma)
osd: stripe over small xattrs to fit in XFS’s 255 byte inline limit (Sage Weil, Ning Yao)
osd: sync object_map on syncfs (Samuel Just)
osd: take excl lock of op is rw (Samuel Just)
osd: WBThrottle cleanups (Jianpeng Ma)
pycephfs: many fixes for bindings (Haomai Wang)
rados: bench: add --no-verify option to improve performance (Piotr Dalek)
rados: misc bench fixes (Dmitry Yatsushkevich)
rbd: add disk usage tool (#7746 Jason Dillaman)
rgw: 总是检查令牌是否过期 (#11367 Anton Aksola, Riku Lehto)
rgw: conversion tool to repair broken multipart objects (#12079 Yehuda Sadeh)
rgw: do not enclose bucket header in quotes (#11860 Wido den Hollander)
rgw: error out if frontend did not send all data (#11851 Yehuda Sadeh)
rgw: fix assignment of copy obj attributes (#11563 Yehuda Sadeh)
rgw: fix reset_loc (#11974 Yehuda Sadeh)
rgw: improve content-length env var handling (#11419 Robin H. Johnson)
rgw: only scan for objects not in a namespace (#11984 Yehuda Sadeh)
rgw: remove trailing :port from HTTP_HOST header (Sage Weil)
rgw: shard work over multiple librados instances (Pavan Rallabhandi)
rgw: swift: enforce Content-Type in response (#12157 Radoslaw Zarzynski)
rgw: use attrs from source bucket on copy (#11639 Javier M. Mellid)
rocksdb: pass options as single string (Xiaoxi Chen)
rpm: many spec file fixes (Owen Synge, Ken Dreyer)
tests: fixes for rbd xstests (Douglas Fuller)
tests: fix tiering health checks (Loic Dachary)
tests for low-level performance (Haomai Wang)
tests: many ec non-regression improvements (Loic Dachary)
tests: many many ec test improvements (Loic Dachary)
upstart: throttle restarts (#11798 Sage Weil, Greg Farnum)
v9.0.1
这个开发发布版本由于构建环境中的工具更改而略有延迟。因此,下一个版本(v9.0.2)将比平时有更多的工作。
这里包括许多 RGW Swift 修复、围绕新对象映射功能的 RBD 功能工作、更多的 CephFS 快照修复和一些重要的 CRUSH 修复。
显著变化
auth: cache/reuse crypto lib key objects, optimize msg signature check (Sage Weil)
build: allow tcmalloc-minimal (Thorsten Behrens)
build: do not build ceph-dencoder with tcmalloc (#10691 Boris Ranto)
build: fix pg ref disabling (William A. Kennington III)
build: install-deps.sh improvements (Loic Dachary)
build: misc fixes (Boris Ranto, Ken Dreyer, Owen Synge)
ceph-authtool: fix return code on error (Gerhard Muntingh)
ceph-disk: fix zap sgdisk invocation (Owen Synge, Thorsten Behrens)
ceph-disk: pass --cluster arg on prepare subcommand (Kefu Chai)
ceph-fuse, libcephfs: drop inode when rmdir finishes (#11339 Yan, Zheng)
ceph-fuse,libcephfs: fix uninline (#11356 Yan, Zheng)
ceph-monstore-tool: fix store-copy (Huangjun)
common: add perf counter descriptions (Alyona Kiseleva)
common: fix throttle max change (Henry Chang)
crush: fix crash from invalid ‘take’ argument (#11602 Shiva Rkreddy, Sage Weil)
crush: fix divide-by-2 in straw2 (#11357 Yann Dupont, Sage Weil)
deb: fix rest-bench-dbg and ceph-test-dbg dependendies (Ken Dreyer)
doc: document region hostnames (Robin H. Johnson)
doc: update release schedule docs (Loic Dachary)
init-radosgw: 以 root 身份运行 radosgw (#11453 Ken Dreyer)
librados: fadvise flags per op (Jianpeng Ma)
librbd: allow additional metadata to be stored with the image (Haomai Wang)
librbd: better handling for dup flatten requests (#11370 Jason Dillaman)
librbd: cancel in-flight ops on watch error (#11363 Jason Dillaman)
librbd: default new images to format 2 (#11348 Jason Dillaman)
librbd: fast diff implementation that leverages object map (Jason Dillaman)
librbd: fix snapshot creation when other snap is active (#11475 Jason Dillaman)
librbd: 新的 diff_iterate2 API (Jason Dillaman)
librbd: 对象映射重建支持 (Jason Dillaman)
日志rotate.d: 偏好服务而不是 invoke-rc.d (#11330 Win Hierman, Sage Weil)
mds, 客户端:为 file_layout_t 添加命名空间(以前是 ceph_file_layout)(
mds: 修复大型客户端 ID 上的整数截断 (Henry Chang)
mds: 许多快照和 stray 修复 (Yan, Zheng)
mds: 可靠地持久化 completed_requests (#11048 John Spray)
mds: 将 safe_pos 分离到 Journaler 中 (#10368 John Spray)
mds: 快照重命名支持 (#3645 Yan, Zheng)
mds: 当客户端未能推进 oldest_client_tid 时发出警告 (#10657 Yan, Zheng)
各种清理和修复 (Danny Al-Gaaf)
mon: 修复“osd df”的平均利用率计算 (Mykola Golub)
mon: 修复“osd df”中方差计算 (Sage Weil)
mon: 改善对 crushtool 的调用 (Mykola Golub)
mon: 防止在 crush 规则中引用的桶被删除 (#11602 Sage Weil)
mon: 在 CRUSH 地图更改时启动 pg_temp (Sage Weil)
monclient: flush_log (John Spray)
msgr: 异步:许多,许多修复 (Haomai Wang)
msgr: 简单:修复 clear_pipe (#11381 Haomai Wang)
osd: 为层级操作添加延迟性能计数器 (Xinze Chi)
osd: avoid multiple hit set insertions (Zhiqiang Wang)
osd: break PG removal into multiple iterations (#10198 Guang Yang)
osd: check scrub state when handling map (Jianpeng Ma)
osd: 修复对象不可恢复时无限修复 (
osd: 修复 pg 复苏 (#11429 Samuel Just)
osd: ignore non-existent osds in unfound calc (#10976 Mykola Golub)
osd: increase default max open files (Owen Synge)
osd: prepopulate needs_recovery_map when only one peer has missing (#9558 Guang Yang)
osd: relax reply order on proxy read (#11211 Zhiqiang Wang)
osd: skip promotion for flush/evict op (Zhiqiang Wang)
osd: write journal header on clean shutdown (Xinze Chi)
qa: run-make-check.sh script (Loic Dachary)
rados bench: misc fixes (Dmitry Yatsushkevich)
rados: fix error message on failed pool removal (Wido den Hollander)
radosgw-admin: add ‘bucket check’ function to repair bucket index (Yehuda Sadeh)
rbd: allow unmapping by spec (Ilya Dryomov)
rbd: deprecate --new-format option (Jason Dillman)
rgw: do not set content-type if length is 0 (#11091 Orit Wasserman)
rgw: don’t use end_marker for namespaced object listing (#11437 Yehuda Sadeh)
rgw: fail if parts not specified on multipart upload (#11435 Yehuda Sadeh)
rgw: fix GET on swift account when limit == 0 (#10683 Radoslaw Zarzynski)
rgw: fix broken stats in container listing (#11285 Radoslaw Zarzynski)
rgw: fix bug in domain/subdomain splitting (Robin H. Johnson)
rgw: fix civetweb max threads (#10243 Yehuda Sadeh)
rgw: fix copy metadata, support X-Copied-From for swift (#10663 Radoslaw Zarzynski)
rgw: fix locator for objects starting with _ (#11442 Yehuda Sadeh)
rgw: fix mulitipart upload in retry path (#11604 Yehuda Sadeh)
rgw: fix quota enforcement on POST (#11323 Sergey Arkhipov)
rgw: fix return code on missing upload (#11436 Yehuda Sadeh)
rgw: force content type header on responses with no body (#11438 Orit Wasserman)
rgw: generate new object tag when setting attrs (#11256 Yehuda Sadeh)
rgw: issue aio for first chunk before flush cached data (#11322 Guang Yang)
rgw: make read user buckets backward compat (#10683 Radoslaw Zarzynski)
rgw: merge manifests properly with prefix override (#11622 Yehuda Sadeh)
rgw: return 412 on bad limit when listing buckets (#11613 Yehuda Sadeh)
rgw: send ETag, Last-Modified for swift (#11087 Radoslaw Zarzynski)
rgw: set content length on container GET, PUT, DELETE, HEAD (#10971, #11036 Radoslaw Zarzynski)
rgw: support end marker on swift container GET (#10682 Radoslaw Zarzynski)
rgw: swift: fix account listing (#11501 Radoslaw Zarzynski)
rgw: swift: set content-length on keystone tokens (#11473 Herv Rousseau)
rgw: use correct oid for gc chains (#11447 Yehuda Sadeh)
rgw: use unique request id for civetweb (#10295 Orit Wasserman)
rocksdb, leveldb: fix compact_on_mount (Xiaoxi Chen)
rocksdb: add perf counters for get/put latency (Xinxin Shu)
rpm: add suse firewall files (Tim Serong)
rpm: 杂项 systemd 和 suse 修复 (Owen Synge, Nathan Cutler)
v9.0.0
这是 Infernalis 周期的第一个开发发布版本,也是第一个使用新编号方案发布的 Ceph 版本。“9”表示这是第 9 个发布周期——I(即 Infernalis)是第 9 个字母。第一个“0”表示这是一个开发发布版本(“1”将表示发布候选版本,“2”将表示稳定发布版本),最后的“0”表示这是第一个这样的开发发布版本。
几个亮点包括:
新的 ‘ceph daemonperf’ 命令,用于实时监视 perfcounter 统计信息
减少 MDS 内存使用
许多 MDS 快照修复
librbd 现在可以存储选项在图像本身
许多 RGW Swift API 支持修复
OSD 性能改进
许多文档更新和杂项错误修复
显著变化
aarch64: add optimized version of crc32c (Yazen Ghannam, Steve Capper)
auth: reinit NSS after fork() (#11128 Yan, Zheng)
build: disable LTTNG by default (#11333 Josh Durgin)
build: fix ppc build (James Page)
build: install-deps: support OpenSUSE (Loic Dachary)
build: misc cmake fixes (Matt Benjamin)
ceph-disk: follow ceph-osd hints when creating journal (#9580 Sage Weil)
ceph-disk: handle re-using existing partition (#10987 Loic Dachary)
ceph-disk: improve parted output parsing (#10983 Loic Dachary)
ceph-disk: make suppression work for activate-all and activate-journal (Dan van der Ster)
ceph-disk: 杂项修复 (Alfredo Deza)
ceph-fuse, libcephfs: don’t clear COMPLETE when trimming null (Yan, Zheng)
ceph-fuse, libcephfs: hold exclusive caps on dirs we “own” (#11226 Greg Farnum)
ceph-fuse: do not require successful remount when unmounting (#10982 Greg Farnum)
ceph: new ‘ceph daemonperf’ command (John Spray, Mykola Golub)
common: PriorityQueue tests (Kefu Chai)
common: add descriptions to perfcounters (Kiseleva Alyona)
common: fix LTTNG vs fork issue (Josh Durgin)
crush: fix has_v4_buckets (#11364 Sage Weil)
crushtool: fix order of operations, usage (Sage Weil)
debian: minor package reorg (Ken Dreyer)
doc: docuemnt object corpus generation (#11099 Alexis Normand)
doc: fix gender neutrality (Alexandre Maragone)
doc: fix install doc (#10957 Kefu Chai)
doc: fix sphinx issues (Kefu Chai)
doc: mds data structure docs (Yan, Zheng)
文档: 杂项更新 (Nilamdyuti Goswami, Vartika Rai, Florian Haas, Loic Dachary, Simon Guinot, Andy Allan, Alistair Israel, Ken Dreyer, Robin Rehu, Lee Revell, Florian Marsylle, Thomas Johnson, Bosse Klykken, Travis Rhoden, Ian Kelling)
doc: swift tempurls (#10184 Abhishek Lekshmanan)
doc: switch doxygen integration back to breathe (#6115 Kefu Chai)
erasure-code: update ISA-L to 2.13 (Yuan Zhou)
gmock: switch to submodule (Danny Al-Gaaf, Loic Dachary)
hadoop: add terasort test (Noah Watkins)
java: fix libcephfs bindings (Noah Watkins)
libcephfs,ceph-fuse: fix request resend on cap reconnect (#10912 Yan, Zheng)
librados: define C++ flags from C constants (Josh Durgin)
librados: fix last_force_resent handling (#11026 Jianpeng Ma)
librados: fix memory leak from C_TwoContexts (Xiong Yiliang)
librados: fix striper when stripe_count = 1 and stripe_unit != object_size (#11120 Yan, Zheng)
librados: op perf counters (John Spray)
librados: pybind: fix write() method return code (Javier Guerra)
libradosstriper: fix leak (Danny Al-Gaaf)
librbd: add purge_on_error cache behavior (Jianpeng Ma)
librbd: 混乱 aio 修复 (#5488 Jason Dillaman)
librbd: 混乱 rbd 修复 (#11478 #11113 #11342 #11380 Jason Dillaman, Zhiqiang Wang)
librbd: readahead 修复 (Zhiqiang Wang)
librbd: 将元数据(包括配置选项)存储在图像中 (Haomai Wang)
mds: 向 MDSMap 添加“损坏”状态 (John Spray)
mds: 为性能计数器添加昵称 (John Spray)
mds: 禁用有问题的 rstat 传播到快照父项 (Yan, Zheng)
mds: 修复 mydir 副本在关闭时的重复问题 (#10743 John Spray)
mds: 修复顺序消息 (#11258 Yan, Zheng)
mds: 修复带有 strays 的关闭 (
mds: 修复快照修复 (Yan, Zheng)
mds: 修复 stray 处理 (John Spray)
mds: 在 do_open_truncate 中立即刷新 (
mds: 改进转储方法 (John Spray)
mds: 各种事务日志清理和修复 (#10368 John Spray)
mds: 使用 omap 存储新的 SessionMap 存储区 (#10649 John Spray)
mds: 减少内存消耗 (Yan, Zheng)
mds: 节流 stray 操作 (#10390 John Spray)
mds: 容忍时钟向后跳跃 (#11053 Yan, Zheng)
各种 coverity 修复 (Danny Al-Gaaf)
mon: 不要停用最后一个 mds (#10862 John Spray)
mon: 使 osd 获取池“all”仅返回适用字段 (#10891 Michal Jarzabek)
mon: 在虚构的缓存层级配置上发出警告 (Jianpeng Ma)
msg/async: 杂项错误修复和更新 (Haomai Wang)
msg/simple: 修复 connect_seq 断言 (Haomai Wang)
msg/xio: 杂项修复 (#10735 Matt Benjamin, Kefu Chai, Danny Al-Gaaf, Raju Kurunkad, Vu Pham)
消息: 单元测试 (Haomai Wang)
objectcacher: 各种错误修复 (Jianpeng Ma)
os/filestore: enlarge getxattr buffer size (Jianpeng Ma)
osd: EIO injection (David Zhang)
osd: 添加各种性能计数器 (Xinze Chi)
osd: 在恢复期间添加简单的睡眠注入 (Sage Weil)
osd: 允许 SEEK_HOLE/SEEK_DATA 用于稀疏读取 (Zhiqiang Wang)
osd: avoid dup omap sets for in pg metadata (Sage Weil)
osd: clean up some constness, privateness (Kefu Chai)
osd: erasure-code: drop entries according to LRU (Andreas-Joachim Peters)
osd: 修复回填期间负退化统计 (
osd: misc fixes (Ning Yao, Kefu Chai, Xinze Chi, Zhiqiang Wang, Jianpeng Ma)
pybind: pep8 cleanups (Danny Al-Gaaf)
qa: fix filelock_interrupt.py test (Yan, Zheng)
qa: improve ceph-disk tests (Loic Dachary)
qa: improve docker build layers (Loic Dachary)
rados: 在 CLI 中将 erno 转换为字符串 (#10877 Kefu Chai)
rbd: accept map options config option (Ilya Dryomov)
rbd: cli: fix arg parsing with --io-pattern (Dmitry Yatsushkevich)
rbd: fix error messages (#2862 Rajesh Nambiar)
rbd: update rbd man page (Ilya Dryomov)
rbd: update xfstests tests (Douglas Fuller)
rgw: add X-Timestamp for Swift containers (#10938 Radoslaw Zarzynski)
rgw: add missing headers to Swift container details (#10666 Ahmad Faheem, Dmytro Iurchenko)
rgw: add stats to headers for account GET (#10684 Yuan Zhou)
rgw: 不要为 HEAD 请求预取数据 (Guang Yang)
rgw: don’t clobber bucket/object owner when setting ACLs (#10978 Yehuda Sadeh)
rgw: don’t use rgw_socket_path if frontend is configured (#11160 Yehuda Sadeh)
rgw: 强制 POST 上的 Content-Lenth for Swift 容器/对象 (#10661 Radoslaw Zarzynski)
rgw: fix handling empty metadata items on Swift container (#11088 Radoslaw Zarzynski)
rgw: fix log rotation (Wuxingyi)
rgw: generate Date header for civetweb (#10873 Radoslaw Zarzynski)
rgw: make init script wait for radosgw to stop (#11140 Dmitry Yatsushkevich)
rgw: make quota/gc threads configurable (#11047 Guang Yang)
rgw: pass in civetweb configurables (#10907 Yehuda Sadeh)
rgw: rectify 202 Accepted in PUT response (#11148 Radoslaw Zarzynski)
rgw: remove meta file after deleting bucket (#11149 Orit Wasserman)
rgw: swift: allow setting attributes with COPY (#10662 Ahmad Faheem, Dmytro Iurchenko)
rgw: swift: fix metadata handling on copy (#10645 Radoslaw Zarzynski)
rgw: swift: send Last-Modified header (#10650 Radoslaw Zarzynski)
rgw: update keystone cache with token info (#11125 Yehuda Sadeh)
rgw: update to latest civetweb, enable config for IPv6 (#10965 Yehuda Sadeh)
rocksdb: update to latest (Xiaoxi Chen)
rpm: loosen ceph-test dependencies (Ken Dreyer)
由 Ceph 基金会提供
Ceph 文档是一个由非盈利Ceph 基金会资助和托管的社会资源。。如果您想支持此项目和其他工作,请考虑现在加入.