用途:本技能面向 Btrfs 文件系统的日常管理与故障排查,Btrfs 是内核内置文件系统,多数发行版无需额外加载模块,但需要 btrfs-progs 工具(apt install btrfs-progs / dnf install btrfs-progs)。文件系统在 mkfs.btrfs 时创建,不作为独立挂载点。
主要能力:通过 btrfs 子命令管理 filesystem、subvolume、balance、scrub、device、quota、qgroup、check、defragment、rescue。常用操作包括查看文件系统与用量(btrfs filesystem show、btrfs filesystem usage /mount)、列出/创建/删除子卷(btrfs subvolume list|create|delete)、创建读写或只读快照(btrfs subvolume snapshot [-r])、回滚(删除当前子卷并重命名快照,或用快照重建)、balance 启动/查看/取消、scrub 启动/查看/取消、只读检查(btrfs check /dev/sdX,需未挂载)、碎片整理(btrfs filesystem defragment -r)、扩容/缩容(btrfs filesystem resize max 或 -10G)、设备增删与错误统计、配额与 qgroup 查询。
健康检查:device stats 计数应全为 0;scrub status 应为 finished 且 0 errors;balance 空闲时无进行中任务;filesystem usage 中 metadata 不应超过 80%。建议用 systemd timer 或 cron 每月安排 scrub。
常见故障:df 显示空闲却报 no space left(metadata chunk 耗尽)可用 btrfs balance start -dusage=50 回收;仅数据 RAID-1 而元数据单盘具有风险,应显式设置 -m;文件系统变为只读需查 dmesg;balance 中途 ENOSPC 可先用 -dusage 过滤并释放空间;快照累积会占用空间;btrfs check --repair 有风险,应改用 rescue 子命令;内核升级后出错需查 dmesg 并核对内核版本问题。
限制:内核 4.x 到 6.x 间稳定性改进明显,老内核在 RAID-5/6 和 balance 上有已知问题;截至 6.x,RAID-5/6 存在未解决的 write-hole 缺陷,不建议用于重要数据,宜用 RAID-1 或 RAID-10;快照创建即时但删除可能缓慢;CoW 会使数据库和虚拟机镜像碎片化,可用 nodatacow 挂载选项或 chattr +C(同时禁用校验和);send/receive 适合基于只读快照的增量备份,snapper、btrbk 等工具可自动化快照与备份流程。官方文档与社区链接、mkfs/挂载选项、常用模式等资料见 references 目录。具体收费、平台与更多细节暂未提供。