发行注记


Red Hat Ceph Storage 6.1

Red Hat Ceph Storage 6.1 发行注记

Red Hat Ceph Storage Documentation Team

摘要

本发行注记介绍了为 Red Hat Ceph Storage 6.1 产品发行版本实施的主要功能、增强功能、已知问题和程序错误修复。
红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。我们从这四个术语开始:master、slave、黑名单和白名单。由于此项工作十分艰巨,这些更改将在即将推出的几个发行版本中逐步实施。详情请查看 CTO Chris Wright 信息

使开源包含更多

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

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

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

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

第 1 章 简介

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

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

第 2 章 致谢

Red Hat Ceph Storage 版本 6.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 版本中引入的所有主要更新、增强功能和新功能。

这个版本添加的主要功能是:

现在提供了带有 msgr2 协议的在线压缩

在这个版本中,除了 wire 上的加密外,还支持对 wire 的压缩来保护存储集群中的网络操作。

如需了解更多详细信息,请参阅 Red Hat Ceph Storage Data Security and Hardening Guide 中的 Encryption and key management 部分。

Python 通知更为高效

在以前的版本中,一些未使用的通知目前不需要模块。这会导致效率低下。

在这个版本中,引进了 NotifyType 参数。它被注解,哪些事件模块暂时消耗,如 NotifyType.mon_mapNotifyType.osd_map 等等。因此,只有模块请求的事件才会排队。发出没有模块消耗的事件。由于这些更改,python 通知现在更高效。

pg_num 的更改会被限制

在以前的版本中,如果对 pg_num 进行了 drastic 更改,超过paced pgp_num,则用户可能会按osd 放置组限制并导致错误。

在这个版本中,对 pg_num 的更改会被限制,以避免每个 OSD 放置组限制出现问题。

创建新的 pg_progress 项,以避免转储正在进行更新的所有放置组统计信息

在以前的版本中,pg_dump 项包含不必要的 CPU (如果它被复制到 python-land )。这会导致 ClusterState::lock 保存时间较长,从而导致 ms_dispatch 延迟,通常减慢进程的速度。

在这个版本中,会创建一个新的 pg_progress 项,来只转储 mgr 任务进度 需要的字段。

mgr_ip 不再重新获取

在以前的版本中,在活跃 Ceph 管理器模块的生命周期内必须重新获取 mgr_ip

在这个版本中,在活跃 Ceph 管理器模块的生命周期中,mgr_ip 不会改变,因此不需要重新调用 Ceph Manager 进行重新抓取。

Ceph OSD 中的 QoS 默认基于 mClock 算法

在以前的版本中,调度程序默认为 Weighted Priority Queue (WPQ)。基于 mClock 算法的服务质量(QoS)处于实验性阶段,还不建议用于生产环境。

在这个版本中,基于 mClock 的操作队列使 QoS 控制应用到 Ceph OSD 特定的操作,如客户端输入和输出(I/O)和恢复或回填,以及其他后台操作,如 pg scrubsnap trimpg deletion。向每个服务分配资源是基于每个 Ceph OSD 的输入和输出操作(IOPS)容量,并使用内置的 mClock 配置集来实现。

另外,这个版本包括以下改进:

  • OSD 的基于自动基线性能测量决定 Ceph OSD IOPS 容量,并在检测到不实际测量时将其回退到默认容量。
  • 为后台任务设置 sleep throttles 被消除。
  • 恢复和最大回填选项的默认值更高,可以使用 override 标志覆盖它们。
  • 使用 mClock 配置集进行配置,隐藏了调整 mClock 和 Ceph 参数的复杂性。

详情请参阅 Red Hat Ceph Storage 管理指南中的 mClock OSD 调度程序

现在支持 WORM 合规认证

红帽现在支持 WORM 合规认证。

如需了解更多详细信息,请参阅为 S3 启用对象锁定

设置用户和存储桶的速率限值

在这个版本中,您可以根据 Red Hat Ceph Storage 集群中的操作设置用户和存储桶的速率限制。如需了解更多详细信息,请参阅 模拟数据率限制

名为persistent write log cache(持久性写日志缓存)的 librbd 插件,以缩短延迟

在这个版本中,名为 Persistent Write Log Cache (PWL) 的新 librbd 插件提供了一个持久的、具有容错的回写缓存,目标为 SSD 设备。它大大缩短延迟,同时还提高了低 io_depths 的性能。这个缓存使用日志排序的回写设计,它会在内部维护检查点,以便刷新回集群的写入始终崩溃。即使客户端缓存完全丢失,磁盘镜像仍然一致,但数据也会过时。

Ceph 文件系统(CephFS)现在支持快照的高可用性异步复制

在以前的版本中,每个存储集群仅部署一个 cephfs-mirror 守护进程,因此 CephFS 仅支持异步复制快照目录。

在这个版本中,多个 cephfs-mirror 守护进程可以部署到两个或多个节点上,以便在快照同步中实现并发性,从而提供高可用性。

如需了解更多详细信息,请参阅 Red Hat Ceph Storage 文件系统指南中的 Ceph 文件系统镜像部分。

BlueStore 更新到 V3

在这个版本中,BlueStore 对象存储升级到 V3。以下是两个功能:

  • 分配元数据已从 RocksDB 中删除,现在作为具有 OSD 分配的分配器对象的完整停用。
  • 随着缓存年龄组合,可能会为旧的 onodes 分配优先级低于热工作负载数据。如需了解更多详细信息,请参阅 Ceph BlueStore

使用 cephadm 管理操作系统调优配置文件

在这个版本中,您可以使用 cephadm 创建和管理操作 susyem 调优配置文件,以提高性能。如需了解更多详细信息,请参阅使用 'cephadm' 管理操作系统调优配置文件

从 Red Hat Ceph Storage 5 直接升级到 Red Hat Ceph Storage 7 将可用

对于升级计划感知,将直接将 Red Hat Ceph Storage 5 升级到 Red Hat Ceph Storage 7 (N=2)。

引入了一个新的 cephfs-shell 选项,以便按名称挂载文件系统

在以前的版本中,cephfs-shell 只能挂载默认文件系统。

在这个版本中,在 cephfs-shell 中添加了一个 CLI 选项,允许按名称挂载不同的文件系统,这与 kclientceph-fusemds_namespace=fs= options 类似。

第 2 天任务现在可以通过 Ceph 控制面板执行

在这个版本中,在 Ceph 控制面板中,用户可以执行每个第 2 天任务需要每天或每周频率操作。此功能增强提高了仪表板的评估功能、客户体验并增强其可用性和成熟度。此外,还包括新的屏幕元素,以帮助和指导用户检索其他信息以完成任务。

3.1. Cephadm 实用程序

用户现在可以轮转 Ceph 守护进程的身份验证密钥

为安全起见,一些用户偶尔可能需要轮转用于存储集群中守护进程的身份验证密钥。

在这个版本中,使用 ceph orch daemon rotate-key DAEMON_NAME 命令轮转 ceph 守护进程的身份验证密钥。对于 MDS、OSD 和 MGR 守护进程,这不需要守护进程重启。但是,对于其他守护进程,如 Ceph 对象网关守护进程,守护进程可能需要重启来切换到新密钥。

Bugzilla:1783271

bootstrap 日志现在会记录到 STDOUT

在这个版本中,为了减少潜在的错误,对于 bootstrap 成功的情况,bootstrap 的日志信息现在被记录在 STDOUT 而不是 STDERR 中。

Bugzilla:1932764

Ceph 对象网关 zonegroup 现在可以在编配器使用的规格中指定

在以前的版本中,编配器可以处理为 Ceph 对象网关设置 realm 和 zone。但是,不支持设置 zonegroup。

在这个版本中,用户可以在编配器使用的规格中指定 rgw_zonegroup 参数。Cephadm 为从规范部署的 Ceph 对象网关守护进程设置 zonegroup。

Bugzilla:2016288

现在,如果为部署 OSD 指定的主机名未知,Ceph orch daemon add osd 现在会报告

在以前的版本中,由于 ceph orch daemon add osd 命令不提供任何输出,因此如果主机名不正确,用户不会注意到。因此,Cephadm 将丢弃命令。

在这个版本中,如果为部署 OSD 指定的主机名未知,ceph orch daemon add osd 命令会向用户报告。

Bugzilla:2016949

cephadm shell 命令现在报告在启动时用于 shell 的镜像

在以前的版本中,用户并不总是知道哪个镜像用于 shell。这会影响用于 shell 中运行命令的软件包。

在这个版本中,cephadm shell 命令会报告在启动时用于 shell 的镜像。用户现在可以看到在 shell 中使用的软件包,因为它们可以看到使用的容器镜像,以及当该镜像在 shell 启动时创建时。

Bugzilla:2029714

现在,/var/log/ceph' 下的集群日志已被删除

在这个版本中,若要更好地清理节点,作为从该节点中删除 Ceph 集群的一部分,在运行 cephadm rm-cluster 命令时会删除 /var/log/ceph 下的集群日志。只要 --keep-logs 没有传递给 rm-cluster 命令,集群日志就会被删除。

注意

如果在作为仍然存在集群的主机上运行 cephadm rm-cluster 命令,则主机由 Cephadm 管理,并且 Cephadm mgr 模块仍被启用并在运行,则 Cephadm 可能会立即开始部署新的守护进程,并且可能会显示更多日志。

Bugzilla:2036063

当守护进程名称传递给 ceph orch restart 命令时,更好的错误处理

在以前的版本中,当传递给 ceph orch restart 命令的守护进程是 haproxy 或 keepalived 守护进程时,它将返回一个回溯。如果用户错误地或 Cephadm 出错,则用户不明确。

在这个版本中,引入了更好的错误处理,以识别用户何时将守护进程名称传递给 ceph orch restart 命令,而不是预期的服务名称。在遇到守护进程名称时,Cephadm 报告并请求用户检查 ceph orch ls 是否有要传递的有效服务。

Bugzilla:2080926

用户现在可以使用 ceph rgw realm bootstrap -i rgw_spec.yaml 命令创建 Ceph 对象网关域、zone 和 zonegroup

在这个版本中,为了简化在 Red Hat Ceph Storage 集群上设置 Ceph 对象网关的过程,用户可以使用 ceph rgw realm bootstrap -i rgw_spec.yaml 命令创建 Ceph 对象网关域、区域和 zonegroup。规范文件应该类似于使用编配器部署 Ceph 对象网关守护进程的模型。然后,命令会创建 realm、zone 和 zonegroup,并将规格传递给编配器,然后部署 Ceph 对象网关守护进程。

示例

rgw_realm: myrealm
rgw_zonegroup: myzonegroup
rgw_zone: myzone
placement:
  hosts:
   - rgw-host1
   - rgw-host2
spec:
  rgw_frontend_port: 5500

Bugzilla:2109224

crush_device_classlocation 字段分别添加到 OSD 规格和主机规格中

在这个版本中,crush_device_class 字段添加到 OSD 规格中,而 location 字段则添加到主机规格中。如果用户在主机规格中设置 location 字段,cephadm 使用主机名运行 ceph osd crush add-bucket,并在 crush map 中将其添加为存储桶。对于 OSD,在创建时,使用 crush map 中的给定 crush_device_class 设置它们。

注意

这只适用于根据设置字段的规格创建的 OSD。它不会影响已部署的 OSD。

Bugzilla:2124441

用户可以启用 Ceph 对象网关管理器模块

在这个版本中,Ceph Object Gateway Manager 模块可用,可以使用 ceph mgr module enable rgw 命令启用 rgw 命令,以便用户访问 Ceph 对象网关管理器模块的功能,如 ceph rgw realm bootstrapceph rgw realm token 命令。

Bugzilla:2133802

用户可以为 node-exporter 守护进程启用额外的指标

在这个版本中,要允许用户对 node-exporter 部署进行更多自定义,而无需明确支持每个独立选项,现在增加了额外的指标,可以使用 extra_entrypoint_args 字段为 Cephadm 部署的 node-exporter 守护进程启用。

service_type: node-exporter service_name: node-exporter placement: label: "node-exporter" extra_entrypoint_args: - "--collector.textfile.directory=/var/lib/node_exporter/textfile_collector2" ---

Bugzilla:2142431

用户可以设置 Ceph Monitor 的 crush 位置来替换 tiebreaker 监视器

在这个版本中,用户可以为主机上部署的 monitor 设置 crush 位置。它应在 mon 规范文件中分配。

示例

service_type: mon
service_name: mon
placement:
  hosts:
  - host1
  - host2
  - host3
spec:
  crush_locations:
    host1:
    - datacenter=a
    host2:
    - datacenter=b
    - rack=2
    host3:
    - datacenter=a

这主要是为了在 Cephadm 部署的扩展集群中替换 tiebreaker 监控守护进程,更加可行。如果没有此更改,用户必须手动编辑 Cephadm 编写的文件来部署 tiebreaker 监控器,因为不允许 tiebreaker monitor 在不声明其 crush 位置的情况下加入。

Bugzilla:2149533

crush_device_class 现在可在 OSD 规格中为每个路径指定

在这个版本中,要允许用户在通过 Cephadm、crush_device_class 处部署 OSD 时,使用 crush_device_class 设置的用户更大的灵活性,您可以在 OSD 规格中指定每个路径。还支持为 OSD 服务提供这些每个路径 crush_device_classes 以及服务范围 crush_device_class。在服务范围 crush_device_class 时,设置被视为默认值,并且路径指定的设置具有优先权。

示例

 service_type: osd
    service_id: osd_using_paths
    placement:
      hosts:
        - Node01
        - Node02
    crush_device_class: hdd
    spec:
      data_devices:
        paths:
        - path: /dev/sdb
          crush_device_class: ssd
        - path: /dev/sdc
          crush_device_class: nvme
        - /dev/sdd
      db_devices:
        paths:
        - /dev/sde
      wal_devices:
        paths:
        - /dev/sdf

Bugzilla:2151189

现在,当主机在升级过程中离线时,cephadm 会引发特定的健康警告 UPGRADE_OFFLINE_HOST

在以前的版本中,当因为主机离线而升级失败时,会引发通用 UPGRADE_EXCEPTION 健康警告,用户很难理解。

在这个版本中,当因为主机离线而升级失败时,Cephadm 会引发特定的健康警告 - UPGRADE_OFFLINE_HOST,问题现在对用户透明。

Bugzilla:2152963

如果没有传递 --verbose,所有 Cephadm 日志不再记录到 cephadm.log

在以前的版本中,一些 Cephadm 命令(如 gather-facts )每次运行时都会通过大量命令输出来垃圾邮件。在某些情况下,每分钟一次。

在这个版本中,在 Cephadm 中,当 --verbose 没有传递时,所有日志不再登录到 cephadm.logcephadm.log 现在更易于阅读,因为之前写入的大多数垃圾邮件都不再存在。

Bugzilla:2180110

3.2. Ceph 仪表板

为 OSD 块列表计数添加新指标

在这个版本中,若要配置对应的警报,Ceph 控制面板中会添加新的指标 ceph_cluster_osd_blocklist_count

Bugzilla:2067709

ceph-exporter 守护进程简介

在这个版本中,引入了 ceph-exporter 守护进程,以收集和公开所有 Ceph 守护进程的性能计数器,作为 Prometheus 指标。它部署到集群的每个节点上,以便在大规模集群中执行。

Bugzilla:2076709

通过 Dashboard 支持对 RBD 镜像进行强制提升

在以前的版本中,虽然 Ceph 控制面板中实施了 RBD 镜像提升/降级,但没有选项可以强制提升。

在这个版本中,添加了对通过 Ceph 仪表板强制提升 RBD 镜像的支持。如果 Ceph 控制面板中的提升失败,则会为用户提供强制提升的选项。

Bugzilla:2133341

支持收集和公开标记的性能计数器

在这个版本中,支持收集和公开 Ceph 守护进程标记的性能计数器,因为引进了带有标签的 Prometheus 指标。

Bugzilla:2146544

3.3. Ceph 文件系统

为更多客户端加载增加 CephFS-top 限制

在以前的版本中,由于 cephfs-top 工具中的限制,一次只加载 100 个客户端,如果载入更多客户端,则无法滚动并挂起。

在这个版本中,cephfs-top 用户可以垂直滚动,并可水平滚动。这可让 cephfs-top 加载接近 10,000 个客户端。用户可以滚动加载的客户端,并在屏幕上查看它们。

Bugzilla:2138793

用户现在可以根据 cephfs-top中的选择字段对客户端进行排序

在这个版本中,用户可以选择根据 cephfs-top 中的字段对客户端进行排序,并限制要显示的客户端数量。这可让用户根据要求的字段顺序分析指标。

Bugzilla:2158689

非标题 omap 条目现在包含在 omap 条目中

在以前的版本中,如果在决定合并或分割片段时没有考虑非头快照条目,则目录片段不会被分割。因此,目录对象中的 omap 条目数量将超过特定限制,并导致集群警告。

在这个版本中,在决定合并或分割目录片段时,非标题 omap 条目的数量包括在 omap 条目的数量中,以便不会超过限制。

Bugzilla:2159294

3.4. Ceph 对象网关

从另一个区复制的对象现在返回标头

在这个版本中,在多站点配置中,从另一个区复制的对象,返回标头 x-amz-replication-status=REPLICA,以允许多站点用户识别对象是否在本地复制。

Bugzilla:1467648

支持 AWS PublicAccessBlock

在这个版本中,Ceph Object Storage 支持 AWS 公共访问块 S3 API,如 PutPublicAccessBlock

Bugzilla:2064260

Swift 对象存储点现在包括对 SHA-256SHA-512 摘要算法的支持

在以前的版本中,在 2022 年,OpenStack Swift 添加了对摘要算法的支持,但 Ceph 对象网关还没有实现它们。

在这个版本中,Ceph 对象网关的 Swift 对象存储划分现在包括在 tempurl 操作中对 SHA-256SHA-512 摘要方法的支持。Ceph 对象网关现在可以通过最新的 OpenStack Swift 客户端正确处理 tempurl 操作。

Bugzilla:2105950

3.5. 多站点 Ceph 对象网关

当对象同步到区时,存储桶通知会被发送

在这个版本中,当对象同步到区时,存储桶通知会被发送,以允许外部系统在对象级别接收信息到区域同步状态。添加了以下存储桶通知事件类型 - s3:ObjectSynced:*s3:ObjectSynced:Created。使用 bucket 通知机制配置时,会在成功同步对象时从同步 Ceph 对象网关发送通知事件。

注意

在您要查看发送通知事件的每个区域中,应单独执行主题和通知配置。

Bugzilla:2053347

在默认复制区域时禁用每个存储桶复制

在这个版本中,引入了在使用多站点同步策略复制区域时禁用每个存储桶复制的功能,以确保选择性存储桶可以选择 out。

Bugzilla:2132554

第 4 章 程序错误修复

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

4.1. Cephadm 实用程序

如果在初始 Ceph 配置中作为公共网络传递了以逗号分隔的 IP 列表,则 bootstrap 不再会失败

在以前的版本中,如果列表被用引号括起,cephadm bootstrap 会错误地解析以逗号分隔的 IP 地址列表。因此,如果以逗号分隔的 IP 地址列表(如 '172.120.3.0/24,172.117.3.0/24,172.118.3.0/24,172.119.3.0/24),则 bootstrap 将失败,在初始 Ceph 配置中以 public_network 提供,使用 --config 参数传递给 bootstrap。

在这个版本中,您可以将以逗号分隔的 IP 列表输入传递给 public_networkcluster_network 的 bootstrap 的初始 Ceph 配置,它可以正常工作。

Bugzilla:2111680

Cephadm 不再尝试解析提供的 yaml 文件

在以前的版本中,cephadm bootstrap 会尝试手动解析提供的 yaml 文件。因此,有时即使用户为 cephadm bootstrap 提供了有效的 yaml 文件,手动解析也会失败,具体取决于单个规格,从而导致整个规格被丢弃。

在这个版本中,cephadm 不再尝试解析 yaml 超过必要值。主机规格仅针对分散 SSH 密钥的目的而进行搜索。否则,规格只传递给 manager 模块。cephadm bootstrap --apply-spec 命令现在可以使用任何有效的规格按预期工作。

Bugzilla:2112309

host.containers.internal 条目不再添加到已部署容器的 /etc/hosts 文件中

在以前的版本中,某些 podman 版本默认会在部署的容器的 /etc/hosts 文件中添加 host.containers.internal 条目。因此,在某些与这个条目相关的服务中存在一个问题,因为它被误认为代表实际节点的 FQDN。

在这个版本中,Cephadm 在部署容器时挂载主机的 /etc/hosts 文件。容器中 /etc/hosts 文件中的 host.containers.internal 条目不再存在,避免与该条目相关的所有错误,但用户仍然可以看到主机的 /etc/hosts,以获取容器内的名称解析。

Bugzilla:2133549

Cephadm 现在仅在发生实际更改时记录设备信息

在以前的版本中,cephadm'would 比较报告 OSD 的所有字段,以检查新的或更改的设备。但是,其中一个字段包含一个时间戳,每次都有所不同。因此,'cephadm 每次刷新主机设备时都会记录它"Detected new or changed devices",无论是否存在实际变化。

在这个版本中,设备信息与之前的信息的比较不再会考虑时间戳字段来持续更改。Cephadm 现在仅在设备中存在实际更改时进行日志。

Bugzilla:2136336

生成的 Prometheus URL 现在可以访问

在以前的版本中,如果主机没有 FQDN,则生成的 Prometheus URL 为 http://_host-shortname:9095_,它无法访问。

在这个版本中,如果没有 FQDN 可用,则在短名称中使用主机 IP。为 Prometheus 生成的 URL 现在是一个可访问的格式,即使主机 Prometheus 部署到没有 FQDN 可用的服务中。

Bugzilla:2153726

在将文件写入主机时,cephadm 不再有权限问题

在以前的版本中,cephadm 首先在 /tmp 目录中创建文件,然后将其移到其最终位置。因此,在某些设置中,编写文件时会出现权限问题,使 cephadm 有效地运行,直到修改权限为止。

在这个版本中,cephadm 使用 '/tmp 中的子目录将文件写入没有相同权限问题的主机。

Bugzilla:2182035

4.2. Ceph 仪表板

Expand Cluster 向导的 OSD 创建步骤中的默认选项可以正常工作

在以前的版本中,Expand Cluster 向导的 OSD 创建步骤中的默认选项无法在仪表板中工作,从而导致用户显示选项为 "selected"。

在这个版本中,默认选项可以正常工作。另外,如果用户决定跳过这一步,则会添加一个 "Skip" 按钮。

Bugzilla:2111751

用户可以创建普通或镜像快照

在以前的版本中,即使允许用户创建普通镜像快照和镜像镜像快照,但无法创建普通镜像快照。

在这个版本中,用户可以从两个选项中选择常规或镜像镜像快照模式。

Bugzilla:2145104

Host 页面中不再发生 flicker

在以前的版本中,如果超过 1 个主机,主机页面会在 5 秒后出现 flicker,从而导致用户体验不正确。

在这个版本中,API 被优化以正常加载页面,不再发生 flicker。

Bugzilla:2164327

4.3. Ceph 指标

Ceph exporter 和 prometheus manager 模块生成的指标名称相同

在以前的版本中,Prometheus 管理器模块生成来自 Ceph 守护进程(性能计数器)的指标。新的 Ceph exporter 将替换 Prometheus manager 模块,生成的指标名称不会遵循 Prometheus manager 模块中应用的相同规则。因此,同一性能计数器的指标名称根据指标的提供程序(Prometheus 管理器模块或 Ceph 导出器)的不同

在这个版本中,Ceph exporter 使用与 Prometheus manager 模块中的规则相同的规则,从 Ceph 性能计数器生成指标名称。Ceph 导出器和 Prometheus 管理器模块生成的指标完全相同。

Bugzilla:2186557

4.4. Ceph 文件系统

现在,在创建快照时为快照目录更新 mtimechange_attr

在以前的版本中,libcephfs 客户端不会更新 mtime,并在创建或删除 snaps 时更改属性。因此,NFS 客户端无法正确列出 CephFS NFS-Ganesha 导出中的 CephFS 快照。

在这个版本中,当快照被创建、删除和重命名时,mtimechange_attr 会为快照目录 .snap 更新。正确的 mtimechange_attr 确保列出快照不会返回过时的快照条目。

Bugzilla:1975689

cephfs-top -d [--delay] 选项只接受整数值,范围介于 1 到 25

在以前的版本中,由于一些新的 curses 方法,cephfs-top -d [--delay] 选项无法正常工作。新的 curses 方法只接受整数值,因为在从 helper 功能获取浮点值时抛出异常。

在这个版本中,cephfs-top -d [--delay] 选项只接受整数值,范围在 1 到 25 之间,cephfs-top 实用程序可以正常工作。

Bugzilla:2136031

在 unlink 完成后创建相同的 dentries 不会使 MDS 守护进程崩溃

在以前的版本中,在 unlink 和 create 操作之间有一个 racy 条件。因此,如果因为任何原因导致之前的未链接请求延迟,并且在此期间尝试创建相同的 dentries,则会导致 MDS 守护进程崩溃或新创建失败,但写入的内容将会丢失。

在这个版本中,用户需要确保在未链接完成前等待同一 dentries 时出现冲突。

Bugzilla:2140784

运行 ceph nfs cluster info CLUSTER_ID 命令时,不存在的集群不再显示。

在以前的版本中,当运行 ceph nfs cluster info CLUSTER_ID命令时,不会检查集群是否存在,因为这会显示不存在的集群的信息,如 virtual_ipbackend、null 和空。

在这个版本中,'ceph nfs cluster info CLUSTER_ID' 命令检查集群是否存在,在查询 不存在的集群时,不会抛出 Error ENOENT: 集群。

Bugzilla:2149415

snap-schedule 模块不再错误地引用 volumes 模块

在以前的版本中,在尝试获取子卷路径时,snap-schedule 模块会错误地引用 volumes 模块。由于使用了不正确的 volumes 模块和远程方法名称,因此会显示 ImportError 回溯信息。

在这个版本中,未测试且不正确的代码会被重新处理,方法是通过 snap-schedule CLI 接口方法调用的。现在,在尝试添加子卷级别调度时,snap-schedule 模块可以正确地解析子卷路径。

Bugzilla:2153196

整数溢出和 ops_in_flight 值溢出不再发生

在以前的版本中,_calculate_ops 将依赖于配置选项 filer_max_purge_ops,可即时修改。因此,如果 ops_in_flight 的值设为 uint64的功能,则会有一个整数溢出,这会使 ops_in_flight 大于 max_purge_ops,且无法返回合理的值。

在这个版本中,在 ops_in_flight 中使用 filer_max_purge_ops 会被忽略,因为它已在 Filer::_do_purge_range () 中使用。整数溢出和 ops_in_flight 值溢出不再发生。

Bugzilla:2159307

无效的 OSD 请求不再提交到 RADOS

在以前的版本中,当第一个 dentry 有足够的元数据且大小大于 max_write_size 时,无效的 OSD 请求将提交到 RADOS。因此,RADOS 会失败无效的请求,从而导致 CephFS 为只读。

在这个版本中,所有 OSD 请求都会填充验证的信息,然后再将其发送到 RADOS,且没有无效的 OSD 请求会导致 CephFS 为只读。

Bugzilla:2160598

MDS 现在处理所有 stray 目录条目。

在以前的版本中,MDS stray 目录处理逻辑中的一个错误会导致 MDS 跳过处理几个 stray 目录条目。因此,MDS 不会处理所有 stray 目录条目,从而导致已删除的文件没有释放空间。

在这个版本中,stray 索引指针已被修正,以便 MDS 处理所有 stray 目录。

Bugzilla:2161479

附加到 Ceph 文件系统的池的池级别快照被禁用

在以前的版本中,池级 snaps 和 mon-managed snaps 具有自己的 snap ID 命名空间,这会导致 ID 间的冲突,Ceph Monitor 无法唯一标识一个 snap,因为它是池级 snap 还是 mon-managed snap。因此,在引用 ID 时会删除错误的 snap,这存在于池级 snaps 和 mon-managed snaps 集合中。

在这个版本中,附加到 Ceph 文件系统的池级别 snaps 被禁用,且不会发生池 ID 冲突。因此,当 CephFS snap 被删除时,不会发生意外的数据丢失。

Bugzilla:2168541

客户端请求不再在 MDS 和客户端之间无限期地退回

在以前的版本中,Ceph 协议在 CephFS 客户端和 MDS 之间客户端请求之间存在不匹配。因此,在 CephFS 客户端和 MDS 间通信时,对应的信息会被截断或丢失,客户端请求会在 MDS 和客户端之间无限期地退回。

在这个版本中,客户端请求的协议中相应成员的类型被修正,方法是使它们使用相同的类型,并且新代码与旧的 Ceph 兼容。客户端请求不会无限期地在 MDS 和客户端之间退回,并在被充分重试后停止。

Bugzilla:2172791

在 Ceph Manager 守护进程服务中添加了代码 assert 来检测元数据崩溃

在以前的版本中,管理器守护进程服务会为运行 Postgres 等工作负载引入与快照相关的元数据崩溃类型。

在这个版本中,在管理器守护进程服务中添加了代码 assert,它会在检测到新崩溃时触发。这降低了损坏的增加,并允许收集日志来确定原因。

注意

如果在集群升级到 Red Hat Ceph Storage 6.1 后守护进程崩溃,请联系红帽支持以分析和纠正操作。

Bugzilla:2175307

由于 sessionmap 版本不匹配的问题,MDS 守护进程不再崩溃

在以前的版本中,当 MDS 故障转移发生时,MDS 会话映射日志无法正确保留。因此,当新的 MDS 尝试重播日志时,会话映射日志会与 MDCache 中的信息不匹配,或者来自其他日志日志的信息,从而导致 MDS 守护进程触发崩溃本身。

在这个版本中,尝试强制重播 sessionmap 版本而不是崩溃 MDS 守护进程会导致因为 sessionmap 版本不匹配的问题而崩溃 MDS 守护进程。

Bugzilla:2182564

在等待 cap revocation confirmment 时 MDS 不再无限期卡住

在以前的版本中,如果 __setattrx () 失败,_write () 将保留 CEPH_CAP_FILE_WR caps 引用,MDS 会无限期卡住等待上限的撤销确认。它还会导致其他客户端的请求无限期卡住。

在这个版本中,如果 __setattrx () 失败,且 MDS 的上限撤销请求没有卡住,则会发布 CEPH_CAP_FILE_WR caps reference。

Bugzilla:2182613

4.5. Ceph 卷实用程序

ceph-volume中的每个数据库设备计算正确的大小

在以前的版本中,从 RHCS 4.3 开始,ceph-volume 不会使单个 VG 附带所有数据库设备,因为每个数据库设备都有自己的 VG。因此,每个 LV 的计算数据库大小会有所不同。

在这个版本中,逻辑被更新为考虑使用 LVM 布局的新数据库设备。为每个数据库设备计算正确的大小。

Bugzilla:2185588

4.6. Ceph 对象网关

现在,可以使用或不结尾斜杠进行主题创建

在以前的版本中,在 push-endpoint URL 中带有一个尾部斜杠的 http 端点无法创建主题。

在这个版本中,允许使用没有尾部斜杠进行主题创建,它会成功创建。

Bugzilla:2082666

Blocksize 被改为 4K

在以前的版本中,Ceph 对象网关 GC 处理会消耗过量时间,因为使用了将使用 GC 队列的 1K 块大小。这会导致处理大型 GC 队列较慢。

在这个版本中,blocksize 被改为 4K,它加速处理大型 GC 队列。

Bugzilla:2142167

时间戳在多部分上传存储桶通知事件中发送到接收器

在以前的版本中,在多部分上传存储桶通知事件上不会发送时间戳。因此,事件的接收器不知道多部分上传终止的时间。

在这个版本中,在通知事件发送到接收方时,多部分上传结束的时间戳。

Bugzilla:2149259

对象大小和 etag 值不再作为 0/发送

在以前的版本中,在从生命周期分配存储桶通知前,一些对象元数据不会被解码。因此,对象大小和 etag 值在来自生命周期事件的通知中作为 0/ 发送。

在这个版本中,获取对象元数据,值会被正确发送通知。

Bugzilla:2153533

Ceph 对象网关从 kafka 代理 disconnections 中恢复

在以前的版本中,如果 kafka 代理停机 30 秒,则在代理再次启动后不会重新连接。因此,不会发送存储桶通知,最终在队列填充后,需要通知的 S3 操作将被拒绝。

在这个版本中,无论代理停机的时间,代理都会重新连接,Ceph 对象网关可以从 kafka 代理断开连接。

Bugzilla:2184268

带有块的 Transfer-Encoding 的 S3 PUT 请求不需要 content-length

在以前的版本中,带有 Transfer-Encoding:chunked 的 PUT 对象的 S3 客户端,而不提供 x-amz-decoded-content-length 字段,将失败。因此,S3 PUT 请求会失败,并显示 411 Length Required http 状态代码。

在这个版本中,带有块 Transfer-Encoding 的 S3 PUT 请求不需要指定 内容长度,S3 客户端可以按预期执行 S3 PUT 请求。

Bugzilla:2186760

用户现在可以使用正确的凭证配置远程 S3 服务

在以前的版本中,当将远程云 S3 对象存储服务配置为转换对象时,以数字开头的访问密钥会被错误地解析。因此,对象转换的机会会失败。

在这个版本中,密钥会被正确解析。用户无法使用正确凭证进行转换配置远程 S3 服务。

Bugzilla:2187394

4.7. 多站点 Ceph 对象网关

在归档同步模块中不再覆盖存储桶属性

在以前的版本中,存储桶属性在归档同步模块中被覆盖。因此,执行 归档区 sync_object () 时,存储桶策略或任何其他属性都会被重置。

在这个版本中,确保不会重置存储桶属性。源上设置的任何 bucket 属性都会复制到存档区域,而无需重置。

Bugzilla:1937618

zonegroup 在通知事件中添加存储桶 ARN

在以前的版本中,通知事件中的存储桶 ARN 缺少 zonegroup。因此,当通知事件处理程序收到多个 zone group 的事件时,会导致识别事件源存储桶时出现混淆。

在这个版本中,zonegroup 被添加到存储桶 ARN 中,从多个 zone group 接收事件的事件处理程序都有所有必要的信息。

Bugzilla:2004175

bucket read_sync_status () 命令不再返回负的 ret 值

在以前的版本中,存储桶 read_sync_status () 始终会返回负的 ret 值。因此,bucket sync marker 命令会失败,并带有 : ERROR: sync.read_sync_status ()返回 error=0

在这个版本中,返回存储桶 read_sync_status () 操作的实际 ret 值,存储桶同步标记命令可以成功运行。

Bugzilla:2127926

新存储桶实例信息存储在新创建的存储桶中

在以前的版本中,在归档区中,当删除源存储桶时,会创建一个新的存储桶,以保留对象的存档版本。新 bucket 实例信息将存储在旧实例中,从而在存档区域上渲染新 bucket 可访问

在这个版本中,存储桶实例信息存储在新创建的存储桶中。已删除源上的存储桶仍可在归档区中访问。

Bugzilla:2186774

当 bucket 的 num_shards 值为 0时,分段错误将不再发生

在以前的版本中,当存储桶的 num_shards 值为 0 时,多站点同步会导致分段错误。这会导致同步行为和分段错误不一致。

在这个版本中,num_shards=0 在数据同步中正确表示,带有 shard 值 0 的存储桶没有同步的问题。

Bugzilla:2187617

4.8. RADOS

在查询 OSD 的 IOPS 容量时,只有与底层设备类型匹配的配置选项会显示测量/默认值

在以前的版本中,osd_mclock_max_capacity_iops_[ssd|hdd] 值会根据 OSD 的底层设备类型设置。配置选项还具有在查询时显示的默认值。例如,如果 OSD 的底层设备类型是 SSD,则 HDD 选项的默认值 osd_mclock_max_capacity_iops_hdd 也会显示为非零值。因此,在查询时显示 OSD 的 HDD 和 SSD 选项的值,从而导致有关正确选项的混淆。

在这个版本中,设置了与底层设备类型匹配的 OSD 的 IOPS 容量相关配置选项,并将 alternate/inactive 配置选项设置为 0。当用户查询 OSD 的 IOPS 容量时,只有与底层设备类型匹配的配置选项会显示测量/默认值。alternative/inactive 选项被设置为 0,以明确表示它已被禁用。

Bugzilla:2111282

4.9. RBD 镜像功能

在命名空间中启用镜像镜像时的错误消息现在提供更详细的信息

在以前的版本中,尝试在命名空间中启用镜像镜像会失败,并显示 "cannot enable mirroring in current pool mirroring mode" 错误。此错误不会提供对问题的见解,也不会提供任何解决方案。

在这个版本中,为了提供更详细的信息,错误处理会被改进,错误现在会在命名空间中显示 "cannot enable mirroring: mirroring: mirroring"。

Bugzilla:2024444

快照镜像不再永久停止

在以前的版本中,如果在将快照标记为完成前,如果 rbd-mirror 守护进程因为某种实际原因将主快照创建请求转发到 rbd-mirror 守护进程时,主快照将永久不完整。这是因为在重试主快照创建请求时,librbd 会注意到此类快照已经存在。它不会检查这个 "pre-existing" 快照是否已完成。因此,快照的镜像被永久停止。

在这个版本中,作为下一个镜像快照创建的一部分(包括由调度程序触发)进行检查,以确保相应地删除任何不完整的快照来恢复镜像。

Bugzilla:2120624

第 5 章 已知问题

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

5.1. Ceph 对象网关

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

5.1.1. Ceph 对象网关

如果 Ceph 对象网关实例因为崩溃或终止而被终止,则 bucket 生命周期处理可能会延迟

目前,如果 Ceph 对象网关实例因为崩溃或终止 -9 终止(非正常关闭),而生命周期处理会发生一个或多个存储桶,则处理可能无法在两个调度周期过后(例如 2 天)终止(非正常关闭)。此时,存储桶被标记为 stale 并重新初始化。这个问题还没有临时解决方案。

Bugzilla:2072680

第 6 章 异步勘误更新

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

6.1. Red Hat Ceph Storage 6.1z6

Red Hat Ceph Storage 版本 6.1z6 现已正式发布。此更新包括的程序错误修正信息包括在 [advisory 链接] 中。

6.2. Red Hat Ceph Storage 6.1z5

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

6.2.1. 功能增强

6.2.1.1. Ceph Ansible 实用程序

现在,在 cephadm-ansible 模块中使用所有 bootstrap CLI 参数

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

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

Bugzilla:2269514

6.2.1.2. RBD 镜像功能

现在,如果专用锁定可用,rbd diff-iterate 现在会在本地执行。

在以前的版本中,当对以 fast-diff 模式(entire_object == true with fast-diff image feature enabled and valid), RBD diff-iterate is not't guaranteed to execution is not guaranteed to execute in local, RBD diff-iterate is not guaranteed to perform of time (fromsnapname ==NULL ))进行比较时,需要保证在本地执行。

在这个版本中,rbd_diff_iterate2 () API 性能有所改进,如果专用锁定可用,则保证 RBD diff-iterate 可以被保证在本地执行。这为 QEMU 实时磁盘同步和备份用例提供了显著的性能改进,假设启用了 fast-diff 镜像功能。

Bugzilla:2259053

6.2.1.3. Ceph 文件系统

现在,如果专用锁定可用,rbd diff-iterate 现在会在本地执行。

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

示例

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

Bugzilla:2243783

6.3. Red Hat Ceph Storage 6.1z4

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

6.3.1. 功能增强

6.3.1.1. Ceph 文件系统

MDS 动态元数据负载均衡器默认为 off

有了这个增强,MDS 动态元数据负载均衡器默认为 off,以提高通过增加 max_mds 文件系统设置而以不可靠或意外的方式进行碎片整理的负载均衡器行为。

Operator 必须明确 打开 负载均衡器才能使用它。

Bugzilla:2255435

MDS 中的常常片段大小 perf 计数器 以更高的优先级进行跟踪。

在这个版本中,MDS 常驻片段大小(或 RSS) perf 计数器 会根据优先级进行跟踪,以允许调用者消耗其值来生成有用的警告,这对于 rook 来确定 MDS RSS 大小并相应地操作。

Bugzilla:2256731

Ceph auth 命令在 MDS 中的权限不正确时提供消息

有了这个增强,MDS 功能的权限现在可以以 r,rw, '*all 开始。这会生成 ceph auth add, ceph auth caps , ceph auth get-or-create 和ceph auth get-or-create -key 等 ceph auth get-or-create-key 命令,以便在 MDS caps 的权限不正确时生成清晰的消息。

Bugzilla:2218189

6.3.1.2. Ceph 对象网关

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

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

Bugzilla:2256364

6.4. Red Hat Ceph Storage 6.1z3

Red Hat Ceph Storage 版本 6.1z3 现已正式发布。此更新包括的程序错误修正信息包括在 RHSA-2023:7740 公告中。

6.4.1. 功能增强

6.4.1.1. Ceph 文件系统

snap schedule 模块现在支持新的保留规格

在这个版本中,用户可以定义新的保留规格来保留快照数量。

例如,如果用户定义保留 50 个快照,无论快照创建节奏如何,保留的快照数量比创建新快照后所指定的最大值的 1 小 1。在这种情况下,保留了 49 快照,以便在下一次迭代的文件系统上创建 1 个快照,以避免破坏系统配置的 mds_max_snaps_per_dir 限制。

注意
Configure the `mds_max_snaps_per_dir`  and snapshot scheduling carefully to avoid unintentional deactivation of snapshot schedules due to file system returning a "Too many links" error if the `mds_max_snaps_per_dir limit` is breached.

Bugzilla:2227807

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

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

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

Bugzilla:2228065

6.4.1.2. Ceph 对象网关

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

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

Bugzilla:2182385

6.4.1.3. NFS Ganesha

NFS Ganesha 版本更新至 V5.6

在这个版本中,对 NFS Ganesha 的更新版本进行了修复:* FSAL 的 state_free's state_free' run is actually free_state is not actually free.* CEPH:修复的 cmount_path。* CEPH:当前,client_oc true 已被中断,强制其为 false

Bugzilla:2249958

6.4.1.4. RADOS

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

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

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

Bugzilla:2240838

在/off 上打开 noautoscale 标志现在保留每个池的原始自动扩展模式配置。

在以前的版本中,当设置了 no autoscale 标志时,pg_autoscaler 不会在每个池的自动扩展模式配置 中保留。因此,在打开/关闭 noautoscale 标志后,用户必须返回并再次为每个池设置 autoscale 模式。

在这个版本中,pg_autoscaler 模块在设置 noautoscale 标志 后为自动扩展模式保留单独的池配置。

Bugzilla:2241201

BlueStore 实例无法打开两次

在以前的版本中,当使用容器时,可以创建针对同一块设备 mknod 的不相关的内节点,从而导致多个容器认为它们具有独占访问权限。

有了这个增强,现在实施了针对块设备专用的 O_EXCL 开放标志的强化公告锁定,从而改进了对在一个块设备上运行 OSD 两次的保护。

Bugzilla:2239449

6.5. Red Hat Ceph Storage 6.1z2

Red Hat Ceph Storage 版本 6.1z2 现已正式发布。此更新包括的程序错误修正信息包括在 RHSA-2023:5693 公告中。

6.5.1. 功能增强

6.5.1.1. Ceph 对象网关

rgw-gap-listrgw-orphan-list 脚本中添加了额外的功能和增强功能,以增强最终用户的体验

有了这个增强,为了提高使用 rgw-gap-list 和 rgw-orphan-list 脚本的最终用户体验,已添加了很多功能和增强功能,包括内部检查、更多命令行选项和增强的输出。

Bugzilla:2228242

运行 rgw-restore-bucket-index 命令时可以指定 realm、zone group 和/或 zone

在以前的版本中,该工具只能用于默认的 realm、zone group 和 zone。

有了这个增强,在运行 rgw-restore-bucket-index 命令时可以指定 realm、zone group 和/或 zone。添加了三个额外的命令行选项:

  • "-r <realm>"
  • "-g <zone group>"
  • "-z <zone>"

Bugzilla:2183926

6.5.1.2. 多站点 Ceph 对象网关

原始的多部分上传现在可以在多站点配置中识别

在以前的版本中,在 6.1z1 版本中修复了数据崩溃错误,它在多站点配置中与服务器端加密进行多部分上传。

在这个版本中,新的工具 radosgw-admin bucket resync encrypted multipart 可以用来识别这些原始多部分上传。任何识别对象的 LastModified 时间戳都会被 1ns 递增,以便对等区再次复制它。对于使用 Server-Side 加密的多站点部署,建议在所有区域升级后针对每个区域中的每个存储桶运行这个命令。

Bugzilla:2227842

6.5.1.3. Ceph 仪表板

现在,仪表板主机加载速度有所改进,页面现在可以更快地加载

在以前的版本中,五个或更多主机的大型集群在主机页面和主页上有线性增加。

在这个版本中,仪表板主机加载速度有所改进,页面现在会更快地加载 magnitude 顺序。

Bugzilla:2220922

6.6. Red Hat Ceph Storage 6.1z1

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

6.6.1. 功能增强

6.6.1.1. Ceph 文件系统

将 unfair Mutex 锁定切换为 fair mutex

在以前的版本中,M Mutex 的实现(例如 C++ 中的 std::mutex )不能保证公平性,并且无法保证以名为 lock () 的顺序由线程获取锁定。在大多数情况下,这可以正常工作,但在过载情况下,客户端请求处理线程,提交 线程始终会在很长时间内成功获取 commit_mutex,从而导致 MDLog::trim () 卡住。这意味着 MDS 守护进程会将日志填入元数据池中,但无法一次修剪过期的片段。

在这个版本中,unfair Mutex 锁定被切换到 fair mutex,所有 commit_mutex waiters 在 FIFO 模式下都由一个停止。

Bugzilla:2158304

6.6.1.2. Ceph 对象网关

bucket 列表功能启用 rgw-restore-bucket-index 工具完成重新索引

在以前的版本中,rgw-restore-bucket-index 工具会将存储桶的索引部分恢复,直到下一用户列出存储桶为止。因此,存储桶的统计信息会错误地报告,直到重新索引完成为止。

在这个版本中,添加了存储桶列表功能,它允许工具完成重新索引,并且正确报告存储桶统计信息。此外,还会添加对构建过程的小更改,不会影响最终用户。

Bugzilla:2182456

对于带有修改元数据的对象,生命周期转换不再会失败

在以前的版本中,在现有对象上设置 ACL 将会更改其 mtime,因为此类对象的生命周期转换失败。

在这个版本中,除非是复制操作,否则对象的 mtime 会保持不变,同时只修改对象元数据,如设置 ACL 或任何其他属性。

Bugzilla:2213801

Blocksize 被改为 4K

在以前的版本中,Ceph 对象网关 GC 处理会消耗过量时间,因为使用了将使用 GC 队列的 1K 块大小。这会导致处理大型 GC 队列较慢。

在这个版本中,blocksize 被改为 4K,它加速处理大型 GC 队列。

Bugzilla:2212446

快照的对象映射准确反映了快照的内容

在以前的版本中,由于一个实现缺陷,在处理类似于写入的操作时将使用过时的快照上下文。因此,快照的对象映射无法保证在进行快照的情况下准确反映快照的内容,而无需静止工作负载。在不同的备份和基于快照的镜像中,启用了对象映射和/或 fast-diff 功能的用例,目标镜像可能会损坏。

在这个版本中,实现缺陷已被修复,一切都可以正常工作。

Bugzilla:2216186

6.6.1.3. Cephadm 实用程序

public_network 参数现在可以有配置选项,如 globalmon

在以前的版本中,在 cephadm 中,在集群 bootstrap 中,public_network 参数始终被设置为 mon 配置部分的一部分,而无需提供任何配置选项来更改此行为。

有了这个增强,您可以使用 Ceph 配置文件在集群 bootstrap 期间为 public_network 参数指定配置选项,如 globalmon

Bugzilla:2156919

来自 cephadm Manager 模块的主机上运行的 Cephadm 命令现在有超时

在以前的版本中,其中一个 Cephadm 命令偶尔会无限期挂起,用户很难注意到并排序问题。

在这个版本中,在 Cephadm mgr 模块的主机上运行的 Cephadm 命令中引入了超时。现在,如果其中一个命令挂起,用户会被警告,显示有关最终失败的健康警告。可以使用 mgr/cephadm/default_cephadm_command_timeout 设置来配置超时,默认为 900 秒。

Bugzilla:2151908

实施对 CA 签名密钥的 cephadm 支持

在以前的版本中,CA 签名的密钥在 Red Hat Ceph Storage 5 中作为部署设置工作,虽然它们的工作是意外、未经测试并破坏,从 Red Hat Ceph Storage 5 改为 Red Hat Ceph Storage 6。

在这个版本中,实现了对 CA 签名密钥的 cephadm 支持。用户现在可以将 CA 签名密钥而不是典型的 pubkeys 用于 SSH 身份验证方案。

Bugzilla:2182941

6.6.2. 已知问题

6.6.2.1. 多站点 Ceph 对象网关

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

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

Bugzilla:1871333

多站点复制可能会在升级过程中停止

如果集群在升级过程中位于不同版本,则多站点复制可能会停止。我们需要挂起同步,直到两个集群都升级到同一版本。

Bugzilla:2178909

第 7 章 源

更新的 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 logoGithubRedditYoutube

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.