发行注记


Red Hat Ceph Storage 7.0

Red Hat Ceph Storage 7.0 发行注记

Red Hat Ceph Storage Documentation Team

摘要

本发行注记介绍了为 Red Hat Ceph Storage 7.0 产品发行版本实施的主要功能、增强功能、已知问题和程序错误修复。

使开源包含更多

红帽承诺替换我们的代码、文档和网页属性中存在问题的语言。我们从这四个术语开始:master、slave、黑名单和白名单。由于此项工作十分艰巨,这些更改将在即将推出的几个发行版本中逐步实施。有关更多详情,请参阅我们的首席技术官 Chris Wright 提供的消息

提供有关 Red Hat Ceph Storage 文档的反馈

我们感谢您对文档提供反馈信息。请让我们了解如何改进文档。要做到这一点,创建一个 Bugzilla ticket:

  1. 进入 Bugzilla 网站。
  2. 在组件下拉列表中选择 Documentation
  3. 在 Sub-Component 下拉菜单中,选择适当的子组件。
  4. 选择相应的文档版本。
  5. SummaryDescription 字段中填写您要改进的建议。包括文档相关部分的链接。
  6. 可选:添加一个附件(若有)。
  7. Submit Bug

第 1 章 简介

Red Hat Ceph Storage 是一个可大规模扩展、开放、软件定义的存储平台,它将最稳定版本的 Ceph 存储系统与 Ceph 管理平台、部署实用程序和支持服务相结合。

Red Hat Ceph Storage 文档位于 https://access.redhat.com/documentation/zh-cn/red_hat_ceph_storage/7

第 2 章 致谢

Red Hat Ceph Storage 版本 7.0 包含 Red Hat Ceph Storage 团队的许多贡献。此外,Ceph 社区中个人和组织的贡献质量和数量有显著的增长。我们借此感谢 Red Hat Ceph Storage 团队的所有成员、Ceph 社区中的所有个人贡献者,并且包括但不限于:

  • Intel®
  • Fujitsu ®
  • UnitedStack
  • Yahoo ™
  • Ubuntu Kylin
  • Mellanox ®
  • CERN ™
  • Deutsche Telekom
  • Mirantis ®
  • SanDisk ™
  • SUSE ®
  • Croit ™
  • Clyso ™
  • Cloudbase 解决方案 ™

第 3 章 新功能

本节列出了本 Red Hat Ceph Storage 版本中引入的所有主要更新、增强功能和新功能。

3.1. Cephadm 实用程序

添加 cmount_path 选项并生成唯一用户 ID

有了这个增强,您可以添加可选的 cmount_path 选项,并为每个 Ceph 文件系统生成唯一的用户 ID,以允许在多个 Ganesha 导出间共享 CephFS 客户端,从而减少单个 CephFS 客户端的内存用量。

Bugzilla:2246077

TLS 在所有监控组件中启用,增强 Prometheus 的安全性

在这个版本中,为了保护数据完整性、机密性和与安全最佳实践的对齐,TLS 在监控堆栈中启用。Prometheus、Alert manager 和 Node exporter 的增强安全功能通过使用监控堆栈中的安全通信添加额外的保护层。

Bugzilla:1994251

增强监控堆栈的安全性

在这个版本中,为了保护数据完整性、机密性和与安全最佳实践、Prometheus、Alert manager 和 Node exporter 的身份验证功能被实施。这会在所有监控组件中启用 TLS,并要求用户在访问 Prometheus 和 Alert Manager 数据前提供有效的凭证,从而提高了整个监控堆栈的安全性。通过使用此新功能,通过使用安全通信提供额外的保护层,并防止未经授权的访问敏感指标和监控数据。在所有监控堆栈组件和身份验证中启用了 TLS 后,用户必须在访问监控和指标数据前进行身份验证,从而增强整体安全性并控制数据访问。

Bugzilla:2028335

用户现在可以将主机置于维护模式

在以前的版本中,用户无法将主机置于维护模式,因为停止该主机上的所有守护进程会导致数据不可用。

在这个版本中,ceph orch host maintenance enter 命令有一个更强大的 force 标志,名为 --yes-i-really-mean-it。用户现在可以将主机置于维护模式,即使 Cephadm 会发出警告。

Bugzilla:2107339

用户现在可以排空守护进程的主机,而无需排空客户端 conf密钥环文件

在这个版本中,用户可以排空守护进程的主机,而无需通过将 --keep- conf - keyring 标志传递给 ceph orch host drain 命令,来排空主机上部署的客户端 conf 或密钥环文件。用户现在可以将主机标记为已排空所有守护进程,或者在主机上仍然有 Cephadm 管理 conf密钥环文件

Bugzilla:2153827

Cephadm 服务现在可以标记为 受管非受管

在以前的版本中,将 Cephadm 服务标记为 受管非受管 的唯一方法是编辑和重新应用该服务的服务规格。这种情况不方便,例如在与 Cephadm 中 OSD 规格匹配的设备上临时停止 OSD。

在这个版本中,添加了命令,将 Cephadm 服务设置为标记为 受管或非受管服务例如,可以运行 ceph orch set-unmanaged mon 命令或 ceph orch set-managed mon 命令。这些新命令允许切换状态,而无需编辑和重新应用服务规格。

Bugzilla:2155625

用户现在可以使用 HAProxy 协议模式对 NFS 部署应用客户端 IP 限制

在以前的版本中,用户无法应用客户端 IP 限制,同时仍然在客户端和 NFS 之间使用 HAProxy。这是因为只有 HAProxy IP 才能被 NFS 识别,因此无法进行正确的客户端 IP 限制。

有了这个增强,可以通过在 ceph nfs cluster create 命令中传递 --ingress-mode=haproxy-protocol 参数,或者在 NFS 服务规格和对应的入口规格中设置 enable_haproxy_protocol: true 以 HAProxy 协议模式部署 NFS 服务。用户现在可以在其 NFS 部署中使用新的 HAProxy 协议模式对其 NFS 部署应用正确的客户端 IP 限制。

Bugzilla:2176300

3.2. Ceph 文件系统

quota.max_bytes 现在以更易理解的大小值设置

在以前的版本中,quota.max_bytes 值以字节为单位设置,从而导致非常大的大小值,这很难设置或更改。

在这个版本中,可以使用用户友好的值设置 quota.max_bytes 值,如 M/Mi、G/Gi 或 T/Ti。例如: 10GiB 或 100K。

Bugzilla:2091154

现在,只有没有 laggy OSD 时,laggy 客户端才会被驱除

在以前的版本中,MDS 中的监控性能转储有时会显示 OSD 为 laggy、objecter.op_laggyobjecter.osd_laggy,从而导致 laggy 客户端和 cap revokes 的脏数据不会被清除。

在这个版本中,如果 defer_client_eviction_on_laggy_osds 参数设置为 true,并且客户端会因为 laggy OSD 造成滞后,则客户端驱除不会发生,直到 OSD 不再被滞后。

Bugzilla:2228066

3.3. Ceph 仪表板

改进了概述仪表板使用面板

有了这个增强,图形和图表得到改进,以提高可用性。此外,还改进了搜索查询,以提供更好的结果。

Bugzilla:2238472

从仪表板升级集群

在以前的版本中,Red Hat Ceph Storage 集群只能通过命令行界面升级。

借助此项功能增强,您可以轻松地查看和升级存储集群的可用版本,并从 Ceph 仪表板跟踪升级进度。

Bugzilla:2232295

Ceph 控制面板有一个 Overview 页面,显示 Ceph 对象网关信息

在这个版本中,Ceph 仪表板的 Object Gateway 部分添加了一个 Overview 页面。在此 Overview 页面中,用户现在可以在 Ceph 控制面板中访问专用对象网关概述。此功能通过深入了解对象网关性能、存储使用情况和配置详情来提高用户体验。在集群中配置多站点时,用户也可以在此 Overview 页面中直接看到多站点同步状态。

Bugzilla:2233356

Ceph 仪表板显示块设备镜像的容量使用量信息

在这个版本中,Ceph 仪表板上的 Block > Images 表中会显示一个新的容量用量进度条。栏提供可见的使用信息,以及百分比。

此进度条仅适用于启用了 fast-diff 且没有快照镜像的块镜像。

Bugzilla:2151171

在控制面板中管理 Ceph 文件系统卷

在以前的版本中,Ceph 文件系统(CephFS)卷只能通过命令行界面管理。

在这个版本中,可以通过 Ceph 控制面板列出、创建、编辑和删除 CephFS 卷。

Bugzilla:2232297

在控制面板中管理 Ceph 文件系统子卷和子卷组

在以前的版本中,Ceph 文件系统(CephFS)子卷和子卷组只能通过命令行界面管理。

在这个版本中,可以通过 Ceph 控制面板列出、创建、编辑和删除 CephFS 子卷和子卷组。

Bugzilla:2232298

用户现在可以通过 CLI 和仪表板为 Ceph 对象网关主机指定 FQDN

在以前的版本中,选择短主机名来解决导致问题的 Ceph 对象网关主机名。

在这个版本中,在 Ceph 控制面板中,Ceph 对象网关的 rgw_dns_name 配置选项用于解析主机名(如果提供)。如果要为 Ceph 对象网关主机指定 FQDN,请在 CLI 中使用 rgw_dns_name 配置选项,然后仪表板获取它,并为它发出 Ceph 对象网关请求。

Bugzilla:2236109

在控制面板中配置 Ceph 对象网关多站点

借助此项功能增强,您不仅可通过命令行界面配置多站点 Ceph 对象网关,也可通过 Ceph 控制面板配置。仪表板现在支持创建、更新和删除对象网关实体,如 realm、zonegroup 和 zone。另外,此功能允许用户在两个远程集群间配置多站点,为数据复制和同步提供选项。

Bugzilla:2190355

3.4. Ceph 对象网关

radosgw-admin bucket 命令打印存储桶版本控制

在这个版本中,' radosgw-admin bucket stats ' 命令会将存储桶的版本状态显示为 enabledoff,因为可以在创建后启用或禁用版本控制。

Bugzilla:2068491

带有外部实体的 S3 WORM 认证

在这个版本中,S3 WORM 功能通过外部实体认证。这可让数据保留遵守 FSI 法规和安全对象存储部署,这样可保证数据检索,即使生产区域中的对象/存储桶已丢失或被破坏。

如需更多信息,请参阅 WORM 简介

现在,多站点同步实例会在其自身中动态分布工作负载

在以前的版本中,Ceph 对象网关多站点吞吐量通常仅限于单个实例的可用带宽。

借助此项功能增强,Ceph 对象网关多站点同步实例使用工作共享算法自行动态地并行化工作负载。因此,现在可扩展性显著提高,同步工作负载会在同步中平均划分。

Bugzilla:1740782

增强的存储桶粒度多站点同步策略

IBM Storage Ceph 现在支持 bucket 粒度多站点同步策略。

bucket 粒度多同步同步复制以前作为有限的版本提供。此功能增强为生产环境中的新和现有客户提供了完整的可用性。

此功能允许在每个存储桶级别上启用和禁用多站点 async 复制。此功能增强还增加所需的 RAW 空间总量,并提高站点之间的同步流量量。

如需更多信息,请参阅 Bucket 粒度同步策略

使用添加的 JSON、Parquet 和 CSV-format 对象支持,减少了对数据分析的对象存储查询时间

Ceph 对象网关现在支持在 JSON-format、Parquet-format 和 CSV-format 对象上运行,扩展 S3 的潜在应用,以广泛部署的分析框架,如 Apache Spark 和 Trino。这增加了有助于减少查询时间。

如需更多信息,请参阅 S3 从对象中选择内容

现在,可以使用多云网关(MCG)将数据转换到 Azure 云服务

在以前的版本中,将数据转换到 Azure 云服务是一个技术预览功能。有了这个增强,这个功能已准备好在生产环境中使用。

此功能支持 Ceph 对象网关存储环境中数据转换到 Azure 云,用于归档目的。

如需更多信息,请参阅 转换数据到 Azure 云服务。

增强了 S3 选择功能,以提高与 Trino 的集成

现在,对于 S3 选择操作,对象存储改进了与 Trino 的集成。这提高了 Ceph 对象网关中存储的半结构化数据集的查询时间。

有关更多信息,请参阅将 Ceph 对象网关与 Trino 集成。

3.5. RADOS

为 messenger v2 引入了新的性能计数器

在以前的版本中,在 messenger v2 中没有专用的性能计数器来核算加密流量。

有了这个增强,msgr_recv_encrypted_bytesmsgr_send_encrypted_bytes 会被引入,以分别考虑接收和发送可促进加密状态验证的字节。

Bugzilla:1846154

新的报告可用于延迟操作的子事件

在以前的版本中,较慢的操作被标记为延迟,但没有详细描述。

有了这个增强,您可以查看操作延迟子事件的详细描述。

Bugzilla:2240832

3.6. NFS Ganesha

支持 HAProxy 的 PROXY 协议

在这个版本中,HAProxy 使用负载均衡服务器。这允许负载均衡,并启用对客户端访问的客户端限制。

Bugzilla:2097490

第 4 章 程序错误修复

本节论述了在这个 Red Hat Ceph Storage 发行版本中修复的用户有严重影响的错误。此外,部分还包括之前版本中发现的固定已知问题的描述。

4.1. Ceph 管理器插件

Python 任务不再等待 GIL

在以前的版本中,Ceph 管理器守护进程在 Ceph MDS 的一些 RPC 过程中保存 Python 全局解释器锁定(GIL),因为其他 Python 任务会耗尽等待 GIL。

在这个版本中,GIL 在所有 libcephfs/librbd 调用过程中发布,其他 Python 任务可能会正常获取 GIL。

Bugzilla:2219093

4.2. Cephadm 实用程序

Cephadm 可以区分重复的主机名,不再将同一主机添加到集群中

在以前的版本中,cephadm 将一个短名称和其 FQDN 的主机视为两个单独的主机,从而导致同一主机添加到集群中两次。

在这个版本中,cephadm 识别主机短名称和 FQDN 之间的区别,且不会将主机重新添加到系统中。

Bugzilla:2049445

Cephadm 不再报告从主机中删除了不存在的标签

在以前的版本中,在 cephadm 中,在从主机中删除标签之前,没有检查是否存在一个标签。因此,ceph orch host label rm 命令会报告标签已从主机中删除,即使标签不存在。例如,拼写错误的标签。

在这个版本中,命令提供了明确的反馈,无论指定的标签已被成功删除。

Bugzilla:2113901

keepalive 守护进程通信并进入主/主要状态

在以前的版本中,keepalive 配置使用与 ceph orch host ls 命令报告的主机 IP 匹配的 IP 填充。因此,如果在与列出的主机 IP 不同的子网中配置了 VIP,keepalive 守护进程将无法进行通信,从而导致 keepalive 守护进程进入主要状态。

在这个版本中,keepalive 配置中的 keepalive peers 的 IP 地址被选择与 VIP 的子网匹配。现在,即使 VIP 位于与 ceph orch host ls 命令的主机 IP 不同的子网中,keepalive 守护进程也可以进行通信。在这种情况下,只有一个 keepalive 守护进程进入 primary 状态。

Bugzilla:2222010

停止崩溃守护进程现在具有正确的状态

在以前的版本中,当崩溃守护进程停止时,返回代码会给出一个 错误状态而不是预期的 停止状态,从而导致 systemd 认为服务失败。

在这个版本中,返回代码会给出预期的 停止状态

Bugzilla:2126465

HA 代理现在绑定到 VIP 上的前端端口

在以前的版本中,在 Cephadm 中,无法部署多个入口服务,与端口绑定相同的前端端口在所有主机网络上发生。

在这个版本中,多个入口服务可以存在于具有相同 frontend 端口的同一主机上,只要服务使用不同的 VIP,并且为规格中的 ingress 服务设置了不同的监控端口。

Bugzilla:2231452

4.3. Ceph 文件系统

用户空间 Ceph 文件系统(CephFS)在升级后按预期工作

在以前的版本中,用户空间 CephFS 客户端有时会在集群升级过程中崩溃。这是因为在用户空间端持有的 MDS 端的过时的功能位。

在这个版本中,确保用户空间 CephFS 客户端已更新了 MDS 功能位,允许客户端在集群升级后按预期工作。

Bugzilla:2247174

blocklist 和 eviction 客户端以获取大型会话元数据

在以前的版本中,MDS 中的大型客户端元数据构建有时会导致 MDS 切换到只读模式。

在这个版本中,导致构建被阻塞并被驱除的客户端,允许 MDS 按预期工作。

Bugzilla:2238663

取消链接和重新集成请求之间不再出现死锁

在以前的版本中,当修复 async dirop 错误时,以前的提交引入了一个回归问题,从而导致 unlink 和 reintegration 请求之间的死锁。

在这个版本中,旧提交会被恢复,未链接和重新集成请求之间没有死锁。

Bugzilla:2228635

客户端始终向 MDS 守护进程发送一个大写的撤销确认

在以前的版本中,当 MDS 守护进程向客户端发送一个大写的撤销请求时,如果客户端释放了上限并删除内节点,则客户端会直接丢弃请求,但 MDS 守护进程需要等待客户端中的大写撤销确认。因此,即使不需要大写的撤销,MDS 守护进程将继续等待来自客户端的确认,从而导致 MDS 守护进程健康状态警告。

在这个版本中,客户端总是向 MDS 守护进程发送一个大写的撤销,即使不存在内节点,MDS 守护进程不再卡住。

Bugzilla:2228000

MDS 锁定以正确顺序获取

在以前的版本中,MDS 会以错误的顺序获取元数据树锁定,从而导致 creategetattr RPC 请求死锁。

在这个版本中,锁定会按照 MDS 中的正确顺序获得,请求不再死锁。

Bugzilla:2235338

从 CephFS MDS 中跳过发送 split_realms 信息

在以前的版本中,split_realms 信息会错误地从 CephFS MDS 发送,它不能被 kclient 正确解码。因此,客户端不会关注 split_realms,并将其视为一个损坏的 snaptrace。

在这个版本中,split_realms 不会发送到 kclient,且不会发生崩溃。

Bugzilla:2228003

设置 标记后,快照数据不再丢失

在以前的版本中,在客户端中,如果在使用 Fb caps 时将写入标记设置为 '1',则会在任何脏上限时跳过,并重复使用现有的 capsnap,这是不正确的。因此,连续两个快照会被覆盖并丢失数据。

在这个版本中,写入 标记会被正确设置,不会丢失快照数据。

Bugzilla:2224241

线程重命名不再失败

在以前的版本中,在一些罕见的情况下,在重命名过程中,如果另一个线程试图查找 dst dentry,则可能会导致它出现不一致的结果,其中 src dentry 和 dst dentry 同时链接到同一内节点。因此,重命名请求将失败,因为两个不同的 dentry 已链接到同一内节点。

在这个版本中,线程会等待重命名操作完成,所有操作都可以正常工作。

Bugzilla:2227987

吊销请求不再卡住

在以前的版本中,在撤销请求前,这会增加 'seq',如果客户端释放了对应的上限,并且使用旧 seq 发送 cap update 请求,MDS 会错过检查 seq(s)和 cap 计算。因此,撤销请求会无限期卡住,并会抛出有关撤销请求不会从客户端响应的警告。

在这个版本中,会始终为撤销请求发送一个确认,它们不会再卡住。

Bugzilla:2227992

MDLog::_recovery_thread中安全处理错误

在以前的版本中,如果 MDS 已因为 QA 测试发布的 fs 失败而被阻止,则写入将失败。例如,由于此原因,QA test_rebuild_moved_file (tasks/data-scan)将失败。

在这个版本中,写入失败会在 MDLog::_recovery_thread 中安全处理。

Bugzilla:2228358

Ceph 客户端现在在发送警报前验证滞后的原因

在以前的版本中,Ceph 有时会发送 laggy OSD 的假警报警告。例如,由于 laggy OSD 而 X 客户端 laggy。这些警报在不验证因为 OSD 实际上是因为 OSD 造成的,而不是因为其他原因而发送。

在这个版本中,仅当某些客户端和 OSD 为 laggy 时,仅当一些客户端和 OSD 为 laggy 时,X 客户端会因为 laggy OSD 消息发出。

Bugzilla:2247187

4.4. Ceph 仪表板

Ceph 控制面板中守护进程性能的 Grafana 面板现在显示正确的数据

在以前的版本中,标签导出器与 Grafana 仪表板中使用的查询不兼容。因此,Ceph Dashboard 中 Ceph 守护进程性能的 Grafana 面板为空。

在这个版本中,标签名称与 Grafana 仪表板查询兼容,Grafana 面板用来显示正确的数据。

Bugzilla:2241309

编辑仪表板中禁用的分层和深度扁平化功能

在以前的版本中,在 Ceph 仪表板中,允许编辑分层和深度扁平化功能,这些功能不可变,从而导致错误 - rbd: failed to update image features: (22) Invalid argument

在这个版本中,编辑分层和深度扁平化功能被禁用,所有功能可以正常工作。

Bugzilla:2166708

ceph_daemon 标签添加到 Ceph 导出器中标记的性能计数器

在以前的版本中,在 Ceph exporter 中,将 ceph_daemon 标签添加到标记的性能计数器中会被丢失。

在这个版本中,ceph_daemon 标签添加到 Ceph 导出器中标记的性能计数器。Ceph 守护进程 标签现在存在于 Ceph 对象网关性能指标的所有 Ceph 守护进程性能指标和 instance_id 标签上。

Bugzilla:2240972

只有在启用了其父镜像的分层时,才会启用保护快照

在以前的版本中,即使其父镜像禁用了分层,也会启用保护快照。这会导致在尝试保护禁用分层的镜像快照时出现错误。

在这个版本中,如果禁用镜像分层,则禁用保护快照。只有在启用了其父镜像的分层时,才会启用保护快照。

Bugzilla:2166705

新添加的主机详情现在在集群扩展查看页面中可见

在以前的版本中,用户无法查看上一步中添加的主机的信息。

在这个版本中,在上一步中添加的主机可以在集群扩展查看页面中可见。

Bugzilla:2232567

Ceph 对象网关页面现在在 Ceph 仪表板中正确加载。

在以前的版本中,与不正确的正则表达式匹配会导致在尝试加载 Ceph 对象网关页面时仪表板中断。Ceph 对象网关页面不会加载特定的配置,如 rgw_frontends,如 beast port=80 ssl_port=443

在这个版本中,代码库中的正则表达式匹配被更新,Ceph 对象网关页面会加载任何问题。

Bugzilla:2238470

4.5. Ceph 对象网关

Ceph 对象网关守护进程不再崩溃,其中 phoneNumbers.addrNULL

在以前的版本中,由于语法错误,对 select * 的查询从 s3object[*].phonenumbers,其中 phoneNumbers.addr 为 NULL; 会导致 Ceph Object Gateway 守护进程崩溃。

在这个版本中,发现并报告错误的语法,不再导致守护进程崩溃。

Bugzilla:2230234

Ceph 对象网关守护进程不再使用 cast (trim) 查询崩溃

在以前的版本中,由于在查询中的修剪跳过类型检查,在查询中的 选择 cast (leading 132140533849470.72 from _3) from s3object; float)from s3object;,Ceph Object Gateway 守护进程会崩溃。

在这个版本中,检查了类型,并找出是否有错误并报告,不再导致守护进程崩溃。

Bugzilla:2248866

Ceph 对象网关守护进程不再在 s3select JSON 查询中使用 "where" 子句崩溃。

在以前的版本中,由于语法错误,s3select JSON 查询带有 "where" 子句将导致 Ceph 对象网关守护进程崩溃。

在这个版本中,发现并报告错误的语法,不再导致守护进程崩溃。

Bugzilla:2225434

Ceph 对象网关守护进程不再使用 s3 崩溃,选择 phonenumbers.type query

在以前的版本中,由于语法错误,从 s3object[*].phonenumbers; 选择 phonenumbers.type 的查询会导致 Ceph 对象网关守护进程崩溃。

在这个版本中,发现并报告错误的语法,不再导致守护进程崩溃。

Bugzilla:2230230

Ceph 对象网关守护进程验证参数,不再崩溃

在以前的版本中,由于缺少参数的 Operator,当尝试访问不存在的参数时,守护进程会崩溃。

在这个版本中,守护进程会验证每个 Operator 的参数数量,守护进程不再崩溃。

Bugzilla:2230233

Ceph 对象网关守护进程不再使用 trim 命令崩溃

在以前的版本中,由于在查询中修剪跳过类型检查,查询中的 trim (LEADING '1' from '111abcdef111') from s3object;,Ceph Object Gateway 守护进程会崩溃。

在这个版本中,检查了类型,并识别错误并报告,不再导致守护进程崩溃。

Bugzilla:2248862

如果输入了大值,Ceph 对象网关守护进程不再崩溃

在以前的版本中,由于值条目太大,对 select DATE_DIFF (SECOND, utcnow (),date_add (year,1111111111111111111, utcnow ()) 的查询会导致 Ceph 对象网关守护进程崩溃。

在这个版本中,会识别崩溃并报告错误。

Bugzilla:2245145

Ceph 对象网关现在解析 CSV 对象,而不处理失败

在以前的版本中,Ceph 对象网关无法正确解析 CSV 对象。当进程失败时,请求将停止,且没有正确的错误消息。

在这个版本中,CSV 解析器可以正常工作,并处理没有故障的 CSV 对象。

Bugzilla:2241907

恢复以连字符开头的对象版本实例 ID

在以前的版本中,当恢复版本存储桶上的索引时,带有以连字符开头的实例 ID 的对象版本无法正确恢复到存储桶索引中。

在这个版本中,以连字符开头的实例 ID 现在被识别并恢复到存储桶索引中。

Bugzilla:2247138

多删除功能通知可以正常工作

在以前的版本中,由于内部错误,如代码中的竞争条件,Ceph 对象网关会在执行多删除功能并且为存储桶删除设置通知时意外响应。

在这个版本中,多删除功能通知可以正常工作。

Bugzilla:2239173

RADOS 对象多部分上传工作流可以正确完成

在以前的版本中,在某些情况下,作为上一上传中创建的多部分上传工作流对象一部分的 RADOS 对象会导致某些部分在上传中完成或停止。

在这个版本中,在多部分上传工作流完成后,所有部分都会正确上传。

Bugzilla:2008835

属于与存储桶所有者不同的租户的用户现在可以管理通知

在以前的版本中,属于与存储桶所有者不同的租户的用户无法管理通知。例如,修改、获取或删除。

在这个版本中,具有正确权限的任何用户都可以管理存储桶的通知。

Bugzilla:2180415

删除对存储桶执行 NFS setattr 的功能

在以前的版本中,通过导出作为 NFS 目录更改存储桶中存储的属性会在 Ceph 对象网关存储桶信息缓存中触发不一致。因此,后续的通过 NFS 访问存储桶会失败。

在这个版本中,删除了对存储桶执行 NFS setattr 的功能,并尝试对存储桶执行 NFS setattr,例如 chown 对目录执行 NFS setattr 无效。

注意

在以后的版本中可能会改变。

Bugzilla:2241145

添加了可重新划分存储桶布局的测试以防止崩溃

在以前的版本中,通过添加存储桶布局代码来启用动态存储桶重新划分,因此没有检查在动态、即时或重新调度过程中支持存储桶布局的重新划分。因此,如果动态 bucket 重新划分,Ceph 对象网关守护进程会崩溃,而 radosgw-admin 命令会在立即或调度重新划分时崩溃。

在这个版本中,添加了一个可重新划分存储桶布局的测试,崩溃不再发生。当立即和调度重新划分发生时,会显示错误消息。当发生动态存储桶重新划分时,会跳过存储桶。

Bugzilla:2242987

用户 modify -placement-id 命令现在可以与空 --storage-class 参数一起使用

在以前的版本中,如果在运行 'user modify --placement-id' 命令时没有使用 --storage-class 参数,命令将失败。

在这个版本中,--storage-class 参数可以留空,而不会导致命令失败。

Bugzilla:2228157

初始化现在只取消注册之前注册的监控

在以前的版本中,在某些情况下,初始化中的错误可能会导致尝试取消注册永不注册的监视。这会导致一些命令行工具无法预测。

在这个版本中,只有之前注册的监视才会取消注册。

Bugzilla:2224078

现在,多站点复制会在区间维护一致的状态,并防止覆盖已删除的对象

在以前的版本中,多站点复制中的一个竞争条件允许删除的对象从另一个站点复制,从而导致区域之间的状态不一致。因此,接收工作负载的区域最终会结束一些应该被删除的对象。

在这个版本中,添加了一个自定义标头来传递目标区的 trace 字符串,然后针对对象的复制追踪进行检查。如果存在匹配项,则返回 304 响应,防止完整同步覆盖已删除的对象。

Bugzilla:2219427

Ceph 对象网关的内存占用量显著降低

在以前的版本中,在某些情况下,与 Lua 脚本集成相关的内存泄漏会导致过量 RGW 内存增长。

在这个版本中,泄漏已被修复,Ceph 对象网关的内存占用量显著降低。

Bugzilla:2032001

在版本的对象操作过程中,存储桶索引性能不再会受到影响

在以前的版本中,在某些情况下会出现空间泄漏,并降低存储桶索引性能。这是因为与对象逻辑头(OLH)更新相关的竞争条件(OLH)与更新期间的存储桶当前版本计算相关。

在这个版本中,OLH 更新操作中的逻辑错误已被修复,在版本的对象操作过程中不会泄漏空间。

Bugzilla:2219467

删除标记可以与 LC 规则正常工作

在以前的版本中,优化被试图重复使用 sal 对象句柄。因此,无法按预期生成删除标记。

在这个版本中,对 get-object-attributes 重新使用 sal 对象句柄的更改会被恢复,删除标记会被正确创建。

Bugzilla:2248116

SQL 引擎不再导致 Ceph 对象网关使用非法计算崩溃

在以前的版本中,在某些情况下,SQL 引擎会抛出一个没有处理的异常,从而导致 Ceph 对象网关崩溃。这是因为日期操作中的非法 SQL 计算所致。

在这个版本中,带有发出的错误消息处理异常,而不是崩溃。

Bugzilla:2246150

来自 s3object 的 select trim (LEADING '1' from '111abcdef111'); 查询现在可以在查询中使用大写时工作

在以前的版本中,如果 LEADINGTRAILING 在所有大写中编写,则字符串无法正确读取,从而导致一个浮点数类型被称为字符串类型,从而导致输出错误。

在这个版本中,在完成查询前会引入类型检查,LEAD INGTRAILING 可以正常工作。

Bugzilla:2245575

JSON 解析现在可用于 从 s3object[*] limit 1 查询中选择 _1.authors.name

在以前的版本中,从 s3object[*] limit 1 中的 select _1.authors.name 中给出的匿名数组会给出错误的值输出。

在这个版本中,即使向查询提供了匿名阵列,JSON 解析也可以正常工作。

Bugzilla:2236462

4.6. 多站点 Ceph 对象网关

客户端不再重置不正确的 Content-Length 标头字段值的连接

在以前的版本中,当向客户端返回错误页面时,如 404 或 403 条件,缺少 </ body></html > 关闭标签,虽然它们在请求的 Content-Length 标头字段值中考虑了其存在性。因此,根据客户端,客户端和 Rados 网关之间的 TCP 连接将由客户端上的 RST 数据包关闭,而在正常情况下,来自客户端的 RST 数据包将关闭,而不是正常情况下的 FIN 数据包。

在这个版本中,在所有需要条件下将 </body & gt; 和 </html > 关闭标签发送到客户端。Content-Length 标头字段的值可以正确地代表发送到客户端的数据长度,客户端不再重置连接以不正确的 Content-Length 原因。

Bugzilla:2189412

同步通知会使用正确的对象大小发送

在以前的版本中,当对象在区域间同步并配置了同步通知时,通知会以零作为对象大小发送。

在这个版本中,同步通知会使用正确的对象大小发送通知。

Bugzilla:2238921

根据允许的区域和过滤器,多站点同步可以正确地过滤和检查

在以前的版本中,当使用多站点同步策略时,某些命令(如 radosgw-admin sync status )不会过滤 restricted zones 或 empty sync group name。缺少过滤器会导致这些命令的输出被误导。

在这个版本中,不再检查或报告受限区,并过滤掉状态结果中的空同步组名称。

Bugzilla:2159966

4.7. RADOS

ceph version 命令不再返回空版本列表

在以前的版本中,如果集群中没有部署 MDS 守护进程,ceph version 命令会为代表版本不一致的 MDS 守护进程返回一个空版本列表。如果没有在集群中部署守护进程,则不应显示它。

在这个版本中,如果守护进程版本映射为空,并且 ceph version 命令只返回集群中部署的 Ceph 守护进程的版本信息,则会跳过守护进程版本信息。

Bugzilla:2110933

ms_osd_compression_algorithm 现在显示正确的值

在以前的版本中,ms_osd_compression_algorithm 中的不正确的值显示了算法列表而不是默认值,从而导致通过列出一组算法而不是一个算法造成差异。

在这个版本中,使用 ms_osd_compression_algorithm 命令时仅显示默认值。

Bugzilla:2155380

MGR 不再与集群断开连接,而不进行重试

在以前的版本中,在网络问题过程中,集群会在不重试的情况下与 MGR 断开连接,并且 monclient 身份验证会失败。

在这个版本中,在隐藏和连接都失败时,会添加重试。

Bugzilla:2106031

client_mount_timeout增加超时重试值

在以前的版本中,由于 client_mount_timeout 配置错误处理,对客户端进行监控器验证的超时时间最多可达到 10 次重试忽略其高默认值 5 分钟。

在这个版本中,可配置的以前的单重试行为会被恢复,身份验证超时可以正常工作。

Bugzilla:2233800

4.8. RBD 镜像功能

降级的镜像快照会根据镜像的提升而被删除

在以前的版本中,由于一个实现缺陷,降级的镜像快照不会在镜像提升后删除,无论是在次要镜像还是主镜像上。因此,降级的镜像快照会降级并消耗存储空间。

在这个版本中,实现缺陷已被修复,适当的降级镜像快照会根据镜像提升而被删除。

Bugzilla:2237304

现在,当主镜像被删除时,非主镜像会被删除

在以前的版本中,rbd-mirror 守护进程镜像 replayer 中的竞争条件会阻止在主镜像被删除时删除非主镜像。因此,非主镜像不会被删除,并且使用存储空间。

在这个版本中,rbd-mirror 镜像 replayer 被修改,以消除竞争条件。现在,当主镜像被删除时,非主镜像会被删除。

Bugzilla:2230056

librbd 客户端可以正确地将块列表错误传播到调用者

在以前的版本中,当 rbd_support 模块的 RADOS 客户端被阻塞列表时,模块的 mirror_snapshot_schedule 处理程序并不总是正确关闭。处理程序的 librbd 客户端不会传播 block-list 错误,从而停止处理程序的关闭。这会导致 mirror_snapshot_schedule 处理程序失败,以及 rbd_support 模块,以从重复的客户端 block-listing 中自动恢复。rbd_support 模块在其客户端重复列表后停止调度镜像快照。

在这个版本中,librbd 客户端在其专用锁定收购和处理块列表之间的竞争条件已被修复。这允许 librbd 客户端正确将 block-listing 错误传播到调用者,例如 mirror_snapshot_schedule 处理程序,同时等待获取专用锁定。mirror_snapshot_schedule 处理程序和 rbd_support_module 会自动从重复的客户端 block-listing 中恢复。

Bugzilla:2237303

第 5 章 技术预览

本节论述了在这个 Red Hat Ceph Storage 发行版本中修复的用户有严重影响的错误。此外,部分还包括之前版本中发现的固定已知问题的描述。

重要

红帽产品服务级别协议(SLA)不支持技术预览功能,且其功能可能并不完善,因此红帽不建议在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。如需了解更多详细信息,请参阅红帽技术预览功能的支持范围。

5.1. Crimson OSD

新实现核心 Ceph 对象存储守护进程(OSD)组件的 Crimson-OSD 替换 ceph-osd

在这个版本中,下一代 ceph-osd 是为多核可扩展性实现的,并通过快速网络和存储设备提高性能,采用包括 DPDK 和 SPDK 的顶级技术。Crimson 旨在与早期版本的 OSD 守护进程与类 ceph-osd 兼容。

如需更多信息,请参阅 Crimson (技术预览)。

5.2. Ceph 对象网关

Red Hat Ceph Storage 中的对象存储存档区域

在这个版本中,存档区域从 production 区域中接收所有对象,并保留每个对象的每个版本,为用户提供包含对象完整历史记录的对象目录。这提供了一个安全的对象存储部署,它保证了数据检索,即使 production 区域中的对象/存储桶已丢失或被破坏。

如需更多信息,请参阅配置归档区(技术预览)。

使用每个存储桶启用和禁用存档区的同步,保护生产集群外的对象存储数据

作为管理员,您现在可以从归档区恢复主站点上存在的任何对象版本。如果数据丢失或异常软件攻击,可以在需要时访问所有对象的有效版本。

如需更多信息,请参阅配置归档区(技术预览)。

5.3. RADOS

使用读取平衡 Red Hat Ceph Storage 集群

在这个版本中,为了确保每个设备获得主 OSD 的公平共享,以便读取请求在集群中的 OSD 之间分布,均匀地读取负载均衡器。读平衡成本较低,操作会快,因为没有涉及数据移动。读负载平衡仅支持复制池。不支持纠删代码池。

有关更多信息,请参阅使用读取负载均衡器(技术预览)和 Ceph 重新平衡和恢复 平衡 Red Hat Ceph Storage 集群

第 6 章 已知问题

本节记录了本版本的 Red Hat Ceph Storage 中已知的问题。

6.1. Cephadm 实用程序

有些 NFS 守护进程可能无法生成日志

目前,在带有多个 NFS 守护进程的 cephadm 部署的 NFS 服务中,只有一个服务 IO,从而导致用户跨越生成任何日志的 NFS 守护进程。现在,还没有临时解决方案。

Bugzilla:2251653

防止在解锁时 Mutex 失败。

在以前的版本中,当试图解锁没有锁定的 Mutex 时,MMtex 会崩溃。

作为临时解决方案,请在解锁前验证 Mutex 是否锁定在第一个位置。

Bugzilla:2216442

ceph orch ps 命令不显示监控堆栈守护进程的版本

cephadm 中,由于版本 grabbing 代码目前与下游监控堆栈容器不兼容,监控堆栈守护进程的版本 grabbing 会失败,如 node-exporterprometheusalertmanager

对多部分上传进行加密需要针对部分边界进行特殊处理,因为每个部分都单独上传和加密。在多站点中,对象是加密的,多部分上传作为单个部分复制。因此,复制的副本会丢失正确解密数据所需的原始部分边界知识,从而导致这个崩溃。

作为临时解决方案,如果用户需要查找版本,守护进程的容器名称会包括版本。

Bugzilla:2125382

6.2. Ceph 仪表板

Ceph 对象网关页面不会在多站点配置后加载

Ceph 对象网关页面不会加载,因为控制面板无法在多站点配置过程中查找新域的正确访问密钥和 secret 密钥。

作为临时解决方案,请使用 ceph dashboard set-rgw-credentials 命令手动更新密钥。

Bugzilla:2231072

6.3. Ceph 对象网关

JSON select count () from S3Object[]; query is lagging and cause high CPU usage

当从 S3Object[ ]; 查询运行 select count () 时,与 CSV 对象查询相比,时间滞后和 radosgw CPU 使用率非常高。

作为临时解决方案,在运行 JSON 查询时,使用 count () 而不是 count cycles 查询。

Bugzilla:2240974

使用 s3select 处理 JSON 对象时,s3select 和 Trino 会失败

当 Trino 使用 s3select 请求处理 JSON 对象时,请求会失败,从而导致 Trino 失败。这会发出错误的 json dataType 在 Ceph 对象网关日志中使用 DOCUMENT 错误消息。

作为临时解决方案,有时可以直接使用 s3select 请求,而不使用 Trino。

Bugzilla:249756

第 7 章 异步勘误更新

这部分论述了 z-stream 版本的程序错误修复、已知问题和增强。

7.1. Red Hat Ceph Storage 7.0z2

Red Hat Ceph Storage release 7.0z2 现已正式发布。此更新包括的程序错误修正信息包括在 RHBA-2024:2743RHBA-2024:2744 公告中。

7.1.1. 功能增强

7.1.1.1. Ceph 文件系统

snap-schedule 模块保留定义的快照数

在这个版本中,snap-schedule 模块支持新的保留规格来保留用户定义的快照数量。例如,如果您指定了 50 个快照来保留快照创建节奏,则在创建新快照后都会修剪快照。保留的实际快照数量小于指定的最大数量。在这个示例中,保留 49 快照,以便在下次迭代时可在文件系统中创建 1 个快照。保留的快照可避免破坏系统配置的 mds_max_snaps_per_dir 的限值。

重要

在配置 mds_max_snaps_per_dir 和快照调度限制时要小心,以避免因为文件系统在 mds_max_snaps_per_dir 限制为 breached 时返回 "Too many links" 错误,以避免意外取消激活快照调度。

Bugzilla:2227809

dump dir 命令简介

在这个版本中,引入了一个新的命令 dump dir 来转储目录信息。

Bugzilla:2269686

带有选项 --subvol 的子卷的快照调度现在可用

在这个版本中,用户可以使用 --subvol 参数为子卷调度快照,以及非默认子卷组。

Bugzilla:2425085

7.1.1.2. Ceph 指标

计数器转储 命令的输出现在被分成不同的部分

在这个版本中,Ceph 对象网关操作指标标记的性能计数器被分成不同的部分,用于 用户操作计数器bucket 操作 计数器。

Bugzilla:2251055

7.1.1.3. Ceph Objecy Gateway

引入新配置变量 rgw_op_counters_dump_expiration

在这个版本中,引入了一个新的配置变量 rgw_op_counters_dump_expiration。这个新变量控制标记的性能计数器将从 ceph counter dump 命令发出的秒数。

rgw_op_counters_dump_expiration 数后,如果没有更新存储桶或用户标记计数器,它将不会显示在 ceph 计数器 转储的 json 输出中。

要将此过滤 OFF 设置为 0,rgw_op_counters_dump_expiration 的值必须设置为 0。

注意

在运行时不得更改 rgw_op_counters_dump_expiration 的值。

Bugzilla:2271715

S3 操作的 perf 计数器现在可以发送 Prometheus

借助此项功能增强,您可以使用 Ceph 导出器守护进程向 Prometheus 发送一个新的标记计数器,并可用于常见的 S3 操作,如 PUT,每个存储桶或每个用户都可以视觉化。

使用 ceph counter dump 命令发出由用户或存储桶标记的 S3 操作的 perf 计数器。

Bugzilla:1929346

7.1.2. 已知问题

7.1.2.1. 多站点 Ceph 对象网关

归档区环境中的大型 omap 警告

目前,在归档区环境中,由于存储桶中的多个版本写入单个存储桶索引分片对象,您可能会看到大型 omap 警告。建议将 'max_objs_per_shard' 配置选项减少到 50,000 以考虑归档区上的 omap olh 条目。这有助于为每个存储桶索引分片对象保留 omap 条目的数量,以防止大量 omap 警告。

Bugzilla:2260117

7.1.2.2. Ceph 仪表板

当尝试从远程集群导入多站点配置时,令牌导入会抛出错误

现在,因为这个导入多站点配置在提交表单时给出错误,多站点周期信息不会返回域名。临时解决方案 :使用命令行界面导入多站点配置。

Bugzilla:2273911

7.1.2.3. 安全性

grafana-2023-49569 的 CVE-2023- 49569 存在于 Ceph 7.0z2 发行版本中

Ceph 7.0z2 中存在 CVE,因为 Ceph 7.0 发行版本使用比 Ceph 6.1 发行版本中可用的 Grafana 的旧版本。

Ceph 7.0 使用 Grafana 9.4.12,而 6.1z6 发行版本位于修复此 CVE 的 Grafana 10.4.0 中。

Bugzilla:2271879

7.2. Red Hat Ceph Storage 7.0z1

Red Hat Ceph Storage release 7.0z1 现已正式发布。此更新包括的程序错误修正信息包括在 RHBA-2024:1214RHBA-2024:1215 公告中。

7.2.1. 功能增强

7.2.1.1. Ceph 块设备

改进了 rbd_diff_iterate2 () API 性能

在以前的版本中,如果专用锁定在与 fast-diff 模式开头的时间(fromsnapname == NULL)以 fast-diff 模式(entire_object == true )时,如果启用了 fast-diff 镜像功能并有效,则 RBD diff-iterate 无法保证执行。

在这个版本中,rbd_diff_iterate2 () API 性能有所改进,从而提高了 QEMU 实时磁盘同步和备份用例的性能,其中启用了 fast-diff 镜像功能。

Bugzilla:2259052

7.2.1.2. Ceph 对象网关

rgw-restore-bucket-index 工具现在可以为版本控制存储桶恢复存储桶索引

有了这个增强,rgw-restore-bucket-index 工具现在可以尽可能广泛地工作,能够恢复未版本的存储桶以及版本化的存储桶。

Bugzilla:2240992

7.2.2. 已知问题

7.2.2.1. 多站点 Ceph 对象网关

使用 S3 客户端 SDK 的一些 Ceph 对象网关应用程序可能会遇到意外错误

目前,如果请求外部校验和,使用 S3 客户端 SDK 的一些应用程序可能会在上传零长度对象时遇到意外的 403 错误。

作为临时解决方案,请使用带有 SSL 的 Ceph 对象网关服务。

Bugzilla:2256969

7.2.3. 删除的功能

7.2.3.1. Ceph 对象网关

不再使用 Prometheus 指标

此发行版本引入了新的功能丰富的 perf 计数器,替换了之前使用的对象网关相关的 Prometheus 指标。在完成删除前,会引入新的指标,以允许重叠的使用。

重要

目前,Prometheus 指标在这一转换过程中仍可与较新的指标一起使用。但是,Red Hat Ceph Storage 8.0 发行版本中会完全删除 Prometheus 指标。

使用下表了解 7.0z1 及之后的版本中的替换指标。

表 7.1. 替换指标

弃用的 Prometheus 指标

7.0z1 中的新指标

ceph_rgw_get

ceph_rgw_op_global_get_obj_ops

ceph_rgw_get_b

ceph_rgw_op_global_get_obj_bytes

ceph_rgw_get_initial_lat_sum

ceph_rgw_op_global_get_obj_lat_sum

ceph_rgw_get_initial_lat_count

ceph_rgw_op_global_get_obj_lat_count

ceph_rgw_put

ceph_rgw_op_global_put_obj_ops

cdeph_rgw_put_b

ceph_rgw_op_global_put_obj_bytes

ceph_rgw_put_initial_lat_sum

ceph_rgw_op_global_put_obj_lat_sum

ceph_rgw_put_initial_lat_count

ceph_rgw_op_global_put_obj_lat_count

第 8 章 源

更新的 Red Hat Ceph Storage 源代码软件包位于以下位置:

法律通告

Copyright © 2024 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.