我经常使用 btrfs 快照,我感兴趣的事情之一是给定快照占用了多少空间 - 或者更具体地说 - btrfs 快照占用了多少独占数据,以便我知道是否删除快照,我将释放多少空间。
据我所知,找到此信息的唯一方法是启用 btrfs 配额
# btrfs quota enable /
和跑步
# btrfs qgroup show /
这非常有效。问题是 - 除此以外,我实际上并未将 btrfs 配额用于任何其他用途,这意味着我可以选择始终启用 btrfs 配额,或者在运行“btrfs qgroup show /”命令之前暂时启用它们,并立即启用它们禁用它们。另外,我上次听说,btrfs 配额仍处于实验阶段(我错了吗?)。
基本上我想知道的是:
- 保持 btrfs 配额启用会影响系统稳定性吗?
- 保持 btrfs 配额启用会影响系统性能吗?
我意识到“为了安全”的答案是仅在需要时启用配额,但我实际上正在制作一个运行“btrfs qgroup show /”的脚本并以更易读的形式打印输出,并添加代码始终启用和禁用配额会大大减慢脚本速度,并增加复杂性,因此我宁愿始终启用配额,但我不知道它是否有缺点。
答案1
我为我的个人 NAS 运行 use btrfs。这是一个 3.7T 文件系统,有超过一千个快照。我使用快照将备份同步到外部驱动器。对于我的用例,启用配额会对系统稳定性和性能产生不利影响。在进行配额计算时,BTRFS 事务可能会停滞数小时。这会导致任何接触该文件系统的进程挂起,处于不间断的磁盘睡眠状态。 Evenls
或df
将挂起并变得不可杀死,直到配额计算完成。
我想如果我使用更少的快照,我就不会遇到这个问题。配额对于某些人的工作负载来说似乎确实表现得还算不错,但对我来说却不是。