第 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
Copy to Clipboard Toggle word wrap

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
Copy to Clipboard Toggle word wrap

这主要是为了在 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
Copy to Clipboard Toggle word wrap

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

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat