web-dev-qa-db-ja.com

LinuxでのZFSのクォータ使用量はどのように機能しますか?

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
6
84104

最初のケースでは、user1の一部のファイルは、それらの上にマウントされているいくつかのfsによって隠されているため、find(1)で検出できない可能性がありますか?

2番目のケースでは、zfs1マウントポイントの下のどこかに何かがマウントされており、それをスペース計算に含​​めていますか?

ちなみに、

zfs get -H -o value mountpoint zpool/zfs1

マウントポイントのみを出力するため、cut(1)は必要ありません。

2
András Korn