我遇到了 btrfs 可用空间问题(这并不罕见),但我无法通过遵循大多数明显的来源来解决这个问题。我不知道我错过了什么。
资料来源: https://btrfs.wiki.kernel.org/index.php/FAQ#Help.21_I_ran_out_of_disk_space.21 http://marc.merlins.org/perso/btrfs/post_2014-05-04_Fixing-Btrfs-Filesystem-Full-Problems.html
我的系统:
# uname -a
Linux archb3 4.6.3-2-ARCH #1 PREEMPT Wed Jun 29 07:15:33 MDT 2016 armv5tel GNU/Linux
/home is automounted (no entry in fstab)
/home/storage/video /home/cata/files none bind 0 0
# mount | grep btrfs
/dev/sda4 on /home type btrfs (rw,relatime,space_cache,subvolid=5,subvol=/)
/dev/sda4 on /home/cata/files type btrfs (rw,relatime,space_cache,subvolid=5,subvol=/storage/video)
# btrfs fi df /home
Data, single: total=1.64TiB, used=1.60TiB
System, DUP: total=8.00MiB, used=224.00KiB
Metadata, DUP: total=4.00GiB, used=2.16GiB
GlobalReserve, single: total=512.00MiB, used=0.00B
# btrfs fi show /dev/sda4
Label: 'home' uuid: 1c7e35e8-f013-4f65-9d19-eaa168ac088b
Total devices 1 FS bytes used 1.61TiB
devid 1 size 1.81TiB used 1.65TiB path /dev/sda4
# btrfs fi usage /home
Overall:
Device size: 1.81TiB
Device allocated: 1.65TiB
Device unallocated: 168.93GiB
Device missing: 0.00B
Used: 1.61TiB
Free (estimated): 203.23GiB (min: 118.76GiB)
Data ratio: 1.00
Metadata ratio: 2.00
Global reserve: 512.00MiB (used: 0.00B)
Data,single: Size:1.64TiB, Used:1.60TiB
/dev/sda4 1.64TiB
Metadata,DUP: Size:4.00GiB, Used:2.16GiB
/dev/sda4 8.00GiB
System,DUP: Size:8.00MiB, Used:224.00KiB
/dev/sda4 16.00MiB
Unallocated:
/dev/sda4 168.93GiB
如果我理解正确的话,元数据应该没有问题(超过 40% 是免费的),而且我看不出数据有什么问题——在 1.81 TiB 可用空间中分配了 1.64 TiB。
我尝试运行重新平衡,但它因“设备没有剩余空间”消息而退出——我删除了一个包含约 25 GiB 数据的目录,但无济于事。
我错过了什么?
编辑:系统上没有快照,刚刚检查过。
EDIT2:我删除了大约 50 GB 的数据并运行了碎片整理 - 令我惊讶的是,磁盘现在报告:# btrfs fi df /home 数据,单个:总计=1.71TiB,已使用=1.70TiB 系统,DUP:总计=8.00MiB,已使用=224.00KiB 元数据,DUP:总计=3.50GiB,已使用=2.24GiB GlobalReserve,单个:总计=512.00MiB,已使用=0.00B
因此,就像移除 50 GB 后,驱动器上又出现了 100 GB。
我想喜欢 btrfs,但它似乎完全不可预测 :/