第 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_map
、NotifyType.osd_map
等等。因此,只有模块请求的事件才会被排队。没有模块消耗的事件会被发出。由于这些更改,python 通知现在更为高效。
对 pg_num
的更改会被限制
在以前的版本中,如果对 outpaced pgp_num
的 pg_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 scrub
、snap trim
和 pg 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 选项,允许按名称挂载不同的文件系统,这与 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
下的集群日志。只要没有传递给 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 对象网关守护进程。
Example
crush_device_class
和 location
字段分别添加到 OSD 规格和主机规格中
在这个版本中,crush_device_class
字段添加到 OSD 规格中,location
字段(引用主机的初始 crush 位置)添加到主机规格中。如果用户在主机规格中设置 location
字段,cephadm 使用主机名运行 ceph osd crush add-bucket
,并给定位置将其添加到 crush 映射中。对于 OSD,它们在创建时通过 crush map 中的 crush_device_class
进行设置。
这只适用于根据规格通过字段设置创建的 OSD。它不会影响已部署的 OSD。
用户可以启用 Ceph 对象网关管理器模块
在这个版本中,Ceph Object Gateway Manager 模块可用,可以使用 ceph mgr module enable rgw
命令打开,以便用户能够访问 Ceph 对象网关管理器模块的功能,如 ceph rgw realm bootstrap
和 ceph rgw realm tokens
命令。
用户可以为 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
这主要被添加,以便在由 Cephadm 部署的扩展集群(更可行)中替换 tiebreaker 监控守护进程。如果没有此更改,用户必须手动编辑 Cephadm 编写的文件来部署 tiebreaker 监控,因为不允许 tiebreaker monitor 加入,而不声明其 crush 位置。
crush_device_class
现在可在 OSD 规格中指定每个路径
在这个版本中,在通过 Cephadm 部署 OSD 时允许用户更灵活地使用
设置,您可以在 OSD 规格中指定每个路径。它还支持提供这些每路径 crush_device_class
crush_device_classes
以及 OSD 服务的 service-wide crush_device_class
。对于服务范围内的 crush_device_class
,则设置被视为默认,路径指定的设置会具有优先权。
Example
现在,当主机在升级过程中离线时,cephadm 会引发特定的健康警告 UPGRADE_OFFLINE_HOST
在以前的版本中,当因为主机离线升级失败时,会引发一个通用的 UPGRADE_EXCEPTION
健康警告,以便用户理解。
在这个版本中,当升级因为主机离线而失败时,Cephadm 会引发特定的健康警告 - UPGRADE_OFFLINE_HOST
,并且问题现在对用户透明。
当未通过-- verbose
时,所有 Cephadm 日志不再登录到 cephadm.log
在以前的版本中,一些 Cephadm 命令(如 gather-facts
)会在每次运行时,使用大量命令输出对日志进行垃圾邮件。在某些情况下,每分钟会一次。
在这个版本中,在 Cephadm 中,所有日志不再记录到 cephadm.log
when-- verbose
时。现在,cephadm.log
更易于阅读,因为之前写入的大多数垃圾邮件已不存在。