第 3 章 新功能及功能增强


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

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

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

在这个版本中,除了有线路的加密外,有线路的压缩也支持在存储集群中保护网络操作。

如需了解更多详细信息,请参阅 Red Hat Ceph Storage 数据安全性和强化指南中的加密和密钥管理部分 https://access.redhat.com/documentation/zh-cn/red_hat_ceph_storage/6/html-single/data_security_and_hardening_guide/#assembly-encryption-and-key-management_sec

Python 通知更高效

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

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

pg_num 的更改会被限制

在以前的版本中,如果对 outpaced pgp_numpg_num 进行了 drastic 更改,用户就可以达到每个 OSD 放置组限制,并导致错误。

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

新的 pg_progress 项会被创建,以避免转储进度更新的所有放置组统计

在以前的版本中,pg_dump 项目包含在将 CPU 复制到 python-land 时的不必要的字段。这往往会造成长时间的 ClusterState::lock 保存时间,从而导致长期的 ms_dispatch 延迟,通常会减慢进程的速度。

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

mgr_ip 不再被重新抓取

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

在这个版本中,mgr_ip 不会更改活跃 Ceph 管理器模块的生命周期,因此不需要重新抓取到 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 容量,在检测到异常测量时,保护机制回退到默认容量。
  • 消除了为后台任务设置睡眠节流。
  • 更高的恢复默认值和 max backfills 选项,它们能够使用 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 分配执行分配器对象的完整 destage。
  • 使用缓存年龄 binning 时,可能会分配旧的 onodes 的优先级低于热工作负载数据。如需了解更多详细信息,请参阅 Ceph BlueStore

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

在这个版本中,您可以使用 cephadm 来创建和管理操作 susyem 调优配置文件,以提高性能 Red Hat Ceph Storage 集群。如需了解更多详细信息,请参阅使用 '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 下的集群日志。只要没有传递给 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 对象网关守护进程。

Example

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 字段(引用主机的初始 crush 位置)添加到主机规格中。如果用户在主机规格中设置 location 字段,cephadm 使用主机名运行 ceph osd crush add-bucket,并给定位置将其添加到 crush 映射中。对于 OSD,它们在创建时通过 crush map 中的 crush_device_class 进行设置。

注意

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

Bugzilla:2124441

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

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

Bugzilla:2133802

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

在这个版本中,为了让用户能够更好地自定义其 node-exporter 部署,而无需明确支持每个单独的选项,现在通过使用 extra_entrypoint_args 字段为 Cephadm 部署的其他指标启用额外的指标。

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 规格文件中分配。

Example

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 部署 OSD 时允许用户更灵活地使用 crush_device_class 设置,您可以在 OSD 规格中指定每个路径。它还支持提供这些每路径 crush_device_classes 以及 OSD 服务的 service-wide crush_device_class。对于服务范围内的 crush_device_class,则设置被视为默认,路径指定的设置会具有优先权。

Example

 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 中,所有日志不再记录到 cephadm.log when-- verbose 时。现在,cephadm.log 更易于阅读,因为之前写入的大多数垃圾邮件已不存在。

Bugzilla:2180110

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat