7.1 发行注记


Red Hat Ceph Storage 7.1

功能增强、已知问题和其他重要发行信息的发行注记。

Red Hat Ceph Storage Documentation Team

摘要

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

使开源包含更多

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。我们从这四个术语开始: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.1 包含 Red Hat Ceph Storage 团队的许多贡献。此外,Ceph 社区中个人和组织的贡献质量和数量有显著的增长。我们借此感谢 Red Hat Ceph Storage 团队的所有成员、Ceph 社区中的所有个人贡献者,并且包括但不限于:

  • Intel®
  • Fujitsu ®
  • UnitedStack
  • Yahoo ™
  • Ubuntu Kylin
  • Mellanox ®
  • CERN ™
  • Deutsche Telekom
  • Mirantis ®
  • SanDisk ™
  • SUSE ®

第 3 章 新功能

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

3.1. Cephadm 实用程序

用户现在可以在 idmap.conf中配置各种 NFS 选项

有了这个增强,在 idmap.conf 中引入了配置 NFS 选项的功能,如 "Domain", "Nobody-User", "Nobody-Group" 和 like like。

Bugzilla:2068026

现在,可以通过 NFS 的新 haproxy 协议模式进行客户端 IP 限制

在以前的版本中,客户端 IP 限制无法在通过 NFS 使用 haproxy 的设置中工作。

在这个版本中,Cephadm 部署的 NFS 支持 haproxy 协议。如果用户将 enable_haproxy_protocol: True 添加到其 ingress 和 haproxy 规格,或将 pass-ingress-mode haproxy-protocol 添加到 ceph nfs cluster create 命令,则 NFS 守护进程将使用 haproxy 协议。

Bugzilla:2068030

用户现在必须输入用户名和密码来访问 Grafana API URL

在以前的版本中,可以连接到 Grafana API URL 的任何人都可以访问它,而无需任何凭证。

在这个版本中,Cephadm 部署的 Grafana 使用用户名和密码设置,供用户访问 Grafana API URL。

Bugzilla:2079815

带有 NFS 后端的 Ingress 服务现在可以设置为只使用 keepalived 为 NFS 守护进程创建一个虚拟 IP (VIP)来绑定,而无需涉及 HAProxy 层

在这个版本中,带有 NFS 后端的 ingress 服务只能设置为使用 keepalived 为要绑定到的 NFS 守护进程创建一个虚拟 IP,而无需涉及 HAProxy 层。当 NFS 守护进程被移动,且客户端不需要使用不同的 IP 来连接它时,这非常有用。

Cephadm 部署 keepalived 来设置 VIP,然后 NFS 守护进程绑定到该 VIP。这也可以通过 ceph nfs cluster create 命令使用 NFS 模块进行设置,使用 flags- ingress --ingress-mode keepalive-only --virtual-ip <VIP>

规格文件类似如下:

service_type: ingress
service_id: nfs.nfsganesha
service_name: ingress.nfs.nfsganesha
placement:
  count: 1
  label: foo
spec:
  backend_service: nfs.nfsganesha
  frontend_port: 12049
  monitor_port: 9049
  virtual_ip: 10.8.128.234/24
  virtual_interface_networks: 10.8.128.0/24
  keepalive_only: true

这包括 keepalive_ony: true 设置。

NFS 规格如下:

networks:
    - 10.8.128.0/21
service_type: nfs
service_id: nfsganesha
placement:
  count: 1
  label: foo
spec:
  virtual_ip: 10.8.128.234
  port: 2049

这包括与入口规格中的 VIP 匹配的 virtual_ip 字段。

Bugzilla:2089167

HAProxy 守护进程仅绑定到附带的 keepalived 创建的 VIP 上的前端端口

在这个版本中,HAProxy 守护进程将只绑定到由附带 keepalived 创建的 VIP 的前端端口,而不是 0.0.0.0。Cephadm 部署的 HAProxy 将将其前端端口绑定到 VIP,允许其他服务(如 NFS 守护进程)绑定到同一节点上的其他 IP 端口 2049。

Bugzilla:2176297

现在,ingress 服务的 HAProxy 健康检查间隔可以自定义

在以前的版本中,在某些情况下,两个默认健康检查间隔太频繁,并导致不必要的流量。

在这个版本中,ingress 服务的 HAProxy 健康检查间隔可以自定义。通过应用包含 health_check_interval 字段的 ingress 规格,服务的每个 HAProxy 守护进程生成的 HAProxy 配置将包括健康检查间隔的值。

Ingress 规格文件:

service_type: ingress
service_id: rgw.my-rgw
placement:
  hosts: ['ceph-mobisht-7-1-07lum9-node2', 'ceph-mobisht-7-1-07lum9-node3']
spec:
  backend_service: rgw.my-rgw
  virtual_ip: 10.0.208.0/22
  frontend_port: 8000
  monitor_port: 1967
  health_check_interval: 3m

有效间隔单位为: microseconds ms : milliseconds s : seconds m : minutes h : hours d : days

Bugzilla:2199129

Grafana 现在绑定到主机上的特定网络中的 IP,而不是始终绑定到 0.0.0.0

在这个版本中,使用包含网络部分的 Grafana 规格文件与 Grafana 绑定到 IP 的网络,以及规格的 "spec" 部分中包含的 only_bind_port_on_networks: true,Cephadm 会将 Grafana 守护进程配置为绑定到该网络中的 IP,而不是 0.0.0.0。这可让用户使用 Grafana 用于另一个服务但在主机上的不同 IP 的同一端口。如果它是一个规格更新,不会导致它们全部被移动,则可以运行 ceph orch redeploy grafana 来获取对设置的更改。

Grafana 规格文件:

service_type: grafana
service_name: grafana
placement:
  count: 1
networks:
  192.168.122.0/24
spec:
  anonymous_access: true
  protocol: https
  only_bind_port_on_networks: true

Bugzilla:2233659

现在,所有 bootstrap CLI 参数都可用于 cephadm-ansible 模块

在以前的版本中,只有 bootstrap CLI 参数的子集可用,它限制了模块用量。

在这个版本中,所有 bootstrap CLI 参数都可用于 cephadm-ansible 模块。

Bugzilla:2246266

Prometheus scrape 配置被添加到 nfs-ganesha 导出器

在这个版本中,Prometheus 提取配置被添加到 nfs-ganesha 导出器中。这样做可将 nfs-ganesha prometheus exporter 公开的指标提取到 Ceph 中运行的 Prometheus 实例中,这将由 Grafana Dashboards 进一步使用。

Bugzilla:2263898

Prometheus 现在绑定到主机上的特定网络中的 IP,而不是始终绑定到 0.0.0.0

在这个版本中,使用包含网络部分的 Prometheus 规格文件与 Prometheus 绑定到 IP 的网络,以及规格的 "spec" 部分中包含的 only_bind_port_on_networks: true,Cephadm 会将 Prometheus 守护进程配置为绑定到该网络中的 IP,而不是 0.0.0.0。这可让用户使用 Prometheus 用于另一个服务但在主机上的不同 IP 的同一端口。如果它是一个规格更新,不会导致它们全部被移动,则可以运行 ceph orch redeploy prometheus 来获取对设置的更改。

Prometheus 规格文件:

service_type: prometheus
service_name: prometheus
placement:
  count: 1
networks:
- 10.0.208.0/22
spec:
  only_bind_port_on_networks: true

Bugzilla:2264812

用户现在可以挂载快照(在 .snap 目录中导出)

有了这个增强,用户可以挂载快照(在 .snap 目录中导出)以 RO 模式查看。使用 NFS MGR 模块创建的 NFS 导出现在包含 cmount_path 设置(无法配置,并应保留为"/"),允许挂载快照。

Bugzilla:2245261

zonegroup 主机名现在可以使用 ceph rgw realm bootstrap…​ 命令中提供的规格文件来设置

在这个版本中,在继续到 Ceph 对象网关多站点设置的自动化中,用户现在可以通过 bootstrap 命令 ceph rgw realm bootstrap…​ 传递的初始规格文件来设置 zonegroup 主机名。

例如,

zonegroup_hostnames:
- host1
- host2

如果用户将上述部分添加到 realm bootstrap 命令传递的 Ceph 对象网关规范文件的"特定"部分中,Cephadm 将在 Ceph 对象网关模块完成 realm/zonegroup/zone 的规范中定义的 zonegroup 中自动将这些主机名添加到规范中定义的 zonegroup 中。请注意,这可能需要几分钟时间来看 Cephadm 模块当前完成的其他活动。

3.2. Ceph 仪表板

CephFS 快照调度在 Ceph 仪表板上管理

在以前的版本中,CephFS 快照调度只能通过命令行界面管理。

借助此项功能增强,可以列出、创建、编辑、激活、停用和移除 CephFS 快照调度。

Bugzilla:2264145

Ceph 仪表板现在在 Ceph 仪表板中支持基于 NFSv3 的导出

在这个版本中,Ceph 控制面板中启用了对基于 NFSv3 的导出管理的支持。

Bugzilla:2267763

为 CephFS 管理 Ceph 用户的能力

在这个版本中,添加了为 CephFS 管理 Ceph 用户的功能。这提供了从文件系统视图为卷、子卷组和子卷管理用户权限的功能。

Bugzilla:2271110

添加了多站点同步状态的新 API 端点

在以前的版本中,只有通过 CLI 命令提供多站点同步状态。

在这个版本中,多站点状态通过 Ceph 控制面板中的 API 添加。多站点同步状态的新 API 端点是 api/rgw/multisite/sync_status

Bugzilla:2258951

改进了对 NVMe-oF 网关的监控

在这个版本中,为了改进对 NVMe-oF 网关的监控,根据发出的指标添加 NVMe-oF 网关的警报,也会在 NVMe-oF 网关中提取来自嵌入式 prometheus exporter 的指标。

Bugzilla:2276038

Ceph 控制面板中的 CephFS 克隆管理

借助此项功能增强,Ceph 控制面板中提供了 CephFS 克隆管理功能。用户可以通过 Ceph 控制面板创建和删除子卷克隆。

Bugzilla:2264142

Ceph 仪表板中的 CephFS 快照管理

借助此项功能增强,Ceph 控制面板中提供了 CephFS 快照管理功能。用户可以通过 Ceph 控制面板创建和删除子卷快照。

Bugzilla:2264141

为每个用户/存储桶标记 Performance Counters

在这个版本中,用户只能获取每个 Ceph 对象网关节点发生的操作信息,也可以在 Ceph 控制面板中查看每个用户和每个存储桶的 Ceph 对象网关性能计数器。

将 Sync Performance Counters 标记为 Prometheus

在这个版本中,用户可以从 Prometheus 收集区间复制健康的实时信息,以增加 Ceph 对象网关多站点同步操作的可观察性。

在 Ceph 仪表板中添加并编辑存储桶

在这个版本中,作为 Ceph 仪表板的 Ceph 对象网关改进的一部分,添加了 Ceph 仪表板中应用、列出和编辑 Bucket 的功能。

  • ACL (Public, Private)
  • tags (adding/removing)

在 Ceph 仪表板中添加、列出、删除和应用存储桶策略

在这个版本中,作为 Ceph 仪表板的 Ceph 对象网关改进的一部分,添加了 Ceph 仪表板中添加、列出、删除和应用存储桶策略的功能。

3.3. Ceph 文件系统

默认情况下,MDS 动态元数据均衡器是关闭的

在以前的版本中,通过增加 max_mds 文件系统设置,不正确的负载均衡器行为会以不切的方式进行分片树。

在这个版本中,MDS 动态元数据负载均衡器被默认关闭。Operator 必须明确打开负载均衡器才能使用它。

Bugzilla:2227309

CephFS 支持静止子卷或目录树

在以前的版本中,多个客户端会在客户端之间存在带外通信的一致快照障碍之间进行交集和写入。这个通信导致客户端错误地达到了通过快照相互恢复的检查点。

在这个版本中,CephFS 支持静止子卷或目录树,以启用执行崩溃一致性快照。现在,在 MDS 执行快照前,客户端会被强制静止所有 I/O。这会在子树的所有客户端中强制实施检查点。

Bugzilla:2235753

MDS Resident Segment Size (RSS)性能计数器会使用更高的优先级进行跟踪

在这个版本中,会以更高的优先级跟踪 MDS Resident Segment Size 性能计数器,以便调用者消耗其值来生成有用的警告。这允许 Rook 识别 MDS RSS 大小并相应地操作。

Bugzilla:2256560

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

在以前的版本中,监控 MDS 的性能转储有时会显示 OSD 已被 laggy、objecter.op_laggyobjecter.osd_laggy,从而导致 laggy 客户端(dirty 数据无法针对上限撤销)。

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

Bugzilla:2260003

CephFS-mirror 守护进程通过 perf dump 命令导出快照同步性能计数器

Ceph-mds 守护进程导出现有 perf dump 命令中包含的每个客户端性能计数器。

Bugzilla:2264177

引入了一个新的 dump dir 命令转储目录信息

在这个版本中,引进了 dump dir 命令转储目录信息并打印输出。

Bugzilla:2269687

对子卷的快照调度支持

在这个版本中,为子卷提供了快照调度支持。所有快照调度命令都接受-- subvol 和- group 参数,以引用适当的子卷和子卷组。如果在没有子卷组参数的情况下指定子卷,则考虑默认子卷组。另外,在引用子卷时,不需要指定有效的路径,而只有占位符字符串就足够了,因为使用了参数解析。

Example

# ceph fs snap-schedule add - 15m --subvol sv1 --group g1
# ceph fs snap-schedule status - --subvol sv1 --group g1

Bugzilla:2238537

添加或修改 MDS 大写的 Ceph 命令提供了有关用户传递 MDS 被拒绝的原因

在以前的版本中,添加或修改 MDS caps 输出的"Error EINVAL: mds 功能解析失败"的 Ceph 命令会在 'allow w' 的 'allow w' 上停止。

有了这个增强,命令提供有关用户传递的 MDS 大写的原因,并在 MDS caps 中打印 Error EINVAL: Permission 标志必须以 'r' 或 'rw' 开头,或者是 '*' 或 'all'。

Bugzilla:2247586

3.4. Ceph 对象网关

现在,添加了 admin 接口来管理存储桶通知

在以前的版本中,S3 REST API 用于管理存储桶通知。但是,如果管理员希望覆盖它们,则无法通过 radosgw-admin 工具实现这一目的。

在这个版本中,添加了带有以下命令的 admin 接口来管理存储桶通知:

radosgw-admin notification get --bucket <bucket name> --notification-id <notification id>

radosgw-admin notification list --bucket <bucket name>

radosgw-admin notification rm --bucket <bucket name> [--notification-id <notification id>]

Bugzilla:2130292

现在,当 ceph counter dump 运行时,RGW 标记的用户和存储桶操作计数器现在在不同的部分中

在以前的版本中,所有 RGW 标记的操作计数器都位于 ceph counter dump 命令的输出的 rgw_op' 部分中,但具有用户标签或存储桶标签。

在这个版本中,当执行 ceph counter dump 命令时,标记为 user 和 bucket 操作计数器的 RGW 分别位于 rgw_op_per_userrgw_op_per_bucket 部分中。

Bugzilla:2265574

用户现在可以使用 -t 命令行选项将临时文件放到目录中

在以前的版本中,/usr/bin/rgw-restore-bucket-index 工具只使用 /tmp,该目录有时没有足够的可用空间来保存所有临时文件。

有了这个增强,用户可以指定可以使用 -t 命令行选项放置临时文件的目录,并在它们耗尽空间时获得通知,从而知道要重新运行该工具的调整。此外,用户可以定期检查工具的临时文件是否已耗尽存在临时文件的文件系统上的可用空间。

Bugzilla:2267715

现在支持使用 copy-object API 复制加密对象

在以前的版本中,在 Ceph 对象网关中,不支持使用 copy-object API 复制加密对象,因为其服务器端加密支持。

在这个版本中,支持使用 copy-object API 复制加密对象,而依赖复制对象操作的工作负载也可以使用服务器端加密。

Bugzilla:2149450

添加了一个新的 Ceph 对象网关 admin-ops 功能,以允许读取用户元数据,而不是读取其关联的授权密钥

在这个版本中,添加了一个新的 Ceph 对象网关 admin-ops 功能,以允许读取 Ceph 对象网关用户元数据,而不是读取其关联的授权密钥。这是为了减少自动化和报告工具的特权,并避免模拟用户或查看其密钥。

Bugzilla:2112325

云转换:添加新的支持 S3 兼容平台

在这个版本中,可以将对象存储移到云或其他内部 S3 端点,当前生命周期转换和存储类模型已扩展。S3 兼容平台,如 IBM Cloud Object Store (COS)和 IBM Storage Ceph 现在支持云归档功能。

使用 RGW 后端的 NFS

在这个版本中,带有 Ceph 对象网关后端的 NFS 会与现有功能重新发布。

3.5. 多站点 Ceph 对象网关

radosgw-admin sync status 命令中引入了一个重试机制

在以前的版本中,当多站点同步向远程区发送请求时,它使用 round robin 策略来选择其区域端点之一。如果该端点不可用,radosgw-admin sync status 命令使用的 http 客户端逻辑不会提供重试机制,因此报告输入/输出错误。

在这个版本中,virtue 在 sync status 命令中引入了重试机制,如果所选端点不可用,则会选择不同的端点来提供请求。

Bugzilla:1995152

NewerNoncurrentVersions,ObjectSizeGreaterThan, 和 ObjectSizeLessThan 过滤器添加到生命周期中

在这个版本中,生命周期添加了对 NewerNoncurrentVersionsObjectSizeGreaterThanObjectSizeLessThan 过滤器的支持。

Bugzilla:2172162

现在支持用户 S3 复制 API

在这个版本中,支持用户 S3 复制 API。使用这些 API,用户可以在存储桶级别上设置复制策略。API 被扩展为包括额外的参数来指定源和目标区名称。

Bugzilla:2279461

bucket Granular Sync Replication GA (第 3 部分)

在这个版本中,通过存储桶粒度支持将存储桶或一组存储桶复制到不同的 Red Hat Ceph Storage 集群的功能。可用性要求是 Ceph 对象网关多站点。

Red Hat Ceph Storage 现在支持对象存储归档区域

对象存储归档区以前作为有限发行版本提供。此功能增强为生产环境中的新和现有客户提供了完整的可用性。archive 区域从 production 区域接收所有对象,并保留每个对象的每个版本,为用户提供一个包含对象完整历史记录的对象目录。这提供了一个安全对象存储部署,可以保证数据检索,即使 production 区域中的对象/存储桶已经丢失或被破坏。

如需更多信息,请参阅 对象网关指南中的 配置归档区域

3.6. RADOS

在/关闭上设置 noautoscale 标志可保留每个池的原始自动扩展模式配置

在以前的版本中,当设置了 no autoscale 标志时,每个池的自动扩展模式 配置中不会保留 pg_autoscaler。因此,每当设置了 noautoscale 标志时,必须重复为每个池设置 autoscale 模式。

在这个版本中,在设置了 noautoscale 标志 后,pg_autoscaler 模块会保留自动扩展模式的独立池配置。在/关闭上设置 noautoscale 标志仍会保留每个池的原始自动扩展模式配置。

Bugzilla:2136766

引入了 reset_purged_snaps_last OSD 命令

在这个版本中,引入了 reset_purged_snaps_last OSD 命令,以解决 OSD 中缺少 purged_snaps 密钥(PSN)的情况,并存在于监控器中。purged_snaps_last 命令将为零,因此,监控器将在下次引导时与 OSD 共享其 清除_snaps 信息。

Bugzilla:2251188

启用 BlueStore 的 RocksDB 压缩

在这个版本中,为了确保元数据(特别是 OMAP)占用较少的空间,会修改 RocksDB 配置以启用其数据的内部压缩。

因此,在压缩过程中,Ceph 数据库大小会小为 * 写入放大,平均 I/O 平均 I/O 具有更高的 CPU 用量

Bugzilla:2253313

OSD 现在对致命崩溃更具弹性

在以前的版本中,因为位于磁盘开头,特殊 OSD 层对象 "superblock" 会被覆盖,从而导致严重崩溃。

在这个版本中,OSD "superblock"是冗余的,正在在磁盘上迁移。其副本存储在数据库中。OSD 现在对致命损坏更具弹性。

Bugzilla:2079897

3.7. RADOS 块设备 (RBD)

改进了 rbd_diff_iterate2 () API 性能

在以前的版本中,如果在 fast-diff 模式(insnapname == NULL )中针对时间开始(insnapname == NULL) (启用了 fast-diff 镜像功能且有效的 fast-diff镜像功能 )时,RBD diff-iterate 无法保证在本地执行。

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

Bugzilla:2258997

第 4 章 程序错误修复

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

4.1. Cephadm 实用程序

将-- name NODE 标志与 cephadm shell 搭配使用,以启动已停止的 OSD 不再返回错误的镜像容器

在以前的版本中,在某些情况下,当使用 cephadm shell --name NODE 命令时,命令将使用错误的工具版本启动容器。当用户在主机上有较新的 ceph 容器镜像而不是其 OSD 使用的镜像时,会出现这种情况。

在这个版本中,Cephadm 在使用 cephadm shell 命令和- name 标志时,为已停止的守护进程决定容器镜像。用户不再有与 the- name 标志相关的问题,命令可以正常工作。

Bugzilla:2258542

4.2. Ceph Ansible 实用程序

playbook 现在删除与正在运行的 RHEL 版本匹配的 RHCS 版本存储库

在以前的版本中,playbook 会尝试从 RHEL 9 中删除 Red Hat Ceph Storage 4 软件仓库,即使它们在 RHEL 9 中不存在。这会导致 playbook 失败。

在这个版本中,playbook 删除与正在运行的 RHEL 版本匹配的现有 Red Hat Ceph Storage 版本存储库,并删除正确的软件仓库。

Bugzilla:2258940

4.3. NFS Ganesha

现在,配置重新载入过程使用的所有内存都会被发布

在以前的版本中,重新载入导出不会释放配置重新加载进程使用的所有内存,从而导致内存占用量增加。

在这个版本中,配置重新加载过程消耗的所有内存都会被释放,从而减少内存占用量。

Bugzilla:2265322

4.4. Ceph 仪表板

用户可以在 Ceph 控制面板中使用多个主机创建卷

在这个版本中,用户可以在 Ceph 仪表板中使用多个主机创建卷。

Bugzilla:2241056

取消设置子卷大小不再设置为 'infinite'

在以前的版本中,取消设置子卷大小被设置为 'infinite',从而导致更新失败。

在这个版本中,将大小设置为 'infinite' 的代码会被删除,更新可以正常工作。

Bugzilla:2251192

在内核挂载命令中添加缺少的选项

在以前的版本中,内核 mount 命令中缺少一些选项来附加文件系统,从而导致命令无法按预期工作。

在这个版本中,添加了缺少的选项,kernel mount 命令可以正常工作。

Bugzilla:2266256

Ceph 仪表板现在支持 NFS v3 和 v4-enabled 导出管理

在以前的版本中,Ceph 仪表板只支持启用了 NFSv4 的导出管理,而不是启用了 NFSv3 的导出。因此,通过 CLI 为 NFSv3 导出的任何管理都损坏。

在这个版本中,通过有一个额外的复选框来启用对基于 NFSv3 的导出管理的支持。Ceph 仪表板现在支持 v3 和 v4-enabled 导出管理。

Bugzilla:2267814

现在,在创建区时无法访问/secret 密钥

在以前的版本中,当在 Ceph 对象网关多站点中创建区时,access/secret 密钥会被编译。因此,用户必须首先在区域中设置非系统用户的密钥,之后使用系统用户的密钥更新。

在这个版本中,在创建区时无法访问/secret 密钥。

Bugzilla:2275463

导入多站点配置不再会在提交表单时抛出错误

在以前的版本中,多站点周期信息不包含 'realm' 名称。因此,导入多站点配置在提交表单时出现错误。

在这个版本中,从周期信息中获取 'realm' 名称的检查会被删除,令牌导入可以正常工作。

Bugzilla:2275861

Ceph 对象网关指标标签名称与 Prometheus 标签命名格式一致,它们现在在 Prometheus 中可见。

在以前的版本中,指标标签名称与 Prometheus 标签命名格式不一致,从而导致 Ceph 对象网关指标无法在 Prometheus 中可见。

在这个版本中,连字符(-)替换为 Ceph 对象网关指标标签名称中的下划线(_),其中任何适用的和所有 Ceph 对象网关指标现在都在 Prometheus 中可见。

Bugzilla:2276340

全名称现在可以在 Ceph 仪表板中包含点

在以前的版本中,在 Ceph 仪表板中,因为验证不正确,无法创建或修改带有点的完整名称。

在这个版本中,验证会被正确适应,以在 Ceph 仪表板中包括全名的点。

Bugzilla:2249812

4.5. Ceph 文件系统

带有 FSMap 更改的 MDS 元数据现在在批处理中添加,以确保一致性

在以前的版本中,监控器有时会在升级过程中丢失 MDS 元数据跟踪并取消了 PAXOS 事务,从而导致 MDS 元数据不再可用。

在这个版本中,带有 FSMap 更改的 MDS 元数据会批量添加,以确保一致性。ceph mds metadata 命令现在可以正常工作。

Bugzilla:2144472

ENOTEMPTY 输出被检测到,消息会被正确显示

在以前的版本中,当运行 子卷组 rm 命令时,在卷的插件中不会检测到 ENOTEMPTY 输出,从而导致通用错误消息而不是特定消息。

在这个版本中,当 subvolumegroup 中存在 子卷时,为子卷组 rm 命令检测到 ENOTEMPTY 输出,并正确显示消息。

Bugzilla:2240138

现在,MDS 会在请求清理过程中自动对下一个客户端重播请求排队

在以前的版本中,MDS 不会将下一个客户端请求排队 up:client-replay 状态,从而导致 MDS 挂起。

在这个版本中,下一个客户端重播请求会在请求清理过程中自动排队,MDS 会正常进行故障转移恢复。

Bugzilla:2243105

CephFS-mirroring 整体性能有所改进

在这个版本中,增量快照同步已被修正,这可以提高 cephfs-mirroring 的整体性能。

Bugzilla:2248639

loner 成员设置为 true

在以前的版本中,对于 LOCK_EXCL_XSYN 状态的文件锁定,非代理客户端将发出空的 caps。但是,由于此状态的 loner 被设置为 false,因此可能会导致 locker 向它们发出 Fcb caps,这不正确。这会导致一些客户端请求错误地撤销一些上限和无限等待,并导致请求较慢。

在这个版本中,loner 成员被设置为 true,因此对应的请求不会被阻止。

Bugzilla:2251258

为每月快照的 snap-schedule 重复和保留规格从 m 改为 M

在以前的版本中,snap-schedule 重复规格和保留规格与其他 Ceph 组件不一致。

在这个版本中,规格从 m 改为 M,现在与其他 Ceph 组件一致。例如,要保留 5 个每月的快照,您需要运行以下命令:

# ceph fs snap-schedule retention add /some/path M 5 --fs cephfs

Bugzilla:2264348

当在多 mds 集群中复制某些内节点时,Ceph-mds 不再崩溃

在以前的版本中,因为 ceph-mds 中的锁断言不正确,ceph-mds 会在多 mds 集群中复制一些内节点时崩溃。

在这个版本中,断言中的锁定状态会被验证,且不会观察崩溃。

Bugzilla:2265415

缺少字段,如 日期client_count、过滤器添加到- dump 输出中

在这个版本中,缺少的字段(如 dateclient_count过滤器 )添加到- dump 输出中。

Bugzilla:2272468

在恢复过程中,MDS 不再失败并显示 assert 功能

在以前的版本中,当恢复失败的排名时,MDS 有时会错误地报告元数据损坏,因此会失败并显示 assert 功能。

在这个版本中,启动过程已被修正,MDS 在恢复过程中不会失败并带有 assert 功能。

Bugzilla:2272979

目标 mon_host 详情已从 peer List 和 mirror 守护进程状态中删除

在以前的版本中,快照镜像 peer-list 显示比对等列表更多的信息。如果应该只会显示一个 MON IP 或所有 MON 主机 IP,则此输出会导致混淆。

在这个版本中,mon_host 从 fs snapshot mirror peer_list 命令中删除,目标 mon_host 详情已从 peer List 和 mirror 守护进程状态中删除。

Bugzilla:2277143

目标 mon_host 详情已从 peer List 和 mirror 守护进程状态中删除

在以前的版本中,静默协议代码引入了回归问题。在终止客户端请求时,它将跳过为批处理操作选择新批处理头。这会导致过时的批处理头请求永久保留在 MDS 缓存中,然后被视为较慢的请求。

在这个版本中,在终止请求时选择一个新的批处理头,且不会由批处理操作导致的请求缓慢。

Bugzilla:2277944

即使没有 MDS 正常运行,文件系统升级也会发生

在以前的版本中,当所有 MDS 都停机时,监控器不允许 MDS 升级文件系统。因此,当 fail_fs 设置为 'true' 时,升级会失败。

在这个版本中,监控器允许在没有 MDS 时进行升级。

Bugzilla:2244417

4.6. Ceph 对象网关

admin topic list 命令不再显示自动生成的内部主题

在以前的版本中,由于用户可以看到比创建的内容更多的主题,因此自动生成的内部主题通过 topic list 命令暴露给用户。

在这个版本中,内部生成的主题不会在 admin topic list 命令中显示,用户现在只会看到预期的主题列表。

Bugzilla:1954461

弃用的 bucket name 字段不再显示在 topic list 命令中

在以前的版本中,如果拉取模式通知(pubsub),通知存储在存储桶中。但是,虽然此模式已弃用,但 topic list 命令仍会显示空存储桶名称字段。

在这个版本中,空存储桶名称字段会被删除。

Bugzilla:1954463

现在,通知会在生命周期转换中发送

在以前的版本中,在转换时分配的逻辑(与过期不同)丢失。因此,在转换时不会看到通知。

在这个版本中,添加了新的逻辑,通知会在生命周期转换时发送。

Bugzilla:2166576

RGWCopyObjRequest 已被修复,重命名操作可以正常工作

在以前的版本中,在 zipper 转换后,RGWCopyObjRequest 初始化错误,会破坏重命名操作。因此,许多 rgw_rename () 场景无法复制源对象,并且因为二级问题,即使副本失败也会删除源。

在这个版本中,RGWCopyObjRequest 被修正,并为不同的重命名操作添加了几个单元测试情况。

Bugzilla:2217499

Ceph 对象网关无法再被静默访问

在以前的版本中,代表 Ceph 对象网关角色的变量在初始化前被访问,从而导致 segfault。

在这个版本中,操作会被重新排序,且没有非非法的访问。角色根据需要强制执行。

Bugzilla:2252048

现在,每个错误的 CSV 对象结构显示错误消息

在以前的版本中,带有未关闭的双引号的 CSV 文件将导致 assert,后跟崩溃。

在这个版本中,引入了一个错误消息,其中包含每个错误的 CSV 对象结构。

Bugzilla:2252396

在 Ceph 仪表板中查询与用户相关的信息时,用户不再遇到 'user not found' 错误

在以前的版本中,在 Ceph 仪表板中,最终用户无法从 Ceph 对象网关检索与用户相关的信息,因为仪表板无法识别的完整 user_id 中存在命名空间,从而导致出现 "user not found" 错误。

在这个版本中,一个完全构建的用户 ID,其中包括 租户namespaceuser_id,并在将 GET 请求发送到 admin ops 以获取用户信息时单独返回每个字段。最终用户现在可以检索正确的 user_id,可用于进一步从 Ceph 对象网关获取其他用户相关信息。

Bugzilla:2255255

Ceph 对象网关现在传递带有新流编码表单格式格式良好的有效负载的请求

在以前的版本中,Ceph 对象网关无法识别 STREAMING-AWS4-HMAC-SHA256-PAYLOADSTREAMING-UNSIGNED-PAYLOAD-TRAILER 编码表单,从而导致请求失败。

在这个版本中,用来识别、解析和适用的逻辑,验证为新编码表单提供的新尾部请求签名是否已实现。Ceph 对象网关现在通过新流编码形式格式良好的有效负载来传递请求。

Bugzilla:2256967

现在,对 radosgw admin bucket 和 bucket reshard stat 计算的 check stat 计算现在都正确

在以前的版本中,由于代码更改,radosgw-admin bucket 检查 stat 计算和 bucket reshard stat 计算在有从未指定版本转换为版本化的对象时不正确。

在这个版本中,计算已被修正,不再生成不正确的存储桶 stat 输出。

Bugzilla:2257978

在多部分上传失败时,tail 对象不再丢失

在以前的版本中,在多部分上传过程中,如果因为场景(如超时)上传部分失败,且上传被重启,则第一次尝试清理会在后续尝试中删除 tail 对象。因此,生成的 Ceph 对象网关多部分对象会损坏,因为缺少一些 tail 对象。它将响应 HEAD 请求,但在 GET 请求期间失败。

在这个版本中,代码会正确清理第一次尝试。生成的 Ceph 对象网关多部分对象不再损坏,可由客户端读取。

Bugzilla:2262650

CompleteMultipartUpload 及其通知中的 ETag 值现在存在

在以前的版本中,与通知相关的更改会导致与完成多部分上传对应的对象句柄,使其包含生成的 ETag。因此,因为 CompleteMultipartUpload 及其通知的结果,没有进行多部分上传的 ETags。(计算并存储了正确的 ETag,因此后续操作包含正确的 ETag 结果。)

在这个版本中,CompleteMultipartUpload 刷新对象,并按预期打印它。CompleteMultipartUpload 及其通知中存在 ETag 值。

Bugzilla:2266579

通过 swift 列出容器(bucket)不再会导致 Ceph 对象网关崩溃

在以前的版本中,swift-object-storage 调用路径缺少调用,以使用对应的存储桶更新对象句柄(zipper backport 问题)。因此,当为同一 bucket 配置 S3 网站时,通过 swift 列出容器(bucket)会导致 Ceph 对象网关崩溃。

在这个版本中,添加了所需的 zipper 逻辑,且崩溃不再发生。

Bugzilla:2269038

在没有生命周期策略的存储桶上处理生命周期不会崩溃

在以前的版本中,尝试手动处理没有生命周期策略的存储桶中的生命周期,从而导致 radosgw-admin 程序崩溃。

在这个版本中,在句柄操作前检查 null 存储桶句柄,以避免崩溃。

Bugzilla:2270402

datapool 的区详情现在可以修改

rgw::zone_create () 函数会在创建区域时初始化默认放置目标和池名称。此功能以前还用于带有 exclusive=false 的 radosgw-admin 区集。但是,zone set 不允许修改 STANDARD 存储类的 data_pool。

在这个版本中,如果 default-placement 目标已存在,并且 datapool 的区详情可以如预期修改,则不应覆盖 default-placement 目标。

Bugzilla:2254480

浮点数的 modulo 操作现在返回正确的结果

在以前的版本中,对浮点数的 modulo 操作返回错误的结果。

在这个版本中,SQL 引擎已被改进,以处理浮点的 modulo 操作并返回正确的结果。

Bugzilla:2254125

SQL 语句正确地返回对不区分大小写的布尔值表达式的结果

在以前的版本中,SQL 语句包含带有声明部分大写字母的布尔值表达式,从而导致错误的解释和错误的结果。

在这个版本中,对语句的解释区分大小写,因此对于任何情况都会返回正确的结果。

Bugzilla:2254122

SQL 引擎返回正确的 NULL 值

在以前的版本中,SQL 语句包含来自 NULL 的 cast 到类型,因此返回错误的结果,而不是返回 NULL。

在这个版本中,SQL 引擎标识来自 NULL 的 cast,并返回 NULL。

Bugzilla:2254121

eTags 值现在存在于 CompleteMultipartUpload 及其通知中

在以前的版本中,与通知相关的更改会导致对象句柄(与完成多部分上传对应)不包含生成的 ETag。因此,CompleteMultipartUpload 及其通知没有 ETags。(计算并存储了正确的 ETag,因此后续操作包含正确的 ETag 结果。)

在这个版本中,CompleteMultipartUpload 刷新对象,并按预期打印它。ETag 值现在存在于 CompleteMultipartUpload 及其通知中。

Bugzilla:2249744

在对象名称中发送带有内嵌反斜杠(/)的工作负载到 cloud-sync 不再会导致同步失败

在以前的版本中,当工作负载在名称中包含带有嵌入式反斜杠(/)的对象时,云同步期间对象路径的 URL 转义会导致同步失败,即使用虚拟目录路径时。

在这个版本中,不正确的转义已被修正,在对象名称中带有嵌入式反斜杠(/)的工作负载可以按预期发送到 cloud-sync。

Bugzilla:2249068

包含布尔表达式返回布尔值类型的 SQL 语句

在以前的版本中,包含布尔值表达式(投射)的 SQL 语句将返回字符串类型而不是布尔值类型。

在这个版本中,引擎会根据声明语法将字符串识别为布尔值表达式,引擎可以成功返回布尔值类型(true/false)。

Bugzilla:2254582

现在,工作调度程序在 should_work 功能中考虑下一个日期

在以前的版本中,should_work 功能中使用的逻辑决定了生命周期是否应该在当前时间启动运行,不会考虑下一个日期。因此,任何自定义工作时间 "XY:TW-AB:CD" 都会在 AB < XY 时中断生命周期处理。

在这个版本中,工作调度程序会考虑下一个日期,各种自定义生命周期工作调度现在可以正常工作。

Bugzilla:2255938

merge_and_store_attrs () 方法不再导致属性更新操作失败

在以前的版本中,merge_and_store_attrs () 方法中有一个错误,它处理协调更改以及更改的存储桶实例属性,从而导致一些属性更新操作静默失败。因此,存储桶子集中的一些元数据操作会失败。例如,存储桶所有者更改会在设置了速率限制的存储桶上失败。

在这个版本中,merge_and_store_attrs () 方法已被修复,所有受影响的场景现在可以正常工作。

Bugzilla:2262919

checksum 和 malformed trailers 不再导致崩溃

在以前的版本中,在 java AWS4Test.testMultipartUploadWithPauseAWS4 期间 AWSv4ComplMulti 异常会导致一些客户端输入崩溃,特别是使用 checksum trailers 的崩溃。

在这个版本中,一个例外处理程序在 do_aws4_auth_completion () 中实施。checksum 和 malformed trailers 不再导致崩溃。

Bugzilla:2266092

改进的块边界检测的实现

在以前的版本中,不会处理 0-length 尾部块边界格式的有效格式。因此,Ceph 对象网关无法正确识别尾部块的开头,从而导致 403 错误。

在这个版本中,实现了改进的块边界检测,在匿名访问情况下不再发生意外的 403 错误。

Bugzilla:2266411

Kafka 消息和空闲超时的默认值不再会导致挂起

在以前的版本中,Kafka 消息和空闲超时的默认值会在等待 Kafka 代理时挂起。

在这个版本中,超时会被调整,它不再挂起。

Bugzilla:2269381

删除存储桶标记不再失败

在以前的版本中,RADOS SAL merge_and_store_attrs () 中存在一个不正确的逻辑,会导致删除的属性不进行材料化。这也会影响 DeleteLifecycle。因此,在某些代码路径中,纯属性删除不会生效。

在这个版本中,存储 bucket 标签的逻辑使用 RADOS SAL put_info () 而不是 merge_and_store_attrs ()。删除存储桶标记现在可以如预期成功。

Bugzilla:2271806

现在,S3 PutACL 和 ACL 更改会正确复制对象 mtime

在以前的版本中,S3 PutACL 操作不会更新对象 mtime。因此,应用后 ACL 更改不会复制,因为基于时间戳的对象更改检查会错误地返回 false。

在这个版本中,S3 PutACL 和 ACL 会更改对象 mtime 会正确复制。

Bugzilla:2271938

现在,所有转换情况都可以分配通知

在以前的版本中,因为池转换不会发送通知,在转换时分配通知的逻辑被错误地范围到云转换情况。

在这个版本中,通知分配被添加到池转换范围中,所有转换情况都可以分配通知。

Bugzilla:2279607

year 2106 后 RetainUntilDate 不再截断,并适用于新的 PutObjectRetention 请求

在以前的版本中,PutObjectRetention 请求在年 2106后指定 RetainUntilDate,从而导致之前用于对象锁定强制的日期。这不会影响 'PutBucketObjectLockConfiguration' 请求,其中指定持续时间(以天为单位)。

在这个版本中,RetainUntilDate 会保存并按预期工作,用于新的 PutObjectRetention 请求。之前存在的请求不会自动修复。要修复现有请求,请通过基于 x-amz-object-lock-retain-until-date 来使用 header Object 请求来识别请求,并使用 RetainUntilDate 重新保存。

如需更多信息,请参阅 S3 放置对象保留

Bugzilla:2265890

bucket 生命周期处理规则不再停滞

在以前的版本中,每个 shard bucket-lifecycle 规则的枚举规则包含与并发删除存储桶生命周期规则相关的逻辑错误。因此,分片可能会进入一个状态,这会停止处理该分片,从而导致无法处理一些存储桶生命周期规则。

在这个版本中,枚举可以跳过删除的条目,与这个问题相关的生命周期处理停滞已解决。

Bugzilla:2270334

删除版本存储桶中的对象会导致统计不匹配

由于版本存储桶混合使用当前和非当前对象,因此删除对象可能会导致在本地和远程站点上的 bucket 和用户统计差异。这不会导致在任一站点上出现对象泄漏,只是统计信息。

Bugzilla:1871333

4.7. 多站点 Ceph 对象网关

Ceph 对象网关在删除对象过程中不再死锁

在以前的版本中,在删除对象过程中,Ceph 对象网关 S3 DeleteObjects 与多站点部署一起运行,从而导致 Ceph 对象网关死锁并停止接受新请求。这是因为 DeleteObjects 请求一次处理多个对象删除所致。

在这个版本中,复制日志被序列化,死锁会被阻止。

Bugzilla:2249651

CURL 路径规范化现在在启动时禁用

在以前的版本中,由于 CURL 执行的路径规范化(Ceph 对象网关复制堆栈的一部分),对象名称在复制过程中被静默重新格式化。因此,其名称包含嵌入式 . 和 .. 的对象不会被复制。

在这个版本中,CURL 路径规范化会在启动时禁用,受影响的对象会如预期复制。

Bugzilla:2265148

主站点中转发请求的身份验证不再失败

在以前的版本中,如果使用 STS 返回的临时凭证为请求签名,则 S3 请求会发布到二级失败。发生失败的原因是,请求将使用系统用户的凭证转发到主并签名,这与转发请求的会话令牌中的临时凭据不匹配。由于不匹配的凭证,主站点上转发请求的身份验证会失败,这会导致 S3 操作失败。

在这个版本中,身份验证是通过在会话令牌中使用临时凭证传递的,以防请求从次要转发到主要。系统用户的凭证用于成功完成身份验证。

Bugzilla:2271399

4.8. RADOS

如果池存储零对象,Ceph 会报告 POOL_APP_NOT_ENABLED 警告

在以前的版本中,如果池为空,如果 RGW 池启用了应用程序标签,Ceph 状态将无法报告池应用程序警告。

在这个版本中,即使池存储了 0 个对象,Ceph 也会报告 POOL_APP_NOT_ENABLED 警告。

Bugzilla:2029585

在扩展集群的两个站点之间为不均匀的 OSD 权重添加检查

在以前的版本中,扩展集群部署后没有检查相等的 OSD 权重。因此,用户可以使 OSD 权重不相等。

在这个版本中,在扩展集群的两个站点间添加了不均匀的 OSD 权重。集群现在在两个站点之间提供有关不均匀 OSD 权重的警告。

Bugzilla:2125107

当设置了 norecover 标志时,自动扩展不再运行

在以前的版本中,当设置 norecover 标志时,自动扩展会运行,从而导致创建新 PG,而这些 PG 需要回填。当缺少或降级对象时出现允许 norecover 标志时运行自动扩展,以避免客户端 I/O 无限期挂起。

在这个版本中,当设置了 norecover 标志时,自动扩展不会运行。

Bugzilla:2134786

ceph config dump 命令输出现在一致

在以前的版本中,没有用户打印格式化的输出的 ceph config dump 命令会显示 localized 选项名称及其值。规范化与本地化选项的示例如下:

Normalized: mgr/dashboard/ssl_server_port

Localized: mgr/dashboard/x/ssl_server_port

但是,该命令的用户打印(例如 JSON)版本仅显示规范化选项名称,如上例中所示。在没有 pretty-print 选项的情况下,ceph config dump 命令结果不一致。

在这个版本中,输出一致,在使用 ceph config dump --format TYPE 命令时始终显示 localized 选项名称,TYPE 作为 pretty-print 类型。

Bugzilla:2213766

MGR 模块每分钟不再占用一个 CPU 内核,CPU 使用量是正常的

在以前的版本中,从放置组 auto-scaler 模块获取 OSDMap 的昂贵调用从 monitor 获取 OSDMap,这会导致 MGR 模块每分钟占用一个 CPU 内核。因此,MGR 守护进程中的 CPU 使用率很高。

在这个版本中,从放置组 auto-scaler 模块进行的 OSD map 调用数量会减少。CPU 用量现在正常。

Bugzilla:2241030

OSD 父(主机)的正确 CRUSH 位置是确定的

在以前的版本中,当启用 osd_memory_target_autotune 选项时,内存目标会在主机级别应用。这可以通过在自动调整内存时使用主机掩码来完成。但是,应用到内存目标的代码不会决定父主机的 CRUSH 位置,以使更改传播到主机的 OSD。因此,由机器配置观察器托管的 OSD 都不会获得通知,osd_memory_target 对于那些 OSD 集合,osd_memory_target 保持不变。

在这个版本中,OSD 父(主机)的正确 CRUSH 位置取决于主机掩码。这允许更改传播到主机上的 OSD。每当 auto-tuner 应用新的 osd_memory_target 且更改反映时,机器托管的所有 OSD 都会获得通知。

Bugzilla:2244604

监控在崩溃/关闭测试过程中不再处于选举状态

在以前的版本中,只有进入 stretch_mode 时才会填充 MonitorMap 的 disallowed_leaders 属性。但是,在有些情况下,被 revived 不会立即进入 stretch_mode 实例,因为它们将处于 probing 状态。这会导致跨集群的监控器之间设置的 disallowed_leaders 不匹配。因此,监控器无法选举领导机,选举会卡住,从而导致 Ceph 无响应。

在这个版本中,监控器不必处于 stretch_mode 来填充 disallowed_leaders 属性。监控在崩溃/关闭测试过程中不再处于选举状态。

Bugzilla:2248939

'error get attr on' 信息不再发生

在以前的版本中,当使用-- op 列表 时,ceph-objectstore-tool 列出 pgmeta 对象,从而导致 "Error get attr on" 信息。

在这个版本中,会跳过 pgmeta 对象,并不再显示错误消息。

Bugzilla:2251004

分配器中的 LBA 校准不再被使用,因为分配失败,OSD 守护进程不会 assert

在以前的版本中,OSD 守护进程会断言,无法重启,这有时可能会导致数据不可用或数据丢失。如果分配器被分配给 4000 请求并配置了不同的分配单元,则会发生此情况,因为 OSD 守护进程不会 assert。

在这个版本中,分配器中的 LBA 校准不会被使用,OSD 守护进程不会因为分配失败而断言。

Bugzilla:2260306

使用 "libcephsqlite" 库的 sqlite 数据库不再被破坏,因为简短的读取无法正确为零内存页面失败。

在以前的版本中,"libcephsqlite"无法正确处理简短的读取,这可能会导致 sqlite 数据库崩溃。

在这个版本中,"libcephsqlite"零页可以正确地进行简短的读取,以避免潜在的崩溃。

Bugzilla:2240139

4.9. RBD 镜像功能

现在,当对等站点在强制提升过程中停机时,镜像状态描述会显示 "orphan (force promote) "

在以前的版本中,在强制提升时,当对等站点停机时,镜像状态描述会显示 "local image linked to unknown peer",这不是一个明确的描述。

在这个版本中,镜像守护进程已被改进,以显示镜像状态描述 "orphan (force promote) "。

Bugzilla:2190366

rbd_support 模块不再无法从其客户端的重复块列表中恢复

在以前的版本中,发现 rbd_support 模块因为 rbd_support 模块中的递归死锁、rbd_support 模块的竞争条件、rbd_support 模块的 librbd 客户端中的一个竞争条件,以及 librbd cython 绑定中的错误,有时会导致 ceph-mgr 崩溃。

在这个版本中,所有 3 个问题都已被修复,rbd_support' 模块不再无法从其客户端的重复块列表中恢复

Bugzilla:2247531

第 5 章 已知问题

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

5.1. Cephadm 实用程序

在排空 OSD 时,cephadm 不会维护以前的 OSD 权重

在排空 OSD 时,cephadm 不会维护以前的 OSD 权重。因此,如果 ceph orch osd rm <osd-id > 命令运行并且之后,OSD 移除将停止,Cephadm 不会将 OSD 的 crush 权重设置为其原始值。crush weight 将保持在 0。

作为临时解决方案,用户必须手动将 OSD 的 crush 权重调整为其原始值,或者完成 OSD 删除并部署新的 OSD。取消 ceph orch osd rm 操作时应该小心,因为 OSD 的 crush 权重不会在删除过程开始前返回到其原始值。

Bugzilla:2247211

重复使用 Ceph 对象网关 realm bootstrap 命令会导致将 zonegroup 主机名设置为失败

在多次完成时,使用 Ceph 对象网关 realm bootstrap 命令设置 zonegroup 主机名会失败。因此,重复使用 Ceph 对象网关 realm bootstrap 命令重新创建 realm/zonegroup/zone 无法正确用于 zonegroup_hostnames 字段,且主机名不会在 zonegroup 中设置。

作为临时解决方案,请使用 radosgw-admin 工具手动设置 zonegroup 主机名。Bugzilla:2241321

5.2. Ceph 对象网关

对大型 Parquet 对象处理查询会导致 Ceph 对象网关进程停止

在以前的版本中,在某些情况下,在处理 Parquet 对象的查询时,这个对象会在块后读取块,这些块可能会非常大。这会导致 Ceph 对象网关将大型缓冲区加载到低端机器内存中;特别是,当 Ceph 对象网关与 OSD 进程共存时,这会消耗大量内存。这种情况会触发操作系统终止 Ceph 对象网关进程。

作为临时解决方案,请将 Ceph 对象网关放在单独的节点上,因此为 Ceph 对象网关保留更多内存,使其成功完成处理。

Bugzilla:2275323

当前的 RGW STS 实现不支持大于 1024 字节的加密密钥

当前的 RGW STS 实现不支持大于 1024 字节的加密密钥。

作为临时解决方案,在 Keycloak: realm settings - keys 中,编辑 'rsa-enc-generated' 供应商,将优先级为 90 而不是 100,keySize 设为 1024,而不是 2048。

Bugzilla:2276931

用于对象压缩和加密的 Intel QAT Acceleration

Intel QuickAssist Technology (QAT)实施,以帮助降低节点 CPU 使用量,并在启用压缩和加密时提高 Ceph 对象网关的性能。在本发行版本中,QAT 只能在新设置(Greenfield)上配置,此功能有限制。QAT Ceph 对象网关守护进程不能与非 QAT (常规)Ceph 对象网关守护进程配置在同一集群中。

Bugzilla:2284394

第 6 章 异步勘误更新

本节论述了 z-stream 版本的 bug 修复、已知问题和增强。

6.1. Red Hat Ceph Storage 7.1z1

Red Hat Ceph Storage 版本 7.1z1 现已正式发布。此更新包括的程序错误修正信息包括在 RHBA-2024:5080RHBA-2024:5081 公告中。

6.1.1. 已知问题

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

6.1.1.1. Ceph 对象网关

用于对象压缩和加密的 Intel QAT Acceleration

Intel QuickAssist Technology (QAT)实施,以帮助降低节点 CPU 使用量,并在启用压缩和加密时提高 Ceph 对象网关的性能。这是一个已知问题:QAT 只能在新设置上配置(仅限Greenfield)。QAT Ceph 对象网关守护进程不能与非 QAT (常规)Ceph 对象网关守护进程配置在同一集群中。

Bugzilla:2284394

6.1.1.2. Ceph 升级

在 RHEL 8 到 RHEL 9 升级过程中删除了集群密钥和某些配置目录

由于 RHEL 8 弃用 libunwind 软件包,在升级到 RHEL 9 时会删除此软件包。ceph-common 软件包依赖于 libunwind 软件包,因此也会被删除。删除 ceph-common 软件包会导致删除 /etc/ceph/var/log/ceph 目录中的集群密钥和某些配置。

因此,可能会发生各种节点故障。由于删除了 /etc/ceph 软件包,Ceph 操作可能无法在某些节点上工作。systemd 和 Podman 无法在节点上的 Ceph 服务中启动,因为删除了 /var/log/ceph 软件包。

作为临时解决方案,请将 LEAPP 配置为不会删除 libunwind 软件包。具体步骤请参阅 将 RHCS 5 主机从 RHEL 8 升级到 RHEL 9 会删除 ceph-common 软件包。服务无法在红帽客户门户网站中启动

Bugzilla:2263195

6.1.1.3. Cephadm 实用程序

使用带有- export 标志的 ceph orch ls 命令会破坏证书/密钥文件格式

在以前的版本中,当使用带有- export 标志的 ceph orch ls 时,使用 cert/key 文件格式等长多行字符串会被强制处理。具体来说,一些换行符被剥离。因此,如果用户使用 cert/key 重新应用规格,因为它们从提供的 ceph orch ls with- export 获取,则守护进程将无法使用 cert/key。

作为临时解决方案,在使用 ceph orch ls with- export 时修改规格来获取当前内容,您需要在重新应用规格前修改 cert/key 文件的格式。建议您使用格式为 '|' 和缩进字符串。

Example:

client_cert: |
    -----BEGIN CERTIFICATE-----
    MIIFCTCCAvGgAwIBAgIUO6yXXkNb1+1tJzxZDplvgKpwWkMwDQYJKoZIhvcNAQEL
    BQAwFDESMBAGA1UEAwwJbXkuY2xpZW50MB4XDTI0MDcyMzA3NDI1N1oXDTM0MDcy

    ...

Bugzilla:2299705

6.1.2. 功能增强

本节列出了此 Red Hat Ceph Storage 发行版本中引入的改进。

6.1.2.1. Ceph 文件系统

由于并行克隆限制,新的克隆创建不再减慢

在以前的版本中,当达到并行克隆的限制时,克隆的其余部分会发生队列,这会减慢克隆的速度。

在这个版本中,当一次达到并行克隆限制时,新的克隆创建请求将被拒绝。此功能默认为启用,但可以禁用。

Bugzilla:2290711

Ceph 文件系统名称现在可以交换,以增强灾难恢复

此增强通过使用 ceph fs swap 命令,为两个文件系统提供选项来交换其名称。文件系统 ID 也可以使用这个命令进行交换。

此 API 的功能是促进文件系统交换进行灾难恢复。特别是,这可避免临时缺少命名文件系统的情况,这些情况可能会提示输入更高级别的存储操作器来重新创建缺少的文件系统。

Bugzilla:2149717

现在,quota.max_bytes 被设置在更了解的大小值中

在以前的版本中,quota.max_bytes 值是以字节为单位设置的,因此通常非常大的大小值,这很难设置或更改。

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

Bugzilla:2294244

不再包含 standby-replay MDS 的健康状况警告

在以前的版本中,所有内节点和 stray 计数器健康警告都会在 standby-replay MDS 中显示。

在这个版本中,standby-replay MDS 健康状况警告不再显示,因为它们不相关。

Bugzilla:2248169

6.1.2.2. Ceph 对象网关

在关闭过程中,S3 请求不再关闭传输中

在以前的版本中,一些客户端在关闭期间在传输期间关闭 S3 请求会出现问题,而不等待。

在这个版本中,可以配置 S3 请求(默认关闭)以等待 rgw_exit_timeout_secs 参数中定义的持续时间,以便在无条件退出 Ceph 对象网关进程前等待所有未完成的请求。Ceph 对象网关将等待最多 120 秒(可配置),以便在无条件退出前,等待所有持续 S3 请求完成。在此期间,不接受新的 S3 请求。

注意

在容器化部署中,还需要额外的 extra_container_agrs 参数配置 of --stop-timeout=120 (或 rgw_exit_timeout_secs 参数的值(如果不是默认)。

Bugzilla:2290564

6.2. Red Hat Ceph Storage 7.1z2

Red Hat Ceph Storage 版本 7.1z2 现已正式发布。此更新包括的程序错误修正信息包括在 RHBA-2024:9010RHBA-2024:9011 公告中。

6.2.1. 已知问题

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

6.2.1.1. Build

在 RHEL 8 到 RHEL 9 升级过程中删除了集群密钥和某些配置目录

由于 RHEL 8 弃用 libunwind 软件包,在升级到 RHEL 9 时会删除此软件包。ceph-common 软件包依赖于 libunwind 软件包,因此也会被删除。删除 ceph-common 软件包会导致删除 /etc/ceph/var/log/ceph 目录中的集群密钥和某些配置。

因此,可能会发生各种节点故障。由于删除了 /etc/ceph 软件包,Ceph 操作可能无法在某些节点上工作。systemd 和 Podman 无法在节点上的 Ceph 服务中启动,因为删除了 /var/log/ceph 软件包。

作为临时解决方案,请将 LEAPP 配置为不会删除 libunwind 软件包。具体步骤请参阅 将 RHCS 5 主机从 RHEL 8 升级到 RHEL 9 会删除 ceph-common 软件包。服务无法在红帽客户门户网站中启动

Bugzilla:2263195

6.2.2. 功能增强

本节列出了此 Red Hat Ceph Storage 发行版本中引入的改进。

6.2.2.1. Ceph 文件系统

对 Replication Start/结束通知的指标支持。

在这个版本中,提供对 Replication Start/End 通知的指标支持。这些指标为数据复制启用监控逻辑。

此功能增强提供了标记的指标: last_synced_start,last_synced_end,last_synced_duration,last_synced_bytes 为请求。

Bugzilla:2270946

6.2.2.2. RADOS

新的 mon_cluster_log_level 命令选项来控制外部实体的集群日志级别详细程度

在以前的版本中,无论其级别设置是什么,调试详细程度日志都会发送到所有外部日志记录系统。因此,/var/ 文件系统会快速填满。

在这个版本中,mon_cluster_log_file_levelmon_cluster_log_to_syslog_level 命令选项已被删除。在这个发行版本中,只使用新的通用 mon_cluster_log_level 命令选项来控制集群日志文件和所有外部实体的集群级别详细程度。

Bugzilla:2320863

第 7 章 源

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

法律通告

Copyright © 2025 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.