6.3. Ceph 文件系统
获取任何目录的 ceph.dir.layout
返回最接近的继承布局
在以前的版本中,目录路径不会遍历 root 来查找最接近的继承布局,从而导致系统为没有特别设置布局的目录返回 “No such attribute”消息。
在这个版本中,目录路径会遍历 root 来查找最先继承的布局,并从目录层次结构中获取任何目录的 ceph.dir.layout
。
subvolumegroup ls
API 会过滤内部垃圾目录 _deleting
在以前的版本中,subvolumegroup ls
API 不会过滤内部垃圾目录 _deleting
,从而导致它被列为 subvolumegroup
。
在这个版本中,subvolumegroup ls
API 会过滤内部回收目录 _deleting
,subvolumegroup ls
API 不显示内部回收目录 _deleting
。
竞争条件不再造成集群中的 MDS 混淆
在以前的版本中,在 messenger 设置过程中有一个 MDS 中的竞争条件,这会导致与集群中的其他 MDS 混淆,从而导致其他 MDS 拒绝通信。
在这个版本中,争用条件会被重新处理,在 MDS 之间建立成功通信。
MDS 现在可以触发对在线清理进行重新集成
在以前的版本中,stray reintegrations 仅在客户端请求中触发,从而导致清除内节点需要客户端昂贵的递归目录列表。
在这个版本中,MDS 可以触发与在线清理功能集成。
如果目标目录已满,MDS 会重新整合 stray
在以前的版本中,如果链接的目标目录完整导致 stray 目录被填满,MDS 不会重新集成它们。
在这个版本中,即使目标目录已满,也不会发生改变,MDS 也会继续集成。
在复制数据后,克隆强制配额
在以前的版本中,在从源快照复制数据前,克隆的配额会被设置,在从源复制整个数据前强制实施配额。如果源的配额超过配额,这会导致子卷快照克隆失败。由于配额在字节范围内不严格强制执行,因此有可能实现。
在这个版本中,在复制数据后,在克隆上强制配额。快照克隆总是成功与配额无关。
灾难恢复自动化和计划在 ceph-mgr
重启后恢复
在以前的版本中,调度不会在 ceph-mgr
启动期间启动,这会影响到快照调度会在 ceph-mgr
重新启动时间进行恢复的用户。
在这个版本中,调度会在 ceph-mgr
重启中启动,灾难恢复自动化和计划,如快照复制,在 ceph-mgr
重启后立即恢复,而无需手动干预。
mdlog
在打开文件以读取时立即清除
在以前的版本中,当打开文件读取时,MDS 会从其他客户端撤销 Fw 功能,当 Fw 功能被释放时,MDS 无法立即清除 mdlog
,并阻止 Fr 功能。这会导致请求文件的进程大约为 5 秒,直到 mdlog
每 5 秒定期清除 MDS。
在这个版本中,当释放 Fw 功能时,立即触发 mdlog
flush,您可以快速打开文件以读取。
不再允许删除特定克隆状态的子卷克隆
在以前的版本中,如果在克隆没有处于 COMPLETED
或 CANCELLED
状态时,如果删除子卷克隆,则不会从索引跟踪持续克隆时删除克隆。这会导致对应的克隆器线程无限期重试克隆,从而导致 ENOENT
失败。当默认克隆线程数设置为四时,尝试删除四个克隆会导致所有四个线程进入阻塞状态,允许不完成任何待处理的克隆。
在这个版本中,除非克隆处于 COMPLETED
或 CANCELLED
状态,否则不会被删除。克隆器线程不再阻止,因为克隆被删除,以及从索引中跟踪持续克隆的条目。因此,待处理的克隆会如预期继续完成。
新客户端与旧的 Ceph 集群兼容
在以前的版本中,新客户端与旧的 Ceph 集群不兼容,从而导致旧集群触发 abort()
在收到未知指标时崩溃 MDS 守护进程。
在这个版本中,确保检查客户端中的功能位并仅收集并仅发送 MDS 支持的指标。新客户端与旧的 ceph 兼容。
Ceph 目录服务器在并发查找和非链接操作过程中不再崩溃
在以前的版本中,在代码中存在错误假设,它会被按并发查找和从 Ceph 客户端的未链接操作,从而导致 Ceph 元数据服务器崩溃。
最新的修复程序将断言移到相关的位置,即在并发查找和未连接操作期间进行。因此,Ceph 元数据服务器可以在不崩溃的情况下提供 Ceph 客户端操作。
在获取未链接的目录时,MDS 不再崩溃
在以前的版本中,当获取未链接的目录时,项目的版本会被错误地初始化,从而导致在执行完整性检查时 MDS 崩溃。
在这个版本中,在获取未链接的目录时,项目的版本和内节点版本会被初始化,允许 MDS 在不崩溃的情况下执行完整性检查。