Thanks, Varun.
Hi Everyone,
As gluster quota was facing some issues in its
functionality, its required to make it fool-proof, robust
and reliable. So, below are the some of the major problems
we are facing and the modifications to overcome the same.
Current implementation
* Client side implementation of quota
- Not secure
- Increased traffic in updating the ctx
- Relying on xattrs updation through lookup calls
* Problem with NFS mount
- lack of lookups (handling through 'file handles')
So, the new design is proposed,
* Two level of quota implementation soft and hard quota,
similar to the XFS's quota, is introduced.
A message is logged on reaching soft quota and no more
writes allowed after hard limit.
* Quota is moved to server-side.
Server side implementation removes the client
dependability for specific calls and secures the quota from
mounting with modified volfile.
To get the cluster view,
A trusted quota client process will be spawned,
on set of random 'n' bricks, containing only the cluster
xlators, to aggregate the size on all the bricks of the
volume. By querying for getxattrs on the directories, for a
fixed time interval (say t secs), it updates the context of
the quota xlator in server graph, by sending the setxattr
with a key in dict. The t depends on lists, in the
descending order for, 1. below soft limit 2. above soft
limit; AND it is tunable.
Thus in the current implementation we'll have 2 quota
xlators: one in server graph, and one in trusted client of
which the sole purpose will be to aggregate the quota xattrs
on all the bricks and send the same to server quota xlator.
So, please share your opinion/suggestion/concerns about the
above draft.
Thanks-to: Vijay, Amar, Raghavendra & Junaid.
Regards
Varun Shastry
_______________________________________________
Gluster-devel mailing list
Gluster-devel@xxxxxxxxxx
https://lists.nongnu.org/mailman/listinfo/gluster-devel