12.2.7 Luminous 发布

TheAnalyst

这是 Luminous v12.2.x 长期稳定版系列的第七个错误修复版本。此版本包含对 v12.2.6 和 v12.2.5 版本中回归问题的多项修复。我们建议所有用户升级到 v12.2.7。

注意v12.2.6 版本存在严重的已知回归问题。尽管 v12.2.6 未正式发布,但如果您仍安装了此版本,请参阅下面的升级过程。
注意v12.2.5 版本存在纠删码池的潜在数据损坏问题。如果您使用纠删码运行了 v12.2.5,请参阅下文。

从 v12.2.6 升级

v12.2.6 包含 BlueStore OSD 优化功能的不完整回溯,该功能避免同时维护每个对象的校验和和内部 BlueStore 校验和。由于意外遗漏了一个关键的后续补丁,v12.2.6 会损坏(无法更新)某些对象的存储的每个对象校验和值。这可能导致在尝试读取这些对象时出现 EIO 错误。

  1. 如果您的集群仅使用 FileStore,则无需采取特殊措施。此问题仅影响具有 BlueStore 的集群。

  2. 如果您的集群只有 BlueStore OSD(没有 FileStore),则应启用以下 OSD 选项

    osd skip data digest = true

    这将避免在 PG 的主 OSD 是 BlueStore 时设置和开始忽略完整对象摘要。

  3. 如果您的集群混合了 BlueStore 和 FileStore OSD,则应启用以下 OSD 选项

    osd distrust data digest = true

    这将避免在所有情况下设置和开始忽略完整对象摘要。这会削弱 FileStore 的数据完整性检查(尽管这些检查始终只是临时性的)。

如果您的集群包含 BlueStore OSD 且受到影响,深度清理将针对受影响的对象生成有关 CRC 不匹配的错误。目前,修复操作不知道如何纠正它们(因为所有副本与预期校验和不匹配,因此不知道如何进行)。这些警告是无害的,因为 IO 不受影响,并且副本都仍然同步。随着时间的推移,当这些对象被修改时,受影响对象的数量可能会自行下降(可能降为零)。我们希望在 v12.2.8 中包含一个清理改进功能,以清理任何剩余的对象。

此外,请参阅下面的说明,这些说明适用于 v12.2.5 和 v12.2.6。

从 v12.2.5 或 v12.2.6 升级

如果您将 v12.2.5 或 v12.2.6 与纠删码池结合使用,则在某些工作负载下存在很小的数据损坏风险。具体来说,当满足以下条件时:

  • 正在使用纠删码池
  • 池正忙于成功的写入
  • 池也正忙于导致 librados 用户错误结果的更新。RGW 垃圾回收是这种情况最常见的例子(它会对不总是存在的对象发送删除操作)。
  • 一些 OSD 相当繁忙。一个已知的此类负载示例是 FileStore 拆分,尽管原则上集群上的任何负载也可能触发此行为。
  • 一个或多个 OSD 重启。

这种组合可能导致 OSD 崩溃,并可能使 PG 处于无法对等的状态。

值得注意的是,升级集群涉及 OSD 重启,因此可能会增加遇到此错误的风险。因此,对于具有纠删码池的集群,我们建议采用以下升级过程以最大程度地降低风险

  1. 安装 v12.2.7 包。

  2. 暂时暂停对集群的 IO

    ceph osd pause

  3. 重启所有 OSD 并等待所有 PG 变为活动状态。

  4. 恢复 IO

    ceph osd unpause

这将导致 OSD 重启期间出现可用性中断。如果这是不可接受的,一个更危险的替代方法是在升级期间禁用 RGW 垃圾回收(这些 rados 操作的主要已知原因):

1. 在 ceph.conf 中设置 ``rgw_enable_gc_threads = false``

2. 重启所有 radosgw 守护进程

3. 升级并重启所有 OSD

4. 从 ceph.conf 中删除 ``rgw_enable_gc_threads = false``

5. 重启所有 radosgw 守护进程

从其他版本升级

如果您的集群未运行 v12.2.5 或 v12.2.6,则上述问题均不适用于您,您应正常升级。

v12.2.7 更改日志

v12.2.6 中的值得注意的更改

注意这是一个有严重已知回归问题的损坏版本。请勿安装。下面的发行说明用于跟踪属于 12.2.6(以及 12.2.7)的修复程序。
  • 身份验证:

    • 在 12.2.4 及更早版本中,未检查密钥环 caps 的有效性,因此 caps 字符串可以是任何内容。从 12.2.6 开始,caps 字符串经过验证,向“ceph auth add”等提供带有无效 caps 字符串的密钥环将导致错误。
    • CVE 2018-1128: auth: cephx 授权器易受重放攻击 (issue#24836, Sage Weil)
    • CVE 2018-1129: auth: cephx 签名检查较弱 (issue#24837, Sage Weil)
    • CVE 2018-10861: mon: 对池操作的 auth 检查不正确 (issue#24838, Jason Dillaman)
  • config-key 接口可以存储任意二进制 blob,但 JSON 只能表示可打印字符串。如果存在二进制 blob,则“ceph config-key dump”命令将把它们显示为类似 <<< binary blob of length N >>> 的内容。

v12.2.6 更改日志