注意

本文档适用于 Ceph 的开发版本。

Infernalis

Infernalis 是 Ceph 的第 9 个稳定版本。它以吸血鬼乌贼(Vampyroteuthis infernalis,意为“来自地狱的吸血鬼乌贼”)命名。

v9.2.1 Infernalis

此 Infernalis 小版本修复了几个打包和 init 脚本问题,默认启用了 librbd objectmap 功能,修复了几个 librbd 错误,以及系统中的一系列其他错误修复。

我们建议所有 Infernalis v9.2.0 用户升级。

有关详细信息,请参阅完整的 变更日志

升级

  • v9.1.0 和 v9.2.0 中 librados 的 C++ 接口错误暴露的一些符号已被移除。如果您针对这些版本附带的 librados 编译了自己的应用程序,它很可能引用了这些被移除的符号。因此,您需要重新编译它。

值得注意的变更

  • build/ops: Ceph 守护进程启动失败,因为服务名称已被使用。(issue#13474, pr#6833, Chuanhong Wang)

  • build/ops: ceph upstart 脚本 rbdmap.conf 错误地处理参数 (issue#13214, pr#6396, Sage Weil)

  • build/ops: CentOS 7 上缺少 libunwind 包 (issue#13997, pr#6845, Loic Dachary)

  • build/ops: rbd-replay-* 也从 ceph-test-dbg 移到 ceph-common-dbg (issue#13785, pr#6628, Loic Dachary)

  • build/ops: systemd/ceph-disk@.service 假设存在 /bin/flock (issue#13975, pr#6852, Loic Dachary)

  • build/ops: systemd: 没有 rbdmap systemd 单元文件 (issue#13374, pr#6500, Boris Ranto)

  • common: auth/cephx: osd 产生大量日志 (issue#13610, pr#6836, Qiankun Zheng)

  • common: log: Log.cc: 为 syslog 调用分配 LOG_DEBUG 优先级 (issue#13993, pr#6993, Brad Hubbard)

  • crush: 如果在早期的规则步骤中看到 CRUSH_ITEM_NONE 则崩溃 (issue#13477, pr#6626, Sage Weil)

  • fs: Ceph 文件系统没有释放空间 (issue#13777, pr#7431, Yan, Zheng, John Spray)

  • fs: 当 ceph.conf 中的选项 log_max_new 设置为零时,Ceph-fuse 无法正确启动 (issue#13443, pr#6395, Wenjun Huang)

  • fs: 使用 fuse 挂载访问文件时出现段错误 (issue#13714, pr#6853, Yan, Zheng)

  • librbd: 调整大小时避免重写旧格式的镜像头 (issue#13674, pr#6630, Jason Dillaman)

  • librbd: ImageWatcher 不应阻塞通知线程 (issue#14373, pr#7406, Jason Dillaman)

  • librbd: 创建快照并停止 VM 后 QEMU 挂起 (issue#13726, pr#6632, Jason Dillaman)

  • librbd: 在创建镜像时验证自我管理快照功能 (issue#13633, pr#7080, Jason Dillaman)

  • librbd: [ FAILED ] TestLibRBD.SnapRemoveViaLockOwner (issue#14164, pr#7079, Jason Dillaman)

  • librbd: 启用 feature objectmap (issue#13558, pr#6477, xinxin shu)

  • librbd: 修复大于 2GB 的 diff-file 的 merge-diff (issue#14030, pr#6981, Jason Dillaman)

  • librbd: flattening 具有活动 IO 的 rbd 镜像可能导致挂起 (issue#14092, issue#14483, pr#7484, Jason Dillaman)

  • mds: 修复重连期间的客户端能力 (client.XXXX 不响应 mclientcaps 警告) (issue#11482, pr#6752, Yan, Zheng)

  • mon: 如果某些 OSD 的权重为 0,则 Ceph 池的 MAX AVAIL 为 0 (issue#13840, pr#6907, Chengyuan Li)

  • mon: 当 cephx_verify_authorizer 返回...时,不应设置 isvalid = true (issue#13525, pr#6392, Ruifeng Yang)

  • objecter: pool op 回调可能永远挂起。(issue#13642, pr#6627, xie xingguo)

  • objecter: pool_snap_list 时潜在的空指针访问。(issue#13639, pr#6840, xie xingguo)

  • osd: FileStore: 如果 getattrs 失败,可能存在内存泄漏。(issue#13597, pr#6846, xie xingguo)

  • osd: OSD::build_past_intervals_parallel() 应在开始新的 past_interval 时重置 primary 和 up_primary。(issue#13471, pr#6397, xiexingguo)

  • osd: 在新拆分的子 PG 上调用 on_new_interval (issue#13962, pr#6849, Sage Weil)

  • osd: ceph-disk list 在 /dev/cciss!c0d0 上失败 (issue#13970, issue#14230, pr#6880, Loic Dachary)

  • osd: ceph-disk: 使用 blkid 而不是 sgdisk -i (issue#14080, pr#7001, Loic Dachary, Ilya Dryomov)

  • osd: 修复 send_failures 期间的竞争条件 (issue#13821, pr#6694, Sage Weil)

  • osd: osd/PG.cc: 288: FAILED assert(info.last_epoch_started >= info.history.last_epoch_started) (issue#14015, pr#6851, David Zafman)

  • osd: infernalis 升级后 pgs 停留在 inconsistent 状态 (issue#13862, pr#7421, David Zafman)

  • rbd: TaskFinisher::cancel 应该从 SafeTimer 中移除 event (issue#14476, pr#7426, Douglas Fuller)

  • rbd: cls_rbd: object_map_save 应该启用校验和 (issue#14280, pr#7428, Douglas Fuller)

  • rbd: rbd balance-reads 测试中的错误操作 (issue#13491, pr#6629, Jason Dillaman)

  • rbd: 调用纯虚方法 (issue#13636, pr#6633, Jason Dillaman)

  • rbd: rbd clone 问题 (issue#13553, pr#6474, xinxin shu)

  • rbd: rbd-replay 不检查 EOF 并进入无限循环 (issue#14452, pr#7427, Mykola Golub)

  • rbd: udevadm settle 中存在未知参数 --quiet (issue#13560, pr#6634, Jason Dillaman)

  • rgw: init script reload 在 EL7 上不起作用 (issue#13709, pr#6650, Hervé Rousseau)

  • rgw: radosgw-admin --help 不显示 orphans find 命令 (issue#14516, pr#7543, Yehuda Sadeh)

  • tests: ceph-disk workunit 使用 configobj (issue#14004, pr#6828, Loic Dachary)

  • tests: fsx 编译失败 (issue#14384, pr#7429, Greg Farnum)

  • tests: notification slave 需要等待 master (issue#13810, pr#7225, Jason Dillaman)

  • tests: 重建独占锁测试应该获取独占锁 (issue#14121, pr#7038, Jason Dillaman)

  • tests: testprofile 必须在重新创建之前被移除 (issue#13664, pr#6449, Loic Dachary)

  • tests: 验证是否可以重用 OSD id (issue#13988, pr#6882, Loic Dachary)

v9.2.0 Infernalis

这个主要版本将成为下一个稳定系列的基础。自 v0.94.x Hammer 以来发生了一些重大变化,升级过程并非微不足道。请仔细阅读这些发行说明。

Hammer 的重大变化

  • General:

    • Ceph 守护进程现在通过 systemd 管理(Ubuntu Trusty 除外,它仍然使用 upstart)。

    • Ceph 守护进程以“ceph”用户而不是 root 用户运行。

    • 在 Red Hat 发行版上,还有 SELinux 策略。

  • RADOS:

    • RADOS 缓存层现在可以将写入操作代理到基础层,允许在不强制将对象迁移到缓存的情况下处理写入。

    • SHEC 纠删码支持不再标记为实验性。SHEC 以牺牲一些额外的存储空间来换取更快的修复。

    • 现在有一个统一的队列(以及因此的优先级)用于客户端 IO、恢复、scrubbing 和快照修剪。

    • 低级修复工具(ceph-objectstore-tool)有了许多改进。

    • 内部 ObjectStore API 已经进行了重大清理,以便于新的存储后端,例如 NewStore。

  • RGW:

    • Swift API 现在支持对象过期。

    • Swift API 兼容性方面有许多改进。

  • RBD:

    • 当启用 object-map 时,rbd du 命令可以(快速地)显示实际使用情况。

    • object-map 功能的稳定性有了许多改进。

    • Object-map 和 exclusive-lock 功能可以动态启用或禁用。

    • 您现在可以存储与单个镜像相关的用户元数据并设置持久的 librbd 选项。

    • 新的 deep-flatten 功能允许 flattening 克隆及其所有快照。(以前无法 flattening 快照。)

    • export-diff 命令现在更快(它使用 aio)。还有一个新的 fast-diff 功能。

    • 可以使用后缀指定 --size 参数的单位(例如,--size 64G)。

    • 有一个新的 rbd status 命令,目前显示谁打开/映射了镜像。

  • CephFS:

    • 您现在可以重命名快照。

    • 在管理、诊断以及检查和修复工具方面不断改进。

    • 由于未使用的 inode 导致的客户端缓存状态的缓存和撤销得到了显着改进。

    • ceph-fuse 客户端在 32 位主机上的行为更好。

发行版兼容性

我们决定放弃对许多较旧发行版的支持,以便我们可以迁移到较新的编译器工具链(例如 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 或更高版本。

从 Firefly 升级

不建议直接从 Firefly v0.80.z 升级。可以直接升级,但会造成停机。我们建议集群首先升级到 Hammer v0.94.4 或更高版本的 v0.94.z 版本;只有这样才能升级到 Infernalis 9.2.z 以进行在线升级(见下文)。

要直接从 Firefly 进行离线升级,必须在允许任何 Infernalis OSD 启动之前停止所有 Firefly OSD 并将其标记为 down。Infernalis 监视器会强制执行此 fencing,因此请使用以下升级过程:

  1. 升级监视器主机上的 Ceph

  2. 重新启动所有 ceph-mon 守护进程

  3. 升级所有 OSD 主机上的 Ceph

  4. 停止所有 ceph-osd 守护进程

  5. 使用以下命令将所有 OSD 标记为 down:

    ceph osd down `seq 0 1000`
    
  6. 启动所有 ceph-osd 守护进程

  7. 升级并重新启动剩余的守护进程 (ceph-mds, radosgw)

从 Hammer 升级

  • 所有集群节点必须首先升级到 Hammer v0.94.4 或更高版本的 v0.94.z 版本;只有这样才能升级到 Infernalis 9.2.z。

  • 对于所有支持 systemd 的发行版(CentOS 7、Fedora、Debian Jessie 8.x、OpenSUSE),ceph 守护进程现在使用原生 systemd 文件而不是传统的 sysvinit 脚本进行管理。例如:

    systemctl start ceph.target       # start all daemons
    systemctl status ceph-osd@12      # check status of osd.12
    

    一个值得注意的尚未使用 systemd 的发行版是 Ubuntu trusty 14.04。(下一个 Ubuntu LTS,16.04,将使用 systemd 而不是 upstart。)

  • Ceph 守护进程现在默认以用户和组 ceph 运行。ceph 用户具有 Fedora 和 Debian 分配的静态 UID(也用于 RHEL/CentOS 和 Ubuntu 等派生发行版)。在 SUSE 上,创建用户时,ceph 用户当前将获得动态分配的 UID。

    如果您的系统已经有一个 ceph 用户,升级软件包会导致问题。我们建议您在升级之前先删除或重命名现有的“ceph”用户和“ceph”组。

    升级时,管理员有两个选择:

    1. 在所有主机上的 ceph.conf 中添加以下行:

      setuser match path = /var/lib/ceph/$type/$cluster-$id
      

      如果守护进程的数据目录仍归 root 所有,这将使 Ceph 守护进程以 root 身份运行(即不放弃权限并切换到 ceph 用户)。新部署的守护进程将使用归 ceph 用户所有的数据创建,并将以降低的权限运行,但升级后的守护进程将继续以 root 身份运行。

    2. 在升级期间修复数据所有权。这是首选选项,但工作量更大,而且可能非常耗时。每个主机的过程是:

    3. 升级 ceph 包。这将创建 ceph 用户和组。例如:

      ceph-deploy install --stable infernalis HOST
      
      1. 停止守护进程

        service ceph stop           # fedora, centos, rhel, debian
        stop ceph-all               # ubuntu
        
      2. 修复所有权

        chown -R ceph:ceph /var/lib/ceph
        chown -R ceph:ceph /var/log/ceph
        
      3. 重新启动守护进程

        start ceph-all                # ubuntu
        systemctl start ceph.target   # debian, centos, fedora, rhel
        

      或者,可以使用单个守护进程类型完成相同的过程,例如仅停止监视器并仅 chown /var/lib/ceph/mon

  • 实验性 KeyValueStore OSD 后端的磁盘格式已更改。您需要先删除使用该后端的 OSD,然后才能升级使用它的任何测试集群。

  • 当达到池配额时,librados 操作现在会无限期地阻塞,就像集群满时一样。(以前它们会返回 -ENOSPC)。默认情况下,一个满的集群或池现在会阻塞。如果您的 librados 应用程序可以优雅地处理 ENOSPC 或 EDQUOT 错误,您可以使用新的 librados OPERATION_FULL_TRY 标志来获取错误返回。

  • librbd 的 rbd_aio_read 和 Image::aio_read API 方法在成功时不再返回读取的字节数。相反,它在成功时返回 0,在失败时返回负值。

  • ‘ceph scrub’、‘ceph compact’ 和 ‘ceph sync force’ 现在已弃用。用户应改用 ‘ceph mon scrub’、‘ceph mon compact’ 和 ‘ceph mon sync force’。

  • ‘ceph mon_metadata’ 现在应使用 ‘ceph mon metadata’。此命令无需弃用(自首次引入以来在同一主要版本中)。

  • “osdmaptool” 的 --dump-json 选项被 --dump json 替换。

  • “pg ls-by-{pool,primary,osd}” 和 “pg ls” 命令现在接受 “recovering” 而不是 “recovery”,以便将正在恢复的 pg 包含在列出的 pg 中。

自 Hammer 以来值得注意的变化

  • aarch64: 添加 crc32c 的优化版本 (Yazen Ghannam, Steve Capper)

  • auth: 缓存/重用 crypto lib 密钥对象,优化 msg 签名检查 (Sage Weil)

  • auth: fork() 后重新初始化 NSS (#11128 Yan, Zheng)

  • autotools: 修复 out of tree 构建 (Krxysztof Kosinski)

  • autotools: 改进 make check 输出 (Loic Dachary)

  • buffer: 添加 invalidate_crc() (Piotr Dalek)

  • buffer: 修复零 bug (#12252 Haomai Wang)

  • buffer: 一些清理 (Michal Jarzabek)

  • build: 允许 tcmalloc-minimal (Thorsten Behrens)

  • build: 现在支持 C++11

  • build: cmake: 修复 nss 链接 (Danny Al-Gaaf)

  • build: cmake: 杂项修复 (Orit Wasserman, Casey Bodley)

  • build: 默认禁用 LTTNG (#11333 Josh Durgin)

  • build: 不使用 tcmalloc 构建 ceph-dencoder (#10691 Boris Ranto)

  • build: 修复 Fedora 22 上的 junit 检测 (Ira Cooper)

  • build: 修复 pg ref 禁用 (William A. Kennington III)

  • build: 修复 ppc 构建 (James Page)

  • build: install-deps: 杂项修复 (Loic Dachary)

  • build: install-deps.sh 改进 (Loic Dachary)

  • build: install-deps: 支持 OpenSUSE (Loic Dachary)

  • build: make_dist_tarball.sh (Sage Weil)

  • build: 许多 cmake 改进

  • build: 杂项 cmake 修复 (Matt Benjamin)

  • build: 杂项修复 (Boris Ranto, Ken Dreyer, Owen Synge)

  • build: OSX 构建修复 (Yan, Zheng)

  • build: 移除 rest-bench

  • ceph-authtool: 修复错误时的返回代码 (Gerhard Muntingh)

  • ceph-detect-init: 添加 Linux Mint (Michal Jarzabek)

  • ceph-detect-init: 健壮的 init 系统检测 (Owen Synge)

  • ceph-disk: 确保 'zap' 仅在整个磁盘上操作 (#11272 Loic Dachary)

  • ceph-disk: 修复 zap sgdisk 调用 (Owen Synge, Thorsten Behrens)

  • ceph-disk: 创建 journal 时遵循 ceph-osd 提示 (#9580 Sage Weil)

  • ceph-disk: 处理重用现有分区 (#10987 Loic Dachary)

  • ceph-disk: 改进 parted 输出解析 (#10983 Loic Dachary)

  • ceph-disk: 安装 pip > 6.1 (#11952 Loic Dachary)

  • ceph-disk: 使抑制对 activate-all 和 activate-journal 起作用 (Dan van der Ster)

  • ceph-disk: 许多修复 (Loic Dachary, Alfredo Deza)

  • ceph-disk: 修复以遵守 init 系统 (Loic Dachary, Owen Synge)

  • ceph-disk: 在 prepare 子命令上传递 --cluster arg (Kefu Chai)

  • ceph-disk: 支持多路径设备 (Loic Dachary)

  • ceph-disk: 支持 NVMe 设备分区 (#11612 Ilja Slepnev)

  • ceph: 修复 'df' 单位 (Zhe Zhang)

  • ceph: 修复交互式 cli 模式下的解析 (#11279 Kefu Chai)

  • cephfs-data-scan: 许多添加和改进 (John Spray)

  • ceph-fuse: 卸载时不要求 remount 成功 (#10982 Greg Farnum)

  • ceph-fuse, libcephfs: trimming null 时不要清除 COMPLETE (Yan, Zheng)

  • ceph-fuse, libcephfs: rmdir 完成时丢弃 inode (#11339 Yan, Zheng)

  • ceph-fuse,libcephfs: 修复 uninline (#11356 Yan, Zheng)

  • ceph-fuse, libcephfs: 在我们“拥有”的目录上保留独占 caps (#11226 Greg Farnum)

  • ceph-fuse: 在 32 位主机上大部分行为正常 (Yan, Zheng)

  • ceph: 改进 'tell' 的错误输出 (#11101 Kefu Chai)

  • ceph-monstore-tool: 修复 store-copy (Huangjun)

  • ceph: 新的 'ceph daemonperf' 命令 (John Spray, Mykola Golub)

  • ceph-objectstore-tool: 许多改进 (David Zafman)

  • ceph-objectstore-tool: 重构和清理 (John Spray)

  • ceph-post-file: 杂项修复 (Joey McDonald, Sage Weil)

  • ceph_test_rados: 测试流水线读取 (Zhiqiang Wang)

  • client: 避免发送不必要的 FLUSHSNAP 消息 (Yan, Zheng)

  • client: 计算 oldest tid 时排除 setfilelock (Yan, Zheng)

  • client: 修复 check_pool_perm 中的错误处理 (John Spray)

  • client: fsync 仅等待 inode 的 caps 刷新 (Yan, Zheng)

  • client: 当缓存大小超过限制时使 kernel dcache 失效 (Yan, Zheng)

  • client: 使 fsync 等待不安全的 dir 操作 (Yan, Zheng)

  • client: pin lookup dentry 以避免 inode 被释放 (Yan, Zheng)

  • common: 为 perfcounters 添加描述 (Kiseleva Alyona)

  • common: 添加 perf counter 描述 (Alyona Kiseleva)

  • common: bufferlist 性能调优 (Piotr Dalek, Sage Weil)

  • common: 检测 int config 值溢出 (#11484 Kefu Chai)

  • common: 修复 bit_vector extent calc (#12611 Jason Dillaman)

  • common: 修复 utf8 的 json 解析 (#7387 Tim Serong)

  • common: 修复 pthread_mutexattr 泄漏 (#11762 Ketor Meng)

  • common: 修复 LTTNG vs fork 问题 (Josh Durgin)

  • common: 修复 throttle max change (Henry Chang)

  • common: 使互斥锁更高效

  • common: 使工作队列添加/删除线程安全 (#12662 Jason Dillaman)

  • common: optracker 改进 (Zhiqiang Wang, Jianpeng Ma)

  • common: PriorityQueue 测试 (Kefu Chai)

  • common: 一些异步压缩基础设施 (Haomai Wang)

  • crush: 添加 --check 以验证悬空名称、最大 osd id (Kefu Chai)

  • crush: 清理,与内核同步 (Ilya Dryomov)

  • crush: 修复无效 'take' 参数导致的崩溃 (#11602 Shiva Rkreddy, Sage Weil)

  • crush: 修复 straw2 中的除以 2 bug (#11357 Yann Dupont, Sage Weil)

  • crush: 修复 has_v4_buckets (#11364 Sage Weil)

  • crush: 在 adjust_subtree_weight 上尊重子树基本权重 (#11855 Sage Weil)

  • crush: 在 map 创建时尊重默认复制 ruleset config (Ilya Dryomov)

  • crushtool: 修复操作顺序,用法 (Sage Weil)

  • crypto: 修复 NSS 泄漏 (Jason Dillaman)

  • crypto: 修复不平衡的 init/shutdown (#12598 Zheng Yan)

  • deb: 修复 rest-bench-dbg 和 ceph-test-dbg 依赖关系 (Ken Dreyer)

  • debian: 轻微的包重组 (Ken Dreyer)

  • deb, rpm: 将 ceph-objectstore-tool 移到 ceph (Ken Dreyer)

  • doc: 文档对象语料库生成 (#11099 Alexis Normand)

  • doc: 文档区域主机名 (Robin H. Johnson)

  • doc: 修复性别中立性 (Alexandre Maragone)

  • doc: 修复安装文档 (#10957 Kefu Chai)

  • doc: 修复 sphinx 问题 (Kefu Chai)

  • doc: man 页面更新 (Kefu Chai)

  • doc: mds 数据结构文档 (Yan, Zheng)

  • doc: 杂项更新 (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: 将 doxygen 集成切换回 breathe (#6115 Kefu Chai)

  • doc: 更新发布日程文档 (Loic Dachary)

  • erasure-code: 清理 (Kefu Chai)

  • erasure-code: 改进测试 (Loic Dachary)

  • erasure-code: shec: 修复恢复 bug (Takanori Nakao, Shotaro Kawaguchi)

  • erasure-code: 更新 ISA-L 到 2.13 (Yuan Zhou)

  • gmock: 切换到 submodule (Danny Al-Gaaf, Loic Dachary)

  • hadoop: 添加 terasort 测试 (Noah Watkins)

  • init-radosgw: 与 sysv 版本合并;修复枚举 (Sage Weil)

  • java: 修复 libcephfs 绑定 (Noah Watkins)

  • libcephfs: 添加 pread, pwrite (Jevon Qiao)

  • libcephfs,ceph-fuse: 缓存清理 (Zheng Yan)

  • libcephfs,ceph-fuse: 修复 cap 重连时的请求重发 (#10912 Yan, Zheng)

  • librados: 添加 config observer (Alistair Strachan)

  • librados: 添加 FULL_TRY 和 FULL_FORCE 标志来处理满的集群或池 (Sage Weil)

  • librados: 为 copy-from 添加 src_fadvise_flags (Jianpeng Ma)

  • librados: 从 C 常量定义 C++ 标志 (Josh Durgin)

  • librados: 每个 op 的 fadvise 标志 (Jianpeng Ma)

  • librados: 修复 last_force_resent 处理 (#11026 Jianpeng Ma)

  • librados: 修复 C_TwoContexts 的内存泄漏 (Xiong Yiliang)

  • librados: 修复 notify completion race (#13114 Sage Weil)

  • librados: 当 stripe_count = 1 且 stripe_unit != object_size 时修复 striper (#11120 Yan, Zheng)

  • librados, libcephfs: 随机化客户端 nonces (Josh Durgin)

  • librados: op perf counters (John Spray)

  • librados: pybind: 修复二进制 omap 值 (Robin H. Johnson)

  • librados: pybind: 修复 write() 方法返回代码 (Javier Guerra)

  • librados: 在 pool_create 时尊重 default_crush_ruleset (#11640 Yuan Zhou)

  • libradosstriper: 修复泄漏 (Danny Al-Gaaf)

  • librbd: 为 single-client-only features 添加 const (Josh Durgin)

  • librbd: 添加 deep-flatten 操作 (Jason Dillaman)

  • librbd: 添加 purge_on_error 缓存行为 (Jianpeng Ma)

  • librbd: 允许存储与镜像相关的额外元数据 (Haomai Wang)

  • librbd: 避免阻塞 aio API 方法 (#11056 Jason Dillaman)

  • librbd: 更好地处理重复的 flatten 请求 (#11370 Jason Dillaman)

  • librbd: 在 watch error 时取消 in-flight ops (#11363 Jason Dillaman)

  • librbd: 默认新镜像为 format 2 (#11348 Jason Dillaman)

  • librbd: copy, export, import 的 fadvise (Jianpeng Ma)

  • librbd: 利用 object map 的 fast diff 实现 (Jason Dillaman)

  • librbd: 修复 fast diff bug (#11553 Jason Dillaman)

  • librbd: 修复镜像格式检测 (Zhiqiang Wang)

  • librbd: 修复锁排序问题 (#11577 Jason Dillaman)

  • librbd: 修复大于缓存大小的读取 (Lu Shi)

  • librbd: 修复当另一个快照处于活动状态时创建快照 (#11475 Jason Dillaman)

  • librbd: flatten/copyup 修复 (Jason Dillaman)

  • librbd: 处理 NOCACHE fadvise 标志 (Jinapeng Ma)

  • librbd: lockdep, helgrind 验证 (Jason Dillaman, Josh Durgin)

  • librbd: metadata filter 修复 (Haomai Wang)

  • librbd: 杂项 aio 修复 (#5488 Jason Dillaman)

  • librbd: 杂项 rbd 修复 (#11478 #11113 #11342 #11380 Jason Dillaman, Zhiqiang Wang)

  • librbd: 新的 diff_iterate2 API (Jason Dillaman)

  • librbd: object map rebuild 支持 (Jason Dillaman)

  • librbd: 仅在持有独占锁时更新镜像标志 (#11791 Jason Dillaman)

  • librbd: 可选禁用分配提示 (Haomai Wang)

  • librbd: 防止 resize 请求之间的竞争 (#12664 Jason Dillaman)

  • librbd: readahead 修复 (Zhiqiang Wang)

  • librbd: 从 close 返回结果代码 (#12069 Jason Dillaman)

  • librbd: 在镜像中存储元数据,包括配置选项 (Haomai Wang)

  • librbd: 获取镜像元数据时容忍旧 osds (#11549 Jason Dillaman)

  • librbd: 尽可能使用 write_full (Zhiqiang Wang)

  • log: 修复日志轮换导致的并发数据损坏 (#12465 Samuel Just)

  • logrotate.d: 优先使用 service 而不是 invoke-rc.d (#11330 Win Hierman, Sage Weil)

  • mds: 为 MDSMap 添加 'damaged' 状态 (John Spray)

  • mds: 为 perfcounters 添加昵称 (John Spray)

  • mds: 避免在驱逐会话之前发出 cap 警告 (John Spray)

  • mds: 避免卡在 XLOCKDONE (#11254 Yan, Zheng)

  • mds: 禁用有问题的 rstat 传播到 snap parents (Yan, Zheng)

  • mds: 不要将快照项目添加到 bloom filter (Yan, Zheng)

  • mds: 通过 asok 暴露 frags (John Spray)

  • mds: 修复 journal 对象中预期的 holes (#13167 Yan, Zheng)

  • mds: 修复处理缺失的 mydir dirfrag (#11641 John Spray)

  • mds: 修复大客户端 id 的整数截断 (Henry Chang)

  • mds: 修复 shutdown 时的 mydir replica 问题 (#10743 John Spray)

  • mds: 修复乱序消息 (#11258 Yan, Zheng)

  • mds: 修复 rejoin (Yan, Zheng)

  • mds: 修复在一个 setxattr 中设置整个文件布局 (John Spray)

  • mds: 修复 shutdown (John Spray)

  • mds: 修复带有 strays 的 shutdown (#10744 John Spray)

  • mds: 修复 SnapServer 在 pool 被删除时崩溃 (John Spray)

  • mds: 修复快照 bug (Yan, Zheng)

  • mds: 修复 stray reintegration (Yan, Zheng)

  • mds: 修复 stray handling (John Spray)

  • mds: 修复 suicide beacon (John Spray)

  • mds: 在 do_open_truncate 中立即刷新 (#11011 John Spray)

  • mds: 处理杂项损坏问题 (John Spray)

  • mds: 改进 dump 方法 (John Spray)

  • mds: 许多修复 (Yan, Zheng, John Spray, Greg Farnum)

  • mds: 许多快照和 stray 修复 (Yan, Zheng)

  • mds: 杂项修复 (Jianpeng Ma, Dan van der Ster, Zhang Zhi)

  • mds: 杂项 journal 清理和修复 (#10368 John Spray)

  • mds: 杂项修复改进 (John Spray)

  • mds: 杂项 snap 修复 (Zheng Yan)

  • mds: 杂项快照修复 (Yan, Zheng)

  • mds: 使用 omap 的新 SessionMap 存储 (#10649 John Spray)

  • mds: 可靠地持久化 completed_requests (#11048 John Spray)

  • mds: 减少内存消耗 (Yan, Zheng)

  • mds: 在黑名单上 respawn 而不是 suicide (John Spray)

  • mds: 在 Journaler 中分离 safe_pos (#10368 John Spray)

  • mds: 快照重命名支持 (#3645 Yan, Zheng)

  • mds: 在 header 对象上存储 layout (#4161 John Spray)

  • mds: 限制清除 stray 操作 (#10390 John Spray)

  • mds: 容忍时钟向后跳 (#11053 Yan, Zheng)

  • mds: 当客户端未能推进 oldest_client_tid 时发出警告 (#10657 Yan, Zheng)

  • misc 清理和修复 (Danny Al-Gaaf)

  • misc coverity fixes (Danny Al-Gaaf)

  • misc 性能和清理 (Nathan Cutler, Xinxin Shu)

  • mon: 在 MonitorDBStore 上添加缓存 (Kefu Chai)

  • mon: 添加 'mon_metadata <id>' 命令 (Kefu Chai)

  • mon: 添加 'node ls …' 命令 (Kefu Chai)

  • mon: 为 mon 命令添加 NOFORWARD, OBSOLETE, DEPRECATE 标志 (Joao Eduardo Luis)

  • mon: 在 'ceph osd df' 输出中添加 PG 计数 (Michal Jarzabek)

  • mon: 'ceph osd metadata' 可以 dump 所有 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 map 测试 (Sage Weil)

  • mon: 修复调试时的 log dump 崩溃 (Mykola Golub)

  • mon: 修复 mds beacon replies (#11590 Kefu Chai)

  • mon: 修复元数据更新竞争 (Mykola Golub)

  • mon: 修复 min_last_epoch_clean 跟踪 (Kefu Chai)

  • mon: 修复 'pg ls' 排序顺序,状态名称 (#11569 Kefu Chai)

  • mon: 修复 refresh (#11470 Joao Eduardo Luis)

  • mon: 修复 'osd df' 中的方差计算 (Sage Weil)

  • mon: 改进 crushtool 调用 (Mykola Golub)

  • mon: 使阻塞的 op 消息更具可读性 (Jianpeng Ma)

  • mon: 使 osd get pool 'all' 只返回适用字段 (#10891 Michal Jarzabek)

  • mon: 杂项缩放修复 (Sage Weil)

  • mon: 规范化纠删码 profile 以进行存储和比较 (Loic Dachary)

  • mon: 仅向支持的 peer 发送 mon 元数据 (Sage Weil)

  • mon: 在 'osd create' 上可选指定 osd id (Mykola Golub)

  • mon: 'osd tree' 修复 (Kefu Chai)

  • mon: 定期后台 scrub (Joao Eduardo Luis)

  • mon: 防止 bucket 被 crush rule 引用时被删除 (#11602 Sage Weil)

  • mon: 防止 pgp_num > pg_num (#12025 Xinxin Shu)

  • mon: 防止具有快照状态的 pool 用作层 (#11493 Sage Weil)

  • mon: 当 CRUSH map 更改时 prime pg_temp (Sage Weil)

  • mon: 改进 check_remove_tier 检查 (#11504 John Spray)

  • mon: 拒绝大的 max_mds 值 (#12222 John Spray)

  • mon: 从 'mds rm …' 中删除多余的 who arg (John Spray)

  • mon: 简化 session 处理,修复内存泄漏 (Sage Weil)

  • mon: 升级必须通过 hammer (Sage Weil)

  • mon: 警告 bogus 缓存层配置 (Jianpeng Ma)

  • msgr: 添加 ceph_perf_msgr 工具 (Hoamai Wang)

  • msgr: async: 修复 seq 处理 (Haomai Wang)

  • msgr: async: 许多许多修复 (Haomai Wang)

  • msgr: simple: 修复 clear_pipe (#11381 Haomai Wang)

  • msgr: simple: 修复 connect_seq assert (Haomai Wang)

  • msgr: xio: fastpath 改进 (Raju Kurunkad)

  • msgr: xio: 修复 ip 和 nonce (Raju Kurunkad)

  • msgr: xio: 改进 lane 分配 (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)

  • msg: 单元测试 (Haomai Wang)

  • objectcacher: 杂项 bug 修复 (Jianpeng Ma)

  • osd: 为层操作添加延迟 perf counters (Xinze Chi)

  • osd: 添加杂项 perfcounters (Xinze Chi)

  • osd: 在恢复中添加简单睡眠注入 (Sage Weil)

  • osd: 允许稀疏读取的 SEEK_HOLE/SEEK_DATA (Zhiqiang Wang)

  • osd: 避免在 pg 元数据中重复 omap sets (Sage Weil)

  • osd: 避免多次 hit set 插入 (Zhiqiang Wang)

  • osd: 在某些情况下避免 transaction append (Sage Weil)

  • osd: 将 PG 删除分解为多次迭代 (#10198 Guang Yang)

  • osd: 缓存 proxy-write 支持 (Zhiqiang Wang, Samuel Just)

  • osd: 处理 map 时检查 scrub 状态 (Jianpeng Ma)

  • osd: 清理一些 constness, privateness (Kefu Chai)

  • osd: 如果 promotion 失败则清理 temp object (Jianpeng Ma)

  • osd: 根据写入最近性配置 promotion (Zhiqiang Wang)

  • osd: 将 collection 限制为 meta 和 PGs(正常和临时) (Sage Weil)

  • osd: 不要发送重复的 MMonGetOSDMap 请求 (Sage Weil, Kefu Chai)

  • osd: EIO 注入 (David Zhang)

  • osd: 消除 txn apend, ECSubWrite copy (Samuel Just)

  • osd: erasure-code: 根据 LRU 丢弃条目 (Andreas-Joachim Peters)

  • osd: erasure-code: 修复 SHEC 浮点 bug (#12936 Loic Dachary)

  • osd: erasure-code: 更新 ISA-L 到 2.14 (Yuan Zhou)

  • osd: filejournal: 清理 (David Zafman)

  • osd: filestore: 使用 splice 克隆 (Jianpeng Ma)

  • osd: filestore: 修复递归锁 (Xinxin Shu)

  • osd: 修复 check_for_full (Henry Chang)

  • osd: 修复 make_writeable 中的 dirty accounting (Zhiqiang Wang)

  • osd: 修复 dup promotion lost op bug (Zhiqiang Wang)

  • osd: 修复对象不可恢复时的无休止恢复 (Jianpeng Ma, Kefu Chai)

  • osd: 修复 hitset 对象命名以使用 GMT (Kefu Chai)

  • osd: 修复杂项内存泄漏 (Sage Weil)

  • osd: 修复 backfill 期间的负 degraded stats (Guang Yang)

  • osd: 修复 osdmap dump 的 blacklist 条目 (John Spray)

  • osd: 修复 FileStore 中的 peek_queue locking (Xinze Chi)

  • osd: 修复 pg resurrection (#11429 Samuel Just)

  • osd: 修复 promotion vs full cache tier (Samuel Just)

  • osd: 修复 pg 仍在激活时 replay requeue (#13116 Samuel Just)

  • osd: 修复 scrub stat bug (Sage Weil, Samuel Just)

  • osd: 再次修复从缓存层刷新快照 (#11787 Samuel Just)

  • osd: 修复 promotion 时的快照处理 (#11296 Sam Just)

  • osd: 修复 temp-clearing (David Zafman)

  • osd: EC 无法处理 op 时强制 promotion (Zhiqiang Wang)

  • osd: 处理具有重叠条目的 log split (#11358 Samuel Just)

  • osd: 在 unfound calc 中忽略不存在的 osds (#10976 Mykola Golub)

  • osd: 改进在大内存页机器上的行为 (Steve Capper)

  • osd: 在每个 collection/pgid 中包含一个 temp namespace (Sage Weil)

  • osd: 增加默认最大打开文件数 (Owen Synge)

  • osd: keyvaluestore: 杂项修复 (Varada Kari)

  • osd: 低速和高速 flush 模式 (Mingxin Liu)

  • osd: 使 suicide timeouts 可单独配置 (Samuel Just)

  • osd: 将多个 setattr 调用合并为 setattrs 调用 (Xinxin Shu)

  • osd: 杂项修复 (Ning Yao, Kefu Chai, Xinze Chi, Zhiqiang Wang, Jianpeng Ma)

  • osd: 在 OpWQ 中移动 scrub (Samuel Just)

  • osd: newstore 原型 (Sage Weil)

  • osd: ObjectStore 内部 API 重构 (Sage Weil)

  • osd: peer_features 包括 self (David Zafman)

  • osd: pool size change 触发新间隔 (#11771 Samuel Just)

  • osd: 当只有一个 peer 缺失时预填充 needs_recovery_map (#9558 Guang Yang)

  • osd: 随机化 scrub 时间 (#10973 Kefu Chai)

  • osd: recovery, peering 修复 (#11687 Samuel Just)

  • osd: 重构 scrub 和 digest recording (Sage Weil)

  • osd: 拒绝在非零偏移量处对 EC 对象进行首次写入 (Jianpeng Ma)

  • osd: 放宽 proxy read 上的回复顺序 (#11211 Zhiqiang Wang)

  • osd: 要求 firefly features (David Zafman)

  • osd: 以更高的精度设置初始 crush weight (Sage Weil)

  • osd: SHEC 不再是实验性

  • osd: 跳过 flush/evict op 的 promotion (Zhiqiang Wang)

  • osd: 在小 xattrs 上 stripe 以适应 XFS 的 255 字节内联限制 (Sage Weil, Ning Yao)

  • osd: 在 syncfs 上 sync object_map (Samuel Just)

  • osd: 如果 op 是 rw 则获取 excl lock (Samuel Just)

  • osd: 限制 evict ops (Yunchuan Wen)

  • osd: 升级必须通过 hammer (Sage Weil)

  • osd: 使用 temp object 进行 recovery (Sage Weil)

  • osd: 使用 blkid 收集分区信息 (Joseph Handzik)

  • osd: 使用 SEEK_HOLE / SEEK_DATA 进行稀疏复制 (Xinxin Shu)

  • osd: WBThrottle 清理 (Jianpeng Ma)

  • osd: 在 clean shutdown 时写入 journal header (Xinze Chi)

  • osdc/Objecter: 允许每个 pool 调用 op_cancel_writes (John Spray)

  • os/filestore: 扩大 getxattr 缓冲区大小 (Jianpeng Ma)

  • pybind: pep8 清理 (Danny Al-Gaaf)

  • pycephfs: 许多绑定修复 (Haomai Wang)

  • qa: 修复 filelock_interrupt.py 测试 (Yan, Zheng)

  • qa: 改进 ceph-disk 测试 (Loic Dachary)

  • qa: 改进 docker build layers (Loic Dachary)

  • qa: run-make-check.sh 脚本 (Loic Dachary)

  • rados: 添加 --striper 选项以使用 libradosstriper (#10759 Sebastien Ponce)

  • rados: bench: 添加 --no-verify 选项以提高性能 (Piotr Dalek)

  • rados bench: 杂项修复 (Dmitry Yatsushkevich)

  • rados: 修复 pool 删除失败时的错误消息 (Wido den Hollander)

  • radosgw-admin: 添加 'bucket check' 功能来修复 bucket index (Yehuda Sadeh)

  • radosgw-admin: 修复 subuser modify 输出 (#12286 Guce)

  • rados: 正确处理 --snapid arg (Abhishek Lekshmanan)

  • rados: 改进 bench buffer 处理,性能 (Piotr Dalek)

  • rados: 杂项 bench 修复 (Dmitry Yatsushkevich)

  • rados: 新的 pool import 实现 (John Spray)

  • rados: 在 CLI 中将 errno 转换为字符串 (#10877 Kefu Chai)

  • rbd: 接受 map options config 选项 (Ilya Dryomov)

  • rbd: 添加磁盘使用工具 (#7746 Jason Dillaman)

  • rbd: 允许按 spec unmapping (Ilya Dryomov)

  • rbd: cli: 修复 --io-pattern 的 arg 解析 (Dmitry Yatsushkevich)

  • rbd: 弃用 --new-format 选项 (Jason Dillman)

  • rbd: 修复错误消息 (#2862 Rajesh Nambiar)

  • rbd: 修复链接问题 (Jason Dillaman)

  • rbd: 改进 CLI arg 解析,用法 (Ilya Dryomov)

  • rbd: rbd-replay-prep 和 rbd-replay 改进 (Jason Dillaman)

  • rbd: 识别 queue_depth 内核选项 (Ilya Dryomov)

  • rbd: 支持 CLI 的 G 和 T 单位 (Abhishek Lekshmanan)

  • rbd: 更新 rbd man page (Ilya Dryomov)

  • rbd: 更新 xfstests 测试 (Douglas Fuller)

  • rbd: 在 help 中使用 image-spec 和 snap-spec (Vikhyat Umrao, Ilya Dryomov)

  • rest-bench: 杂项修复 (Shawn Chen)

  • rest-bench: 支持 https (#3968 Yuan Zhou)

  • rgw: 添加 max multipart upload parts (#12146 Abshishek Dixit)

  • rgw: 为 Swift container details 添加缺失的 headers (#10666 Ahmad Faheem, Dmytro Iurchenko)

  • rgw: 为 account GET 添加 stats 到 headers (#10684 Yuan Zhou)

  • rgw: 添加 Trasnaction-Id 到 response (Abhishek Dixit)

  • rgw: 为 Swift containers 添加 X-Timestamp (#10938 Radoslaw Zarzynski)

  • rgw: 始终检查 token 是否过期 (#11367 Anton Aksola, Riku Lehto)

  • rgw: 用于修复损坏 multipart 对象的转换工具 (#12079 Yehuda Sadeh)

  • rgw: 文档 pools 和 objects 的布局 (Pete Zaitcev)

  • rgw: 不在 bucket header 中使用引号 (#11860 Wido den Hollander)

  • rgw: HEAD 请求不预取数据 (Guang Yang)

  • rgw: 复制对象时不要保留 ACLs (#12370 Yehuda Sadeh)

  • rgw: 如果 length 为 0 则不要设置 content-type (#11091 Orit Wasserman)

  • rgw: 设置 ACLs 时不要覆盖 bucket/object owner (#10978 Yehuda Sadeh)

  • rgw: 对于 namespaced object listing 不使用 end_marker (#11437 Yehuda Sadeh)

  • rgw: 如果 frontend 已配置,则不使用 rgw_socket_path (#11160 Yehuda Sadeh)

  • rgw: 对 Swift cont/obj 上的 POST 强制执行 Content-Length (#10661 Radoslaw Zarzynski)

  • rgw: 如果 frontend 未发送所有数据则出错 (#11851 Yehuda Sadeh)

  • rgw: 通过 admin socket 暴露不健康 worker 的数量 (Guang Yang)

  • rgw: 如果 multipart upload 未指定 parts 则失败 (#11435 Yehuda Sadeh)

  • rgw: 修复 copy obj 属性的分配 (#11563 Yehuda Sadeh)

  • rgw: 修复 container listing 中的损坏 stats (#11285 Radoslaw Zarzynski)

  • rgw: 修复 domain/subdomain splitting 中的 bug (Robin H. Johnson)

  • rgw: 修复 Content-Type header 的大小写 (Robin H. Johnson)

  • rgw: 修复 civetweb max threads (#10243 Yehuda Sadeh)

  • rgw: 修复 Connection: header 处理 (#12298 Wido den Hollander)

  • rgw: 修复 copy metadata, 支持 swift 的 X-Copied-From (#10663 Radoslaw Zarzynski)

  • rgw: 修复数据损坏竞争条件 (#11749 Wuxingyi)

  • rgw: 修复 Swift DLO 上的 GET 的 X-Object-Manifest 解码 (Radslow Rzarzynski)

  • rgw: 修复 Swift account 上的 GET(当 limit == 0 时) (#10683 Radoslaw Zarzynski)

  • rgw: 修复 Swift container 上处理空元数据项 (#11088 Radoslaw Zarzynski)

  • rgw: 修复获取用户配额时的 JSON response (#12117 Wuxingyi)

  • rgw: 修复以 _ 开头的对象的 locator (#11442 Yehuda Sadeh)

  • rgw: 修复 log rotation (Wuxingyi)

  • rgw: 修复 retry path 中的 mulitipart upload (#11604 Yehuda Sadeh)

  • rgw: 修复 POST 上的 quota enforcement (#11323 Sergey Arkhipov)

  • rgw: 修复 reset_loc (#11974 Yehuda Sadeh)

  • rgw: 修复缺失 upload 时的返回代码 (#11436 Yehuda Sadeh)

  • rgw: 修复 sysvinit 脚本

  • rgw: 修复带有多个实例的 sysvinit 脚本 (Sage Weil, Pavan Rallabhandi)

  • rgw: 对 swift bucket stats requests 强制 content_type (#12095 Orit Wasserman)

  • rgw: 对没有 body 的 responses 强制 content type header (#11438 Orit Wasserman)

  • rgw: 为 civetweb 生成 Date header (#10873 Radoslaw Zarzynski)

  • rgw: 设置 attrs 时生成新的 object tag (#11256 Yehuda Sadeh)

  • rgw: 改进 content-length env var 处理 (#11419 Robin H. Johnson)

  • rgw: 改进对 swift account metadata 的支持 (Radoslaw Zarzynski)

  • rgw: 改进 expirer 中处理已移除的 bucket (Radoslaw Rzarzynski)

  • rgw: 在刷新缓存数据之前为第一块 issue aio (#11322 Guang Yang)

  • rgw: 记录到 /var/log/ceph 而不是 /var/log/radosgw

  • rgw: 使 init script 等待 radosgw 停止 (#11140 Dmitry Yatsushkevich)

  • rgw: 使 max put size 可配置 (#6999 Yuan Zhou)

  • rgw: 使 quota/gc 线程可配置 (#11047 Guang Yang)

  • rgw: 使 read user buckets 向后兼容 (#10683 Radoslaw Zarzynski)

  • rgw: 使用 prefix override 正确合并 manifests (#11622 Yehuda Sadeh)

  • rgw: 只扫描不在 namespace 中的对象 (#11984 Yehuda Sadeh)

  • rgw: orphan detection tool (Yehuda Sadeh)

  • rgw: 传入 civetweb 可配置项 (#10907 Yehuda Sadeh)

  • rgw: 修复 PUT response 中的 202 Accepted (#11148 Radoslaw Zarzynski)

  • rgw: 删除 bucket 后移除 meta file (#11149 Orit Wasserman)

  • rgw: 从 HTTP_HOST header 中删除尾随的 :port (Sage Weil)

  • rgw: 在 listing buckets 时对 bad limit 返回 412 (#11613 Yehuda Sadeh)

  • rgw: 重做 X-Trans-Id header 以符合 Swift API (Radoslaw Rzarzynski)

  • rgw: s3 encoding-type for get bucket (Jeff Weber)

  • rgw: 为 swift 发送 ETag, Last-Modified (#11087 Radoslaw Zarzynski)

  • rgw: 对 container GET, PUT, DELETE, HEAD 设置 content length (#10971, #11036 Radoslaw Zarzynski)

  • rgw: 在 ceph.conf 中设置 max buckets per user (Vikhyat Umrao)

  • rgw: over multiple librados instances 分片工作 (Pavan Rallabhandi)

  • rgw: 支持 swift container GET 上的 end marker (#10682 Radoslaw Zarzynski)

  • rgw: 支持 Swift expiration API (Radoslaw Rzarzynski, Yehuda Sadeh)

  • rgw: swift: 允许使用 COPY 设置属性 (#10662 Ahmad Faheem, Dmytro Iurchenko)

  • rgw: swift: 不要覆盖发送的 content type (#12363 Orit Wasserman)

  • rgw: swift: 在 response 中强制执行 Content-Type (#12157 Radoslaw Zarzynski)

  • rgw: swift: 修复 account listing (#11501 Radoslaw Zarzynski)

  • rgw: swift: 修复 copy 上的元数据处理 (#10645 Radoslaw Zarzynski)

  • rgw: swift: 发送 Last-Modified header (#10650 Radoslaw Zarzynski)

  • rgw: swift: 为 account GET 设置 Content-Length (#12158 Radoslav Zarzynski)

  • rgw: swift: 在 keystone tokens 上设置 content-length (#11473 Herv Rousseau)

  • rgw: 使用 token info 更新 keystone cache (#11125 Yehuda Sadeh)

  • rgw: 更新到最新的 civetweb, 启用 IPv6 配置 (#10965 Yehuda Sadeh)

  • rgw: 在 copy 上使用 source bucket 的 attrs (#11639 Javier M. Mellid)

  • rgw: 为 gc chains 使用正确的 oid (#11447 Yehuda Sadeh)

  • rgw: user rm 是幂等的 (Orit Wasserman)

  • rgw: 为 civetweb 使用唯一的 request id (#10295 Orit Wasserman)

  • rocksdb: 为 get/put latency 添加 perf counters (Xinxin Shu)

  • rocksdb, leveldb: 修复 compact_on_mount (Xiaoxi Chen)

  • rocksdb: 将 options 作为单个字符串传递 (Xiaoxi Chen)

  • rocksdb: 更新到最新版本 (Xiaoxi Chen)

  • rpm: 添加 suse firewall 文件 (Tim Serong)

  • rpm: 始终为 rpm 重建和安装 man pages (Owen Synge)

  • rpm: 放松 ceph-test 依赖关系 (Ken Dreyer)

  • rpm: 许多 spec file 修复 (Owen Synge, Ken Dreyer)

  • rpm: 杂项修复 (Boris Ranto, Owen Synge, Ken Dreyer, Ira Cooper)

  • rpm: 杂项 systemd 和 SUSE 修复 (Owen Synge, Nathan Cutler)

  • selinux policy (Boris Ranto, Milan Broz)

  • systemd: logrotate 修复 (Tim Serong, Lars Marowsky-Bree, Nathan Cutler)

  • systemd: 许多修复 (Sage Weil, Owen Synge, Boris Ranto, Dan van der Ster)

  • systemd: 以用户 ceph 运行守护进程

  • sysvinit compat: 杂项修复 (Owen Synge)

  • test: 杂项 fs test 改进 (John Spray, Loic Dachary)

  • test: python tests, linter 清理 (Alfredo Deza)

  • tests: rbd xstests 修复 (Douglas Fuller)

  • tests: 修复 tiering health checks (Loic Dachary)

  • tests for low-level performance (Haomai Wang)

  • tests: 许多 ec non-regression 改进 (Loic Dachary)

  • tests: 许多许多 ec test 改进 (Loic Dachary)

  • upstart: 限制重启 (#11798 Sage Weil, Greg Farnum)

v9.1.0 Infernalis release candidate

这是第一个 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 版本中修复。

Hammer 的重大变化

  • General:

    • Ceph 守护进程现在通过 systemd 管理(Ubuntu Trusty 除外,它仍然使用 upstart)。

    • Ceph 守护进程以“ceph”用户而不是 root 用户运行。

    • 在 Red Hat 发行版上,还有 SELinux 策略。

  • RADOS:

    • RADOS 缓存层现在可以将写入操作代理到基础层,允许在不强制将对象迁移到缓存的情况下处理写入。

    • SHEC 纠删码支持不再标记为实验性。SHEC 以牺牲一些额外的存储空间来换取更快的修复。

    • 现在有一个统一的队列(以及因此的优先级)用于客户端 IO、scrubbing 和快照修剪。

    • 低级修复工具(ceph-objectstore-tool)有了许多改进。

    • 内部 ObjectStore API 已经进行了重大清理,以便于新的存储后端,例如 NewStore。

  • RGW:

    • Swift API 现在支持对象过期。

    • Swift API 兼容性方面有许多改进。

  • RBD:

    • 当启用 object-map 时,rbd du 命令可以(快速地)显示实际使用情况。

    • object-map 功能的稳定性有了许多改进。

    • Object-map 和 exclusive-lock 功能可以动态启用或禁用。

    • 您现在可以存储与单个镜像相关的用户元数据并设置持久的 librbd 选项。

    • 新的 deep-flatten 功能允许 flattening 克隆及其所有快照。(以前无法 flattening 快照。)

    • export-diff 命令现在更快(它使用 aio)。还有一个新的 fast-diff 功能。

    • 可以使用后缀指定 --size 参数的单位(例如,--size 64G)。

    • 有一个新的 rbd status 命令,目前显示谁打开/映射了镜像。

  • CephFS:

    • 您现在可以重命名快照。

    • 在管理、诊断以及检查和修复工具方面不断改进。

    • 由于未使用的 inode 导致的客户端缓存状态的缓存和撤销得到了显着改进。

    • ceph-fuse 客户端在 32 位主机上的行为更好。

发行版兼容性

我们决定放弃对许多较旧发行版的支持,以便我们可以迁移到较新的编译器工具链(例如 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 或更高版本。

从 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

从 Hammer 升级

  • 所有集群节点必须首先升级到 Hammer v0.94.4 或更高版本的 v0.94.z 版本;只有这样才能进行在线升级到 Infernalis 9.2.z。

  • 对于所有支持 systemd 的发行版(CentOS 7、Fedora、Debian Jessie 8.x、OpenSUSE),ceph 守护进程现在使用原生 systemd 文件而不是传统的 sysvinit 脚本进行管理。例如:

    systemctl start ceph.target       # start all daemons
    systemctl status ceph-osd@12      # check status of osd.12
    

    一个值得注意的尚未使用 systemd 的发行版是 Ubuntu trusty 14.04。(下一个 Ubuntu LTS,16.04,将使用 systemd 而不是 upstart。)

  • Ceph 守护进程现在默认以用户和组 ceph 运行。ceph 用户具有 Fedora 和 Debian 分配的静态 UID(也用于 RHEL/CentOS 和 Ubuntu 等派生发行版)。在 SUSE 上,创建用户时,ceph 用户当前将获得动态分配的 UID。

    如果您的系统已经有一个 ceph 用户,软件包升级过程通常会失败并显示错误。我们建议您先删除或重命名现有的“ceph”用户,然后再升级。

    升级时,管理员有两个选择:

    1. 在所有主机上的 ceph.conf 中添加以下行:

      setuser match path = /var/lib/ceph/$type/$cluster-$id
      

      如果守护进程的数据目录仍归 root 所有,这将使 Ceph 守护进程以 root 身份运行(即不放弃权限并切换到 ceph 用户)。新部署的守护进程将使用归 ceph 用户所有的数据创建,并将以降低的权限运行,但升级后的守护进程将继续以 root 身份运行。

    2. 在升级期间修复数据所有权。这是首选选项,但工作量更大。每个主机的过程是:

      1. 升级 ceph 包。这将创建 ceph 用户和组。例如:

        ceph-deploy install --stable infernalis HOST
        
      2. 停止守护进程

        service ceph stop           # fedora, centos, rhel, debian
        stop ceph-all               # ubuntu
        
      3. 修复所有权

        chown -R ceph:ceph /var/lib/ceph
        chown -R ceph:ceph /var/log/ceph
        
      4. 重新启动守护进程

        start ceph-all                # ubuntu
        systemctl start ceph.target   # debian, centos, fedora, rhel
        
  • 实验性 KeyValueStore OSD 后端的磁盘格式已更改。您需要先删除使用该后端的 OSD,然后才能升级使用它的任何测试集群。

升级说明

  • 当达到池配额时,librados 操作现在会无限期地阻塞,就像集群满时一样。(以前它们会返回 -ENOSPC)。默认情况下,一个满的集群或池现在会阻塞。如果您的 librados 应用程序可以优雅地处理 ENOSPC 或 EDQUOT 错误,您可以使用新的 librados OPERATION_FULL_TRY 标志来获取错误返回。

值得注意的变化

注意:这些说明有些缩写,因为我们正在寻找一种耗时较少的生成过程。

  • build: 现在支持 C++11

  • build: 许多 cmake 改进

  • build: OSX 构建修复 (Yan, Zheng)

  • build: 移除 rest-bench

  • ceph-disk: 许多修复 (Loic Dachary)

  • ceph-disk: 支持多路径设备 (Loic Dachary)

  • ceph-fuse: 在 32 位主机上大部分行为正常 (Yan, Zheng)

  • ceph-objectstore-tool: 许多改进 (David Zafman)

  • common: bufferlist 性能调优 (Piotr Dalek, Sage Weil)

  • common: 使互斥锁更高效

  • common: 一些异步压缩基础设施 (Haomai Wang)

  • librados: 添加 FULL_TRY 和 FULL_FORCE 标志来处理满的集群或池 (Sage Weil)

  • librados: 修复 notify completion race (#13114 Sage Weil)

  • librados, libcephfs: 随机化客户端 nonces (Josh Durgin)

  • librados: pybind: 修复二进制 omap 值 (Robin H. Johnson)

  • librbd: 修复大于缓存大小的读取 (Lu Shi)

  • librbd: metadata filter 修复 (Haomai Wang)

  • librbd: 尽可能使用 write_full (Zhiqiang Wang)

  • mds: 避免在驱逐会话之前发出 cap 警告 (John Spray)

  • mds: 修复 journal 对象中预期的 holes (#13167 Yan, Zheng)

  • mds: 修复 SnapServer 在 pool 被删除时崩溃 (John Spray)

  • mds: 许多修复 (Yan, Zheng, John Spray, Greg Farnum)

  • mon: 在 MonitorDBStore 上添加缓存 (Kefu Chai)

  • mon: 'ceph osd metadata' 可以 dump 所有 osds (Haomai Wang)

  • mon: 检测 kv 后端失败 (Sage Weil)

  • mon: 修复新池的 CRUSH map 测试 (Sage Weil)

  • mon: 修复 min_last_epoch_clean 跟踪 (Kefu Chai)

  • mon: 杂项缩放修复 (Sage Weil)

  • mon: 简化 session 处理,修复内存泄漏 (Sage Weil)

  • mon: 升级必须通过 hammer (Sage Weil)

  • msg/async: 许多修复 (Haomai Wang)

  • osd: 缓存 proxy-write 支持 (Zhiqiang Wang, Samuel Just)

  • osd: 根据写入最近性配置 promotion (Zhiqiang Wang)

  • osd: 不要发送重复的 MMonGetOSDMap 请求 (Sage Weil, Kefu Chai)

  • osd: erasure-code: 修复 SHEC 浮点 bug (#12936 Loic Dachary)

  • osd: erasure-code: 更新 ISA-L 到 2.14 (Yuan Zhou)

  • osd: 修复 hitset 对象命名以使用 GMT (Kefu Chai)

  • osd: 修复杂项内存泄漏 (Sage Weil)

  • osd: 修复 FileStore 中的 peek_queue locking (Xinze Chi)

  • osd: 修复 promotion vs full cache tier (Samuel Just)

  • osd: 修复 pg 仍在激活时 replay requeue (#13116 Samuel Just)

  • osd: 修复 scrub stat bug (Sage Weil, Samuel Just)

  • osd: EC 无法处理 op 时强制 promotion (Zhiqiang Wang)

  • osd: 改进在大内存页机器上的行为 (Steve Capper)

  • osd: 将多个 setattr 调用合并为 setattrs 调用 (Xinxin Shu)

  • osd: newstore 原型 (Sage Weil)

  • osd: ObjectStore 内部 API 重构 (Sage Weil)

  • osd: SHEC 不再是实验性

  • osd: 限制 evict ops (Yunchuan Wen)

  • osd: 升级必须通过 hammer (Sage Weil)

  • osd: 使用 SEEK_HOLE / SEEK_DATA 进行稀疏复制 (Xinxin Shu)

  • rbd: rbd-replay-prep 和 rbd-replay 改进 (Jason Dillaman)

  • rgw: 通过 admin socket 暴露不健康 worker 的数量 (Guang Yang)

  • rgw: 修复 Content-Type header 的大小写 (Robin H. Johnson)

  • rgw: 修复 Swift DLO 上的 GET 的 X-Object-Manifest 解码 (Radslow Rzarzynski)

  • rgw: 修复 sysvinit 脚本

  • rgw: 修复带有多个实例的 sysvinit 脚本 (Sage Weil, Pavan Rallabhandi)

  • rgw: 改进 expirer 中处理已移除的 bucket (Radoslaw Rzarzynski)

  • rgw: 记录到 /var/log/ceph 而不是 /var/log/radosgw

  • rgw: 重做 X-Trans-Id header 以符合 Swift API (Radoslaw Rzarzynski)

  • rgw: s3 encoding-type for get bucket (Jeff Weber)

  • rgw: 在 ceph.conf 中设置 max buckets per user (Vikhyat Umrao)

  • rgw: 支持 Swift expiration API (Radoslaw Rzarzynski, Yehuda Sadeh)

  • rgw: user rm 是幂等的 (Orit Wasserman)

  • selinux policy (Boris Ranto, Milan Broz)

  • systemd: 许多修复 (Sage Weil, Owen Synge, Boris Ranto, Dan van der Ster)

  • systemd: 以用户 ceph 运行守护进程

v9.0.3

这是 Infernalis 周期倒数第二批开发工作。最具侵入性的变化是对 OSD 的 ObjectStore 接口的内部(非用户可见)更改。RGW、RBD 和另一大堆 CephFS scrub/repair 改进中的许多修复和改进。

升级

  • librbd 的 rbd_aio_read 和 Image::aio_read API 方法在成功时不再返回读取的字节数。相反,它在成功时返回 0,在失败时返回负值。

  • ‘ceph scrub’、‘ceph compact’ 和 ‘ceph sync force’ 现在已弃用。用户应改用 ‘ceph mon scrub’、‘ceph mon compact’ 和 ‘ceph mon sync force’。

  • ‘ceph mon_metadata’ 现在应使用 ‘ceph mon metadata’。

  • “osdmaptool” 的 --dump-json 选项被 --dump json 替换。

  • “pg ls-by-{pool,primary,osd}” 和 “pg ls” 命令现在接受 “recovering” 而不是 “recovery”,以便将正在恢复的 pg 包含在列出的 pg 中。

值得注意的变更

  • autotools: 修复 out of tree 构建 (Krxysztof Kosinski)

  • autotools: 改进 make check 输出 (Loic Dachary)

  • buffer: 添加 invalidate_crc() (Piotr Dalek)

  • buffer: 修复零 bug (#12252 Haomai Wang)

  • build: 修复 Fedora 22 上的 junit 检测 (Ira Cooper)

  • ceph-disk: 安装 pip > 6.1 (#11952 Loic Dachary)

  • cephfs-data-scan: 许多添加和改进 (John Spray)

  • ceph: 改进 'tell' 的错误输出 (#11101 Kefu Chai)

  • ceph-objectstore-tool: 杂项改进 (David Zafman)

  • ceph-objectstore-tool: 重构和清理 (John Spray)

  • ceph_test_rados: 测试流水线读取 (Zhiqiang Wang)

  • common: 修复 bit_vector extent calc (#12611 Jason Dillaman)

  • common: 使工作队列添加/删除线程安全 (#12662 Jason Dillaman)

  • common: optracker 改进 (Zhiqiang Wang, Jianpeng Ma)

  • crush: 添加 --check 以验证悬空名称、最大 osd id (Kefu Chai)

  • crush: 清理,与内核同步 (Ilya Dryomov)

  • crush: 在 adjust_subtree_weight 上尊重子树基本权重 (#11855 Sage Weil)

  • crypo: 修复 NSS 泄漏 (Jason Dillaman)

  • crypto: 修复不平衡的 init/shutdown (#12598 Zheng Yan)

  • doc: 杂项更新 (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: 清理 (Kefu Chai)

  • erasure-code: 改进测试 (Loic Dachary)

  • erasure-code: shec: 修复恢复 bug (Takanori Nakao, Shotaro Kawaguchi)

  • libcephfs: 添加 pread, pwrite (Jevon Qiao)

  • libcephfs,ceph-fuse: 缓存清理 (Zheng Yan)

  • librados: 为 copy-from 添加 src_fadvise_flags (Jianpeng Ma)

  • librados: 在 pool_create 时尊重 default_crush_ruleset (#11640 Yuan Zhou)

  • librbd: copy, export, import 的 fadvise (Jianpeng Ma)

  • librbd: 处理 NOCACHE fadvise 标志 (Jinapeng Ma)

  • librbd: 可选禁用分配提示 (Haomai Wang)

  • librbd: 防止 resize 请求之间的竞争 (#12664 Jason Dillaman)

  • log: 修复日志轮换导致的并发数据损坏 (#12465 Samuel Just)

  • mds: 通过 asok 暴露 frags (John Spray)

  • mds: 修复在一个 setxattr 中设置整个文件布局 (John Spray)

  • mds: 修复 shutdown (John Spray)

  • mds: 处理杂项损坏问题 (John Spray)

  • mds: 杂项修复 (Jianpeng Ma, Dan van der Ster, Zhang Zhi)

  • mds: 杂项 snap 修复 (Zheng Yan)

  • mds: 在 header 对象上存储 layout (#4161 John Spray)

  • misc 性能和清理 (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: 修复调试时的 log dump 崩溃 (Mykola Golub)

  • mon: 修复元数据更新竞争 (Mykola Golub)

  • mon: 修复 refresh (#11470 Joao Eduardo Luis)

  • mon: 使阻塞的 op 消息更具可读性 (Jianpeng Ma)

  • mon: 仅向支持的 peer 发送 mon 元数据 (Sage Weil)

  • mon: 定期后台 scrub (Joao Eduardo Luis)

  • mon: 防止 pgp_num > pg_num (#12025 Xinxin Shu)

  • mon: 拒绝大的 max_mds 值 (#12222 John Spray)

  • msgr: 添加 ceph_perf_msgr 工具 (Hoamai Wang)

  • msgr: async: 修复 seq 处理 (Haomai Wang)

  • msgr: xio: fastpath 改进 (Raju Kurunkad)

  • msgr: xio: 与 accellio v1.4 同步 (Vu Pham)

  • osd: 如果 promotion 失败则清理 temp object (Jianpeng Ma)

  • osd: 将 collection 限制为 meta 和 PGs(正常和临时) (Sage Weil)

  • osd: filestore: 使用 splice 克隆 (Jianpeng Ma)

  • osd: filestore: 修复递归锁 (Xinxin Shu)

  • osd: 修复 dup promotion lost op bug (Zhiqiang Wang)

  • osd: 修复 temp-clearing (David Zafman)

  • osd: 在每个 collection/pgid 中包含一个 temp namespace (Sage Weil)

  • osd: 低速和高速 flush 模式 (Mingxin Liu)

  • osd: peer_features 包括 self (David Zafman)

  • osd: recovery, peering 修复 (#11687 Samuel Just)

  • osd: 要求 firefly features (David Zafman)

  • osd: 以更高的精度设置初始 crush weight (Sage Weil)

  • osd: 使用 temp object 进行 recovery (Sage Weil)

  • osd: 使用 blkid 收集分区信息 (Joseph Handzik)

  • rados: 添加 --striper 选项以使用 libradosstriper (#10759 Sebastien Ponce)

  • radosgw-admin: 修复 subuser modify 输出 (#12286 Guce)

  • rados: 正确处理 --snapid arg (Abhishek Lekshmanan)

  • rados: 改进 bench buffer 处理,性能 (Piotr Dalek)

  • rados: 新的 pool import 实现 (John Spray)

  • rbd: 修复链接问题 (Jason Dillaman)

  • rbd: 改进 CLI arg 解析,用法 (Ilya Dryomov)

  • rbd: 识别 queue_depth 内核选项 (Ilya Dryomov)

  • rbd: 支持 CLI 的 G 和 T 单位 (Abhishek Lekshmanan)

  • rbd: 在 help 中使用 image-spec 和 snap-spec (Vikhyat Umrao, Ilya Dryomov)

  • rest-bench: 杂项修复 (Shawn Chen)

  • rest-bench: 支持 https (#3968 Yuan Zhou)

  • rgw: 添加 max multipart upload parts (#12146 Abshishek Dixit)

  • rgw: 添加 Trasnaction-Id 到 response (Abhishek Dixit)

  • rgw: 文档 pools 和 objects 的布局 (Pete Zaitcev)

  • rgw: 复制对象时不要保留 ACLs (#12370 Yehuda Sadeh)

  • rgw: 修复 Connection: header 处理 (#12298 Wido den Hollander)

  • rgw: 修复数据损坏竞争条件 (#11749 Wuxingyi)

  • rgw: 修复获取用户配额时的 JSON response (#12117 Wuxingyi)

  • rgw: 对 swift bucket stats requests 强制 content_type (#12095 Orit Wasserman)

  • rgw: 改进对 swift account metadata 的支持 (Radoslaw Zarzynski)

  • rgw: 使 max put size 可配置 (#6999 Yuan Zhou)

  • rgw: orphan detection tool (Yehuda Sadeh)

  • rgw: swift: 不要覆盖发送的 content type (#12363 Orit Wasserman)

  • rgw: swift: 为 account GET 设置 Content-Length (#12158 Radoslav Zarzynski)

  • rpm: 始终为 rpm 重建和安装 man pages (Owen Synge)

  • rpm: 杂项修复 (Boris Ranto, Owen Synge, Ken Dreyer, Ira Cooper)

  • systemd: logrotate 修复 (Tim Seron, Lars Marowsky-Bree, Nathan Cutler)

  • sysvinit compat: 杂项修复 (Owen Synge)

  • test: 杂项 fs test 改进 (John Spray, Loic Dachary)

  • test: python tests, linter 清理 (Alfredo Deza)

v9.0.2

此开发版本具有更多的 OSD 工作队列统一、随机化的 osd scrub 时间、一大堆 librbd 修复、更多 MDS 修复和快照修复,以及大量关于测试和构建基础设施的工作。

Notable Changes

  • buffer: 一些清理 (Michal Jarzabek)

  • build: cmake: 修复 nss 链接 (Danny Al-Gaaf)

  • build: cmake: 杂项修复 (Orit Wasserman, Casey Bodley)

  • build: install-deps: 杂项修复 (Loic Dachary)

  • build: make_dist_tarball.sh (Sage Weil)

  • ceph-detect-init: 添加 Linux Mint (Michal Jarzabek)

  • ceph-detect-init: 健壮的 init 系统检测 (Owen Synge, Loic Dachary)

  • ceph-disk: 确保 'zap' 仅在整个磁盘上操作 (#11272 Loic Dachary)

  • ceph-disk: 杂项修复以遵守 init 系统 (Loic Dachary, Owen Synge)

  • ceph-disk: 支持 NVMe 设备分区 (#11612 Ilja Slepnev)

  • ceph: 修复 'df' 单位 (Zhe Zhang)

  • ceph: 修复交互式 cli 模式下的解析 (#11279 Kefu Chai)

  • ceph-objectstore-tool: 许多许多更改 (David Zafman)

  • ceph-post-file: 杂项修复 (Joey McDonald, Sage Weil)

  • client: 避免发送不必要的 FLUSHSNAP 消息 (Yan, Zheng)

  • client: 计算 oldest tid 时排除 setfilelock (Yan, Zheng)

  • client: 修复 check_pool_perm 中的错误处理 (John Spray)

  • client: fsync 仅等待 inode 的 caps 刷新 (Yan, Zheng)

  • client: 当缓存大小超过限制时使 kernel dcache 失效 (Yan, Zheng)

  • client: 使 fsync 等待不安全的 dir 操作 (Yan, Zheng)

  • client: pin lookup dentry 以避免 inode 被释放 (Yan, Zheng)

  • common: 检测 int config 值溢出 (#11484 Kefu Chai)

  • common: 修复 utf8 的 json 解析 (#7387 Tim Serong)

  • common: 修复 pthread_mutexattr 泄漏 (#11762 Ketor Meng)

  • crush: 在 map 创建时尊重默认复制 ruleset config (Ilya Dryomov)

  • deb, rpm: 将 ceph-objectstore-tool 移到 ceph (Ken Dreyer)

  • doc: man 页面更新 (Kefu Chai)

  • doc: 杂项更新 (#11396 Nilamdyuti, Francois Lafont, Ken Dreyer, Kefu Chai)

  • init-radosgw: 与 sysv 版本合并;修复枚举 (Sage Weil)

  • librados: 添加 config observer (Alistair Strachan)

  • librbd: 为 single-client-only features 添加 const (Josh Durgin)

  • librbd: 添加 deep-flatten 操作 (Jason Dillaman)

  • librbd: 避免阻塞 aio API 方法 (#11056 Jason Dillaman)

  • librbd: 修复 fast diff bug (#11553 Jason Dillaman)

  • librbd: 修复镜像格式检测 (Zhiqiang Wang)

  • librbd: 修复锁排序问题 (#11577 Jason Dillaman)

  • librbd: flatten/copyup 修复 (Jason Dillaman)

  • librbd: lockdep, helgrind 验证 (Jason Dillaman, Josh Durgin)

  • librbd: 仅在持有独占锁时更新镜像标志 (#11791 Jason Dillaman)

  • librbd: 从 close 返回结果代码 (#12069 Jason Dillaman)

  • librbd: 获取镜像元数据时容忍旧 osds (#11549 Jason Dillaman)

  • mds: 不要将快照项目添加到 bloom filter (Yan, Zheng)

  • mds: 修复处理缺失的 mydir dirfrag (#11641 John Spray)

  • mds: 修复 rejoin (Yan, Zheng)

  • mds: 修复 stra reintegration (Yan, Zheng)

  • mds: 修复 suicide beason (John Spray)

  • mds: 杂项修复改进 (John Spray)

  • mds: 杂项快照修复 (Yan, Zheng)

  • mds: 在黑名单上 respawn 而不是 suicide (John Spray)

  • misc coverity fixes (Danny Al-Gaaf)

  • mon: 添加 'mon_metadata <id>' 命令 (Kefu Chai)

  • mon: 添加 'node ls …' 命令 (Kefu Chai)

  • mon: 禁止 ec 池作为层 (#11650 Samuel Just)

  • mon: 修复 mds beacon replies (#11590 Kefu Chai)

  • mon: 修复 'pg ls' 排序顺序,状态名称 (#11569 Kefu Chai)

  • mon: 规范化纠删码 profile 以进行存储和比较 (Loic Dachary)

  • mon: 在 'osd create' 上可选指定 osd id (Mykola Golub)

  • mon: 'osd tree' 修复 (Kefu Chai)

  • mon: 防止具有快照状态的 pool 用作层 (#11493 Sage Weil)

  • mon: 改进 check_remove_tier 检查 (#11504 John Spray)

  • mon: 从 'mds rm …' 中删除多余的 who arg (John Spray)

  • msgr: async: 杂项修复 (Haomai Wang)

  • msgr: xio: 修复 ip 和 nonce (Raju Kurunkad)

  • msgr: xio: 改进 lane 分配 (Vu Pham)

  • msgr: xio: 杂项修复 (Vu Pham, Cosey Bodley)

  • osd: 在某些情况下避免 transaction append (Sage Weil)

  • osdc/Objecter: 允许每个 pool 调用 op_cancel_writes (John Spray)

  • osd: 消除 txn apend, ECSubWrite copy (Samuel Just)

  • osd: filejournal: 清理 (David Zafman)

  • osd: 修复 check_for_full (Henry Chang)

  • osd: 修复 make_writeable 中的 dirty accounting (Zhiqiang Wang)

  • osd: 修复 osdmap dump 的 blacklist 条目 (John Spray)

  • osd: 再次修复从缓存层刷新快照 (#11787 Samuel Just)

  • osd: 修复 promotion 时的快照处理 (#11296 Sam Just)

  • osd: 处理具有重叠条目的 log split (#11358 Samuel Just)

  • osd: keyvaluestore: 杂项修复 (Varada Kari)

  • osd: 使 suicide timeouts 可单独配置 (Samuel Just)

  • osd: 在 OpWQ 中移动 scrub (Samuel Just)

  • osd: pool size change 触发新间隔 (#11771 Samuel Just)

  • osd: 随机化 scrub 时间 (#10973 Kefu Chai)

  • osd: 重构 scrub 和 digest recording (Sage Weil)

  • osd: 拒绝在非零偏移量处对 EC 对象进行首次写入 (Jianpeng Ma)

  • osd: 在小 xattrs 上 stripe 以适应 XFS 的 255 字节内联限制 (Sage Weil, Ning Yao)

  • osd: 在 syncfs 上 sync object_map (Samuel Just)

  • osd: 如果 op 是 rw 则获取 excl lock (Samuel Just)

  • osd: WBThrottle 清理 (Jianpeng Ma)

  • pycephfs: 许多绑定修复 (Haomai Wang)

  • rados: bench: 添加 --no-verify 选项以提高性能 (Piotr Dalek)

  • rados: 杂项 bench 修复 (Dmitry Yatsushkevich)

  • rbd: 添加磁盘使用工具 (#7746 Jason Dillaman)

  • rgw: 始终检查 token 是否过期 (#11367 Anton Aksola, Riku Lehto)

  • rgw: 用于修复损坏 multipart 对象的转换工具 (#12079 Yehuda Sadeh)

  • rgw: 不在 bucket header 中使用引号 (#11860 Wido den Hollander)

  • rgw: 如果 frontend 未发送所有数据则出错 (#11851 Yehuda Sadeh)

  • rgw: 修复 copy obj 属性的分配 (#11563 Yehuda Sadeh)

  • rgw: 修复 reset_loc (#11974 Yehuda Sadeh)

  • rgw: 改进 content-length env var 处理 (#11419 Robin H. Johnson)

  • rgw: 只扫描不在 namespace 中的对象 (#11984 Yehuda Sadeh)

  • rgw: 从 HTTP_HOST header 中删除尾随的 :port (Sage Weil)

  • rgw: over multiple librados instances 分片工作 (Pavan Rallabhandi)

  • rgw: swift: 在 response 中强制执行 Content-Type (#12157 Radoslaw Zarzynski)

  • rgw: 在 copy 上使用 source bucket 的 attrs (#11639 Javier M. Mellid)

  • rocksdb: 将 options 作为单个字符串传递 (Xiaoxi Chen)

  • rpm: 许多 spec file 修复 (Owen Synge, Ken Dreyer)

  • tests: rbd xstests 修复 (Douglas Fuller)

  • tests: 修复 tiering health checks (Loic Dachary)

  • tests for low-level performance (Haomai Wang)

  • tests: 许多 ec non-regression 改进 (Loic Dachary)

  • tests: 许多许多 ec test 改进 (Loic Dachary)

  • upstart: 限制重启 (#11798 Sage Weil, Greg Farnum)

v9.0.1

此开发版本由于构建环境中的工具更改而有所延迟。因此,下一个版本 (v9.0.2) 将比通常包含更多工作。

这里的亮点包括大量的 RGW Swift 修复、围绕新 object map 功能的 RBD 功能工作、更多 CephFS 快照修复以及一些重要的 CRUSH 修复。

值得注意的变更

  • auth: 缓存/重用 crypto lib 密钥对象,优化 msg 签名检查 (Sage Weil)

  • build: 允许 tcmalloc-minimal (Thorsten Behrens)

  • build: 不使用 tcmalloc 构建 ceph-dencoder (#10691 Boris Ranto)

  • build: 修复 pg ref 禁用 (William A. Kennington III)

  • build: install-deps.sh 改进 (Loic Dachary)

  • build: 杂项修复 (Boris Ranto, Ken Dreyer, Owen Synge)

  • ceph-authtool: 修复错误时的返回代码 (Gerhard Muntingh)

  • ceph-disk: 修复 zap sgdisk 调用 (Owen Synge, Thorsten Behrens)

  • ceph-disk: 在 prepare 子命令上传递 --cluster arg (Kefu Chai)

  • ceph-fuse, libcephfs: rmdir 完成时丢弃 inode (#11339 Yan, Zheng)

  • ceph-fuse,libcephfs: 修复 uninline (#11356 Yan, Zheng)

  • ceph-monstore-tool: 修复 store-copy (Huangjun)

  • common: 添加 perf counter 描述 (Alyona Kiseleva)

  • common: 修复 throttle max change (Henry Chang)

  • crush: 修复无效 'take' 参数导致的崩溃 (#11602 Shiva Rkreddy, Sage Weil)

  • crush: 修复 straw2 中的除以 2 bug (#11357 Yann Dupont, Sage Weil)

  • deb: 修复 rest-bench-dbg 和 ceph-test-dbg 依赖关系 (Ken Dreyer)

  • doc: 文档区域主机名 (Robin H. Johnson)

  • doc: 更新发布日程文档 (Loic Dachary)

  • init-radosgw: 以 root 身份运行 radosgw (#11453 Ken Dreyer)

  • librados: 每个 op 的 fadvise 标志 (Jianpeng Ma)

  • librbd: 允许存储与镜像相关的额外元数据 (Haomai Wang)

  • librbd: 更好地处理重复的 flatten 请求 (#11370 Jason Dillaman)

  • librbd: 在 watch error 时取消 in-flight ops (#11363 Jason Dillaman)

  • librbd: 默认新镜像为 format 2 (#11348 Jason Dillaman)

  • librbd: 利用 object map 的 fast diff 实现 (Jason Dillaman)

  • librbd: 修复当另一个快照处于活动状态时创建快照 (#11475 Jason Dillaman)

  • librbd: 新的 diff_iterate2 API (Jason Dillaman)

  • librbd: object map rebuild 支持 (Jason Dillaman)

  • logrotate.d: 优先使用 service 而不是 invoke-rc.d (#11330 Win Hierman, Sage Weil)

  • mds: 避免卡在 XLOCKDONE (#11254 Yan, Zheng)

  • mds: 修复大客户端 id 的整数截断 (Henry Chang)

  • mds: 许多快照和 stray 修复 (Yan, Zheng)

  • mds: 可靠地持久化 completed_requests (#11048 John Spray)

  • mds: 在 Journaler 中分离 safe_pos (#10368 John Spray)

  • mds: 快照重命名支持 (#3645 Yan, Zheng)

  • mds: 当客户端未能推进 oldest_client_tid 时发出警告 (#10657 Yan, Zheng)

  • misc 清理和修复 (Danny Al-Gaaf)

  • mon: 修复 'osd df' 的平均利用率计算 (Mykola Golub)

  • mon: 修复 'osd df' 中的方差计算 (Sage Weil)

  • mon: 改进 crushtool 调用 (Mykola Golub)

  • mon: 防止 bucket 被 crush rule 引用时被删除 (#11602 Sage Weil)

  • mon: 当 CRUSH map 更改时 prime pg_temp (Sage Weil)

  • monclient: flush_log (John Spray)

  • msgr: async: 许多许多修复 (Haomai Wang)

  • msgr: simple: 修复 clear_pipe (#11381 Haomai Wang)

  • osd: 为层操作添加延迟 perf counters (Xinze Chi)

  • osd: 避免多次 hit set 插入 (Zhiqiang Wang)

  • osd: 将 PG 删除分解为多次迭代 (#10198 Guang Yang)

  • osd: 处理 map 时检查 scrub 状态 (Jianpeng Ma)

  • osd: 修复对象不可恢复时的无休止恢复 (Jianpeng Ma, Kefu Chai)

  • osd: 修复 pg resurrection (#11429 Samuel Just)

  • osd: 在 unfound calc 中忽略不存在的 osds (#10976 Mykola Golub)

  • osd: 增加默认最大打开文件数 (Owen Synge)

  • osd: 当只有一个 peer 缺失时预填充 needs_recovery_map (#9558 Guang Yang)

  • osd: 放宽 proxy read 上的回复顺序 (#11211 Zhiqiang Wang)

  • osd: 跳过 flush/evict op 的 promotion (Zhiqiang Wang)

  • osd: 在 clean shutdown 时写入 journal header (Xinze Chi)

  • qa: run-make-check.sh 脚本 (Loic Dachary)

  • rados bench: 杂项修复 (Dmitry Yatsushkevich)

  • rados: 修复 pool 删除失败时的错误消息 (Wido den Hollander)

  • radosgw-admin: 添加 'bucket check' 功能来修复 bucket index (Yehuda Sadeh)

  • rbd: 允许按 spec unmapping (Ilya Dryomov)

  • rbd: 弃用 --new-format 选项 (Jason Dillman)

  • rgw: 如果 length 为 0 则不要设置 content-type (#11091 Orit Wasserman)

  • rgw: 对于 namespaced object listing 不使用 end_marker (#11437 Yehuda Sadeh)

  • rgw: 如果 multipart upload 未指定 parts 则失败 (#11435 Yehuda Sadeh)

  • rgw: 修复 Swift account 上的 GET(当 limit == 0 时) (#10683 Radoslaw Zarzynski)

  • rgw: 修复 container listing 中的损坏 stats (#11285 Radoslaw Zarzynski)

  • rgw: 修复 domain/subdomain splitting 中的 bug (Robin H. Johnson)

  • rgw: 修复 civetweb max threads (#10243 Yehuda Sadeh)

  • rgw: 修复 copy metadata, 支持 swift 的 X-Copied-From (#10663 Radoslaw Zarzynski)

  • rgw: 修复以 _ 开头的对象的 locator (#11442 Yehuda Sadeh)

  • rgw: 修复 retry path 中的 mulitipart upload (#11604 Yehuda Sadeh)

  • rgw: 修复 POST 上的 quota enforcement (#11323 Sergey Arkhipov)

  • rgw: 修复缺失 upload 时的返回代码 (#11436 Yehuda Sadeh)

  • rgw: 对没有 body 的 responses 强制 content type header (#11438 Orit Wasserman)

  • rgw: 设置 attrs 时生成新的 object tag (#11256 Yehuda Sadeh)

  • rgw: 在刷新缓存数据之前为第一块 issue aio (#11322 Guang Yang)

  • rgw: 使 read user buckets 向后兼容 (#10683 Radoslaw Zarzynski)

  • rgw: 使用 prefix override 正确合并 manifests (#11622 Yehuda Sadeh)

  • rgw: 在 listing buckets 时对 bad limit 返回 412 (#11613 Yehuda Sadeh)

  • rgw: 为 swift 发送 ETag, Last-Modified (#11087 Radoslaw Zarzynski)

  • rgw: 对 container GET, PUT, DELETE, HEAD 设置 content length (#10971, #11036 Radoslaw Zarzynski)

  • rgw: 支持 swift container GET 上的 end marker (#10682 Radoslaw Zarzynski)

  • rgw: swift: 修复 account listing (#11501 Radoslaw Zarzynski)

  • rgw: swift: 在 keystone tokens 上设置 content-length (#11473 Herv Rousseau)

  • rgw: 为 gc chains 使用正确的 oid (#11447 Yehuda Sadeh)

  • rgw: 为 civetweb 使用唯一的 request id (#10295 Orit Wasserman)

  • rocksdb, leveldb: 修复 compact_on_mount (Xiaoxi Chen)

  • rocksdb: 为 get/put latency 添加 perf counters (Xinxin Shu)

  • rpm: 添加 suse firewall 文件 (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 stats

  • MDS 内存使用减少

  • 许多 MDS 快照修复

  • librbd 现在可以在镜像本身中存储选项

  • 许多 RGW Swift API 支持修复

  • OSD 性能改进

  • 许多文档更新和杂项 bug 修复

显著更改

  • aarch64: 添加 crc32c 的优化版本 (Yazen Ghannam, Steve Capper)

  • auth: fork() 后重新初始化 NSS (#11128 Yan, Zheng)

  • build: 默认禁用 LTTNG (#11333 Josh Durgin)

  • build: 修复 ppc 构建 (James Page)

  • build: install-deps: 支持 OpenSUSE (Loic Dachary)

  • build: 杂项 cmake 修复 (Matt Benjamin)

  • ceph-disk: 创建 journal 时遵循 ceph-osd 提示 (#9580 Sage Weil)

  • ceph-disk: 处理重用现有分区 (#10987 Loic Dachary)

  • ceph-disk: 改进 parted 输出解析 (#10983 Loic Dachary)

  • ceph-disk: 使抑制对 activate-all 和 activate-journal 起作用 (Dan van der Ster)

  • ceph-disk: 杂项修复 (Alfredo Deza)

  • ceph-fuse, libcephfs: trimming null 时不要清除 COMPLETE (Yan, Zheng)

  • ceph-fuse, libcephfs: 在我们“拥有”的目录上保留独占 caps (#11226 Greg Farnum)

  • ceph-fuse: 卸载时不要求 remount 成功 (#10982 Greg Farnum)

  • ceph: 新的 'ceph daemonperf' 命令 (John Spray, Mykola Golub)

  • common: PriorityQueue 测试 (Kefu Chai)

  • common: 为 perfcounters 添加描述 (Kiseleva Alyona)

  • common: 修复 LTTNG vs fork 问题 (Josh Durgin)

  • crush: 修复 has_v4_buckets (#11364 Sage Weil)

  • crushtool: 修复操作顺序,用法 (Sage Weil)

  • debian: 轻微的包重组 (Ken Dreyer)

  • doc: 文档对象语料库生成 (#11099 Alexis Normand)

  • doc: 修复性别中立性 (Alexandre Maragone)

  • doc: 修复安装文档 (#10957 Kefu Chai)

  • doc: 修复 sphinx 问题 (Kefu Chai)

  • doc: mds 数据结构文档 (Yan, Zheng)

  • doc: 杂项更新 (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: 将 doxygen 集成切换回 breathe (#6115 Kefu Chai)

  • erasure-code: 更新 ISA-L 到 2.13 (Yuan Zhou)

  • gmock: 切换到 submodule (Danny Al-Gaaf, Loic Dachary)

  • hadoop: 添加 terasort 测试 (Noah Watkins)

  • java: 修复 libcephfs 绑定 (Noah Watkins)

  • libcephfs,ceph-fuse: 修复 cap 重连时的请求重发 (#10912 Yan, Zheng)

  • librados: 从 C 常量定义 C++ 标志 (Josh Durgin)

  • librados: 修复 last_force_resent 处理 (#11026 Jianpeng Ma)

  • librados: 修复 C_TwoContexts 的内存泄漏 (Xiong Yiliang)

  • librados: 当 stripe_count = 1 且 stripe_unit != object_size 时修复 striper (#11120 Yan, Zheng)

  • librados: op perf counters (John Spray)

  • librados: pybind: 修复 write() 方法返回代码 (Javier Guerra)

  • libradosstriper: 修复泄漏 (Danny Al-Gaaf)

  • librbd: 添加 purge_on_error 缓存行为 (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 添加 'damaged' 状态 (John Spray)

  • mds: 为 perfcounters 添加昵称 (John Spray)

  • mds: 禁用有问题的 rstat 传播到 snap parents (Yan, Zheng)

  • mds: 修复 shutdown 时的 mydir replica 问题 (#10743 John Spray)

  • mds: 修复乱序消息 (#11258 Yan, Zheng)

  • mds: 修复带有 strays 的 shutdown (#10744 John Spray)

  • mds: 修复快照修复 (Yan, Zheng)

  • mds: 修复 stray handling (John Spray)

  • mds: 在 do_open_truncate 中立即刷新 (#11011 John Spray)

  • mds: 改进 dump 方法 (John Spray)

  • mds: 杂项 journal 清理和修复 (#10368 John Spray)

  • mds: 使用 omap 的新 SessionMap 存储 (#10649 John Spray)

  • mds: 减少内存消耗 (Yan, Zheng)

  • mds: 限制清除 stray 操作 (#10390 John Spray)

  • mds: 容忍时钟向后跳 (#11053 Yan, Zheng)

  • misc coverity fixes (Danny Al-Gaaf)

  • mon: 不停用最后一个 mds (#10862 John Spray)

  • mon: 使 osd get pool 'all' 只返回适用字段 (#10891 Michal Jarzabek)

  • mon: 警告 bogus 缓存层配置 (Jianpeng Ma)

  • msg/async: 杂项 bug 修复和更新 (Haomai Wang)

  • msg/simple: 修复 connect_seq assert (Haomai Wang)

  • msg/xio: 杂项修复 (#10735 Matt Benjamin, Kefu Chai, Danny Al-Gaaf, Raju Kurunkad, Vu Pham)

  • msg: 单元测试 (Haomai Wang)

  • objectcacher: 杂项 bug 修复 (Jianpeng Ma)

  • os/filestore: 扩大 getxattr 缓冲区大小 (Jianpeng Ma)

  • osd: EIO 注入 (David Zhang)

  • osd: 添加杂项 perfcounters (Xinze Chi)

  • osd: 在恢复中添加简单睡眠注入 (Sage Weil)

  • osd: 允许稀疏读取的 SEEK_HOLE/SEEK_DATA (Zhiqiang Wang)

  • osd: 避免在 pg 元数据中重复 omap sets (Sage Weil)

  • osd: 清理一些 constness, privateness (Kefu Chai)

  • osd: erasure-code: 根据 LRU 丢弃条目 (Andreas-Joachim Peters)

  • osd: 修复 backfill 期间的负 degraded stats (Guang Yang)

  • osd: 杂项修复 (Ning Yao, Kefu Chai, Xinze Chi, Zhiqiang Wang, Jianpeng Ma)

  • pybind: pep8 清理 (Danny Al-Gaaf)

  • qa: 修复 filelock_interrupt.py 测试 (Yan, Zheng)

  • qa: 改进 ceph-disk 测试 (Loic Dachary)

  • qa: 改进 docker build layers (Loic Dachary)

  • rados: 在 CLI 中将 erno 转换为字符串 (#10877 Kefu Chai)

  • rbd: 接受 map options config 选项 (Ilya Dryomov)

  • rbd: cli: 修复 --io-pattern 的 arg 解析 (Dmitry Yatsushkevich)

  • rbd: 修复错误消息 (#2862 Rajesh Nambiar)

  • rbd: 更新 rbd man page (Ilya Dryomov)

  • rbd: 更新 xfstests 测试 (Douglas Fuller)

  • rgw: 为 Swift containers 添加 X-Timestamp (#10938 Radoslaw Zarzynski)

  • rgw: 为 Swift container details 添加缺失的 headers (#10666 Ahmad Faheem, Dmytro Iurchenko)

  • rgw: 为 account GET 添加 stats 到 headers (#10684 Yuan Zhou)

  • rgw: HEAD 请求不预取数据 (Guang Yang)

  • rgw: 设置 ACLs 时不要覆盖 bucket/object owner (#10978 Yehuda Sadeh)

  • rgw: 如果 frontend 已配置,则不使用 rgw_socket_path (#11160 Yehuda Sadeh)

  • rgw: 对 Swift cont/obj 上的 POST 强制执行 Content-Lenth (#10661 Radoslaw Zarzynski)

  • rgw: 修复 Swift container 上处理空元数据项 (#11088 Radoslaw Zarzynski)

  • rgw: 修复 log rotation (Wuxingyi)

  • rgw: 为 civetweb 生成 Date header (#10873 Radoslaw Zarzynski)

  • rgw: 使 init script 等待 radosgw 停止 (#11140 Dmitry Yatsushkevich)

  • rgw: 使 quota/gc 线程可配置 (#11047 Guang Yang)

  • rgw: 传入 civetweb 可配置项 (#10907 Yehuda Sadeh)

  • rgw: 修复 PUT response 中的 202 Accepted (#11148 Radoslaw Zarzynski)

  • rgw: 删除 bucket 后移除 meta file (#11149 Orit Wasserman)

  • rgw: swift: 允许使用 COPY 设置属性 (#10662 Ahmad Faheem, Dmytro Iurchenko)

  • rgw: swift: 修复 copy 上的元数据处理 (#10645 Radoslaw Zarzynski)

  • rgw: swift: 发送 Last-Modified header (#10650 Radoslaw Zarzynski)

  • rgw: 使用 token info 更新 keystone cache (#11125 Yehuda Sadeh)

  • rgw: 更新到最新的 civetweb, 启用 IPv6 配置 (#10965 Yehuda Sadeh)

  • rocksdb: 更新到最新版本 (Xiaoxi Chen)

  • rpm: 放松 ceph-test 依赖关系 (Ken Dreyer)

由 Ceph 基金会为您呈现

Ceph 文档是由非营利性 Ceph 基金会 资助和托管的社区资源。如果您希望支持这项工作和我们的其他努力,请考虑 立即加入