如果我将 /home/... 文件夹移动到 btrfs 分区,我还能启用每个用户配额吗?也就是说,每个用户应该能够使用有限的存储空间。
答案1
btrfs 是否支持每个用户配额?
不,不是的。
如果我将 /home/... 文件夹移动到 btrfs 分区,我还能启用每个用户配额吗?也就是说,每个用户应该能够使用有限的存储空间。
是的,诀窍是为每个家庭使用一个子卷。
Btrfs 支持子卷配额自 Linux 内核 3.6 以来。
(注意Ubuntu Precise 有 3.2,Quantal 有 3.5,Raring 有 3.8,请注意,你可以安装愤怒硬件支持堆栈在 Precise 上,拥有更新的内核。
有关启用配额的说明,请参阅 Btrfs FAQ,“我们如何在 BTRFS 中实现配额?“。之后创建的子卷btrfs quota enable
自动支持配额。之前创建的子卷btrfs quota enable
需要手动干预才能支持配额。
- 挂载 btrfs 文件系统
- 启用配额:
btrfs quota enable mountpoint
- (如果文件系统已包含子卷,请启用其配额支持:)
- 使用 列出子卷 ID
btrfs subvolume list
。后面的数字ID
(在每行的开头)是子卷的 ID。 - 创建一个 qgroup
btrfs qgroup create 0/subvolume-id path-to-subvolume
(不要忘记subvolume-id
用正确的 id 替换) - 重新扫描子卷,因为配额设置已被更改:
btrfs quota rescan
- 使用 列出子卷 ID
- 创建您需要的新子卷:
btrfs subvolume create mountpoint/subvolume-name
- 限制子卷的使用:
btrfs qgroup limit 100G path-to-subvolume
- 利润。
最后,设置/etc/fstab
在启动时自动挂载子卷:
UUID=文件系统的 uuid /home/mountpoint btrfs 默认值,subvolid=子卷 id 0 0
或者,您可以使用LABEL=label
或/dev/sdxn
引用 btrfs 文件系统。
要应用更改fstab
而不重新启动:mount -a
答案2
不,Btrfs 不支持用户配额,它支持目录配额。因此,您可以为每个用户目录添加配额,但如果您与多个用户/组共享目录,则无法为每个用户单独设置/计算空间。
因此,您无法限制用户 X 只能放入 1MB 的文件/home/shared
,而另一个用户 Y 只能放入 10MB 的文件。但您可以为和/home/shared
设置不同的限制。/home/userX
/home/userY
这不是用户配额,而是子卷配额。您可以将多个子卷置于单一限制内(例如,用户拥有/home/userX/
,/backups/userX/
然后两者都可以处于单一限制之下。