Zfs

為什麼我增加 ZFS 共享的配額時可用空間沒有增加?

  • August 13, 2020

我對 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它不是有效的屬性。我嘗試繼續Google搜尋,但無法找到解決方案。也許有人可以通過解釋我做錯了什麼或我錯過了哪一步來幫助我?

也許很高興知道我們使用的是舊版本(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 的區別

引用自:https://serverfault.com/questions/1029807