[Lustre-devel] Moving forward on Quotas
Matthew Ahrens
Matthew.Ahrens at sun.com
Mon Jun 2 17:50:49 PDT 2008
Nikita Danilov wrote:
> Jeff Bonwick writes:
> > I'd suggest working with Matt Ahrens on this.
>
> Hello,
>
> we were discussing recently what is needed from the DMU to implement quotas
> and other forms of space accounting. Our basic premise is that it is desirable
> to keep DMU part of the quota support at minimum, and to implement only
> mechanism here, leaving policy to the upper layers.
I agree with this premise. However, your proposed implementation (especially
the asynchronous update mechanism and associated pending file) seems
unnecessarily complicated.
I would suggest that we simply update a "database" (eg. ZAP object or sparse
array) of userid -> space usage from syncing context when the space is
allocated/freed (ie, dsl_dataset_block_{born,kill}). I believe that the
problems this presents[*] will be more tractable than the method you outlined.
--matt
[*] eg, if the DB object is stored in the user's objset, then updating it in
syncing context may be problematic. if it is stored in the MOS, carrying it
along when doing snapshot operations will be painful (snapshot, clone, send,
recv, rollback, etc).
More information about the lustre-devel
mailing list