4.3. Ceph 文件系统


MDS 守护进程 现在在每个排队的工作后重置每个线程中的心跳

在以前的版本中,如果线程有大量工作,则线程会长时间保存 mds_lock。这会导致其他线程被资源不足并长时间卡住,因此 MDS 守护进程将无法报告 heartbeat 以监控,并从集群中启动。

在这个版本中,MDS 守护进程会在每个排队的工作后重置每个线程中的心跳。

(BZ#2060989)

Ceph 目录服务器在并发查找和非链接操作过程中不再崩溃

在以前的版本中,断言放置在代码中的错误假设会出现来自 Ceph 客户端的并发查找和未链接操作,从而导致 Ceph 元数据服务器崩溃。

在这个版本中,断言会移到相关的位置,在并发查找和未链接操作过程中被移到相关的位置,从而导致 Ceph 元数据服务器在不崩溃的情况下提供 Ceph 客户端操作。

(BZ#2074162)

如果客户端仅在创建后发送 getattr 客户端请求,则副本 MDS 不再卡住

在以前的版本中,如果客户端仅在创建副本 MDS 后发送 getattr 客户端请求,客户端将创建一个指向 #INODE-NUMBER 的路径,因为 CI 节点 还没有链接。副本 MDS 会保持重试,直到 auth MDS flushed the mdlogC_MDS_openc_finishlink_primary_inode 以后被命名为 5 秒。

在这个版本中,从 auth MDS 查找 CInode 的副本 MDS 会手动触发 mdslog flush (如果无法找到它)。

(BZ#2091491)

现在,在列出子卷组时会显示用户创建的 Ceph 文件系统子卷组

在以前的版本中,Ceph 文件系统(CephFS)子卷组列表包含 CephFS 内部组,而不是用户创建的 CephFS 子卷组。

在这个版本中,内部组从 CephFS 子卷组列表过滤。因此,现在会显示用户创建的 CephFS 子卷组。

(BZ#2093258)

保存的 snap-schedules 从 Ceph 存储重新加载

在以前的版本中,重启 Ceph Manager 会导致保留策略规格丢失,因为它没有保存到 Ceph 存储中。因此,保留会停止工作。

在这个版本中,对 snap-schedules 的所有更改都会保留到 Ceph 存储,因此当重启 Ceph Manager 时,保存的 snap-schedule 都会从 Ceph 存储中重新载入,并使用指定的保留策略规格重启。

(BZ#2125773)

用于删除 RADOS 对象的 API 已更新

在以前的版本中,删除 RADOS 对象会导致程序崩溃,并在日志中创建回溯信息。

在这个版本中,API 被更新,以在升级后正确删除 RADOS 对象,且不会在日志中转储堆栈跟踪。

(BZ#2126269)

MDS 现在存储所有损坏的 dentry

在以前的版本中,如果 dentry 损坏尚不存在,元数据服务器(MDS)只会为 dirfrag 存储 dentry 损坏。因此,只有第一个损坏的 dentry 才会存储在损坏的表中,而 dirfrag 中的后续损坏才会被忘记。

在这个版本中,MDS 可以正确存储所有损坏的 dentries。

(BZ#2129968)

ceph-mds 守护进程在升级过程中不再崩溃

在以前的版本中,Ceph 元数据服务器守护进程(ceph-mds)会在升级过程中崩溃,因为恢复内节点时元数据服务器中的错误假设。它导致 ceph-mds 在升级过程中按 assert。

在这个版本中,ceph-mds 在内节点恢复过程中进行正确的假设,ceph-mds 不再在升级过程中崩溃。

(BZ#2130081)

standby-replay Metadata Server 守护进程将不再会被非预期地被删除

在以前的版本中,Ceph Monitor 会在特定条件下从 MDS 映射中删除 standby-replay Metadata Server (MDS) 守护进程。这会导致 standby-replay MDS 守护进程从元数据服务器集群中删除,这会生成集群警告。

在这个版本中,Ceph Monitor 在考虑从 MDS 映射中删除 MDS 守护进程期间使用的逻辑,现在包含有关包含等级的 standby-replay MDS 守护进程的信息。因此,standby-replay MDS 守护进程不再意外从 MDS 集群中删除。

(BZ#2130118)

subvolume snapshot info 命令不再在输出中包含 size 字段

在以前的版本中,子卷快照 命令的输出会返回不正确的 快照大小。这是因为 snapshot info 命令依赖于 rstats 来跟踪快照大小。rstats 从对应的子卷而不是快照本身跟踪快照的大小。

在这个版本中,snapshot info 命令的输出中删除了 size 字段,直到 rstats 被修复为止。

(BZ#2130422)

磁盘完整场景不再损坏配置文件

在以前的版本中,配置文件在没有使用临时文件的情况下直接写入磁盘,这涉及截断现有配置文件并写入配置数据。当磁盘已满时,这会导致空配置文件,因为 truncate 成功,但写入新配置数据失败且 没有空格 错误。另外,它还会导致相应子卷上所有操作都失败。

在这个版本中,配置数据被写入一个临时配置文件,并重命名为原始配置文件,并防止截断原始配置文件。

(BZ#2130450)

如果未知消息,请不要中止 MDS

在以前的版本中,如果元数据服务器(MDS)收到没有理解的消息,则元数据服务器(MDS)将中止。因此,任何恶意客户端都会通过向服务器发送一条新类型的消息来使服务器崩溃。除了恶意客户端外,这也意味着,每当存在协议问题时(如新客户端错误地向服务器发送新消息),整个系统也会崩溃,而不是只是新客户端。

在这个版本中,如果从客户端收到未知请求,MDS 不再中止,而是关闭会话、块列表并驱除客户端。这可以防止 MDS 和整个系统不受任何有意攻击,如拒绝任何恶意客户端的服务。

(BZ#2130984)

现在,NFS-Ganesha 导出的目录列表可以正常工作

在以前的版本中,Ceph 文件系统(CephFS)元数据服务器(MDS)不会在 CephFS 操作过程中增加目录内节点的更改属性(change_attr),它只更改目录内节点的 ctime。因此,当 NFS 内核客户端应该时,其 readdir 缓存不会使其无效。这是因为 CephFS 支持的 NFS Ganesha 服务器有时会报告目录内节点的不正确的更改属性值。因此,NFS 客户端会列出 CephFS 支持的 NFS Ganesha 导出的过时的目录内容。

在这个版本中,CephFS MDS 在操作过程中递增目录内节点的 change 属性,并且 NFS 客户端中的目录列表现在可以按预期工作,供 CephFS 支持的 NFS Ganesha 服务器导出。

(BZ#2135573)

CephFS 现在具有正确的目录访问

在以前的版本中,因为 Discretionary Access Control (DAC)管理不正确,目录访问也会被拒绝,即使 UID 为 0。

在这个版本中,即使目录用户、组群的实际权限不适合 UID 0, 也允许目录访问 UID 0。这将通过有效授予超级用户特权,生成正确的 Ceph 文件系统(CephFS)行为,以便对 UID 0 进行访问。

(BZ#2147460)

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat