Solaris 11:为 ZFS 数据集设置用户和组配额

作为 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