我对 ZFS 不是很熟悉,需要在 FreeNAS 上增加 ZFS 共享的大小。当我这样做时,zpool list
我看到我们有 2 个 ZFS 池:
NAME SIZE ALLOC FREE EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT
Volume1 1.98T 1.00T 1003G - 26% 50% 1.00x ONLINE /mnt
Volume2 1.98T 140G 1.85T - 2% 6% 1.00x ONLINE /mnt
我想增加大小的共享是一个Volume1
名为的目录releases
(应该从 100G 到 150G)
[root@axxfile] ~# zfs list | grep releases
Volume1/releases 100G 280K 100G /mnt/Volume1/releases
[root@axxfile] ~# zfs get quota Volume1/releases
NAME PROPERTY VALUE SOURCE
Volume1/releases quota 100G local
为了增加我所做的大小:zfs set quota=150 Volume1/releases
这导致:
[root@axxfile] ~# zfs list | grep releases
Volume1/releases 100G 280K 100G /mnt/Volume1/releases
[root@axxfile] ~# zfs get quota Volume1/releases
NAME PROPERTY VALUE SOURCE
Volume1/releases quota 150G local
由于某种原因,配额从 100G 增加到 150G,但“可用空间”仍然是 100G。在向谷歌询问解决方案后,我发现我增加了 ZFS 共享,但操作系统不知道这一点,所以我需要用类似的东西告诉操作系统
[root@axxfile] ~# growfs -M /mnt/Volume1/releases/ Volume1/releases
growfs: illegal option -- M
usage: growfs [-Ny] [-s size] special | filesystem
如您所见,这不起作用,因为-M
它不是有效的属性。我尝试继续谷歌搜索,但无法找到解决方案。也许有人可以通过解释我做错了什么或我错过了哪一步来帮助我?
也许很高兴知道我们使用的是旧版本(9.3)的 FreeNAS。计划在不久的将来进行更新,但我们还无法做到。
============== 更新1 ============ @Michael Hampton
我注意到 refquota 仍然是 100G,我猜这就是问题所在?
[root@axxfile] ~# zfs get quota,reservation,refquota,refreservation Volume1/releases
NAME PROPERTY VALUE SOURCE
Volume1/releases quota 150G local
Volume1/releases reservation none local
Volume1/releases refquota 100G local
Volume1/releases refreservation none local
[root@axxfile] ~# zfs get -r reservation,refreservation -t filesystem,volume Volume1
cannot open '-t': dataset does not exist
cannot open 'filesystem,volume': invalid dataset name
NAME PROPERTY VALUE SOURCE
Volume1 reservation none local
Volume1 refreservation none local
Volume1/VM reservation none local
Volume1/VM refreservation none local
Volume1/ab reservation none local
Volume1/ab refreservation none local
Volume1/backup reservation none default
Volume1/backup refreservation none default
Volume1/backup/cloneimages reservation none local
Volume1/backup/cloneimages refreservation none local
Volume1/backup/sicherungen reservation none local
Volume1/backup/sicherungen refreservation none local
Volume1/backup/switch reservation none default
Volume1/backup/switch refreservation none default
Volume1/jails reservation none default
Volume1/jails refreservation none default
Volume1/mailserver reservation none local
Volume1/mailserver refreservation none local
Volume1/releases reservation none local
Volume1/releases refreservation none local
在我的回复之后,
@Michael Hampton
我注意到也refquota
为共享(数据集)设置了一个。在我改变了refquota
问题之后zfs set refquota=150G Volume1/releases
,问题就解决了。quota
这很好地解释了和之间的区别refquota
:配额限制了数据集及其所有子节点和快照的整体大小,而 refquota 仅适用于从该数据集中直接引用的数据。
如果您将数据集委派给另一个用户(有权在该用户下创建其他数据集)或者如果您想限制给定数据集的整体大小,配额将很有用。例如,多用户文件服务器的 /home 目录可以限制为 10TB,这将确保所有用户主数据集和所述数据集的快照的总和不能超过 10TB。
如果您的用户倾向于超载特定数据集,那么 Refquota 会很有帮助。在我们上面的示例中,每个用户的主目录可能被限制为 100GB 配额和 50GB 引用配额。这意味着他们的主目录可以包含 50GB 的数据,但实时数据集和所有快照的总和不能超过 100GB。
来源:quota 和 refquota 的区别