我对 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。在向 Google 寻求解决方案后,我发现我增加了 ZFS 共享,但操作系统不知道这一点,所以我需要用类似
[root@axxfile] ~# growfs -M /mnt/Volume1/releases/ Volume1/releases
growfs: illegal option -- M
usage: growfs [-Ny] [-s size] special | filesystem
如您所见,由于不是有效属性,因此此方法无效-M
。我尝试继续谷歌搜索,但无法找到解决方案。也许有人可以帮助我解释我做错了什么或我错过了哪个步骤?
也许值得一提的是,我们使用的是旧版 FreeNAS(9.3)。计划在不久的将来进行更新,但目前我们还无法做到。
============== 更新 1 ============ @迈克尔·汉普顿
我注意到 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
答案1
回复后,@Michael Hampton
我注意到还refquota
为共享(数据集)设置了。在我更改了之后,refquota
问题zfs set refquota=150G Volume1/releases
就解决了。
quota
这很好地解释了和之间的区别refquota
:
配额限制数据集及其所有子数据集和快照的总体大小,而 refquota 仅适用于该数据集内直接引用的数据。
如果您将数据集委托给其他用户(并允许在该用户下创建其他数据集),或者想要限制给定数据集的总体大小,配额将非常有用。例如,多用户文件服务器的 /home 目录可以限制为 10TB,这将确保所有用户主数据集和所述数据集的快照的总和不能超过 10TB。
如果您的用户倾向于超载特定数据集,那么 Refquota 会很有帮助。在上面的例子中,每个用户的主目录可能被限制为 100GB 配额和 50GB refquota。这意味着他们的主目录可以包含 50GB 的数据,但实时数据集和所有快照的总和不能超过 100GB。
来源:配额和重新配额之间的区别