4.4. Ceph 文件系统


现在,在创建快照时为快照目录更新 mtimechange_attr

在以前的版本中,libcephfs 客户端不会更新 mtime,并在创建或删除 snaps 时更改属性。因此,NFS 客户端无法正确列出 CephFS NFS-Ganesha 导出中的 CephFS 快照。

在这个版本中,当快照被创建、删除和重命名时,mtimechange_attr 会为快照目录 .snap 更新。正确的 mtimechange_attr 确保列出快照不会返回过时的快照条目。

Bugzilla:1975689

cephfs-top -d [--delay] 选项只接受整数值,范围介于 1 到 25

在以前的版本中,由于一些新的 curses 方法,cephfs-top -d [--delay] 选项无法正常工作。新的 curses 方法只接受整数值,因为在从 helper 功能获取浮点值时抛出异常。

在这个版本中,cephfs-top -d [--delay] 选项只接受整数值,范围在 1 到 25 之间,cephfs-top 实用程序可以正常工作。

Bugzilla:2136031

在 unlink 完成后创建相同的 dentries 不会使 MDS 守护进程崩溃

在以前的版本中,在 unlink 和 create 操作之间有一个 racy 条件。因此,如果因为任何原因导致之前的未链接请求延迟,并且在此期间尝试创建相同的 dentries,则会导致 MDS 守护进程崩溃或新创建失败,但写入的内容将会丢失。

在这个版本中,用户需要确保在未链接完成前等待同一 dentries 时出现冲突。

Bugzilla:2140784

运行 ceph nfs cluster info CLUSTER_ID 命令时,不存在的集群不再显示。

在以前的版本中,当运行 ceph nfs cluster info CLUSTER_ID命令时,不会检查集群是否存在,因为这会显示不存在的集群的信息,如 virtual_ipbackend、null 和空。

在这个版本中,'ceph nfs cluster info CLUSTER_ID' 命令检查集群是否存在,在查询 不存在的集群时,不会抛出 Error ENOENT: 集群。

Bugzilla:2149415

snap-schedule 模块不再错误地引用 volumes 模块

在以前的版本中,在尝试获取子卷路径时,snap-schedule 模块会错误地引用 volumes 模块。由于使用了不正确的 volumes 模块和远程方法名称,因此会显示 ImportError 回溯信息。

在这个版本中,未测试且不正确的代码会被重新处理,方法是通过 snap-schedule CLI 接口方法调用的。现在,在尝试添加子卷级别调度时,snap-schedule 模块可以正确地解析子卷路径。

Bugzilla:2153196

整数溢出和 ops_in_flight 值溢出不再发生

在以前的版本中,_calculate_ops 将依赖于配置选项 filer_max_purge_ops,可即时修改。因此,如果 ops_in_flight 的值设为 uint64的功能,则会有一个整数溢出,这会使 ops_in_flight 大于 max_purge_ops,且无法返回合理的值。

在这个版本中,在 ops_in_flight 中使用 filer_max_purge_ops 会被忽略,因为它已在 Filer::_do_purge_range () 中使用。整数溢出和 ops_in_flight 值溢出不再发生。

Bugzilla:2159307

无效的 OSD 请求不再提交到 RADOS

在以前的版本中,当第一个 dentry 有足够的元数据且大小大于 max_write_size 时,无效的 OSD 请求将提交到 RADOS。因此,RADOS 会失败无效的请求,从而导致 CephFS 为只读。

在这个版本中,所有 OSD 请求都会填充验证的信息,然后再将其发送到 RADOS,且没有无效的 OSD 请求会导致 CephFS 为只读。

Bugzilla:2160598

MDS 现在处理所有 stray 目录条目。

在以前的版本中,MDS stray 目录处理逻辑中的一个错误会导致 MDS 跳过处理几个 stray 目录条目。因此,MDS 不会处理所有 stray 目录条目,从而导致已删除的文件没有释放空间。

在这个版本中,stray 索引指针已被修正,以便 MDS 处理所有 stray 目录。

Bugzilla:2161479

附加到 Ceph 文件系统的池的池级别快照被禁用

在以前的版本中,池级 snaps 和 mon-managed snaps 具有自己的 snap ID 命名空间,这会导致 ID 间的冲突,Ceph Monitor 无法唯一标识一个 snap,因为它是池级 snap 还是 mon-managed snap。因此,在引用 ID 时会删除错误的 snap,这存在于池级 snaps 和 mon-managed snaps 集合中。

在这个版本中,附加到 Ceph 文件系统的池级别 snaps 被禁用,且不会发生池 ID 冲突。因此,当 CephFS snap 被删除时,不会发生意外的数据丢失。

Bugzilla:2168541

客户端请求不再在 MDS 和客户端之间无限期地退回

在以前的版本中,Ceph 协议在 CephFS 客户端和 MDS 之间客户端请求之间存在不匹配。因此,在 CephFS 客户端和 MDS 间通信时,对应的信息会被截断或丢失,客户端请求会在 MDS 和客户端之间无限期地退回。

在这个版本中,客户端请求的协议中相应成员的类型被修正,方法是使它们使用相同的类型,并且新代码与旧的 Ceph 兼容。客户端请求不会无限期地在 MDS 和客户端之间退回,并在被充分重试后停止。

Bugzilla:2172791

在 Ceph Manager 守护进程服务中添加了代码 assert 来检测元数据崩溃

在以前的版本中,管理器守护进程服务会为运行 Postgres 等工作负载引入与快照相关的元数据崩溃类型。

在这个版本中,在管理器守护进程服务中添加了代码 assert,它会在检测到新崩溃时触发。这降低了损坏的增加,并允许收集日志来确定原因。

注意

如果在集群升级到 Red Hat Ceph Storage 6.1 后守护进程崩溃,请联系红帽支持以分析和纠正操作。

Bugzilla:2175307

由于 sessionmap 版本不匹配的问题,MDS 守护进程不再崩溃

在以前的版本中,当 MDS 故障转移发生时,MDS 会话映射日志无法正确保留。因此,当新的 MDS 尝试重播日志时,会话映射日志会与 MDCache 中的信息不匹配,或者来自其他日志日志的信息,从而导致 MDS 守护进程触发崩溃本身。

在这个版本中,尝试强制重播 sessionmap 版本而不是崩溃 MDS 守护进程会导致因为 sessionmap 版本不匹配的问题而崩溃 MDS 守护进程。

Bugzilla:2182564

在等待 cap revocation confirmment 时 MDS 不再无限期卡住

在以前的版本中,如果 __setattrx () 失败,_write () 将保留 CEPH_CAP_FILE_WR caps 引用,MDS 会无限期卡住等待上限的撤销确认。它还会导致其他客户端的请求无限期卡住。

在这个版本中,如果 __setattrx () 失败,且 MDS 的上限撤销请求没有卡住,则会发布 CEPH_CAP_FILE_WR caps reference。

Bugzilla:2182613

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat