7.1 发行注记
功能增强、已知问题和其他重要发行信息的发行注记。
摘要
使开源包含更多
红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。我们从这四个术语开始:master、slave、黑名单和白名单。由于此项工作十分艰巨,这些更改将在即将推出的几个发行版本中逐步实施。有关更多详情,请参阅我们的首席技术官 Chris Wright 提供的消息。
提供有关 Red Hat Ceph Storage 文档的反馈
我们感谢您对文档提供反馈信息。请让我们了解如何改进文档。要做到这一点,请创建一个 Bugzilla ticket:
- 进入 Bugzilla 网站。
- 在组件下拉列表中选择 Documentation。
- 在 Sub-Component 下拉菜单中,选择适当的子组件。
- 选择相应的文档版本。
- 在 Summary 和 Description 字段中填写您要改进的建议。包括文档相关部分的链接。
- 可选:添加一个附件(若有)。
- 点 Submit Bug。
第 1 章 简介
Red Hat Ceph Storage 是一个可大规模扩展、开放、软件定义的存储平台,它将最稳定版本的 Ceph 存储系统与 Ceph 管理平台、部署实用程序和支持服务相结合。
Red Hat Ceph Storage 文档位于 https://access.redhat.com/documentation/zh-cn/red_hat_ceph_storage/7。
第 2 章 致谢
Red Hat Ceph Storage 版本 7.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 版本中引入的所有主要更新、增强功能和新功能。
3.1. Cephadm 实用程序
用户现在可以在 idmap.conf
中配置各种 NFS 选项
有了这个增强,在 idmap.conf
中引入了配置 NFS 选项的功能,如 "Domain", "Nobody-User", "Nobody-Group" 和 like like。
现在,可以通过 NFS 的新 haproxy 协议模式进行客户端 IP 限制
在以前的版本中,客户端 IP 限制无法在通过 NFS 使用 haproxy 的设置中工作。
在这个版本中,Cephadm 部署的 NFS 支持 haproxy 协议。如果用户将 enable_haproxy_protocol: True
添加到其 ingress 和 haproxy 规格,或将 pass-ingress-mode haproxy-protocol
添加到 ceph nfs cluster create
命令,则 NFS 守护进程将使用 haproxy 协议。
用户现在必须输入用户名和密码来访问 Grafana API URL
在以前的版本中,可以连接到 Grafana API URL 的任何人都可以访问它,而无需任何凭证。
在这个版本中,Cephadm 部署的 Grafana 使用用户名和密码设置,供用户访问 Grafana API URL。
带有 NFS 后端的 Ingress 服务现在可以设置为只使用 keepalived
为 NFS 守护进程创建一个虚拟 IP (VIP)来绑定,而无需涉及 HAProxy 层
在这个版本中,带有 NFS 后端的 ingress 服务只能设置为使用 keepalived
为要绑定到的 NFS 守护进程创建一个虚拟 IP,而无需涉及 HAProxy 层。当 NFS 守护进程被移动,且客户端不需要使用不同的 IP 来连接它时,这非常有用。
Cephadm 部署 keepalived
来设置 VIP,然后 NFS 守护进程绑定到该 VIP。这也可以通过 ceph nfs cluster create
命令使用 NFS 模块进行设置,使用 flags- ingress --ingress-mode keepalive-only --virtual-ip <VIP>
。
规格文件类似如下:
service_type: ingress service_id: nfs.nfsganesha service_name: ingress.nfs.nfsganesha placement: count: 1 label: foo spec: backend_service: nfs.nfsganesha frontend_port: 12049 monitor_port: 9049 virtual_ip: 10.8.128.234/24 virtual_interface_networks: 10.8.128.0/24 keepalive_only: true
这包括 keepalive_ony: true
设置。
NFS 规格如下:
networks: - 10.8.128.0/21 service_type: nfs service_id: nfsganesha placement: count: 1 label: foo spec: virtual_ip: 10.8.128.234 port: 2049
这包括与入口规格中的 VIP 匹配的 virtual_ip
字段。
HAProxy 守护进程仅绑定到附带的 keepalived 创建的 VIP 上的前端端口
在这个版本中,HAProxy 守护进程将只绑定到由附带 keepalived 创建的 VIP 的前端端口,而不是 0.0.0.0。Cephadm 部署的 HAProxy 将将其前端端口绑定到 VIP,允许其他服务(如 NFS 守护进程)绑定到同一节点上的其他 IP 端口 2049。
现在,ingress 服务的 HAProxy 健康检查间隔可以自定义
在以前的版本中,在某些情况下,两个默认健康检查间隔太频繁,并导致不必要的流量。
在这个版本中,ingress 服务的 HAProxy 健康检查间隔可以自定义。通过应用包含 health_check_interval
字段的 ingress 规格,服务的每个 HAProxy 守护进程生成的 HAProxy 配置将包括健康检查间隔的值。
Ingress 规格文件:
service_type: ingress service_id: rgw.my-rgw placement: hosts: ['ceph-mobisht-7-1-07lum9-node2', 'ceph-mobisht-7-1-07lum9-node3'] spec: backend_service: rgw.my-rgw virtual_ip: 10.0.208.0/22 frontend_port: 8000 monitor_port: 1967 health_check_interval: 3m
有效间隔单位为: microseconds ms
: milliseconds s
: seconds m
: minutes h
: hours d
: days
Grafana 现在绑定到主机上的特定网络中的 IP,而不是始终绑定到 0.0.0.0
在这个版本中,使用包含网络部分的 Grafana 规格文件与 Grafana 绑定到 IP 的网络,以及规格的 "spec" 部分中包含的 only_bind_port_on_networks: true
,Cephadm 会将 Grafana 守护进程配置为绑定到该网络中的 IP,而不是 0.0.0.0。这可让用户使用 Grafana 用于另一个服务但在主机上的不同 IP 的同一端口。如果它是一个规格更新,不会导致它们全部被移动,则可以运行 ceph orch redeploy grafana
来获取对设置的更改。
Grafana 规格文件:
service_type: grafana service_name: grafana placement: count: 1 networks: 192.168.122.0/24 spec: anonymous_access: true protocol: https only_bind_port_on_networks: true
现在,所有 bootstrap CLI 参数都可用于 cephadm-ansible
模块
在以前的版本中,只有 bootstrap CLI 参数的子集可用,它限制了模块用量。
在这个版本中,所有 bootstrap CLI 参数都可用于 cephadm-ansible
模块。
Prometheus scrape 配置被添加到 nfs-ganesha 导出器
在这个版本中,Prometheus 提取配置被添加到 nfs-ganesha 导出器中。这样做可将 nfs-ganesha prometheus exporter 公开的指标提取到 Ceph 中运行的 Prometheus 实例中,这将由 Grafana Dashboards 进一步使用。
Prometheus 现在绑定到主机上的特定网络中的 IP,而不是始终绑定到 0.0.0.0
在这个版本中,使用包含网络部分的 Prometheus 规格文件与 Prometheus 绑定到 IP 的网络,以及规格的 "spec" 部分中包含的 only_bind_port_on_networks: true
,Cephadm 会将 Prometheus 守护进程配置为绑定到该网络中的 IP,而不是 0.0.0.0。这可让用户使用 Prometheus 用于另一个服务但在主机上的不同 IP 的同一端口。如果它是一个规格更新,不会导致它们全部被移动,则可以运行 ceph orch redeploy prometheus
来获取对设置的更改。
Prometheus 规格文件:
service_type: prometheus service_name: prometheus placement: count: 1 networks: - 10.0.208.0/22 spec: only_bind_port_on_networks: true
用户现在可以挂载快照(在 .snap 目录中导出)
有了这个增强,用户可以挂载快照(在 .snap
目录中导出)以 RO 模式查看。使用 NFS MGR 模块创建的 NFS 导出现在包含 cmount_path
设置(无法配置,并应保留为"/"),允许挂载快照。
zonegroup 主机名现在可以使用 ceph rgw realm bootstrap…
命令中提供的规格文件来设置
在这个版本中,在继续到 Ceph 对象网关多站点设置的自动化中,用户现在可以通过 bootstrap 命令 ceph rgw realm bootstrap…
传递的初始规格文件来设置 zonegroup 主机名。
例如,
zonegroup_hostnames: - host1 - host2
如果用户将上述部分添加到 realm bootstrap 命令传递的 Ceph 对象网关规范文件的"特定"部分中,Cephadm 将在 Ceph 对象网关模块完成 realm/zonegroup/zone 的规范中定义的 zonegroup 中自动将这些主机名添加到规范中定义的 zonegroup 中。请注意,这可能需要几分钟时间来看 Cephadm 模块当前完成的其他活动。
3.2. Ceph 仪表板
CephFS 快照调度在 Ceph 仪表板上管理
在以前的版本中,CephFS 快照调度只能通过命令行界面管理。
借助此项功能增强,可以列出、创建、编辑、激活、停用和移除 CephFS 快照调度。
Ceph 仪表板现在在 Ceph 仪表板中支持基于 NFSv3 的导出
在这个版本中,Ceph 控制面板中启用了对基于 NFSv3 的导出管理的支持。
为 CephFS 管理 Ceph 用户的能力
在这个版本中,添加了为 CephFS 管理 Ceph 用户的功能。这提供了从文件系统视图为卷、子卷组和子卷管理用户权限的功能。
添加了多站点同步状态的新 API 端点
在以前的版本中,只有通过 CLI 命令提供多站点同步状态。
在这个版本中,多站点状态通过 Ceph 控制面板中的 API 添加。多站点同步状态的新 API 端点是 api/rgw/multisite/sync_status
。
改进了对 NVMe-oF 网关的监控
在这个版本中,为了改进对 NVMe-oF 网关的监控,根据发出的指标添加 NVMe-oF 网关的警报,也会在 NVMe-oF 网关中提取来自嵌入式 prometheus exporter 的指标。
Ceph 控制面板中的 CephFS 克隆管理
借助此项功能增强,Ceph 控制面板中提供了 CephFS 克隆管理功能。用户可以通过 Ceph 控制面板创建和删除子卷克隆。
Ceph 仪表板中的 CephFS 快照管理
借助此项功能增强,Ceph 控制面板中提供了 CephFS 快照管理功能。用户可以通过 Ceph 控制面板创建和删除子卷快照。
为每个用户/存储桶标记 Performance Counters
在这个版本中,用户只能获取每个 Ceph 对象网关节点发生的操作信息,也可以在 Ceph 控制面板中查看每个用户和每个存储桶的 Ceph 对象网关性能计数器。
将 Sync Performance Counters 标记为 Prometheus
在这个版本中,用户可以从 Prometheus 收集区间复制健康的实时信息,以增加 Ceph 对象网关多站点同步操作的可观察性。
在 Ceph 仪表板中添加并编辑存储桶
在这个版本中,作为 Ceph 仪表板的 Ceph 对象网关改进的一部分,添加了 Ceph 仪表板中应用、列出和编辑 Bucket 的功能。
- ACL (Public, Private)
- tags (adding/removing)
在 Ceph 仪表板中添加、列出、删除和应用存储桶策略
在这个版本中,作为 Ceph 仪表板的 Ceph 对象网关改进的一部分,添加了 Ceph 仪表板中添加、列出、删除和应用存储桶策略的功能。
3.3. Ceph 文件系统
默认情况下,MDS 动态元数据均衡器是关闭的
在以前的版本中,通过增加 max_mds
文件系统设置,不正确的负载均衡器行为会以不切的方式进行分片树。
在这个版本中,MDS 动态元数据负载均衡器被默认关闭。Operator 必须明确打开负载均衡器才能使用它。
CephFS 支持静止子卷或目录树
在以前的版本中,多个客户端会在客户端之间存在带外通信的一致快照障碍之间进行交集和写入。这个通信导致客户端错误地达到了通过快照相互恢复的检查点。
在这个版本中,CephFS 支持静止子卷或目录树,以启用执行崩溃一致性快照。现在,在 MDS 执行快照前,客户端会被强制静止所有 I/O。这会在子树的所有客户端中强制实施检查点。
MDS Resident Segment Size (RSS)性能计数器会使用更高的优先级进行跟踪
在这个版本中,会以更高的优先级跟踪 MDS Resident Segment Size 性能计数器,以便调用者消耗其值来生成有用的警告。这允许 Rook 识别 MDS RSS 大小并相应地操作。
现在,只有在没有 laggy OSD 时,laggy 客户端才会被驱除
在以前的版本中,监控 MDS 的性能转储有时会显示 OSD 已被 laggy、objecter.op_laggy
和 objecter.osd_laggy
,从而导致 laggy 客户端(dirty 数据无法针对上限撤销)。
在这个版本中,如果 defer_client_eviction_on_laggy_osds
选项设为 true,并且客户端会因为 laggy OSD 滞后,则客户端驱除不会发生,直到 OSD 不再发生。
CephFS-mirror 守护进程通过 perf dump
命令导出快照同步性能计数器
Ceph-mds 守护进程导出现有 perf dump
命令中包含的每个客户端性能计数器。
引入了一个新的 dump dir
命令转储目录信息
在这个版本中,引进了 dump dir
命令转储目录信息并打印输出。
对子卷的快照调度支持
在这个版本中,为子卷提供了快照调度支持。所有快照调度命令都接受-- subvol
和- group
参数,以引用适当的子卷和子卷组。如果在没有子卷组参数的情况下指定子卷,则考虑默认子卷组。另外,在引用子卷时,不需要指定有效的路径,而只有占位符字符串就足够了,因为使用了参数解析。
Example
# ceph fs snap-schedule add - 15m --subvol sv1 --group g1 # ceph fs snap-schedule status - --subvol sv1 --group g1
添加或修改 MDS 大写的 Ceph 命令提供了有关用户传递 MDS 被拒绝的原因
在以前的版本中,添加或修改 MDS caps 输出的"Error EINVAL: mds 功能解析失败"的 Ceph 命令会在 'allow w' 的 'allow w' 上停止。
有了这个增强,命令提供有关用户传递的 MDS 大写的原因,并在 MDS caps 中打印 Error EINVAL: Permission 标志必须以 'r' 或 'rw' 开头,或者是 '*' 或 'all'。
3.4. Ceph 对象网关
现在,添加了 admin 接口来管理存储桶通知
在以前的版本中,S3 REST API 用于管理存储桶通知。但是,如果管理员希望覆盖它们,则无法通过 radosgw-admin 工具实现这一目的。
在这个版本中,添加了带有以下命令的 admin 接口来管理存储桶通知:
radosgw-admin notification get --bucket <bucket name> --notification-id <notification id> radosgw-admin notification list --bucket <bucket name> radosgw-admin notification rm --bucket <bucket name> [--notification-id <notification id>]
现在,当 ceph counter dump
运行时,RGW 标记的用户和存储桶操作计数器现在在不同的部分中
在以前的版本中,所有 RGW 标记的操作计数器都位于 ceph counter dump
命令的输出的 rgw_op'
部分中,但具有用户标签或存储桶标签。
在这个版本中,当执行 ceph counter dump
命令时,标记为 user 和 bucket 操作计数器的 RGW 分别位于 rgw_op_per_user
或 rgw_op_per_bucket
部分中。
用户现在可以使用 -t
命令行选项将临时文件放到目录中
在以前的版本中,/usr/bin/rgw-restore-bucket-index
工具只使用 /tmp
,该目录有时没有足够的可用空间来保存所有临时文件。
有了这个增强,用户可以指定可以使用 -t
命令行选项放置临时文件的目录,并在它们耗尽空间时获得通知,从而知道要重新运行该工具的调整。此外,用户可以定期检查工具的临时文件是否已耗尽存在临时文件的文件系统上的可用空间。
现在支持使用 copy-object
API 复制加密对象
在以前的版本中,在 Ceph 对象网关中,不支持使用 copy-object API 复制加密对象,因为其服务器端加密支持。
在这个版本中,支持使用 copy-object API 复制加密对象,而依赖复制对象操作的工作负载也可以使用服务器端加密。
添加了一个新的 Ceph 对象网关 admin-ops 功能,以允许读取用户元数据,而不是读取其关联的授权密钥
在这个版本中,添加了一个新的 Ceph 对象网关 admin-ops 功能,以允许读取 Ceph 对象网关用户元数据,而不是读取其关联的授权密钥。这是为了减少自动化和报告工具的特权,并避免模拟用户或查看其密钥。
云转换:添加新的支持 S3 兼容平台
在这个版本中,可以将对象存储移到云或其他内部 S3 端点,当前生命周期转换和存储类模型已扩展。S3 兼容平台,如 IBM Cloud Object Store (COS)和 IBM Storage Ceph 现在支持云归档功能。
使用 RGW 后端的 NFS
在这个版本中,带有 Ceph 对象网关后端的 NFS 会与现有功能重新发布。
3.5. 多站点 Ceph 对象网关
在 radosgw-admin sync status
命令中引入了一个重试机制
在以前的版本中,当多站点同步向远程区发送请求时,它使用 round robin 策略来选择其区域端点之一。如果该端点不可用,radosgw-admin sync status
命令使用的 http 客户端逻辑不会提供重试机制,因此报告输入/输出错误。
在这个版本中,virtue 在 sync status 命令中引入了重试机制,如果所选端点不可用,则会选择不同的端点来提供请求。
NewerNoncurrentVersions
,ObjectSizeGreaterThan
, 和 ObjectSizeLessThan
过滤器添加到生命周期中
在这个版本中,生命周期添加了对 NewerNoncurrentVersions
、ObjectSizeGreaterThan
和 ObjectSizeLessThan
过滤器的支持。
现在支持用户 S3 复制 API
在这个版本中,支持用户 S3 复制 API。使用这些 API,用户可以在存储桶级别上设置复制策略。API 被扩展为包括额外的参数来指定源和目标区名称。
bucket Granular Sync Replication GA (第 3 部分)
在这个版本中,通过存储桶粒度支持将存储桶或一组存储桶复制到不同的 Red Hat Ceph Storage 集群的功能。可用性要求是 Ceph 对象网关多站点。
Red Hat Ceph Storage 现在支持对象存储归档区域
对象存储归档区以前作为有限发行版本提供。此功能增强为生产环境中的新和现有客户提供了完整的可用性。archive 区域从 production 区域接收所有对象,并保留每个对象的每个版本,为用户提供一个包含对象完整历史记录的对象目录。这提供了一个安全对象存储部署,可以保证数据检索,即使 production 区域中的对象/存储桶已经丢失或被破坏。
如需更多信息,请参阅 对象网关指南中的 配置归档区域。
3.6. RADOS
在/关闭上设置 noautoscale
标志可保留每个池的原始自动扩展模式配置
在以前的版本中,当设置了 no
配置中不会保留 autoscale
标志时,每个池的自动扩展模式pg_autoscaler
。因此,每当设置了 noautoscale
标志时,必须重复为每个池设置 autoscale
模式。
在这个版本中,在设置了 noautoscale 标志
后,pg_autoscaler
模块会保留自动扩展模式的独立池配置。在/关闭上设置 noautoscale
标志仍会保留每个池的原始自动扩展模式配置。
引入了 reset_purged_snaps_last
OSD 命令
在这个版本中,引入了 reset_purged_snaps_last
OSD 命令,以解决 OSD 中缺少 purged_snaps
密钥(PSN)的情况,并存在于监控器中。purged_snaps_last
命令将为零,因此,监控器将在下次引导时与 OSD 共享其 清除_snaps
信息。
启用 BlueStore 的 RocksDB 压缩
在这个版本中,为了确保元数据(特别是 OMAP)占用较少的空间,会修改 RocksDB 配置以启用其数据的内部压缩。
因此,在压缩过程中,Ceph 数据库大小会小为 * 写入放大,平均 I/O 平均 I/O 具有更高的 CPU 用量
OSD 现在对致命崩溃更具弹性
在以前的版本中,因为位于磁盘开头,特殊 OSD 层对象 "superblock" 会被覆盖,从而导致严重崩溃。
在这个版本中,OSD "superblock"是冗余的,正在在磁盘上迁移。其副本存储在数据库中。OSD 现在对致命损坏更具弹性。
3.7. RADOS 块设备 (RBD)
改进了 rbd_diff_iterate2 ()
API 性能
在以前的版本中,如果在 fast-diff
模式(insnapname == NULL )中针对时间开始(insnapname == NULL
) (启用了 fast-diff 镜像功能且有效的 fast-diff镜像功能
)时,RBD diff-iterate 无法保证在本地执行。
在这个版本中,rbd_diff_iterate2 ()
API 性能有所改进,从而提高了启用了 fast-diff
镜像功能的 QEMU 实时磁盘同步和备份用例的性能。
第 4 章 程序错误修复
本节论述了在这个 Red Hat Ceph Storage 发行版本中修复的用户有严重影响的错误。此外,部分还包括之前版本中发现的固定已知问题的描述。
4.1. Cephadm 实用程序
将-- name NODE
标志与 cephadm shell 搭配使用,以启动已停止的 OSD 不再返回错误的镜像容器
在以前的版本中,在某些情况下,当使用 cephadm shell --name NODE
命令时,命令将使用错误的工具版本启动容器。当用户在主机上有较新的 ceph 容器镜像而不是其 OSD 使用的镜像时,会出现这种情况。
在这个版本中,Cephadm 在使用 cephadm shell 命令和- name
标志时,为已停止的守护进程决定容器镜像。用户不再有与 the- name
标志相关的问题,命令可以正常工作。
4.2. Ceph Ansible 实用程序
playbook 现在删除与正在运行的 RHEL 版本匹配的 RHCS 版本存储库
在以前的版本中,playbook 会尝试从 RHEL 9 中删除 Red Hat Ceph Storage 4 软件仓库,即使它们在 RHEL 9 中不存在。这会导致 playbook 失败。
在这个版本中,playbook 删除与正在运行的 RHEL 版本匹配的现有 Red Hat Ceph Storage 版本存储库,并删除正确的软件仓库。
4.3. NFS Ganesha
现在,配置重新载入过程使用的所有内存都会被发布
在以前的版本中,重新载入导出不会释放配置重新加载进程使用的所有内存,从而导致内存占用量增加。
在这个版本中,配置重新加载过程消耗的所有内存都会被释放,从而减少内存占用量。
4.4. Ceph 仪表板
用户可以在 Ceph 控制面板中使用多个主机创建卷
在这个版本中,用户可以在 Ceph 仪表板中使用多个主机创建卷。
取消设置子卷大小不再设置为 'infinite'
在以前的版本中,取消设置子卷大小被设置为 'infinite',从而导致更新失败。
在这个版本中,将大小设置为 'infinite' 的代码会被删除,更新可以正常工作。
在内核挂载命令中添加缺少的选项
在以前的版本中,内核 mount 命令中缺少一些选项来附加文件系统,从而导致命令无法按预期工作。
在这个版本中,添加了缺少的选项,kernel mount 命令可以正常工作。
Ceph 仪表板现在支持 NFS v3 和 v4-enabled 导出管理
在以前的版本中,Ceph 仪表板只支持启用了 NFSv4 的导出管理,而不是启用了 NFSv3 的导出。因此,通过 CLI 为 NFSv3 导出的任何管理都损坏。
在这个版本中,通过有一个额外的复选框来启用对基于 NFSv3 的导出管理的支持。Ceph 仪表板现在支持 v3 和 v4-enabled 导出管理。
现在,在创建区时无法访问/secret 密钥
在以前的版本中,当在 Ceph 对象网关多站点中创建区时,access/secret 密钥会被编译。因此,用户必须首先在区域中设置非系统用户的密钥,之后使用系统用户的密钥更新。
在这个版本中,在创建区时无法访问/secret 密钥。
导入多站点配置不再会在提交表单时抛出错误
在以前的版本中,多站点周期信息不包含 'realm' 名称。因此,导入多站点配置在提交表单时出现错误。
在这个版本中,从周期信息中获取 'realm' 名称的检查会被删除,令牌导入可以正常工作。
Ceph 对象网关指标标签名称与 Prometheus 标签命名格式一致,它们现在在 Prometheus 中可见。
在以前的版本中,指标标签名称与 Prometheus 标签命名格式不一致,从而导致 Ceph 对象网关指标无法在 Prometheus 中可见。
在这个版本中,连字符(-)替换为 Ceph 对象网关指标标签名称中的下划线(_),其中任何适用的和所有 Ceph 对象网关指标现在都在 Prometheus 中可见。
全名称现在可以在 Ceph 仪表板中包含点
在以前的版本中,在 Ceph 仪表板中,因为验证不正确,无法创建或修改带有点的完整名称。
在这个版本中,验证会被正确适应,以在 Ceph 仪表板中包括全名的点。
4.5. Ceph 文件系统
带有 FSMap 更改的 MDS 元数据现在在批处理中添加,以确保一致性
在以前的版本中,监控器有时会在升级过程中丢失 MDS 元数据跟踪并取消了 PAXOS 事务,从而导致 MDS 元数据不再可用。
在这个版本中,带有 FSMap 更改的 MDS 元数据会批量添加,以确保一致性。ceph mds metadata
命令现在可以正常工作。
ENOTEMPTY
输出被检测到,消息会被正确显示
在以前的版本中,当运行 子卷组 rm
命令时,在卷的插件中不会检测到 ENOTEMPTY
输出,从而导致通用错误消息而不是特定消息。
在这个版本中,当 subvolumegroup 中存在 子卷时,为子卷组 rm
命令检测到 ENOTEMPTY
输出,并正确显示消息。
现在,MDS 会在请求清理过程中自动对下一个客户端重播请求排队
在以前的版本中,MDS 不会将下一个客户端请求排队 up:client-replay
状态,从而导致 MDS 挂起。
在这个版本中,下一个客户端重播请求会在请求清理过程中自动排队,MDS 会正常进行故障转移恢复。
CephFS-mirroring 整体性能有所改进
在这个版本中,增量快照同步已被修正,这可以提高 cephfs-mirroring 的整体性能。
loner 成员设置为 true
在以前的版本中,对于 LOCK_EXCL_XSYN 状态的文件锁定,非代理客户端将发出空的 caps。但是,由于此状态的 loner 被设置为 false
,因此可能会导致 locker 向它们发出 Fcb caps,这不正确。这会导致一些客户端请求错误地撤销一些上限和无限等待,并导致请求较慢。
在这个版本中,loner 成员被设置为 true
,因此对应的请求不会被阻止。
为每月快照的 snap-schedule 重复和保留规格从 m
改为 M
在以前的版本中,snap-schedule 重复规格和保留规格与其他 Ceph 组件不一致。
在这个版本中,规格从 m
改为 M
,现在与其他 Ceph 组件一致。例如,要保留 5 个每月的快照,您需要运行以下命令:
# ceph fs snap-schedule retention add /some/path M 5 --fs cephfs
当在多 mds 集群中复制某些内节点时,Ceph-mds 不再崩溃
在以前的版本中,因为 ceph-mds 中的锁断言不正确,ceph-mds 会在多 mds 集群中复制一些内节点时崩溃。
在这个版本中,断言中的锁定状态会被验证,且不会观察崩溃。
缺少字段,如 日期
、client_count
、过滤器添加到- dump
输出中
在这个版本中,缺少的字段(如 date
、client_count
、过滤器
)添加到- dump
输出中。
在恢复过程中,MDS 不再失败并显示 assert 功能
在以前的版本中,当恢复失败的排名时,MDS 有时会错误地报告元数据损坏,因此会失败并显示 assert 功能。
在这个版本中,启动过程已被修正,MDS 在恢复过程中不会失败并带有 assert 功能。
目标 mon_host 详情已从 peer List 和 mirror 守护进程状态中删除
在以前的版本中,快照镜像 peer-list 显示比对等列表更多的信息。如果应该只会显示一个 MON IP 或所有 MON 主机 IP,则此输出会导致混淆。
在这个版本中,mon_host 从 fs snapshot mirror peer_list 命令中删除,目标 mon_host 详情已从 peer List 和 mirror 守护进程状态中删除。
目标 mon_host 详情已从 peer List 和 mirror 守护进程状态中删除
在以前的版本中,静默协议代码引入了回归问题。在终止客户端请求时,它将跳过为批处理操作选择新批处理头。这会导致过时的批处理头请求永久保留在 MDS 缓存中,然后被视为较慢的请求。
在这个版本中,在终止请求时选择一个新的批处理头,且不会由批处理操作导致的请求缓慢。
即使没有 MDS 正常运行,文件系统升级也会发生
在以前的版本中,当所有 MDS 都停机时,监控器不允许 MDS 升级文件系统。因此,当 fail_fs
设置为 'true' 时,升级会失败。
在这个版本中,监控器允许在没有 MDS 时进行升级。
4.6. Ceph 对象网关
admin topic list 命令不再显示自动生成的内部主题
在以前的版本中,由于用户可以看到比创建的内容更多的主题,因此自动生成的内部主题通过 topic list 命令暴露给用户。
在这个版本中,内部生成的主题不会在 admin topic list 命令中显示,用户现在只会看到预期的主题列表。
弃用的 bucket name 字段不再显示在 topic list 命令中
在以前的版本中,如果拉取模式通知(pubsub
),通知存储在存储桶中。但是,虽然此模式已弃用,但 topic list 命令仍会显示空存储桶名称字段。
在这个版本中,空存储桶名称字段会被删除。
现在,通知会在生命周期转换中发送
在以前的版本中,在转换时分配的逻辑(与过期不同)丢失。因此,在转换时不会看到通知。
在这个版本中,添加了新的逻辑,通知会在生命周期转换时发送。
RGWCopyObjRequest
已被修复,重命名操作可以正常工作
在以前的版本中,在 zipper 转换后,RGWCopyObjRequest
初始化错误,会破坏重命名操作。因此,许多 rgw_rename ()
场景无法复制源对象,并且因为二级问题,即使副本失败也会删除源。
在这个版本中,RGWCopyObjRequest
被修正,并为不同的重命名操作添加了几个单元测试情况。
Ceph 对象网关无法再被静默访问
在以前的版本中,代表 Ceph 对象网关角色的变量在初始化前被访问,从而导致 segfault。
在这个版本中,操作会被重新排序,且没有非非法的访问。角色根据需要强制执行。
现在,每个错误的 CSV 对象结构显示错误消息
在以前的版本中,带有未关闭的双引号的 CSV 文件将导致 assert,后跟崩溃。
在这个版本中,引入了一个错误消息,其中包含每个错误的 CSV 对象结构。
在 Ceph 仪表板中查询与用户相关的信息时,用户不再遇到 'user not found' 错误
在以前的版本中,在 Ceph 仪表板中,最终用户无法从 Ceph 对象网关检索与用户相关的信息,因为仪表板无法识别的完整 user_id
中存在命名空间,从而导致出现 "user not found" 错误。
在这个版本中,一个完全构建的用户 ID,其中包括 租户
、namespace
和 user_id
,并在将 GET 请求发送到 admin ops 以获取用户信息时单独返回每个字段。最终用户现在可以检索正确的 user_id
,可用于进一步从 Ceph 对象网关获取其他用户相关信息。
Ceph 对象网关现在传递带有新流编码表单格式格式良好的有效负载的请求
在以前的版本中,Ceph 对象网关无法识别 STREAMING-AWS4-HMAC-SHA256-PAYLOAD
和 STREAMING-UNSIGNED-PAYLOAD-TRAILER
编码表单,从而导致请求失败。
在这个版本中,用来识别、解析和适用的逻辑,验证为新编码表单提供的新尾部请求签名是否已实现。Ceph 对象网关现在通过新流编码形式格式良好的有效负载来传递请求。
现在,对 radosgw admin bucket 和 bucket reshard stat 计算的 check stat 计算现在都正确
在以前的版本中,由于代码更改,radosgw-admin bucket 检查 stat 计算和 bucket reshard stat 计算在有从未指定版本转换为版本化的对象时不正确。
在这个版本中,计算已被修正,不再生成不正确的存储桶 stat 输出。
在多部分上传失败时,tail 对象不再丢失
在以前的版本中,在多部分上传过程中,如果因为场景(如超时)上传部分失败,且上传被重启,则第一次尝试清理会在后续尝试中删除 tail 对象。因此,生成的 Ceph 对象网关多部分对象会损坏,因为缺少一些 tail 对象。它将响应 HEAD 请求,但在 GET 请求期间失败。
在这个版本中,代码会正确清理第一次尝试。生成的 Ceph 对象网关多部分对象不再损坏,可由客户端读取。
CompleteMultipartUpload
及其通知中的 ETag 值现在存在
在以前的版本中,与通知相关的更改会导致与完成多部分上传对应的对象句柄,使其包含生成的 ETag。因此,因为 CompleteMultipartUpload
及其通知的结果,没有进行多部分上传的 ETags。(计算并存储了正确的 ETag,因此后续操作包含正确的 ETag 结果。)
在这个版本中,CompleteMultipartUpload
刷新对象,并按预期打印它。CompleteMultipartUpload
及其通知中存在 ETag 值。
通过 swift 列出容器(bucket)不再会导致 Ceph 对象网关崩溃
在以前的版本中,swift-object-storage
调用路径缺少调用,以使用对应的存储桶更新对象句柄(zipper backport 问题)。因此,当为同一 bucket 配置 S3 网站时,通过 swift 列出容器(bucket)会导致 Ceph 对象网关崩溃。
在这个版本中,添加了所需的 zipper 逻辑,且崩溃不再发生。
在没有生命周期策略的存储桶上处理生命周期不会崩溃
在以前的版本中,尝试手动处理没有生命周期策略的存储桶中的生命周期,从而导致 radosgw-admin 程序崩溃。
在这个版本中,在句柄操作前检查 null 存储桶句柄,以避免崩溃。
datapool 的区详情现在可以修改
rgw::zone_create ()
函数会在创建区域时初始化默认放置目标和池名称。此功能以前还用于带有 exclusive=false
的 radosgw-admin 区集。但是,zone set
不允许修改 STANDARD 存储类的 data_pool。
在这个版本中,如果 default-placement 目标已存在,并且 datapool 的区详情可以如预期修改,则不应覆盖 default-placement 目标。
浮点数的 modulo 操作现在返回正确的结果
在以前的版本中,对浮点数的 modulo 操作返回错误的结果。
在这个版本中,SQL 引擎已被改进,以处理浮点的 modulo 操作并返回正确的结果。
SQL 语句正确地返回对不区分大小写的布尔值表达式的结果
在以前的版本中,SQL 语句包含带有声明部分大写字母的布尔值表达式,从而导致错误的解释和错误的结果。
在这个版本中,对语句的解释区分大小写,因此对于任何情况都会返回正确的结果。
SQL 引擎返回正确的 NULL 值
在以前的版本中,SQL 语句包含来自 NULL 的 cast 到类型,因此返回错误的结果,而不是返回 NULL。
在这个版本中,SQL 引擎标识来自 NULL 的 cast,并返回 NULL。
eTags 值现在存在于 CompleteMultipartUpload
及其通知中
在以前的版本中,与通知相关的更改会导致对象句柄(与完成多部分上传对应)不包含生成的 ETag。因此,CompleteMultipartUpload
及其通知没有 ETags。(计算并存储了正确的 ETag,因此后续操作包含正确的 ETag 结果。)
在这个版本中,CompleteMultipartUpload
刷新对象,并按预期打印它。ETag 值现在存在于 CompleteMultipartUpload
及其通知中。
在对象名称中发送带有内嵌反斜杠(/)的工作负载到 cloud-sync 不再会导致同步失败
在以前的版本中,当工作负载在名称中包含带有嵌入式反斜杠(/)的对象时,云同步期间对象路径的 URL 转义会导致同步失败,即使用虚拟目录路径时。
在这个版本中,不正确的转义已被修正,在对象名称中带有嵌入式反斜杠(/)的工作负载可以按预期发送到 cloud-sync。
包含布尔表达式返回布尔值类型的 SQL 语句
在以前的版本中,包含布尔值表达式(投射)的 SQL 语句将返回字符串类型而不是布尔值类型。
在这个版本中,引擎会根据声明语法将字符串识别为布尔值表达式,引擎可以成功返回布尔值类型(true/false)。
现在,工作调度程序在 should_work
功能中考虑下一个日期
在以前的版本中,should_work
功能中使用的逻辑决定了生命周期是否应该在当前时间启动运行,不会考虑下一个日期。因此,任何自定义工作时间 "XY:TW-AB:CD" 都会在 AB < XY 时中断生命周期处理。
在这个版本中,工作调度程序会考虑下一个日期,各种自定义生命周期工作调度现在可以正常工作。
merge_and_store_attrs ()
方法不再导致属性更新操作失败
在以前的版本中,merge_and_store_attrs ()
方法中有一个错误,它处理协调更改以及更改的存储桶实例属性,从而导致一些属性更新操作静默失败。因此,存储桶子集中的一些元数据操作会失败。例如,存储桶所有者更改会在设置了速率限制的存储桶上失败。
在这个版本中,merge_and_store_attrs ()
方法已被修复,所有受影响的场景现在可以正常工作。
checksum 和 malformed trailers 不再导致崩溃
在以前的版本中,在 java AWS4Test.testMultipartUploadWithPauseAWS4
期间 AWSv4ComplMulti
异常会导致一些客户端输入崩溃,特别是使用 checksum trailers 的崩溃。
在这个版本中,一个例外处理程序在 do_aws4_auth_completion ()
中实施。checksum 和 malformed trailers 不再导致崩溃。
改进的块边界检测的实现
在以前的版本中,不会处理 0-length 尾部块边界格式的有效格式。因此,Ceph 对象网关无法正确识别尾部块的开头,从而导致 403 错误。
在这个版本中,实现了改进的块边界检测,在匿名访问情况下不再发生意外的 403 错误。
Kafka 消息和空闲超时的默认值不再会导致挂起
在以前的版本中,Kafka 消息和空闲超时的默认值会在等待 Kafka 代理时挂起。
在这个版本中,超时会被调整,它不再挂起。
删除存储桶标记不再失败
在以前的版本中,RADOS SAL merge_and_store_attrs ()
中存在一个不正确的逻辑,会导致删除的属性不进行材料化。这也会影响 DeleteLifecycle
。因此,在某些代码路径中,纯属性删除不会生效。
在这个版本中,存储 bucket 标签的逻辑使用 RADOS SAL put_info ()
而不是 merge_and_store_attrs ()
。删除存储桶标记现在可以如预期成功。
现在,S3 PutACL
和 ACL 更改会正确复制对象 mtime
在以前的版本中,S3 PutACL
操作不会更新对象 mtime
。因此,应用后 ACL 更改不会复制,因为基于时间戳的对象更改检查会错误地返回 false。
在这个版本中,S3 PutACL
和 ACL 会更改对象 mtime
会正确复制。
现在,所有转换情况都可以分配通知
在以前的版本中,因为池转换不会发送通知,在转换时分配通知的逻辑被错误地范围到云转换情况。
在这个版本中,通知分配被添加到池转换范围中,所有转换情况都可以分配通知。
year 2106 后 RetainUntilDate
不再截断,并适用于新的 PutObjectRetention
请求
在以前的版本中,PutObjectRetention
请求在年 2106后指定 RetainUntilDate
,从而导致之前用于对象锁定强制的日期。这不会影响 'PutBucketObjectLockConfiguration' 请求,其中指定持续时间(以天为单位)。
在这个版本中,RetainUntilDate
会保存并按预期工作,用于新的 PutObjectRetention
请求。之前存在的请求不会自动修复。要修复现有请求,请通过基于 x-amz-object-lock-retain-until-date
来使用 header Object
请求来识别请求,并使用 RetainUntilDate
重新保存。
如需更多信息,请参阅 S3 放置对象保留
bucket 生命周期处理规则不再停滞
在以前的版本中,每个 shard bucket-lifecycle 规则的枚举规则包含与并发删除存储桶生命周期规则相关的逻辑错误。因此,分片可能会进入一个状态,这会停止处理该分片,从而导致无法处理一些存储桶生命周期规则。
在这个版本中,枚举可以跳过删除的条目,与这个问题相关的生命周期处理停滞已解决。
删除版本存储桶中的对象会导致统计不匹配
由于版本存储桶混合使用当前和非当前对象,因此删除对象可能会导致在本地和远程站点上的 bucket 和用户统计差异。这不会导致在任一站点上出现对象泄漏,只是统计信息。
4.7. 多站点 Ceph 对象网关
Ceph 对象网关在删除对象过程中不再死锁
在以前的版本中,在删除对象过程中,Ceph 对象网关 S3 DeleteObjects
与多站点部署一起运行,从而导致 Ceph 对象网关死锁并停止接受新请求。这是因为 DeleteObjects
请求一次处理多个对象删除所致。
在这个版本中,复制日志被序列化,死锁会被阻止。
CURL 路径规范化现在在启动时禁用
在以前的版本中,由于 CURL 执行的路径规范化(Ceph 对象网关复制堆栈的一部分),对象名称在复制过程中被静默重新格式化。因此,其名称包含嵌入式 . 和
的对象不会被复制。
.
.
在这个版本中,CURL 路径规范化会在启动时禁用,受影响的对象会如预期复制。
主站点中转发请求的身份验证不再失败
在以前的版本中,如果使用 STS 返回的临时凭证为请求签名,则 S3 请求会发布到二级失败。发生失败的原因是,请求将使用系统用户的凭证转发到主并签名,这与转发请求的会话令牌中的临时凭据不匹配。由于不匹配的凭证,主站点上转发请求的身份验证会失败,这会导致 S3 操作失败。
在这个版本中,身份验证是通过在会话令牌中使用临时凭证传递的,以防请求从次要转发到主要。系统用户的凭证用于成功完成身份验证。
4.8. RADOS
如果池存储零对象,Ceph 会报告 POOL_APP_NOT_ENABLED
警告
在以前的版本中,如果池为空,如果 RGW 池启用了应用程序标签,Ceph 状态将无法报告池应用程序警告。
在这个版本中,即使池存储了 0 个对象,Ceph 也会报告 POOL_APP_NOT_ENABLED
警告。
在扩展集群的两个站点之间为不均匀的 OSD 权重添加检查
在以前的版本中,扩展集群部署后没有检查相等的 OSD 权重。因此,用户可以使 OSD 权重不相等。
在这个版本中,在扩展集群的两个站点间添加了不均匀的 OSD 权重。集群现在在两个站点之间提供有关不均匀 OSD 权重的警告。
当设置了 norecover
标志时,自动扩展不再运行
在以前的版本中,当设置 norecover
标志时,自动扩展会运行,从而导致创建新 PG,而这些 PG 需要回填。当缺少或降级对象时出现允许 norecover
标志时运行自动扩展,以避免客户端 I/O 无限期挂起。
在这个版本中,当设置了 norecover
标志时,自动扩展不会运行。
ceph config dump
命令输出现在一致
在以前的版本中,没有用户打印格式化的输出的 ceph config dump
命令会显示 localized 选项名称及其值。规范化与本地化选项的示例如下:
Normalized: mgr/dashboard/ssl_server_port Localized: mgr/dashboard/x/ssl_server_port
但是,该命令的用户打印(例如 JSON)版本仅显示规范化选项名称,如上例中所示。在没有 pretty-print 选项的情况下,ceph config dump
命令结果不一致。
在这个版本中,输出一致,在使用 ceph config dump --format TYPE
命令时始终显示 localized 选项名称,TYPE
作为 pretty-print 类型。
MGR 模块每分钟不再占用一个 CPU 内核,CPU 使用量是正常的
在以前的版本中,从放置组 auto-scaler 模块获取 OSDMap 的昂贵调用从 monitor 获取 OSDMap,这会导致 MGR 模块每分钟占用一个 CPU 内核。因此,MGR 守护进程中的 CPU 使用率很高。
在这个版本中,从放置组 auto-scaler 模块进行的 OSD map 调用数量会减少。CPU 用量现在正常。
OSD 父(主机)的正确 CRUSH 位置是确定的
在以前的版本中,当启用 osd_memory_target_autotune
选项时,内存目标会在主机级别应用。这可以通过在自动调整内存时使用主机掩码来完成。但是,应用到内存目标的代码不会决定父主机的 CRUSH 位置,以使更改传播到主机的 OSD。因此,由机器配置观察器托管的 OSD 都不会获得通知,osd_memory_target
对于那些 OSD 集合,osd_memory_target 保持不变。
在这个版本中,OSD 父(主机)的正确 CRUSH 位置取决于主机掩码。这允许更改传播到主机上的 OSD。每当 auto-tuner 应用新的 osd_memory_target
且更改反映时,机器托管的所有 OSD 都会获得通知。
监控在崩溃/关闭测试过程中不再处于选举状态
在以前的版本中,只有进入 stretch_mode
时才会填充 MonitorMap 的 disallowed_leaders
属性。但是,在有些情况下,被 revived 不会立即进入 stretch_mode
实例,因为它们将处于 probing
状态。这会导致跨集群的监控器之间设置的 disallowed_leaders
不匹配。因此,监控器无法选举领导机,选举会卡住,从而导致 Ceph 无响应。
在这个版本中,监控器不必处于 stretch_mode
来填充 disallowed_leaders
属性。监控在崩溃/关闭测试过程中不再处于选举状态。
'error get attr on' 信息不再发生
在以前的版本中,当使用-- op 列表
时,ceph-objectstore-tool
列出 pgmeta 对象,从而导致 "Error get attr on" 信息。
在这个版本中,会跳过 pgmeta 对象,并不再显示错误消息。
分配器中的 LBA 校准不再被使用,因为分配失败,OSD 守护进程不会 assert
在以前的版本中,OSD 守护进程会断言,无法重启,这有时可能会导致数据不可用或数据丢失。如果分配器被分配给 4000 请求并配置了不同的分配单元,则会发生此情况,因为 OSD 守护进程不会 assert。
在这个版本中,分配器中的 LBA 校准不会被使用,OSD 守护进程不会因为分配失败而断言。
使用 "libcephsqlite" 库的 sqlite 数据库不再被破坏,因为简短的读取无法正确为零内存页面失败。
在以前的版本中,"libcephsqlite"无法正确处理简短的读取,这可能会导致 sqlite 数据库崩溃。
在这个版本中,"libcephsqlite"零页可以正确地进行简短的读取,以避免潜在的崩溃。
4.9. RBD 镜像功能
现在,当对等站点在强制提升过程中停机时,镜像状态描述会显示 "orphan (force promote) "
在以前的版本中,在强制提升时,当对等站点停机时,镜像状态描述会显示 "local image linked to unknown peer",这不是一个明确的描述。
在这个版本中,镜像守护进程已被改进,以显示镜像状态描述 "orphan (force promote) "。
rbd_support
模块不再无法从其客户端的重复块列表中恢复
在以前的版本中,发现 rbd_support
模块因为 rbd_support 模块中的递归死锁、rbd_support 模块的竞争条件、rbd_support
模块的 librbd 客户端中的一个竞争条件,以及 librbd cython 绑定中的错误,有时会导致 ceph-mgr 崩溃。
在这个版本中,所有 3 个问题都已被修复,rbd_support' 模块不再无法从其客户端的重复块列表中恢复
第 5 章 已知问题
本节记录了本版本的 Red Hat Ceph Storage 中已知的问题。
5.1. Cephadm 实用程序
在排空 OSD 时,cephadm 不会维护以前的 OSD 权重
在排空 OSD 时,cephadm 不会维护以前的 OSD 权重。因此,如果 ceph orch osd rm <osd-id
> 命令运行并且之后,OSD 移除将停止,Cephadm 不会将 OSD 的 crush 权重设置为其原始值。crush weight 将保持在 0。
作为临时解决方案,用户必须手动将 OSD 的 crush 权重调整为其原始值,或者完成 OSD 删除并部署新的 OSD。取消 ceph orch osd rm
操作时应该小心,因为 OSD 的 crush 权重不会在删除过程开始前返回到其原始值。
重复使用 Ceph 对象网关 realm bootstrap 命令会导致将 zonegroup 主机名设置为失败
在多次完成时,使用 Ceph 对象网关 realm bootstrap 命令设置 zonegroup 主机名会失败。因此,重复使用 Ceph 对象网关 realm bootstrap 命令重新创建 realm/zonegroup/zone 无法正确用于 zonegroup_hostnames
字段,且主机名不会在 zonegroup 中设置。
作为临时解决方案,请使用 radosgw-admin 工具手动设置 zonegroup 主机名。Bugzilla:2241321
5.2. Ceph 对象网关
对大型 Parquet 对象处理查询会导致 Ceph 对象网关进程停止
在以前的版本中,在某些情况下,在处理 Parquet 对象的查询时,这个对象会在块后读取块,这些块可能会非常大。这会导致 Ceph 对象网关将大型缓冲区加载到低端机器内存中;特别是,当 Ceph 对象网关与 OSD 进程共存时,这会消耗大量内存。这种情况会触发操作系统终止 Ceph 对象网关进程。
作为临时解决方案,请将 Ceph 对象网关放在单独的节点上,因此为 Ceph 对象网关保留更多内存,使其成功完成处理。
当前的 RGW STS 实现不支持大于 1024 字节的加密密钥
当前的 RGW STS 实现不支持大于 1024 字节的加密密钥。
作为临时解决方案,在 Keycloak: realm settings - keys
中,编辑 'rsa-enc-generated' 供应商,将优先级为 90 而不是 100,keySize
设为 1024,而不是 2048。
用于对象压缩和加密的 Intel QAT Acceleration
Intel QuickAssist Technology (QAT)实施,以帮助降低节点 CPU 使用量,并在启用压缩和加密时提高 Ceph 对象网关的性能。在本发行版本中,QAT 只能在新设置(Greenfield)上配置,此功能有限制。QAT Ceph 对象网关守护进程不能与非 QAT (常规)Ceph 对象网关守护进程配置在同一集群中。
第 6 章 异步勘误更新
本节论述了 z-stream 版本的 bug 修复、已知问题和增强。
6.1. Red Hat Ceph Storage 7.1z1
Red Hat Ceph Storage 版本 7.1z1 现已正式发布。此更新包括的程序错误修正信息包括在 RHBA-2024:5080 和 RHBA-2024:5081 公告中。
6.1.1. 已知问题
本节记录了本 Red Hat Ceph Storage 发行版本中发现的已知问题。
6.1.1.1. Ceph 对象网关
用于对象压缩和加密的 Intel QAT Acceleration
Intel QuickAssist Technology (QAT)实施,以帮助降低节点 CPU 使用量,并在启用压缩和加密时提高 Ceph 对象网关的性能。这是一个已知问题:QAT 只能在新设置上配置(仅限Greenfield)。QAT Ceph 对象网关守护进程不能与非 QAT (常规)Ceph 对象网关守护进程配置在同一集群中。
6.1.1.2. Ceph 升级
在 RHEL 8 到 RHEL 9 升级过程中删除了集群密钥和某些配置目录
由于 RHEL 8 弃用 libunwind
软件包,在升级到 RHEL 9 时会删除此软件包。ceph-common
软件包依赖于 libunwind
软件包,因此也会被删除。删除 ceph-common
软件包会导致删除 /etc/ceph
和 /var/log/ceph
目录中的集群密钥和某些配置。
因此,可能会发生各种节点故障。由于删除了 /etc/ceph
软件包,Ceph 操作可能无法在某些节点上工作。systemd 和 Podman 无法在节点上的 Ceph 服务中启动,因为删除了 /var/log/ceph
软件包。
作为临时解决方案,请将 LEAPP 配置为不会删除 libunwind
软件包。具体步骤请参阅 将 RHCS 5 主机从 RHEL 8 升级到 RHEL 9 会删除 ceph-common 软件包。服务无法在红帽客户门户网站中启动。
6.1.1.3. Cephadm 实用程序
使用带有- export
标志的 ceph orch ls
命令会破坏证书/密钥文件格式
在以前的版本中,当使用带有- export
标志的 ceph orch ls
时,使用 cert/key 文件格式等长多行字符串会被强制处理。具体来说,一些换行符被剥离。因此,如果用户使用 cert/key 重新应用规格,因为它们从提供的 ceph orch ls
with- export
获取,则守护进程将无法使用 cert/key。
作为临时解决方案,在使用 ceph orch ls
with- export
时修改规格来获取当前内容,您需要在重新应用规格前修改 cert/key 文件的格式。建议您使用格式为 '|' 和缩进字符串。
Example:
client_cert: | -----BEGIN CERTIFICATE----- MIIFCTCCAvGgAwIBAgIUO6yXXkNb1+1tJzxZDplvgKpwWkMwDQYJKoZIhvcNAQEL BQAwFDESMBAGA1UEAwwJbXkuY2xpZW50MB4XDTI0MDcyMzA3NDI1N1oXDTM0MDcy ...
6.1.2. 功能增强
本节列出了此 Red Hat Ceph Storage 发行版本中引入的改进。
6.1.2.1. Ceph 文件系统
由于并行克隆限制,新的克隆创建不再减慢
在以前的版本中,当达到并行克隆的限制时,克隆的其余部分会发生队列,这会减慢克隆的速度。
在这个版本中,当一次达到并行克隆限制时,新的克隆创建请求将被拒绝。此功能默认为启用,但可以禁用。
Ceph 文件系统名称现在可以交换,以增强灾难恢复
此增强通过使用 ceph fs swap 命令,为两个文件系统提供选项来交换其名称。文件系统 ID 也可以使用这个命令进行交换。
此 API 的功能是促进文件系统交换进行灾难恢复。特别是,这可避免临时缺少命名文件系统的情况,这些情况可能会提示输入更高级别的存储操作器来重新创建缺少的文件系统。
现在,quota.max_bytes
被设置在更了解的大小值中
在以前的版本中,quota.max_bytes
值是以字节为单位设置的,因此通常非常大的大小值,这很难设置或更改。
在这个版本中,quota.max_bytes
值可以使用用户友好的值设置,如 M/Mi、G/Gi 或 T/Ti。例如: 10GiB 或 100K。
不再包含 standby-replay MDS 的健康状况警告
在以前的版本中,所有内节点和 stray 计数器健康警告都会在 standby-replay MDS 中显示。
在这个版本中,standby-replay MDS 健康状况警告不再显示,因为它们不相关。
6.1.2.2. Ceph 对象网关
在关闭过程中,S3 请求不再关闭传输中
在以前的版本中,一些客户端在关闭期间在传输期间关闭 S3 请求会出现问题,而不等待。
在这个版本中,可以配置 S3 请求(默认关闭)以等待 rgw_exit_timeout_secs
参数中定义的持续时间,以便在无条件退出 Ceph 对象网关进程前等待所有未完成的请求。Ceph 对象网关将等待最多 120 秒(可配置),以便在无条件退出前,等待所有持续 S3 请求完成。在此期间,不接受新的 S3 请求。
在容器化部署中,还需要额外的 extra_container_agrs
参数配置 of --stop-timeout=120
(或 rgw_exit_timeout_secs
参数的值(如果不是默认)。
6.2. Red Hat Ceph Storage 7.1z2
Red Hat Ceph Storage 版本 7.1z2 现已正式发布。此更新包括的程序错误修正信息包括在 RHBA-2024:9010 和 RHBA-2024:9011 公告中。
6.2.1. 已知问题
本节记录了本 Red Hat Ceph Storage 发行版本中发现的已知问题。
6.2.1.1. Build
在 RHEL 8 到 RHEL 9 升级过程中删除了集群密钥和某些配置目录
由于 RHEL 8 弃用 libunwind
软件包,在升级到 RHEL 9 时会删除此软件包。ceph-common
软件包依赖于 libunwind
软件包,因此也会被删除。删除 ceph-common
软件包会导致删除 /etc/ceph
和 /var/log/ceph
目录中的集群密钥和某些配置。
因此,可能会发生各种节点故障。由于删除了 /etc/ceph
软件包,Ceph 操作可能无法在某些节点上工作。systemd 和 Podman 无法在节点上的 Ceph 服务中启动,因为删除了 /var/log/ceph
软件包。
作为临时解决方案,请将 LEAPP 配置为不会删除 libunwind
软件包。具体步骤请参阅 将 RHCS 5 主机从 RHEL 8 升级到 RHEL 9 会删除 ceph-common 软件包。服务无法在红帽客户门户网站中启动。
6.2.2. 功能增强
本节列出了此 Red Hat Ceph Storage 发行版本中引入的改进。
6.2.2.1. Ceph 文件系统
对 Replication Start/结束通知的指标支持。
在这个版本中,提供对 Replication Start/End 通知的指标支持。这些指标为数据复制启用监控逻辑。
此功能增强提供了标记的指标: last_synced_start
,last_synced_end
,last_synced_duration
,last_synced_bytes
为请求。
6.2.2.2. RADOS
新的 mon_cluster_log_level
命令选项来控制外部实体的集群日志级别详细程度
在以前的版本中,无论其级别设置是什么,调试详细程度日志都会发送到所有外部日志记录系统。因此,/var/
文件系统会快速填满。
在这个版本中,mon_cluster_log_file_level
和 mon_cluster_log_to_syslog_level
命令选项已被删除。在这个发行版本中,只使用新的通用 mon_cluster_log_level
命令选项来控制集群日志文件和所有外部实体的集群级别详细程度。
第 7 章 源
更新的 Red Hat Ceph Storage 源代码软件包位于以下位置:
- 对于 Red Hat Enterprise Linux 9 :https://ftp.redhat.com/redhat/linux/enterprise/9Base/en/RHCEPH/SRPMS/