Btrfs 平衡花费的时间太长

Btrfs 平衡花费的时间太长

我的笔记本电脑上有一个 btrfs RAID1 阵列(两个 HDD 上的两个 891GiB 分区)。当我跑步时,btrfs balance需要花费大量时间才能完成。

我知道如果我想平衡整个文件系统将永远需要,这就是我使用这样的 -usage 过滤器的原因;我将其放入 for 循环中,因为我并不总是知道从哪个数字开始。

for i in {1..100}; do sudo btrfs balance start -dusage=$i /my/mount/path/; done

在此循环中,sudo 仅在第一次询问我的密码,或者如果余额花费了很多时间。打印大约 20 次

Done, had to relocate 0 out of 868 chunks

然后在花费了大量时间后打印

Done, had to relocate 1 out of 868 chunks

所以这意味着它只移动了 1GB(或 200MB)的数据。只是移动 1GB 数据不应该花费那么多时间,我可以在十分之一的时间内将更多数据复制到该文件系统。

这是我的条目fstab

UUID=<the uuid>  /my/mount/path/  btrfs  defaults,noatime,compress=lzo  0  0

我还必须提到的是,我通常会创建并删除快照,以防万一出错。

sudo btrfs subvolume list /my/mount/path/
ID 5238 gen 178224 top level 5 path SNAP/snap-2017-04-15
ID 5270 gen 178229 top level 5 path SNAP/snap-2017-04-17
ID 5272 gen 178228 top level 5 path SNAP/snap-2017-04-21
ID 5276 gen 178230 top level 5 path SNAP/snap-2017-04-25
ID 5284 gen 178232 top level 5 path SNAP/snap-2017-05-04
ID 5290 gen 178231 top level 5 path SNAP/snap-2017-05-10
ID 5291 gen 178229 top level 5 path SNAP/snap-2017-05-11
ID 5309 gen 178225 top level 5 path SNAP/snap-2017-05-11-22-52-30
ID 5310 gen 178226 top level 5 path SNAP/snap-2017-05-13
ID 5311 gen 178232 top level 5 path SNAP/snap-2017-05-15
ID 5312 gen 178227 top level 5 path SNAP/snap-2017-05-17
ID 5313 gen 178227 top level 5 path SNAP/snap-2017-05-18

我还启用了配额来帮助我查看快照之间修改了多少。

sudo btrfs qgroup show /my/mount/path/
qgroupid         rfer         excl
--------         ----         ----
0/5         774.25GiB    910.87MiB
0/3098      142.21GiB        0.00B
0/3119       39.38GiB     16.00EiB
0/5226          0.00B     16.00EiB
0/5228          0.00B     16.00EiB
0/5233       48.00KiB     16.00EiB
0/5236       96.00KiB     16.00EiB
0/5238      785.18GiB     46.57GiB
0/5270      768.99GiB      1.22MiB
0/5272      768.73GiB      1.36MiB
0/5276      766.70GiB     12.70MiB
0/5284      768.55GiB      3.33MiB
0/5290      772.23GiB    964.00KiB
0/5291      772.23GiB    912.00KiB
0/5309      773.77GiB    608.00KiB
0/5310      773.78GiB      1.09MiB
0/5311      773.56GiB      1.66MiB
0/5312      773.55GiB      2.16MiB
0/5313      774.32GiB    147.49MiB

一定16.00EiB是某种错误,谁有这样的硬盘?

为什么平衡需要这么长时间才能完成?我真的很喜欢 btrfs 功能,所以我更愿意继续使用它。

答案1

我终于弄明白了。之所以要花这么长时间,是因为配额的原因。

我禁用它运行:

sudo btrfs quota disable /my/mount/path/

现在它在短短几分钟内就平衡了我的 fs。

相关内容