У меня есть пользователь, который согласно 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) не нужно.