Btrfs 文件系统层次结构的配额

Btrfs 文件系统层次结构的配额

我想在文件系统中实现配额层次结构。我将向您展示一个例子:

Folder A has Folder A1 and A2.
  A
 /  \
A1   A2

A 应该有配额(限制)10GB
A1 应该有配额(限制)10GB
A2 应该有配额(限制)5GB

因此我希望我的系统不允许我将超过 A 可以处理的数据放入 A1 和 A2 中,例如不应允许 A2=5GB 和 A1=6GB,并且较低级别的配额也应有效。也可能我们只对 A 和 A2 有限制。因此 A1 可以任意大,但不能大于 A 允许的大小。

经过几个小时的研究,我的文件系统并没有像我想要的那样工作。如果我列出我的子卷,所有内容都在级别 5,我不知道这是否正确。

有人可以给我举个例子说明如何做到这一点或者我该如何进行吗?

祝好,Eugen

答案1

所以我找到了答案,我将发布创建 Parent\Sub 层次结构的示例代码。如果有人有任何问题可以在这里问我,我会尽力回答。

    sudo mkdir test


sudo btrfs subvolume create test/a
sudo btrfs subvolume create test/b
sudo btrfs subvolume create test/c
sudo btrfs subvolume create test/d


sudo btrfs qgroup limit 5M test/a
sudo btrfs qgroup limit 6M test/b
sudo btrfs qgroup limit 7M test/c
sudo btrfs qgroup limit 8M test/d

sudo btrfs qgroup create 1/1 test/
sudo btrfs qgroup limit 15M 1/1 test/

sudo btrfs qgroup assign 0/278 1/1 test/
sudo btrfs qgroup assign 0/279 1/1 test/
sudo btrfs qgroup assign 0/280 1/1 test/
sudo btrfs qgroup assign 0/281 1/1 test/


##TEST##
sudo cp ~/file4MB /test/a/4MB
sudo cp ~/file4MB /test/b/4MB
sudo cp ~/file4MB /test/c/4MB
sudo cp ~/file4MB /test/d/4MB
cp: error writing '/test/d/4MB': Disk quota exceeded

ls -lh test/a
total 4.0M
-rw-r--r-- 1 root root 4.0M Oct 18 12:22 4MB
ls -lh test/b
total 4.0M
-rw-r--r-- 1 root root 4.0M Oct 18 12:23 4MB
ls -lh test/c
total 4.0M
-rw-r--r-- 1 root root 4.0M Oct 18 12:23 4MB
ls -lh test/d
total 2.9M                                          
-rw-r--r-- 1 root root 2.9M Oct 18 12:23 4MB

相关内容