XFS文件系统发展记事(202x)
2025-09-11 11:21:22 阿炯

在线体检(Online fsck)在Linux v6.18 计划默认启用


在线体检(Online fsck)在Linux v6.18 计划默认启用


XFS 社区准备在 Linux 6.18 中默认启用在线文件系统检查(Online fsck / xfs_scrub),并同步推进 2025 年既定的 Kconfig 收敛:把已弃用的 V4 文件系统格式与ASCII 大小写不敏感目录默认关闭,后续按计划在 2030 年移除。Online fsck 已在主线稳定运行逾 16 个月,无严重问题报告;默认开启将使在线元数据体检成为常态,减少停机检查需求,符合今年(很可能)LTS 版本的可靠性目标。

为何在 6.18 推进默认开启
Linux 6.18 合并窗临近、2025年12 月预计发布稳定版——按以往节奏,这一年的最后主线版本通常会成为 LTS(长期支持)。围绕这一假设,XFS 开发者把若干 Kconfig 更新排进了 for-next:为 LTS 抬高默认可靠性基线。具体包括:默认开启 Online fsck;默认关闭 XFS V4 与 ASCII 大小写不敏感目录(已弃用、存在缺陷/风险)。

什么是 Online fsck(在线 fsck / xfs_scrub)?它允许在已挂载的 XFS 上检查元数据一致性,部分情形还能联动修复或标记问题,避免“离线 fsck”带来的业务中断;其设计/风险点在内核文档中有系统说明。

核心变更:Kconfig 与默认值调整
1) 默认启用 Online fsck(CONFIG_XFS_ONLINE_SCRUB)
维护者指出功能自合入主线已运行 16+ 个月“无严重问题”,因此建议改为默认开启,配合 2025 年 LTS 交付。原“若不确定选 N”的提示也将随默认 Y 的落地而清理。好处如下:
• 元数据可在生产系统在线检查/诊断,减少维护窗;
• 与现代 XFS(V5 格式、元数据校验)配合,更易早期发现异常。

2) 默认关闭 XFS V4(计划:2025-09 关、2030-09 移除)
V4 缺少 metadata checksumming、增强验证、Y2038+ 支持等能力;官方时间表是 2025 年 9 月默认 N、2030 年 9 月彻底移除。建议尚未迁移的用户尽快转到 V5(crc=1) 分区。

如何自查:
xfs_info /mountpoint   # 输出里若见 "crc=0" 即为 V4,应尽快迁移
(xfs_info 字段说明与 Kconfig 注释一致。)

3) 默认关闭 ASCII 大小写不敏感目录(计划:2025年关、2030年移除)
该实现仅在 ISO-8859-1 下工作;不支持扩展属性;在 UTF-8 广泛使用的系统里容易破坏文件名语义,且存在大小写混淆攻击面,故不建议使用。时间表同上。

如何自查:
xfs_info /mountpoint   # 若见 "ascii-ci=1" 说明启用了该特性,建议迁移/替换
(发行版可能更早禁用该选项以降低攻击面。)

为何“在线体检”值得默认开启:设计与边界
1. 在线检查(scrub)≠ 全能修复:它以元数据为主,按调度/配额有节制地扫描并校验结构,能在运行中发现并隔离/上报问题,部分场景可触发修复流程;极端损坏仍可能需要离线 xfs_repair。
2. 与 V5 校验协同:V5 的校验字段让在线检查更“有据可依”;二者叠加提升可检测性与可定位性。
3. 面向生产的可观测性(Observability,可观测性):把“健康度”引入日常巡检,可结合告警/运维平台做主动诊断,减少“宕机后才修”的被动局面。

应用场景与落地建议
1. 数据库/对象存储/日志平台
持续在线、对维护窗敏感的系统:可把 Online fsck 纳入低峰时段巡检策略(速率/并发可控),与磁盘/阵列自检互补。
2. 企业发行版与 LTS 迁移周期
6.18 若确认为 LTS,发行版大概率跟进默认;建议在预生产先评估I/O 抖动与巡检时长,并结合 xfs_scrub/xfs_spaceman 工具链做基线测量。
3. 遗留卷迁移
检测到 crc=0(V4)或 ascii-ci=1 的卷,按官方建议备份→重建→恢复迁移到 V5;这既是为默认值变化“扫清障碍”,也能获得更完整的校验/检查能力。

开发与维护视角:Kconfig 与发行版策略
1. Kconfig 变更队列已在 XFS 开发树的 for-next 中排队,指向 6.18 合并窗;维护者明确希望赶在 2025 LTS 前把默认值切换完成。
2. 发行版可更早关闭 V4/ASCII-CI 以收敛攻击面(已有发行版提案/补丁),但总体与上游时间表保持一致。

小结
1. 关键变化:6.18 目标默认启用 Online fsck;按既定计划默认关闭 V4 与 ASCII-CI。
2. 直接收益:在不下线的前提下在线检查元数据、更早捕获风险;与 V5/校验配合提升可靠性。
3. 迁移要点:尽快从 V4/ASCII-CI 迁走;把 Online fsck 纳入日常巡检并度量影响。
4. 对 LTS 的意义:把“可检查、可观测”的能力变成默认基线,更贴合长期支持场景。