文件系统 BTRFS 大小与 df、btrfs 和 baobab 之间的差异

Dav*_*e - 4 linux filesystems btrfs ubuntu

今天,我的桌面通知我我的 /-文件系统已“满”。所以一开始我对文件、包和旧快照做了一些清理。

然而,当我删除前一个时,我注意到使用该工具baobab我只有 50GB 的空间(参见屏幕截图)。我的df -alh命令给我的结果是我的大小是 140G,命令btrfs filesystem df /给我的结果是 125G。如果我检查分区大小,cfdisk我得到的结果是,如果有 139,7G(也就是说 140G)可用,对应于 df -alh 命令。但是我不明白为什么 btrfs 和 baobab 给我不同的结果。 截图差异大小输出

- 编辑 -

$sudo  btrfs fi usage /
Overall:
    Device size:         139.70GiB
    Device allocated:        136.70GiB
    Device unallocated:        3.00GiB
    Device missing:          0.00B
    Used:            133.78GiB
    Free (estimated):          3.63GiB  (min: 2.13GiB)
    Data ratio:               1.00
    Metadata ratio:           2.00
    Global reserve:      308.56MiB  (used: 0.00B)

Data,single: Size:125.68GiB, Used:125.05GiB (99.50%)
   /dev/sda1     125.68GiB

Metadata,DUP: Size:5.50GiB, Used:4.37GiB (79.38%)
   /dev/sda1      11.00GiB

System,DUP: Size:8.00MiB, Used:16.00KiB (0.20%)
   /dev/sda1      16.00MiB

Unallocated:
   /dev/sda1       3.00GiB
Run Code Online (Sandbox Code Playgroud)
$sudo btrfs fi du -s /
     Total   Exclusive  Set shared  Filename
 138.88GiB    96.00KiB    46.30GiB  /
Run Code Online (Sandbox Code Playgroud)

har*_*ymc 6

使用 BTRFS,当写入的数据量远小于报告的可用空间时,可能会耗尽空间。

\n

这是因为 BTRFS 在新分配的块中开始每次写入。\n但由于块大小是静态的,并且文件有各种大小,因此大多数时候块\n未完全填充。这会创建 \xe2\x80\x9 已分配但未使用的 \xe2\x80\x9d 空间,这就是问题所在。

\n

使用命令 可以更清楚地看到问题btrfs fi usage。\n将已用大小除以总大小以获得低效存储的比率。

\n

BTRFS 有一个名为 的文件系统“重新平衡”工具。balance\n最初设计用于平衡多个驱动器上存储的数据,但它在单驱动器配置中\n也很有用,可重新平衡分配内数据的存储方式。

\n

默认情况下,balance会重写磁盘上的所有数据。这可能\n是不必要的。块将被不均匀地填充,但您可以使用上面计算的\n比率进行过滤,使用该-d参数仅重新平衡\n小于该比率的块。这将留下任何部分填充的块,这些块比平均值填充得更多。

\n

如果比率为0.66,请使用以下命令:

\n
sudo btrfs balance start -dusage=66 /\n
Run Code Online (Sandbox Code Playgroud)\n

&您可以通过使用以下命令附加并检查其\n状态来在后台运行上述命令:

\n
sudo btrfs balance status -v /\n
Run Code Online (Sandbox Code Playgroud)\n

或者连续使用:

\n
while :; do sudo btrfs balance status -v / ; sleep 60; done\n
Run Code Online (Sandbox Code Playgroud)\n

要查看差异,请使用以下命令查看最终结果:

\n
btrfs filesystem df /\n
Run Code Online (Sandbox Code Playgroud)\n

有关更多详细信息,请参阅文章\n BTRFS 和可用空间 - 紧急响应

\n