第 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_map
、NotifyType.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 scrub
、snap trim
和 pg 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 选项,允许按名称挂载不同的文件系统,这与 kclient
和 ceph-fuse
的 mds_namespace=
或 fs= options
类似。
第 2 天任务现在可以通过 Ceph 控制面板执行
在这个版本中,在 Ceph 控制面板中,用户可以执行每个第 2 天任务需要每天或每周频率操作。此功能增强提高了仪表板的评估功能、客户体验并增强其可用性和成熟度。此外,还包括新的屏幕元素,以帮助和指导用户检索其他信息以完成任务。
3.1. Cephadm 实用程序 复制链接链接已复制到粘贴板!
用户现在可以轮转 Ceph 守护进程的身份验证密钥
为安全起见,一些用户偶尔可能需要轮转用于存储集群中守护进程的身份验证密钥。
在这个版本中,使用 ceph orch daemon rotate-key DAEMON_NAME
命令轮转 ceph 守护进程的身份验证密钥。对于 MDS、OSD 和 MGR 守护进程,这不需要守护进程重启。但是,对于其他守护进程,如 Ceph 对象网关守护进程,守护进程可能需要重启来切换到新密钥。
bootstrap 日志现在会记录到 STDOUT
在这个版本中,为了减少潜在的错误,对于 bootstrap 成功的情况,bootstrap 的日志信息现在被记录在 STDOUT
而不是 STDERR
中。
Ceph 对象网关 zonegroup 现在可以在编配器使用的规格中指定
在以前的版本中,编配器可以处理为 Ceph 对象网关设置 realm 和 zone。但是,不支持设置 zonegroup。
在这个版本中,用户可以在编配器使用的规格中指定 rgw_zonegroup
参数。Cephadm 为从规范部署的 Ceph 对象网关守护进程设置 zonegroup。
现在,如果为部署 OSD 指定的主机名未知,Ceph orch daemon add osd
现在会报告
在以前的版本中,由于 ceph orch daemon add osd
命令不提供任何输出,因此如果主机名不正确,用户不会注意到。因此,Cephadm 将丢弃命令。
在这个版本中,如果为部署 OSD 指定的主机名未知,ceph orch daemon add osd
命令会向用户报告。
cephadm shell
命令现在报告在启动时用于 shell 的镜像
在以前的版本中,用户并不总是知道哪个镜像用于 shell。这会影响用于 shell 中运行命令的软件包。
在这个版本中,cephadm shell
命令会报告在启动时用于 shell 的镜像。用户现在可以看到在 shell 中使用的软件包,因为它们可以看到使用的容器镜像,以及当该镜像在 shell 启动时创建时。
现在,/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
是否有要传递的有效服务。
用户现在可以使用 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 对象网关守护进程。
示例
crush_device_class
和 location
字段分别添加到 OSD 规格和主机规格中
在这个版本中,crush_device_class
字段添加到 OSD 规格中,而 location
字段则添加到主机规格中。如果用户在主机规格中设置 location
字段,cephadm 使用主机名运行 ceph osd crush add-bucket
,并在 crush map 中将其添加为存储桶。对于 OSD,在创建时,使用 crush map 中的给定 crush_device_class
设置它们。
这只适用于根据设置字段的规格创建的 OSD。它不会影响已部署的 OSD。
用户可以启用 Ceph 对象网关管理器模块
在这个版本中,Ceph Object Gateway Manager 模块可用,可以使用 ceph mgr module enable rgw
命令启用 rgw 命令,以便用户访问 Ceph 对象网关管理器模块的功能,如 ceph rgw realm bootstrap
和 ceph rgw realm token
命令。
用户可以为 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 规范文件中分配。
示例
这主要是为了在 Cephadm 部署的扩展集群中替换 tiebreaker 监控守护进程,更加可行。如果没有此更改,用户必须手动编辑 Cephadm 编写的文件来部署 tiebreaker 监控器,因为不允许 tiebreaker monitor 在不声明其 crush 位置的情况下加入。
crush_device_class
现在可在 OSD 规格中为每个路径指定
在这个版本中,要允许用户在通过 Cephadm、crush_device_class
处部署 OSD 时,使用 crush_device_class
设置的用户更大的灵活性,您可以在 OSD 规格中指定每个路径。还支持为 OSD 服务提供这些每个路径 crush_device_classes
以及服务范围 crush_device_class
。在服务范围 crush_device_class
时,设置被视为默认值,并且路径指定的设置具有优先权。
示例
现在,当主机在升级过程中离线时,cephadm 会引发特定的健康警告 UPGRADE_OFFLINE_HOST
在以前的版本中,当因为主机离线而升级失败时,会引发通用 UPGRADE_EXCEPTION
健康警告,用户很难理解。
在这个版本中,当因为主机离线而升级失败时,Cephadm 会引发特定的健康警告 - UPGRADE_OFFLINE_HOST
,问题现在对用户透明。
如果没有传递 --verbose
,所有 Cephadm 日志不再记录到 cephadm.log
中
在以前的版本中,一些 Cephadm 命令(如 gather-facts
)每次运行时都会通过大量命令输出来垃圾邮件。在某些情况下,每分钟一次。
在这个版本中,在 Cephadm 中,当 --verbose
没有传递时,所有日志不再登录到 cephadm.log
。cephadm.log
现在更易于阅读,因为之前写入的大多数垃圾邮件都不再存在。