作为 Solaris 11 中新功能的一部分,我们可以对特定组占用的空间量设置限制。
在特定组上设置配额的命令是:
# zfs set groupquota@[group]=[size] [dataset]
注意: groupquota 值仅适用于文件的拥有组,如 ls -l 命令的 uid/gid 输出中所反映的那样。
因此,在设置 groupquota 时不能指定次要组。
同样,用户配额可以通过使用 userquota 属性进行管理。
这样做的命令是:
# zfs set userquota@[user] [dataset]
默认用户和组配额的默认值为 none,这意味着没有使用默认配额。
仅当分配了实际值时,才会使用默认配额值。
欢迎来到之路教程(on itroad-com)
例子:
让我们考虑几个示例来了解在 ZFS 数据集上设置用户/组配额的不同方法。
如下例所示,FS 沙箱/fs4 上设置了 2GB 的默认配额。
# zfs set defaultuserquota=2G sandbox/fs4 # mkfile 100m /sandbox/fs4/file.1 # chown marks:staff /sandbox/file.1
我们可以使用以下方法验证数据集上设置的默认配额:
# zfs userspace sandbox/fs4 TYPE NAME USED QUOTA SOURCE POSIX User marks 100M 2G default POSIX User root 3K 2G default
示例 1
现在给标记一个明确的 50G 配额,它会覆盖默认配额。
# zfs userquota@marks=50G sandbox/fs4
验证用户配额的更改值。
# zfs userspace sandbox/fs4 TYPE NAME USED QUOTA SOURCE POSIX User marks 100M 50G local POSIX User root 3K 2G default
要将用户返回到默认设置:
# zfs userquota@marks=default sandbox/fs4
# zfs userspace sandbox/fs4 TYPE NAME USED QUOTA SOURCE POSIX User marks 100M 2G default POSIX User root 3K 2G default
如果希望没有配额,那么我们仍然可以使用已经存在的将配额设置为无的语义。
# zfs userquota@marks=none sandbox/fs4
# zfs userspace sandbox/fs4 TYPE NAME USED QUOTA SOURCE POSIX User marks 100M none local POSIX User root 3K 2G default
配额值也可以通过 zfs get 子命令检索
# zfs get userquota@marks sandbox/fs4 NAME PROPERTY VALUE SOURCE sandbox/fs4 userquota@marks none local
请注意用户 timh 如何在同一数据集上获取默认配额
# zfs get userquota@timh sandbox/fs4 NAME PROPERTY VALUE SOURCE sandbox/fs4 userquota@timh 2G default
示例 2
默认组配额的工作方式与默认用户配额相同。
唯一的区别是我们使用:
# zfs set groupquota@[group]=[size] [dataset]
例如 :
为组员设置 50G 的配额:
# zfs groupquota@staff=50G sandbox/fs4
验证用户配额的更改值。
# zfs groupspace sandbox/fs4 TYPE NAME USED QUOTA SOURCE POSIX Group staff 100M 50G local POSIX Group root 3K 2G default
可以以与 userquota 类似的方式使用的其他几个命令是:
# zfs groupquota@staff=none sandbox/fs4 ### to remove group quota # zfs get groupquota@staff sandbox/fs4 ### to get group quota details
日期:2020-09-17 00:15:24 来源:oir作者:oir