Назад | Перейти на главную страницу

Почему при увеличении квоты общего ресурса ZFS доступное пространство не увеличивается?

Я не очень хорошо знаком с ZFS и мне нужно увеличить размер общего ресурса ZFS на нашем FreeNAS. Когда я делаю 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 (должно быть от 100 до 150 ГБ)

[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

По какой-то причине квота увеличена со 100 ГБ до 150 ГБ, но «доступное пространство» по-прежнему составляет 100 ГБ. Спросив у Google о решении, я обнаружил, что увеличил долю ZFS, но ОС этого не знает, поэтому мне нужно сообщить об этом ОС с помощью чего-то вроде

[root@axxfile] ~# growfs -M /mnt/Volume1/releases/ Volume1/releases
growfs: illegal option -- M
usage: growfs [-Ny] [-s size] special | filesystem

Как видите, это не работает из-за -M не является допустимым свойством. Я попытался продолжить поиск в Google, но не смог найти решения. Может быть, кто-нибудь может мне помочь, объяснив, что я делаю не так или какой шаг пропустил?

Может быть, полезно знать, что мы используем старую версию 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

После ответа @Michael Hampton я заметил, что также refquota был установлен на долю (набор данных). После того, как я изменил refquota с участием zfs set refquota=150G Volume1/releases проблема была решена.

Это довольно хорошо объясняет, в чем разница между quota и refquota:

Квота ограничивает общий размер набора данных и всех его дочерних элементов и моментальных снимков, в то время как квота применяется только к данным, на которые имеется прямая ссылка из этого набора данных.

Квота будет полезна, если вы делегировали набор данных другому пользователю (с разрешением на создание дополнительных наборов данных для этого) или если вы хотите ограничить общий размер данного набора данных. Например, каталог / home многопользовательского файлового сервера может быть ограничен 10 ТБ, что гарантирует, что сумма всех пользовательских домашних наборов данных и снимков этих наборов данных не может превышать 10 ТБ.

Refquota будет полезна, если у вас есть пользователи, которые склонны перегружать определенный набор данных. В приведенном выше примере домашний каталог каждого пользователя может быть ограничен квотой 100 ГБ и рефквотой 50 ГБ. Это означало бы, что их домашний каталог может содержать 50 ГБ данных, но сумма живого набора данных и всех снимков не может превышать 100 ГБ.

Источник: разница между квотой и рефквотой