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

Как работает использование квоты для ZFS в Linux?

У меня есть пользователь, который согласно ZFS находится в своей квоте. Однако я не могу понять, как они используют все свое пространство. Эта файловая система не имеет дочерних файловых систем и, согласно справочной странице the userquota space calculation does not include space that is used by descendent datasets, such as snapshots and clones. Почему zfs и find & du так сильно расходятся?

# zfs get -H userquota@user1 zpool/zfs1 && zfs get -H userused@user1 zppol/zfs1
zpool/zfs1  userquota@user1  20G              local
zpool/zfs1  userused@user1  20.0G           local

# find $(zfs get -H -o value mountpoint zpool/zfs1) -user user1 -print0 | du -hc --files0-from=- | tail -n 1
5.9G    total

Вдобавок у меня есть еще один пользователь с, казалось бы, противоположной проблемой.

# zfs get -H userquota@user2 zpool/zfs1 && zfs get -H userused@user2 zpool/zfs1
zpool/zfs1  userquota@user2 50G local
zpool/zfs1  userused@user2  14.9G   local
# find $(zfs get -H -o value mountpoint zpool/zfs1) -user user2 -print0 | du -hc --files0-from=- | tail -n 1
81G total

В первом случае, возможно, некоторые файлы пользователя user1 не могут быть обнаружены с помощью find (1), потому что они скрыты некоторыми fs, установленными поверх них?

Во втором случае, может быть, что-то смонтировано где-то под точкой монтирования zfs1, и вы включаете это в расчет места?

Кстати,

zfs get -H -o value mountpoint zpool/zfs1

напечатает только точку монтирования, поэтому вырезать (1) не нужно.