Btrfs:Linux 的写时复制文件系统,7.1 版工具集更新

文件系统是那种平时感觉不到、出事时决定一切的基础设施。

写时复制带来的连锁收益

Btrfs 是面向 Linux 的现代写时复制文件系统。官方文档首页用一句话给出了完整定义,并把设计目标一并写明:在实现先进特性的同时,兼顾容错、修复与易于管理。这个顺序值得留意——把出错之后的恢复能力提前写进目标,意味着它从一开始就是按长期运行来设计的。

写时复制是这套设计的支点。数据改动时不覆盖原地,而是写到新位置再改指针,因此改动前后的状态都得以保留。校验和、快照、发送接收这些能力之所以能在较低开销下实现,根源都在这里。官方特性清单相当长:校验和、压缩、去重、碎片整理、内联文件、配额组、reflink、在线调整容量、校验修复、发送接收、子卷、交换文件、TRIM 与卷管理。

几项常被用到的能力

校验和负责发现坏数据。官方为它单设一章,内容覆盖数据与元数据的校验方式;另有一章叫读取时自动修复,讲的是在存在可用副本时,如何把读出来的数据纠正回去。这两章合起来,构成了数据完整性的基本保证。

子卷与快照负责组织。官方文档里子卷有独立一章,快照则是子卷的一项常规操作,配合写时复制,创建时的开销与占用都比较小。发送与接收负责搬运:把子卷与快照以流的形式传输到另一个 Btrfs 文件系统,适合做增量备份。卷管理则允许把多块设备组合进同一个文件系统,另有平衡、设备替换与播种设备等条目配合。

项目

官方说明

定位

面向 Linux 的现代写时复制文件系统

设计目标

在先进特性之外兼顾容错、修复与易管理

数据完整性

数据与元数据校验和,支持读取时自动修复

组织方式

子卷与快照,另有配额组与播种设备

传输与扩容

发送与接收流、卷管理、在线扩缩容

配套工具与版本

日常操作靠 btrfs-progs 这套命令行工具完成,mkfs、check、scrub、balance 等命令都在其中。官方变更记录把现行版本列为 7.1,日期是 2026 年 7 月 14 日,其后依次是 2026 年 5 月 9 日的 7.0 与 2025 年 2 月 13 日的 6.19。工具以 GPL-2.0 许可证开源,仓库根目录附有许可证文件,库部分另有独立的一份。

7.1 的改动集中在构建与检查两个环节的效率上。官方记录显示,mkfs 在指定根目录时可以借用 GET_CSUMS 接口复用已有的校验和,配合 reflink 能少读一遍文件数据;check 增加了跳过配额组校验的选项,用来加快检查速度。这类改动看起来不起眼,但在处理大容量文件系统时省下的时间是实打实的。

存储方案的价值不在参数表有多长,而在把数据放进去之后,你还敢不敢一直不碰它。

使用建议:新盘先做一次完整校验,把坏块摸清楚再往上放数据;需要留回滚点就建子卷快照,比整盘复制省得多;多设备方案上线前先确认冗余级别,避免单块设备损坏影响整个文件系统;跨机器搬运用发送与接收,增量传输会比整包拷贝省时间。

Btrfs下载地址
支持的操作系统: Linux