XFS 是一款高性能、高扩展性的 64 位日志文件系统,广泛应用于大规模存储服务器和企业级 Linux 发行版中。在即将到来的 Linux 7.0 内核周期中,XFS 维护者 Darrick J. Wong 提交了一项名为“xfs: autonomous self-healing of filesystems”的提案,引入了一个新系统,可实时报告文件系统问题,并允许用户空间程序自动修复这些问题。
🔹 当 XFS 发现元数据损坏、文件 I/O 错误、介质检查失败等问题,或关机、卸载等重大变更时,该功能会发出健康事件。
🔹 这些事件通过一个特殊的匿名文件描述符进行传递。拥有 CAP_SYS_ADMIN 权限的用户空间程序可以打开这个描述符,并将事件数据作为 C 结构体进行读取。
🔹 每个事件都在内部排队,并设有限制以防止资源耗尽。这种设计允许报告多种健康状况,同时不会阻塞正常的文件系统操作。
🔹 引入了一种新的媒体验证 ioctl。如果媒体验证发现问题,这些结果会进入同一个健康监控系统,确保完整性问题以一致的方式被报告。
🔹 在用户态配合使用名为 xfs_healer 的后台守护进程,该进程由 systemd 管理并通过 fanotify 自行启动,负责处理健康事件并自动启动修复。只有在进行修复时,它才会阻止卸载操作。
🔹 新机制改变了以往需要手动运行 xfs_repair 的维护模式,支持实时监控,并且能够自动修复部分问题。
💭 截至目前,这些变更被提议用于 Linux 内核 7.0,但尚未合并到主线中。
#XFS #Linux内核 #Linux