



🛠️ Btrfs-Toolkit — 飞牛存储管理,补齐系统没做完的那部分
飞牛底层用的是 Btrfs,但 Web 界面只给了一个总量进度条。
你的存储卷健康吗?有没有静默数据损坏?空间到底被什么吃了?chunk 能回收吗?这些在系统自带界面里都看不到。
Btrfs-Toolkit 就是来填这些坑的。
它能做什么
📊 总览仪表盘
所有存储卷的健康状态一张卡片看完——挂载点、设备路径、SSD 状态、Discard 模式、IO 错误计数。有异常直接标红。
🔍 数据一致性(Scrub)
Btrfs 的在线校验能力,飞牛没给入口。
- 启动/暂停/恢复/取消 scrub
- 查看当前进度、预计剩余时间
- 历史统计——上次 scrub 什么时候跑的,修了多少错误
- 错误计数变化自动对比,异常时醒目告警
没有 scrub 的 Btrfs,静默数据损坏只是时间问题。
📁 子卷快照管理
- 列出所有子卷和快照,UUID、大小、只读状态一目了然
- 创建/删除子卷
- 创建快照(支持只读/读写)
- 设置默认子卷
- 批量操作
📈 空间分析
不像系统自带只给你一根进度条:
- Data / Metadata / System 三级拓扑分配——已用、可用、已分配、未分配
- 饼图可视化,一眼看出空间都去哪了
du 分析每个子卷的占用
- 总览卡片里每个存储卷的空间占用 + 设备使用详情
⚡ 优化工具
- Balance — 回收已删数据占用的 chunk,释放可用空间。支持 start / status / pause / resume / cancel
- Defragment — 在线碎片整理,指定文件或目录
- Property — 查看/设置子卷属性(compression、readonly 等)
🔧 配额管理(Qgroup)
飞牛没暴露的配额功能:
- 查看子卷配额使用情况
- 创建/删除 qgroup
- 分配/解除子卷与 qgroup 的关联
- 设置配额上限
- quota rescan(修复数据不一致)
怎么装
在应用商店上传安装,安装后飞牛桌面上会出现一个工具图标,点进去 6 个 Tab,覆盖所有功能。
设计原则
mdadm 管 RAID,Btrfs-Toolkit 管 Btrfs。各司其职,互不越界。
飞牛的底层是 mdadm → LVM → dm-crypt → Btrfs,Btrfs 看到的只是一个逻辑分区。所以工具主动剔除了设备添加/替换/RAID 类命令,只聚焦单卷场景下的深度管理——不做越权的事,只做系统没做完的事。
一点背景
Btrfs 作为 Cow 文件系统,scrub(在线校验)、balance(chunk 重分配)、qgroup(子卷配额)是它的核心能力。但这些在飞牛 Web 界面里基本是缺失的——用户要么忍着,要么 SSH 上去敲命令。
这工具就是给不想 SSH 的人准备的。源码在 https://git.zhangyankan.cn/zhangyankan/btrfs-toolkit
欢迎试,有漏掉的场景或者想加的功能直接说。