我想在文件系统中实现配额层次结构。我将向您展示一个例子:
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