v12.1.1 Luminous RC 发布

TheAnalyst

这是 Luminous 的第二个候选发布版本,Luminous 将是下一个长期稳定的版本。请注意,这仍然是一个候选发布版本,而不是最终的 Luminous 版本。

Ceph Luminous (v12.2.0) 将成为下一个长期稳定版本系列的基础。自 Kraken (v11.2.z) 和 Jewel (v10.2.z) 以来,已经发生了重大变化,并且升级过程并非易事。请仔细阅读这些发行说明。

与 KRAKEN 相比的主要变化

  • 常规:

    • Ceph 现在有一个简单、内置的基于 Web 的仪表板用于监控集群状态。
  • RADOS:

    • BlueStore:

      • ceph-osd 的新的 BlueStore 后端现在稳定,并且是新创建的 OSD 的新默认设置。BlueStore 通过直接管理物理 HDD 或 SSD 而无需使用 XFS 等中间文件系统来管理每个 OSD 存储的数据。这提供了更高的性能和功能。
      • BlueStore 支持存储的所有数据完整数据和元数据校验和
      • BlueStore 支持使用 zlib、snappy 或 LZ4 进行内联压缩。(Ceph 也支持 zstd 用于 RGW 压缩,但不建议将 zstd 用于 BlueStore,因为性能原因。)
    • 纠删码池现在全面支持覆盖写入,使其可以与 RBD 和 CephFS 一起使用。阅读有关 EC 覆盖写入的更多信息

    • 配置选项“osd pool erasure code stripe width”已被“osd pool erasure code stripe unit”取代,并可以通过纠删码配置文件设置“stripe_unit”覆盖。有关详细信息,请参阅文档中的“纠删码配置文件”。

    • rbd 和 cephfs 可以将纠删码与 bluestore 一起使用。这可以通过将池的“allow_ec_overwrites”设置为“true”来启用。由于这依赖于 bluestore 的校验和来进行深度擦洗,因此不允许在存储在 filestore 上的池上启用此功能。

    • “rados df”的 JSON 输出现在将数字值打印为数字而不是字符串。

    • 选项 mon_osd_max_op_age 已重命名为 mon_osd_warn_op_age(默认值:32 秒),以表明我们在此年龄生成警告。还有一个新的 mon_osd_err_op_age_ratio,它表示为 mon_osd_warn_op_age 的倍数(默认值:128,大约 60 分钟)以控制何时生成错误。

    • 单个 RADOS 对象的默认最大大小已从 100GB 减少到 128MB。100GB 的限制在实践中完全不切实际,而 128MB 的限制略高,但尚属合理。如果您的应用程序直接写入 librados 并使用大于 128MB 的对象,则可能需要调整 osd_max_object_size。

    • “rados ls”和 librados 对象列表操作的语义一直有点令人困惑,因为“whiteout”对象(逻辑上不存在,如果您尝试访问它们将返回 ENOENT)包含在结果中。以前,whiteouts 只出现在缓存层池中。在 luminous 中,逻辑上已删除但已快照的对象现在会导致 whiteout 对象,因此它们将出现在“rados ls”结果中,尽管尝试读取此类对象将导致 ENOENT。在这种情况下,可以使用“rados listsnaps”操作来枚举存在哪些快照。

      这可能看起来有点奇怪,但比拥有一个已删除但已快照的对象完全隐藏且无法从 librados 的对象枚举能力中看到的情况不那么奇怪。Ceph 的未来版本可能会包含一个替代对象枚举接口,使其更自然和高效地枚举所有对象及其快照和克隆元数据。

    • ceph-mgr:

      • 有一个新的守护程序,ceph-mgr,它是任何 Ceph 部署的必需部分。虽然当 ceph-mgr 关闭时 IO 可以继续,但指标不会刷新,并且一些与指标相关的调用(例如 ceph df)可能会阻塞。我们建议部署多个 ceph-mgr 实例以确保可靠性。请参阅下面的升级说明。
      • ceph-mgr 守护程序包括一个基于 REST 的管理 API。该 API 仍处于试验阶段且功能有限,但将成为未来 Ceph 基于 API 管理的基础。FIXME DOCS
      • status ceph-mgr 模块默认启用,最初提供两个命令:ceph tell mgr osd status 和 ceph tell mgr fs status。这些是高级着色视图,用于补充现有的 CLI。
    • 集群的整体可扩展性得到了提高。我们已经成功测试了具有多达 10,000 个 OSD 的集群。

    • 现在可以为每个 OSD 关联一个设备类(例如 hdd 或 ssd),允许 CRUSH 规则轻松地将数据映射到系统中的设备子集。通常不需要手动编写 CRUSH 规则或手动编辑 CRUSH。FIXME DOCS

    • 现在可以优化 CRUSH 权重,以在 OSD 之间保持近乎完美的数据分布。FIXME DOCS

    • 还有一个新的 upmap 异常机制,允许单个 PG 被移动以实现完美分布(这需要 luminous 客户端)。FIXME DOCS

    • 每个 OSD 现在根据其底层设备是 HDD 还是 SSD 调整其默认配置。通常不需要手动调整。

    • 原型 mclock QoS 排队算法现在可用。FIXME DOCS

    • 现在有一个回退机制,可以防止 OSD 被无法当前处理 IO 的对象或 PG 的请求过载。

    • 有一个简化的 OSD 替换过程,它更健壮。FIXME DOCS

    • 您可以使用 ceph features 查询所有连接的守护程序和客户端支持的功能和(明显的)版本。FIXME DOCS

    • 您可以通过 ceph osd set-require-min-compat-client 配置您希望允许连接到集群的最旧 Ceph 客户端版本,Ceph 将阻止您启用会破坏与这些客户端兼容性的功能。FIXME DOCS

    • 几个睡眠设置,包括 osd_recovery_sleep、osd_snap_trim_sleep 和 osd_scrub_sleep 已经重新实现以高效工作。(这些在某些情况下用于解决限制后台工作的问题。)

    • 已弃用的 'crush_ruleset' 属性最终被删除;请改用 'crush_rule' 进行 'osd pool get ...' 和 'osd pool set ..' 命令。

    • “osd pool default crush replicated ruleset”选项已被删除,并替换为“osd pool default crush rule”选项。默认值为 -1,这意味着 mon 将选择 CRUSH 映射中的第一个类型复制规则用于复制池。纠删码池如果在池创建时未指定规则,则会自动为它们创建规则。
  • RGW:

    • RGW 元数据搜索由 ElasticSearch 提供支持,现在支持通过 RGW 本身服务于最终用户请求,并且还支持自定义元数据字段。创建了一种查询语言和一组 RESTful API,以便用户能够按其元数据搜索对象。还添加了允许控制自定义元数据字段的新 API。
    • RGW 现在支持动态存储桶索引分片。随着存储桶中对象数量的增加,RGW 将自动响应地重新分片存储桶索引。不需要用户干预或存储桶大小容量规划。
    • RGW 引入了上传对象的服务器端加密,具有三个用于密钥管理选项:自动加密(仅推荐用于测试设置)、类似于 Amazon SSE-C 规范的客户提供密钥,以及通过使用外部密钥管理服务 (Openstack Barbican) 类似于 Amazon SSE-KMS 规范。
    • RGW 现在初步支持类似 AWS 的存储桶策略 API。目前,策略是表达一系列新授权概念的一种方式。未来它将是附加授权功能(如 STS 和组策略)的基础。
    • RGW 已经通过使用 rados 命名空间合并了几个元数据索引池。
  • RBD:

    • RBD 现在完全稳定地支持纠删码池,通过 rbd create 的新 --data-pool 选项。
    • RBD 镜像的 rbd-mirror 守护进程现在是高可用的。我们建议部署多个 rbd-mirror 实例以提高可靠性。
    • 默认的“rbd”池不再在集群创建期间自动创建。此外,在未指定池时 RBD CLI 使用的默认池的名称可以通过新的 rbd default pool = 覆盖。配置选项。
    • 通过新的 rbd trash CLI 命令提供延迟图像删除的初始支持。即使是那些被克隆主动使用的图像,也可以移动到回收站并在以后删除。
    • 新的池级别 rbd mirror pool promote 和 rbd mirror pool demote 命令用于批量提升/降级池中所有镜像映像。
    • 镜像现在可选地通过 rbd mirroringreplay delay = 支持可配置的复制延迟。配置选项。
    • 改进了启用对象映射功能时的丢弃处理。
    • rbd CLI import 和 copy 命令现在检测到稀疏并保留稀疏区域。
    • 映像和快照现在将包含一个创建时间戳。
  • CephFS:

    • 多个活动 MDS 守护进程现在被认为是稳定的。可以在活动的 CephFS 文件系统上向上或向下调整活动 MDS 服务器的数量。
    • CephFS 目录碎片化 现在稳定,并在新的文件系统上默认启用。要在现有的文件系统上启用它,请使用“ceph fs set <fs_name> allow_dirfrags”。大型或非常繁忙的目录会自动分片并(可能)分布到多个 MDS 守护进程上。
    • 可以显式地将目录子树固定到特定的 MDS 守护进程,在自动负载平衡不理想或无效的情况下。
  • 杂项:

    • 现在正在为 Debian Stretch 构建发行包。我们现在构建的发行版包括

      • CentOS 7 (x86_64 和 aarch64)
      • Debian 8 Jessie (x86_64)
      • Debian 9 Stretch (x86_64)
      • Ubuntu 16.04 Xenial (x86_64 和 aarch64)
      • Ubuntu 14.04 Trusty (x86_64)请注意,QA 仅限于 CentOS 和 Ubuntu(xenial 和 trusty)。
    • CLI 更改:

      • ceph -s 或 ceph status 命令具有全新的外观。
      • ceph {osd,mds,mon} versions 汇总了正在运行的守护程序的版本。
      • ceph {osd,mds,mon} count-metadata同样通过 ceph {osd,mds,mon} metadata 命令将任何其他守护程序元数据制成表格。
      • ceph features 总结了连接的客户端和守护进程的功能和版本。
      • ceph osd require-osd-release替换旧的 require_RELEASE_osds 标志。
      • ceph osd pg-upmap、ceph osd rm-pg-upmap、ceph osd pg-upmap-items、ceph osd rm-pg-upmap-items 可以显式管理 upmap 项(FIXME DOCS)。
      • ceph osd getcrushmap 返回 crush map 版本号到 stderr,ceph osd setcrushmap [version] 仅当版本匹配时才会注入更新的 crush map。这允许 crush map 在离线更新后重新注入到集群中,而无需担心破坏正在进行的变化(例如,由新添加的 osd 或其他管理员的更改)。
      • ceph osd create 已被 ceph osd new 替换。这应该被用户界面工具(例如 ceph-disk)隐藏。
      • ceph osd destroy 将标记一个 OSD 已销毁,并删除其 cephx 和 lockbox 密钥。但是,OSD id 和 CRUSH map 条目将保留在原位,允许 id 被替换设备重用,并且数据重新平衡最少。
      • ceph osd purge 将删除集群中 OSD 的所有痕迹,包括其 cephx 加密密钥、dm-crypt lockbox 密钥、OSD id 和 crush map 条目。
      • ceph osd ls-tree将输出给定 CRUSH 名称(如主机或机架名称)下的 OSD id 列表。这对于应用于整个子树的更改很有用。例如,ceph osd down `ceph osd ls-tree rack1`。
      • ceph osd {add,rm}-{noout,noin,nodown,noup} 允许将 noout、nodown、noin 和 noup 标志应用于特定的 OSD。
      • ceph log last [n] 将输出集群日志的最后 n 行。
      • ceph mgr dump 将转储 MgrMap,包括当前活动的 ceph-mgr 守护进程和任何待机守护进程。
      • ceph mgr module ls 将列出活动的 ceph-mgr 模块。
      • ceph mgr module {enable,disable}将启用或禁用指定的 mgr 模块。该模块必须存在于 ceph-mgr 正在运行的主机上配置的 mgr_module_path 中。
      • ceph osd crush swap-bucket将交换层次结构中的两个 CRUSH 存储桶,同时保留存储桶的 ID。这允许替换整个设备子树(例如,用新镜像的 BlueStore OSD 替换整个主机上的 FileStore OSD),而不会破坏相邻设备上的数据分布。
      • ceph osd set-require-min-compat-client配置集群需要支持的最旧的客户端版本。如果更改此设置会违反此设置,其他更改(如 CRUSH 可调参数)将失败。如果当前连接到集群的客户端版本早于指定的版本,则更改此设置也会失败。
      • ceph config-key dump 转储 config-key 条目及其内容。(现有的 ceph config-key list 仅转储密钥名称,而不是值。)
      • ceph osd set-{full,nearfull,backfillfull}-ratio 设置集群范围内的各种完整阈值比率(当集群拒绝 IO 时,当集群警告即将达到完整时,当 OSD 将延迟将 PG 重新平衡到自身时,分别)。
      • ceph osd reweightn 将指定多个 OSD 的 reweight 值在一个命令中。这等效于一系列 ceph osd reweight 命令。
      • ceph osd crush class {create,rm,ls,rename} 管理新的 CRUSH 设备类功能。ceph crush set-device-class[...] 将为特定设备设置类。
      • ceph osd crush rule create-replicated 替换旧的 ceph osdcrush rule create-simple 命令来创建复制池的 CRUSH 规则。值得注意的是,它需要一个 class 参数来指定规则应定位的设备类(例如 ssd 或 hdd)。
      • ceph mon feature ls 将列出 MonMap 中记录的监视器功能。ceph mon feature set 将设置一个可选功能(目前还不存在)。
      • ceph tellhelp 现在将返回用法摘要。

与 JEWEL 相比的主要变化

  • RADOS:
    • 我们现在默认使用 AsyncMessenger(ms 类型 = async)而不是旧的 SimpleMessenger。  最明显的区别是,我们现在使用固定大小的线程池进行网络连接(而不是 SimpleMessenger 的每个套接字两个线程)。
    • 现在可以几乎立即检测到一些 OSD 故障,而之前必须等待心跳超时(默认为 20 秒)过期。  这可以防止 IO 在主机仍然启动但 ceph-osd 进程不再运行时被阻止很长时间。
    • 编码的 OSDMap 大小已减小。
    • OSD 现在在恢复或重新平衡进行时会停止擦除。
  • RGW:
    • RGW 现在支持 S3 多部分对象 copy-part API。
    • 现在可以离线重新分片现有的存储桶。离线存储桶重新分片当前需要停止特定存储桶的所有 IO(尤其是写入)。(有关自动在线重新分片,请参见 Luminous 上面的新功能。)
    • RGW 现在支持对象的数据压缩。
    • Civetweb 版本已升级到 1.8
    • 现在支持 Swift 静态网站 API(之前已添加 S3 支持)。
    • 已添加 S3 存储桶生命周期 API。请注意,目前它仅支持对象过期。
    • 已为 LDAP 身份验证实现添加了自定义搜索过滤器支持。
    • 已为 RGW NFS 网关添加了 NFS 版本 3 的支持。
    • 已为 librgw 创建了一个 Python 绑定。
  • RBD:
    • rbd-mirror 守护进程现在支持将动态图像功能更新和从主图像到非主图像的图像元数据键/值对复制。
    • 可以可选地将图像快照的数量限制为可配置的最大值。
    • rbd Python API 现在支持异步 IO 操作。
  • CephFS:
    • libcephfs 函数定义已更改以启用正确的 uid/gid 控制。库版本已增加以反映接口更改。
    • 待机重放 MDS 守护进程现在在执行删除操作的工作负载上消耗更少的内存。
    • Scrub 现在修复回溯,并用发现的错误填充 damage ls。
    • cephfs-data-scan 的新 pg_files 子命令可以识别受损坏或丢失的 RADOS PG 影响的文件。
    • 已修复错误的“未能响应缓存压力”警告。

从 JEWEL 或 KRAKEN 升级

  1. 确保已启用 sortbitwise 标志

    # ceph osd set sortbitwise

  2. 确保您的集群稳定且健康(没有 down 或 recovering 的 OSD)。(可选,但推荐。)

  3. 在升级监视器时,请勿创建任何新的 erasure-code 池。

  4. 在升级期间设置 noout 标志。(可选但推荐。)

    # ceph osd set noout

  5. 通过安装新软件包并重新启动监视器守护程序来升级监视器。请注意,与以前的版本不同,ceph-mon 守护程序必须首先升级。

    # systemctl restart ceph-mon.target

    一旦所有监视器都启动,通过查找 mon 映射中的 luminous feature 字符串来验证监视器升级是否完成。例如

    # ceph mon feature ls

    应该在 current monmap (epoch NNN) persistent: [kraken,luminous] required: [kraken,luminous] 下包含 luminous

    在持久功能中

  6. 添加或重新启动 ceph-mgr 守护进程。如果您是从 kraken 升级,请升级软件包并使用以下命令重新启动 ceph-mgr 守护进程:

    # systemctl restart ceph-mgr.target

    如果您要从 kraken 升级,您可能已经部署了 ceph-mgr 守护程序。如果没有,或者如果您要从 jewel 升级,您可以使用 ceph-deploy 或 ceph-ansible 等工具部署新的守护程序。例如,

    # ceph-deploy mgr create HOST

    通过检查 ceph -s 来验证 ceph-mgr 守护进程是否正在运行

    # ceph -s

    ... services: mon: 3 daemons, quorum foo,bar,baz mgr: foo(active), standbys: bar, baz ...

  7. 通过安装新软件包并重新启动所有主机上的 ceph-osd 守护程序来升级所有 OSD。

    # systemctl restart ceph-osd.target

    您可以使用新的 ceph osd versions 命令监控 OSD 升级进度。

    # ceph osd versions { "ceph version 12.2.0 (...) luminous (stable)": 12, "ceph version 10.2.6 (...)": 3, }

  8. 通过升级软件包并重新启动所有主机上的守护程序来升级所有 CephFS 守护程序。

    # systemctl restart ceph-mds.target

  9. 通过升级软件包并重新启动所有主机上的守护程序来升级所有 radosgw 守护程序。

    # systemctl restart radosgw.target

  10. 通过禁止 pre-luminous OSD 来完成升级

    # ceph osd require-osd-release luminous

    如果您在开始时设置了 noout,请务必使用以下命令清除它:

    # ceph osd unset noout

  11. 使用 ceph health 验证集群是否健康。

从 PRE-JEWEL 版本(如 HAMMER)升级

必须先升级到 Jewel (10.2.z),然后再尝试升级到 Luminous。

升级兼容性说明,KRAKEN 到 LUMINOUS

  • 我们不再测试 FileStore ceph-osd 后端与 btrfs 的组合。我们不建议使用 btrfs。如果您正在使用基于 btrfs 的 OSD 并希望升级到 luminous,您需要在 ceph.conf 中添加以下内容:

    enable experimental unrecoverable data corrupting features = btrfs

    该代码已经成熟,不太可能更改,但我们仅继续针对 btrfs 测试 Jewel 稳定分支。我们建议将这些 OSD 移动到 FileStore 与 XFS 或 BlueStore。

  • erasure code profiles 的 ruleset-* 属性已重命名为 crush-*,以 (1) 摆脱过时的“ruleset”术语,并更清楚地说明其目的。还有一个新的可选 crush-device-class 属性,用于指定 erasure coded 池要使用的 CRUSH 设备类。现有的 erasure code profiles 在升级完成时(当运行 ceph osd require-osd-release luminous 命令时)将自动转换,但任何创建 erasure coded 池的配置工具可能需要更新。

  • 当将网络分配给公共网络而不是集群网络时,公共网络的网络规范也将用于集群网络。在早期版本中,这会导致集群服务绑定到 0.0.0.0,从而使集群服务比公共服务更公开。仅指定集群网络时,公共服务仍将绑定到 0.0.0.0。

  • 在以前的版本中,如果客户端将 op 发送到错误的 OSD,OSD 将回复 ENXIO。这里的理由是客户端或 OSD 显然存在错误,我们希望尽可能清楚地显示错误。现在,只有在启用 osd_enxio_on_misdirected_op 选项(默认情况下关闭)时,才会发送 ENXIO 回复。这意味着先前会收到 EIO 并进入只读状态的 VM,现在将看到被阻止/挂起的 IO。

  • “journaler allow split entries”配置设置已被删除。

  • librados:

    • omap_get_keys 和 omap_get_vals librados 函数的一些变体已被弃用,取而代之的是 omap_get_vals2 和 omap_get_keys2。新方法包括一个输出参数,指示是否还有其他密钥需要获取。以前必须从请求的密钥数与返回的密钥数来推断,但这在新的 OSD 端限制了单个 omap 请求可以返回的密钥数或字节数时会中断。这些限制由 kraken 引入,但默认情况下实际上被禁用(通过设置非常大的限制 1 GB),因为新弃用的接口的用户无法判断是否应该获取更多密钥。对于 C++ 接口中的独立调用 (IoCtx::get_omap_{keys,vals}),librados 已更新为在客户端循环以通过对 OSD 的多次调用提供正确结果。然而,对于用于构建多操作事务的方法,客户端循环不切实际,并且这些方法已被弃用。请注意,如果在任何版本的 librados 上使用旧版本的 librados 上的 IoCtx 方法或已弃用方法,则当启用新的 OSD 限制时,将导致结果不完整。

    • 原始的 librados rados_objects_list_open (C) 和 objects_begin (C++) 对象列表 API 在 Hammer 中已弃用,现已最终删除。此接口的用户必须更新其软件以使用 rados_nobjects_list_open (C) 和 nobjects_begin (C++) API 或新的 rados_object_list_begin (C) 和 object_list_begin (C++) API,然后才能将客户端 librados 库更新到 Luminous。使用最新的 librados 版本和 pre-Hammer OSD 的对象枚举(通过任何 API)不再受支持。请注意,树内 Ceph 服务不依赖于通过已弃用 API 进行的对象枚举,因此只有外部 librados 用户可能会受到影响。

      最新的 (推荐的) rados_object_list_begin (C) 和 object_list_begin (C++) API 只能在启用 SORTBITWISE 标志的集群上使用 (Jewel 及更高版本)。(请注意,在升级到 Jewel 之前,需要设置此标志。)

  • CephFS:

    • 在 /etc/fstab 中配置 ceph-fuse 安装时,可以使用 “ceph.” 的新语法=” 在 options 列中,而不是将配置放在 device 列中。旧的语法仍然有效。有关详细信息,请参阅文档页面“在文件系统表中挂载 CephFS”。
    • 没有 ‘p’ 标志的 CephFS 客户端在其身份验证功能字符串中,将不再能够设置配额或任何布局字段。此标志以前仅限制布局中 pool 和 namespace 字段的修改。
    • CephFS 将生成健康警告,如果您拥有的待机守护进程少于它认为您想要的。默认情况下,如果您曾经有过待机守护进程,这将是 1,如果您没有,则为 0。您可以使用 ceph fs setstandby_count_wanted进行自定义。将其设置为零将有效地禁用健康检查。
    • “ceph mds tell ...”命令已被删除。它已被 “ceph tell mds....” 取代。

自 V12.1.1 (RC1) 以来值得注意的更改

  • choose_args 编码已更改为与体系结构无关。如果您部署了 Luminous dev 版本或 12.1.0 rc 版本并使用了 CRUSH choose_args 功能,则需要在开始升级之前从 CRUSH 映射中删除所有 choose_args 映射。
  • “ceph health”结构化输出(JSON 或 XML)不再包含描述时间同步状态的“timechecks”部分。此信息现在可通过“ceph time-sync-status”命令获得。
  • 如果 mons 磁盘空间不足(这会重复正常健康警告消息中的信息),“ceph health”结构化输出中曾经出现过的某些额外字段现在已消失。
  • “ceph -w”输出默认不再包含审计日志条目。添加“–watch-channel=audit”或“–watch-channel=*”以查看它们。
  • cephfs-journal-tool 的“apply”模式已被删除
  • 添加了新配置“public bind addr”以支持 Kubernetes 等动态环境。设置后,Ceph MON 守护程序可以本地绑定到一个 IP 地址,并在网络上通告另一个 IP 地址“public addr”。

其他值得注意的更改

  • bluestore,common,performance: isa-l: update isa-l to v2.18 (pr#15895, Ganesh Mahalingam, Tushar Gohad)
  • bluestore: os/bluestore/BlueFS: clean up log_writer aios from compaction (issue#20454, pr#16017, Sage Weil)
  • bluestore: os/bluestore/BlueFS: clear current log entrys before dump all fnode (pr#15973, Jianpeng Ma)
  • bluestore: os/bluestore: cleanup min_alloc_size; some formatting nits (pr#15826, xie xingguo)
  • bluestore: os/bluestore: clear up redundant size assignment in KerenelDevice (pr#16121, Shasha Lu)
  • bluestore: os/blueStore: Failure retry for opening file (pr#16237, Yankun Li)
  • bluestore: os/bluestore: fix deferred_aio deadlock (pr#16051, Sage Weil)
  • bluestore: os/bluestore: Make BitmapFreelistManager kv itereator short lived (pr#16243, Mark Nelson)
  • bluestore: os/bluestore: misc fix and cleanups (pr#16315, Jianpeng Ma)
  • bluestore: os/bluestore: move object exist in assign nid (pr#16117, Jianpeng Ma)
  • bluestore: os/bluestore: narrow cache lock range; make sure min_alloc_size p2 aligned (pr#15911, xie xingguo)
  • bluestore: os/bluestore: only submit deferred if there is any (pr#16269, Sage Weil)
  • bluestore: os/bluestore: reduce some overhead for _do_clone_range() and _do_remove() (pr#15944, xie xingguo)
  • bluestore: os/bluestore: slightly refactor Blob::try_reuse_blob (pr#15836, xie xingguo)
  • bluestore: os/bluestore: use bufferlist functions whenever possible (pr#16158, Jianpeng Ma)
  • bluestore,performance: os/bluestore: cap rocksdb cache size (pr#15786, Mark Nelson)
  • bluestore,performance: os/bluestore: default cache size of 3gb (pr#15976, Sage Weil)
  • bluestore,performance: os/bluestore: differ default cache size for hdd/ssd backends (pr#16157, xie xingguo)
  • bluestore,performance: os/bluestore/KernelDevice: batch aio submit (pr#16032, Haodong Tang)
  • bluestore,performance: os/bluestore: optimized (encode|decode)_escaped (pr#15759, Piotr Dałek)
  • build/ops: build: build erasure-code isa lib without versions (pr#16205, James Page)
  • build/ops: build: execute dh_systemd_{enable,start} after dh_install (issue#19585, pr#16218, James Page)
  • build/ops: ceph.in: allow developer mode from outside build tree (issue#20472, pr#16055, Dan Mick)
  • build/ops: ceph_release: we are in the ‘rc’ phase (12.1.z) (pr#15957, Sage Weil)
  • build/ops,core: osd/OSD: auto class on osd start up (pr#16014, xie xingguo)
  • build/ops: debian: workaround the bug in dpkg-maintscript-helper (issue#20453, pr#16072, Kefu Chai)
  • build/ops: debian: wrap-and-sort all files (pr#16110, James Page)
  • build/ops: os/bluestore: fix build errors when spdk is on (pr#16118, Ilsoo Byun)
  • build/ops,rbd,tests: test/librbd: re-enable internal tests in ceph_test_librbd (pr#16255, Mykola Golub)
  • build/ops,rgw,tests,tools: vstart: allow to start multiple radosgw when RGW=x (pr#15632, Adam Kupczyk)
  • build/ops,rgw,tools: vstart: add –rgw_compression to set rgw compression plugin (pr#15929, Casey Bodley)
  • build/ops: rpm: bump epoch ahead of RHEL base (issue#20508, pr#16126, Ken Dreyer)
  • build/ops: rpm: Fix undefined FIRST_ARG (issue#20077, pr#16208, Boris Ranto)
  • build/ops: rpm: obsolete libcephfs1 (pr#16074, Nathan Cutler)
  • build/ops: rpm: sane packaging of %{_docdir}/ceph directory (pr#15900, Nathan Cutler)
  • build/ops: systemd: Add explicit Before=ceph.target (pr#15835, Tim Serong)
  • build/ops: systemd/ceph-mgr: remove automagic mgr creation hack (issue#19994, pr#16023, Sage Weil)
  • build/ops,tests,tools: vstart.sh: Work around mgr restfull not available (pr#15877, Willem Jan Withagen)
  • cephfs: Remove “experimental” warnings from multimds (pr#15154, John Spray, “Yan, Zheng”)
  • cleanup: test,mon,msg: kill clang analyzer warnings (pr#16320, Kefu Chai)
  • cmake: fix the build with -DWITH_ZFS=ON (pr#15907, Kefu Chai)
  • cmake: Rewrite HAVE_BABELTRACE option to WITH_ (pr#15305, Willem Jan Withagen)
  • common: auth/RotatingKeyRing: use std::move() to set secrets (pr#15866, Kefu Chai)
  • common: ceph.in, mgr: misc cleanups (pr#16229, liuchang0812)
  • common: common,config: OPT_FLOAT and OPT_DOUBLE output format in config show (issue#20104, pr#15647, Yanhu Cao)
  • common: common/config_opt: remove unused config (pr#15874, alex.wu)
  • common: common/config_opts: drop unused opt (pr#15876, Yanhu Cao)
  • common: common/Mutex.cc: fixed the error in comment (pr#16214, Pan Liu)
  • common: common/Timer: do not add event if already shutdown (issue#20432, pr#16201, Kefu Chai)
  • common: compressor/zlib: remove g_ceph_context/g_conf from compressor plugin (pr#16245, Casey Bodley)
  • common,core: osd/osd_types: add flag name (IGNORE_REDIRECT) (pr#15795, Myoungwon Oh)
  • common: fix log warnings (pr#16056, xie xingguo)
  • common: initialize array in struct BackTrace (pr#15864, Jos Collin)
  • common: libradosstriper: fix format injection vulnerability (issue#20240, pr#15674, Stan K)
  • common: misc cleanups in common, global, os, osd submodules (pr#16321, Yan Jun)
  • common: msg/async: make recv_stamp more precise (pr#15810, Pan Liu)
  • common: osdc/Objecter: release message if it’s not handled (issue#19741, pr#15890, Kefu Chai)
  • common: osd/OSDMap: print require_osd_release (pr#15974, Sage Weil)
  • common: Passing null pointer option_name to operator << in md_config_t::parse_option() (pr#15881, Jos Collin)
  • common,rdma: msg/async/rdma: use lists properly (pr#15908, Adir lev, Adir Lev)
  • common,tests: ceph_test_rados_api_c_read_operations: do not assert per-op rval is correct (issue#19518, pr#16196, Sage Weil)
  • common: Update the error string when res_nsearch() or res_search() fails (pr#15878, huanwen ren)
  • core: ceph-disk/ceph_disk/main.py: Replace ST_ISBLK() test by is_diskdevice() (pr#15587, Willem Jan Withagen)
  • core: ceph_disk/main.py: Allow FreeBSD zap a OSD disk (pr#15642, Willem Jan Withagen)
  • core: ceph-disk: set the default systemd unit timeout to 3h (issue#20229, pr#15585, Loic Dachary)
  • core: Context: C_ContextsBase: delete enclosed contexts in dtor (issue#20432, pr#16159, Kefu Chai)
  • core: crush/CrushWrapper: chooseargs encoding fix (pr#15984, Ilya Dryomov)
  • core: crush/CrushWrapper: make get_immediate_parent[_id] ignore per-class shadow hierarchy (issue#20546, pr#16221, Sage Weil)
  • core: kv/RocksDBStore: abort if rocksdb EIO, don’t return incorrect result (pr#15862, Haomai Wang)
  • core: make the conversion from wire error to host OS work (pr#15780, Willem Jan Withagen)
  • core: messages/MOSDPing.h: drop unused fields (pr#15843, Piotr Dałek)
  • core,mgr: mgr,librados: service map (pr#15858, Yehuda Sadeh, John Spray, Sage Weil)
  • core,mgr,mon: mgr,mon: enable/disable mgr modules via ‘ceph mgr module ...’ commands (pr#15958, Sage Weil)
  • core,mgr: mon/PGMap: slightly better debugging around pgmap updates (pr#15820, Sage Weil)
  • core: mon/MonClient: respect the priority in SRV RR (issue#5249, pr#15964, Kefu Chai)
  • core: mon/MonmapMonitor: use __func__ instead of hard code function name (pr#16037, Yanhu Cao)
  • core,mon: mon/MDSMonitor: fix segv when multiple MDSs raise same alert (pr#16302, Sage Weil)
  • core,mon: mon/MgrStatMonitor: avoid dup health warnings during luminous upgrade (issue#20435, pr#15986, Sage Weil)
  • core,mon: mon, osd: misc fixes (pr#16078, xie xingguo)
  • core: mon, osd: misc fixes and cleanups (pr#16160, xie xingguo)
  • core: mon/OSDMonitor: _apply_remap -> _apply_upmap; less code redundancy (pr#15846, xie xingguo)
  • core: mon/OSDMonitor: do not allow crush device classes until luminous (pr#16188, Sage Weil)
  • core: osd/ECTransaction: cleanup the redundant check which works in overwrite IO context (pr#15765, tang.jin)
  • core: osd/filestore: Revert “os/filestore: move ondisk in front (issue#20524, pr#16156, Kefu Chai)
  • core: osd/PG: Add two new mClock implementations of the PG sharded operator queue (pr#14997, J. Eric Ivancich)
  • core: osd/PG: set clean when last_epoch_clean is updated (issue#19023, pr#15555, Samuel Just)
  • core: osd/PrimaryLogPG solve cache tier osd high memory consumption (issue#20464, pr#16011, Peng Xie)
  • core: osd/ReplicatedBackend: reset thread heartbeat after every omap entry … (issue#20375, pr#15823, Josh Durgin)
  • core: os/filestore: call committed_thru when no journal entries are replayed (pr#15781, Kuan-Kai Chiu)
  • core: os/filestore: do not free event if not added (pr#16235, Kefu Chai)
  • core: os/filestore: Exclude BTRFS on FreeBSD (pr#16171, Willem Jan Withagen)
  • core: os/filestore/FileJournal: FileJournal::open() close journal file before return error (issue#20504, pr#16120, Yang Honggang)
  • core: os/filestore/FileStore.cc: remove a redundant judgement when get max latency (pr#15961, Jianpeng Ma)
  • core: os/filestore: require experimental flag for btrfs (pr#16086, Sage Weil)
  • core,performance: os/filestore/HashIndex: randomize split threshold by a configurable amount (issue#15835, pr#15689, Josh Durgin)
  • core,performance: os/filestore: queue ondisk completion before apply work (pr#13918, Pan Liu)
  • core,performance: src/OSD: add more useful perf counters for performance tuning (pr#15915, Pan Liu)
  • core,rbd: mon,osd: do not create rbd pool by default (pr#15894, Greg Farnum, Sage Weil, David Zafman)
  • core: src/vstart.sh: kill dead upmap option (pr#15848, xie xingguo)
  • core:” Stringify needs access to << before reference” src/include/stringify.h (pr#16334, Willem Jan Withagen)
  • core,tests: do all valgrind runs on centos (issue#20360, issue#18126, pr#16046, Sage Weil)
  • core,tests: qa/objectstore/filestore-btrfs: test btrfs on trusty only (issue#20169, pr#15814, Sage Weil)
  • core,tests: qa: stop testing btrfs (issue#20169, pr#16044, Sage Weil)
  • core,tests: qa/suites/powercycle/osd/tasks/radosbench: consume less space (issue#20302, pr#15821, Sage Weil)
  • core,tests: qa/suites/rados/singleton/all/reg11184: whitelist health warnings (pr#16306, Sage Weil)
  • core,tests: qa/suites/rados/thrash/workload/*: enable rados.py cache tiering ops (issue#11793, pr#16244, Sage Weil)
  • core,tests: qa/tasks/ceph_manager: wait longer for pg stats to flush (pr#16322, Sage Weil)
  • core,tests: qa/tasks/ceph.py: no osd id to ‘osd create’ command (issue#20548, pr#16233, Sage Weil)
  • core,tests: qa/tasks/ceph: simplify ceph deployment slightly (pr#15853, Sage Weil)
  • core,tests: qa/tasks/dump_stuck: fix for active+clean+remapped (issue#20431, pr#15955, Sage Weil)
  • core,tests: qa/tasks/radosbench: longer timeout (pr#16213, Sage Weil)
  • crush: silence warning from -Woverflow (pr#16329, Jos Collin)
  • doc: dev: add notes on PR make check validation test (pr#16079, Nathan Cutler)
  • doc: doc/mgr/dashboard: update dashboard docs to reflect new defaults (pr#16241, Sage Weil)
  • doc: doc/rados.8: add offset option for put command (pr#16155, Jianpeng Ma)
  • doc: doc/release-notes: add Images creation timestamp note (pr#15963, clove)
  • doc: doc/release-notes: fix ceph-deploy command (pr#15987, Sage Weil)
  • doc: doc/release-notes: Luminous release notes typo fixes “ceph config-key ls”->”ceph config-key list” (pr#16330, scienceluo)
  • doc: doc/release-notes: Luminous release notes typo fixes (pr#16338, Luo Kexue)
  • doc: doc/release-notes: update luminous notes (pr#15851, Sage Weil)
  • doc: doc/releases: Update releases from Feb 2017 to July 2017 (pr#16303, Bryan Stillwell)
  • doc: docs: mgr dashboard (pr#15920, Wido den Hollander)
  • doc: fix link for ceph-mgr cephx authorization (pr#16246, Greg Farnum)
  • doc: Jewel v10.2.8 release notes (pr#16274, Nathan Cutler)
  • doc: Jewel v10.2.9 release notes (pr#16318, Nathan Cutler)
  • doc: kill sphinx warnings (pr#16198, Kefu Chai)
  • doc: Luminous release notes typo fixes (pr#15899, Abhishek Lekshmanan)
  • doc: mailmap: add Myoungwon Oh’s mailmap and affiliation (pr#15934, Myoungwon Oh)
  • doc: mailmap, organizationmap: add affiliation for Tushar Gohad (pr#16081, Tushar Gohad)
  • doc: .mailmap, .organizationmap: Update Fan Yang information and affiliation (pr#16067, Fan Yang)
  • doc: .mailmap, .organizationmap: Update Song Weibin information and affiliation (pr#16311, songweibin)
  • doc: mgr/restful: bind to :: and update docs (pr#16267, Sage Weil)
  • doc: update intro, quick start docs (pr#16224, Sage Weil)
  • doc: v12.1.0 release notes notable changes addition again (pr#15857, Abhishek Lekshmanan)
  • librados: add log channel to rados_monitor_log2 callback (pr#15926, Sage Weil)
  • librados: redirect balanced reads to acting primary when targeting object isn’t recovered (issue#17968, pr#15489, Xuehan Xu)
  • librbd: fail IO request when exclusive lock cannot be obtained (pr#15860, Jason Dillaman)
  • mgr: clean up daemon start process (issue#20383, pr#16020, John Spray)
  • mgr: clean up fsstatus module (pr#15925, John Spray)
  • mgr: cluster log message on plugin load error (pr#15927, John Spray)
  • mgr: dashboard improvements (pr#16043, John Spray)
  • mgr: drop repeated log info. and unnecessary write permission (pr#15896, Yan Jun)
  • mgr: enable ceph_send_command() to send pg command (pr#15865, Kefu Chai)
  • mgr: increase debug level for ticks 0 -> 10 (pr#16301, Dan Mick)
  • mgr: mgr/ClusterState: do not mangle PGMap outside of Incremental (issue#20208, pr#16262, Sage Weil)
  • mgr: mgr/dashboard: add OSD list view (pr#16373, John Spray)
  • mgr: mon/mgr: add detail error infomation (pr#16048, Yan Jun)
  • mgr,mon: mgr,mon: debug init and mgrdigest subscriptions (issue#20633, pr#16351, Sage Weil)
  • mgr: pybind/mgr/dashboard: bind to :: by default (pr#16223, Sage Weil)
  • mgr,rbd: pybind/mgr/dashboard: initial block integration (pr#15521, Jason Dillaman)
  • mgr: Zabbix monitoring module (pr#16019, Wido den Hollander)
  • mon: add support public_bind_addr option (pr#16189, Bassam Tabbara)
  • mon: a few more upmap (and other) fixes (pr#16239, xie xingguo)
  • mon: clean up in ceph_mon.cc (pr#14102, huanwen ren)
  • mon: collect mon metdata as part of the election (issue#20434, pr#16148, Sage Weil)
  • mon: debug session feature tracking (issue#20475, pr#16128, Sage Weil)
  • mon: Division by zero in PGMapDigest::dump_pool_stats_full() (pr#15901, Jos Collin)
  • mon: do crushtool test with fork and timeout, but w/o exec of crushtool (issue#19964, pr#16025, Sage Weil)
  • mon: Filter log last output by severity and channel (pr#15924, John Spray)
  • mon: fix hang on deprecated/removed ‘pg set_*full_ratio’ commands (issue#20600, pr#16300, Sage Weil)
  • mon: fix kvstore type in mon compact command (pr#15954, liuchang0812)
  • mon: Fix status output warning for mon_warn_osd_usage_min_max_delta (issue#20544, pr#16220, David Zafman)
  • mon: handle cases where store->get() may return error (issue#19601, pr#14678, Jos Collin)
  • mon: include device class in tree view; hide shadow hierarchy (pr#16016, Sage Weil)
  • mon: maintain the “cluster” PerfCounters when using ceph-mgr (issue#20562, pr#16249, Greg Farnum)
  • mon: mon,crush: create crush rules using device classes for replicated and ec pools via cli (pr#16027, Sage Weil)
  • mon: mon/MgrStatMonitor: do not crash on luminous dev version upgrades (pr#16287, Sage Weil)
  • mon: mon/Monitor: recreate mon session if features changed (issue#20433, pr#16230, Joao Eduardo Luis)
  • mon: mon/OSDMonitor: a couple of upmap and other fixes (pr#15917, xie xingguo)
  • mon: mon/OSDMonitor: guard ‘osd crush set-device-class’ (pr#16217, Sage Weil)
  • mon: mon/OSDMonitor: “osd crush class rename” support (pr#15875, xie xingguo)
  • mon: mon/OSDMonitor: two pool opts related fix (pr#15968, xie xingguo)
  • mon: mon/PaxosService: use __func__ instead of hard code function name (pr#15863, Yanhu Cao)
  • mon: revamp health check/warning system (pr#15643, John Spray, Sage Weil)
  • mon: show the leader info on mon stat command (pr#14178, song baisen)
  • mon: skip crush smoke test when running under valgrind (issue#20602, pr#16346, Sage Weil)
  • mon,tests: qa/suites: add test exercising workunits/mon/auth_caps.sh (pr#15754, Kefu Chai)
  • msg: make listen backlog an option, increase from 128 to 512 (issue#20330, pr#15743, Haomai Wang)
  • msg: msg/async: increase worker reference with local listen table enabled backend (issue#20390, pr#15897, Haomai Wang)
  • msg: msg/async/rdma: Data path fixes (pr#15903, Adir lev)
  • msg: msg/async/rdma: register buffer as continuous (pr#15967, Adir Lev)
  • msg: msg/async/rdma: remove assert from ibv_dealloc_pd in ProtectionDomain (pr#15832, DanielBar-On)
  • msg: msg/MOSDOpReply: fix missing trace decode (pr#15999, Yan Jun)
  • msg: QueueStrategy::wait() joins all threads (issue#20534, pr#16194, Casey Bodley)
  • msg: Revert “msg/async: increase worker reference with local listen table enabled backend” (issue#20603, pr#16323, Haomai Wang)
  • osd: Check for and automatically repair object info soid during scrub (issue#20471, pr#16052, David Zafman)
  • osd: check queue_transaction return value (pr#15873, zhanglei)
  • osd: clear_queued_recovery() in on_shutdown() (issue#20432, pr#16093, Kefu Chai)
  • osd: compact osd feature (issue#19592, pr#16045, liuchang0812)
  • osd: Corrupt objects stop snaptrim and mark pg snaptrim_error (issue#13837, pr#15635, David Zafman)
  • osd: dump the field name of object watchers and cleanups (pr#15946, Yan Jun)
  • osd: Execute crush_location_hook when configured in ceph.conf (pr#15951, Wido den Hollander)
  • osd: On EIO from read recover the primary replica from another copy (issue#18165, pr#14760, David Zafman)
  • osd: osd does not using MPing Messages,do not include unused include (pr#15833, linbing)
  • osd: Preserve OSDOp information for historic ops (pr#15265, Guo-Fu Tseng)
  • osd: restart boot process if waiting for luminous mons (issue#20631, pr#16341, Sage Weil)
  • osd: unlock sdata_op_ordering_lock with sdata_lock hold to avoid miss… (pr#15891, Ming Lin)
  • pybind: ceph.in: Check return value when connecting (pr#16130, Douglas Fuller)
  • pybind: ceph-rest-api: Various REST API fixes (pr#15910, Wido den Hollander)
  • pybind: pybind/mgr/dashboard: fix get kernel_version error (pr#16094, Peng Zhang)
  • pybind: restore original API for backwards compatibility (issue#20421, pr#15932, Jason Dillaman)
  • rbd: do not attempt to load key if auth is disabled (issue#19035, pr#16024, Jason Dillaman)
  • rbd-mirror: ignore permission errors on rbd_mirroring object (issue#20571, pr#16264, Jason Dillaman)
  • rbd,tests: qa/suites/rbd: restrict python memcheck validation to CentOS (pr#15923, Jason Dillaman)
  • rbd,tests: qa/tasks: rbd-mirror daemon not properly run in foreground mode (issue#20630, pr#16340, Jason Dillaman)
  • rbd,tests: test: fix compile warning in ceph_test_cls_rbd (pr#15919, Jason Dillaman)
  • rbd,tests: test: fix failing rbd devstack teuthology test (pr#15956, Jason Dillaman)
  • rbd,tools: tools/rbd_mirror: initialize non-static class member m_do_resync in ImageReplayer (pr#15889, Jos Collin)
  • rbd,tools: tools/rbd_nbd: add –version show support (pr#16254, Jin Cai)
  • rgw: add a new error code for non-existed subuser (pr#16095, Zhao Chao)
  • rgw: add a new error code for non-existed user (issue#20468, pr#16033, Zhao Chao)
  • rgw: add missing RGWPeriod::reflect() based on new atomic update_latest_epoch() (issue#19816, issue#19817, pr#14915, Casey Bodley)
  • rgw: auto reshard old buckets (pr#15665, Orit Wasserman)
  • rgw: cleanup rgw-admin duplicated judge during OLH GET/READLOG (pr#15700, Jiaying Ren)
  • rgw: cls: ceph::timespan tag_timeout wrong units (issue#20380, pr#16026, Matt Benjamin)
  • rgw: Compress crash bug refactor (issue#20098, pr#15569, Adam Kupczyk)
  • rgw: Correcting the condition in ceph_assert while parsing an AWS Principal (pr#15997, Pritha Srivastava)
  • rgw: Do not fetch bucket stats by default upon bucket listing (issue#20377, pr#15834, Pavan Rallabhandi)
  • rgw: drop unused function RGWRemoteDataLog::get_shard_info() (pr#16236, Shasha Lu)
  • rgw: drop unused rgw_pool parameter, local variables and member variable (pr#16154, Jiaying Ren)
  • rgw: external auth engines of S3 honor rgw_keystone_implicit_tenants (issue#17779, pr#15572, Radoslaw Zarzynski)
  • rgw: Fix a bug that multipart upload may exceed the quota (issue#19602, pr#12010, Zhang Shaowen)
  • rgw: Fix duplicate tag removal during GC (issue#20107, pr#15912, Jens Rosenboom)
  • rgw: fix error handling in get_params() of RGWPostObj_ObjStore_S3 (pr#15670, Radoslaw Zarzynski)
  • rgw: fix error handling in the link() method of RGWBucket (issue#20279, pr#15669, Radoslaw Zarzynski)
  • rgw: fixes for AWSBrowserUploadAbstractor auth (issue#20372, pr#15882, Radoslaw Zarzynski, Casey Bodley)
  • rgw: fix infinite loop in rest api for log list (issue#20386, pr#15983, xierui, Casey Bodley)
  • rgw: fix leaks with incomplete multiparts (issue#17164, pr#15630, Abhishek Varshney)
  • rgw: fix marker encoding problem (issue#20463, pr#15998, Marcus Watts)
  • rgw: fix memory leak in copy_obj_to_remote_dest (pr#9974, weiqiaomiao)
  • rgw: fix not initialized vars which cause rgw crash with ec data pool (issue#20542, pr#16177, Aleksei Gutikov)
  • rgw: fix potential null pointer dereference in rgw_admin (pr#15667, Radoslaw Zarzynski)
  • rgw: fix radosgw-admin data sync run crash (issue#20423, pr#15938, Shasha Lu)
  • rgw: fix s3 object uploads with chunked transfers and v4 signatures (issue#20447, pr#15965, Marcus Watts)
  • rgw: fix wrong error code for expired Swift TempURL’s links (issue#20384, pr#15850, Radoslaw Zarzynski)
  • rgw: fix zone did’t update realm_id when added to zonegroup (issue#17995, pr#12139, Tianshan Qu)
  • rgw: implement get/put object tags for S3 (pr#13753, Abhishek Lekshmanan)
  • rgw: /info claims we do support Swift’s accounts ACLs (issue#20394, pr#15887, Radoslaw Zarzynski)
  • rgw: initialize non-static class members in ESQueryCompiler (pr#15884, Jos Collin)
  • rgw: initialize Non-static class member val in ESQueryNodeLeafVal_Int (pr#15888, Jos Collin)
  • rgw: initialize Non-static class member worker in RGWReshard (pr#15886, Jos Collin)
  • rgw: Initialize pointer fields (pr#16021, Jos Collin)
  • rgw: lease_stack: use reset method instead of assignment (pr#16185, Nathan Cutler)
  • rgw: lock is not released when set sync marker is failed (issue#18077, pr#12197, Zhang Shaowen)
  • rgw: log_meta only for more than one zone (issue#20357, pr#15777, Orit Wasserman, Leo Zhang)
  • rgw: multipart copy-part remove ‘/’ for s3 java sdk request header (issue#20075, pr#15283, root)
  • rgw:multisite: fix RGWRadosRemoveOmapKeysCR and change cn to intrusive_ptr (issue#20539, pr#16197, Shasha Lu)
  • rgw: omit X-Account-Access-Control if there is no grant to serialize (issue#20395, pr#15883, Radoslaw Zarzynski)
  • rgw: radosgw: fix compilation with cryptopp (pr#15960, Adam Kupczyk)
  • rgw: reject request if decoded URI contains 0 in the middle (issue#20418, pr#15953, Radoslaw Zarzynski)
  • rgw: remove a redundant judgement in rgw_rados.cc:delete_obj (pr#11124, Zhang Shaowen)
  • rgw: remove the useless output when listing zonegroups (pr#16331, Zhang Shaowen)
  • rgw: Replace get_zonegroup().is_master_zonegroup() with is_meta_master() in RGWBulkDelete::Deleter::delete_single() (pr#16062, Fan Yang)
  • rgw: rgw_file: add compression interop to RGW NFS (issue#20462, pr#15989, Matt Benjamin)
  • rgw: rgw_file: add service map registration (pr#16251, Matt Benjamin)
  • rgw: rgw_file: avoid a recursive lane lock in LRU drain (issue#20374, pr#15819, Matt Benjamin)
  • rgw: rgw_file: fix misuse of make_key_name before make_fhk (pr#15108, Gui Hecheng)
  • rgw: rgw_file skip policy read for virtual components (pr#16034, Gui Hecheng)
  • rgw: rgw:fix s3 aws v2 signature priority between header[‘X-Amz-Date’] and header[‘Date’] (issue#20176, pr#15467, yuliyang)
  • rgw: rgw: fix the subdir without slash of s3 website url (issue#20307, pr#15703, liuhong)
  • rgw: rgw/rgw_frontend.h: Return negative value for empty uid in RGWLoadGenFrontend::init() (pr#16204, jimifm)
  • rgw: rgw/rgw_op: fix whitespace and indentation warning (pr#15928, Sage Weil)
  • rgw: rgw/rgw_rados: Remove duplicate calls in RGWRados::finalize() (pr#15281, jimifm)
  • rgw: rgw,test: fix rgw placement rule pool config option (pr#16084, Jiaying Ren)
  • rgw: S3 lifecycle now supports expiration date (pr#15807, Zhang Shaowen)
  • rgw: silence compile warning from -Wmaybe-uninitialized (pr#15996, Jiaying Ren)
  • rgw: silence warning from -Wmaybe-uninitialized (pr#15949, Jos Collin)
  • rgw,tests: qa/tasks: S3A hadoop task to test s3a with Ceph (pr#14624, Vasu Kulkarni)
  • rgw,tests: vstart: remove rgw_enable_static_website (pr#15856, Casey Bodley)
  • rgw: Uninitialized member in LCRule (pr#15827, Jos Collin)
  • rgw: use 64-bit offsets for compression (issue#20231, pr#15656, Adam Kupczyk, fang yuxiang)
  • rgw: use uncompressed size for range_to_ofs() in slo/dlo (pr#15931, Casey Bodley)
  • rgw: using RGW_OBJ_NS_MULTIPART in check_bad_index_multipart (pr#15774, Shasha Lu)
  • rgw: verify md5 in post obj (issue#19739, pr#14961, Yehuda Sadeh)
  • rgw: Wip rgw fix prefix list (issue#19432, pr#15916, Giovani Rinaldi, Orit Wasserman)
  • tests: ceph-disk: use communicate() instead of wait() for output (pr#16347, Kefu Chai)
  • tests: cls_lock: move lock_info_t definition to cls_lock_types.h (pr#16091, runsisi)
  • tests: fix rados/upgrade/jewel-x-singleton and make workunit task handle repo URLs not ending in ”.git” (issue#20554, issue#20368, pr#16228, Nathan Cutler, Sage Weil)
  • tests: mgr,os,test: kill clang analyzer warnings (pr#16227, Kefu Chai)
  • tests: move swift.py task from teuthology to ceph, phase one (master) (issue#20392, pr#15859, Nathan Cutler, Sage Weil, Warren Usui, Greg Farnum, Ali Maredia, Tommi Virtanen, Zack Cerza, Sam Lang, Yehuda Sadeh, Joe Buck, Josh Durgin)
  • tests: [qa/ceph-deploy]: run create mgr nodes as well (pr#16216, Vasu Kulkarni)
  • tests: qa: do not restrict valgrind runs to centos (issue#18126, pr#15893, Greg Farnum)
  • tests: qa/suites/rados/singleton/all/mon-auth-caps: more osds so we can go clean (pr#16225, Sage Weil)
  • tests: qa/suites/upgrade/hammer-jewel-x: add luminous.yaml (issue#20342, pr#15764, Kefu Chai)
  • tests: qa/tasks/ceph: don’t hard-code cluster name when copying fsid (pr#16212, Jason Dillaman)
  • tests: qa/tasks/ceph: should be “Waiting for all PGs”, not “all osds” (pr#16122, Kefu Chai)
  • tests: qa/tasks/radosbench: increase timeout (pr#15885, Sage Weil)
  • tests: qa/workunits/ceph-helpers: enable experimental features for osd (pr#16319, Kefu Chai)
  • tests: qa/workunits/ceph-helpers: test wait_for_health_ok differently (pr#16317, Kefu Chai)
  • tests: rgw.py: put client roles in a separate list (issue#20417, pr#15913, Nathan Cutler)
  • tests: rgw/singleton: drop duplicate filestore-xfs.yaml (pr#15959, Nathan Cutler)
  • tests: test: Division by zero in Legacy::encode_n() (pr#15902, Jos Collin)
  • tests: test/fio: print all perfcounters rather than objectstore itself (pr#16339, Jianpeng Ma)
  • tests: test/fio: remove experimental option for bluestore & rocksdb (pr#16263, Pan Liu)
  • tests: test: Fix reg11184 test to remove extraneous pg (pr#16265, David Zafman)
  • tests: test/msgr: fixed the hang issue for perf_msg_client (pr#16358, Pan Liu)
  • tests: test/osd/osd-scrub-repair.sh: disable ec_overwrite tests on FreeBSD (pr#15445, Willem Jan Withagen)
  • tests: test/osd/osd-scrub-repair.sh: Fix diff options on FreeBSD (pr#15914, Willem Jan Withagen)
  • tests,tools: test, ceph-osdomap-tool: kill clang warnings (pr#15905, Kefu Chai)
  • tools: ceph-conf: fix typo in usage: ‘mon add’ should be ‘mon addr’ (pr#15935, Peng Zhang)
  • tools: ceph-create-keys: add an argument to override default 10-minute timeout (pr#16049, Douglas Fuller)
  • tools: ceph.in: filter out audit from ceph -w (pr#16345, John Spray)
  • tools: ceph-release-notes: escape asterisks not for inline emphasis (pr#16199, Kefu Chai)
  • tools: ceph-release-notes: handle an edge case (pr#16277, Nathan Cutler)
  • tools: Cleanup dead code in ceph-objectstore-tool (pr#15812, David Zafman)
  • tools: libradosstriper: fix MultiAioCompletion leaks on failure (pr#15471, Kefu Chai)
  • tools: tools/rados: some cleanups (pr#16147, Yan Jun)
  • tools: vstart.sh: bind restful, dashboard to ::, not 127.0.0.1 (pr#16349, Sage Weil)