收起左侧

飞牛-存储空间中容量详情中的其他文件优化方法

1
回复
32
查看
[ 复制链接 ]

1

主题

2

回帖

0

牛值

江湖小虾

为什么“其他”空间会越来越大?
Btrfs 的写时复制(CoW)特性意味着每次修改文件时,系统不会覆盖原数据,而是将新数据写入新的数据块。导致“其他”空间膨胀的原因通常有两个:
  • 文件碎片化: 频繁修改的大文件(如虚拟机镜像、数据库、BT下载文件)会产生大量碎片,占用额外开销。
  • 快照(Snapshots)滞留: 这是最常见的原因。如果您开启了定时快照,当文件被修改或删除后,由于快照仍“锁定”着旧版本的数据块,这部分空间就无法被释放,在存储空间详情里往往会被归类为“其他”。

Btrfs 维护命令备忘录
在官方图形化菜单上线之前,您可以保存以下这些核心命令。只需通过 SSH 登录系统即可执行(挂载点是 /vol1):

1. 数据完整性校验 (Scrub)校验数据一致性并自动修复


# 开始后台校验sudo btrfs scrub start /vol1# 查看校验进度或结果sudo btrfs scrub status /vol1



2. 碎片整理与透明压缩 (Defragment & Compress)如果数据完整性良好,您可以对目录进行碎片整理,并强制启用压缩(例如使用 zstd 算法)来腾出空间:
Bash

# 递归(-r)整理碎片,显示详细信息(-v),并使用 zstd 算法压缩(-czstd)sudo btrfs filesystem defragment -r -v -czstd /vol1


注意:对带有大量快照的目录进行碎片整理,可能会打断快照与原文件的共享数据块,反而导致空间占用短暂增加。建议在执行前清理不必要的旧快照。

3. 空间平衡 (Balance)有时磁盘显示满了,但实际上是因为 Btrfs 的“数据块组(Block Groups)”分配不均。回收那些使用率极低的块组也能释放空间:
Bash

# 只重新平衡使用率低于 10% 的数据块,速度快且安全sudo btrfs balance start -dusage=10 /vol1


命令执行完后,其他空间已经为0了。






收藏
送赞
分享

1

主题

2

回帖

0

牛值

江湖小虾

昨天 20:58 楼主 显示全部楼层
我自己亲测 没有问题。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则