Add support for user/group dnode accounting & quota

This patch tracks dnode usage for each user/group in the
DMU_USER/GROUPUSED_OBJECT ZAPs. ZAP entries dedicated to dnode
accounting have the key prefixed with "obj-" followed by the UID/GID
in string format (as done for the block accounting).
A new SPA feature has been added for dnode accounting as well as
a new ZPL version. The SPA feature must be enabled in the pool
before upgrading the zfs filesystem. During the zfs version upgrade,
a "quotacheck" will be executed by marking all dnode as dirty.

ZoL-bug-id: https://github.com/zfsonlinux/zfs/issues/3500

Signed-off-by: Jinshan Xiong <jinshan.xiong@intel.com>
Signed-off-by: Johann Lombardi <johann.lombardi@intel.com>
This commit is contained in:
Jinshan Xiong
2016-10-04 11:46:10 -07:00
committed by Brian Behlendorf
parent af322debaa
commit 1de321e626
43 changed files with 1119 additions and 98 deletions
+26
View File
@@ -563,5 +563,31 @@ Booting off of pools using \fBedonr\fR is \fBNOT\fR supported
-- any attempt to enable \fBedonr\fR on a root pool will fail with an
error.
.sp
.ne 2
.na
\fB\fBuserobj_accounting\fR\fR
.ad
.RS 4n
.TS
l l .
GUID org.zfsonlinux:userobj_accounting
READ\-ONLY COMPATIBLE yes
DEPENDENCIES extensible_dataset
.TE
This feature allows administrators to account the object usage information
by user and group.
This feature becomes \fBactive\fR as soon as it is enabled and will never
return to being \fBenabled\fR. Each filesystem will be upgraded automatically
when remounted, or when new files are created under that filesystem.
The upgrade can also be started manually on filesystems by running
`zfs set version=current <pool/fs>`. The upgrade process runs in the background
and may take a while to complete for filesystems containing a large number of
files.
.RE
.SH "SEE ALSO"
\fBzpool\fR(8)