Для настройки квоты пользователя или группы используются команды zfs userquota и zfs groupquota.
# zfs create students/compsci # zfs set userquota@student1=10G students/compsci # zfs create students/labstaff # zfs set groupquota@staff=20GB students/labstaff |
Отображение текущей квоты quota или group выполняется следующим образом:
# zfs get userquota@student1 students/compsci NAME PROPERTY VALUE SOURCE students/compsci userquota@student1 10G local # zfs get groupquota@staff students/labstaff NAME PROPERTY VALUE SOURCE students/labstaff groupquota@staff 20G local |
Просмотр информации об общем использовании пространства пользователя или группы можно выполнить с помощью запроса следующих свойств:
# zfs userspace students/compsci TYPE NAME USED QUOTA POSIX User root 227M none POSIX User student1 455M 10G # zfs groupspace students/labstaff TYPE NAME USED QUOTA POSIX Group root 217M none POSIX Group staff 217M 20G |
Если требуется получить информацию об использовании пространства пользователя или группы по отдельности, используется запрос для следующих свойств:
# zfs get userused@student1 students/compsci NAME PROPERTY VALUE SOURCE students/compsci userused@student1 455M local # zfs get groupused@staff students/labstaff NAME PROPERTY VALUE SOURCE students/labstaff groupused@staff 217M local |
Свойства квоты user и group не отображаются с помощью команд zfs get all dataset, которые используются для вывода перечня всех свойств файловой системы.
Удаление квот user или group выполняется следующим образом:
# zfs set userquota@user1=none students/compsci # zfs set groupquota@staff=none students/labstaff |
Квоты ZFS user и group имеют следующие функции:
При настройке в файловой системе квота user или group, установленная в родительской файловой системе, не наследуется автоматически дочерней файловой системой.
Однако квота user или group применяется при создании клона или снимка файловой системы, имеющий квоту user или group. Таким же образом квота user или group включается в файловую систему при создании потока с помощью команды zfs send даже без параметра -R.
Пользователи без соответствующих прав имеют доступ только к их собственному дисковому пространству. Пользователь типа root или пользователь, получивший права userused или groupused, может иметь доступ к информации о пространстве для учетных записей любого пользователя или группы.
Свойства userquota и groupquota невозможно настроить для томов ZFS, в файловой системе версии ниже 4 или в пуле версии ниже 15.
Применение квот user или group может быть выполнено с задержкой в несколько секунд. Эта задержка означает, что, возможно, пользователи превысили свою квоту до того как система обнаружила это превышение квоты и отклонила дополнительные попытки записи, открыв при этом сообщение об ошибке EDQUOT.
Для обзора квот пользователей в среде NFS может использоваться старая команда quota, например там, где смонтирована файловая система ZFS. Без указания параметров при выполнении команды quota выходные данные отображаются только в том случае, если превышена квота пользователя. Пример:
# zfs set userquota@student1=10m students/compsci # zfs userspace students/compsci TYPE NAME USED QUOTA POSIX User root 227M none POSIX User student1 455M 10M # quota student1 Block limit reached on /students/compsci |
В случае сброса квоты, и если ограничение квоты более не превышается, для обзора квоты пользователя требуется использовать команду quota -v. Пример:
# zfs set userquota@student1=10GB students/compsci # zfs userspace students/compsci TYPE NAME USED QUOTA POSIX User root 227M none POSIX User student1 455M 10G # quota student1 # quota -v student1 Disk quotas for student1 (uid 201): Filesystem usage quota limit timeleft files quota limit timeleft /students/compsci 466029 10485760 10485760 |