[Gluster-devel] Quota problems with dispersed volumes

Raghavendra Gowdappa rgowdapp at redhat.com
Wed Oct 29 15:00:33 UTC 2014



----- Original Message -----
> From: "Xavier Hernandez" <xhernandez at datalab.es>
> To: "Raghavendra Gowdappa" <rgowdapp at redhat.com>
> Cc: "Gluster Devel" <gluster-devel at gluster.org>
> Sent: Wednesday, October 29, 2014 6:24:55 PM
> Subject: Re: [Gluster-devel] Quota problems with dispersed volumes
> 
> On 10/28/2014 02:05 PM, Xavier Hernandez wrote:
> > On 10/28/2014 04:30 AM, Raghavendra Gowdappa wrote:
> >>
> >> We use extended attribute with key "trusted.glusterfs.quota.size" to
> >> get the size of a directory/file. The value for this key is probed in
> >> lookup and getxattr calls. You can implement logic to handle this key
> >> appropriately in disperse xlator to give a proper size to higher
> >> layers. In your existing implementation you might have been probably
> >> passing xattrs from one of the bricks and hence seeing size from only
> >> one brick.
> >
> > I think this patch fixes the problem:
> >
> >      http://review.gluster.org/8990
> >
> 
> It seems that there are some other xattrs visible from client side. I've
> identified 'trusted.glusterfs.quota.*.contri'. Are there any other
> xattrs that I should handle on the client side ?

this is an internal xattr which only marker (disk usage accounting xlator) uses. The applications running on glusterfs shouldn't be seeing this. If you are seeing this xattr from mount, we should filter this xattr from being listed (at fuse-bridge and gfapi).

> 
> It seems that there's also a 'trusted.glusterfs.quota.dirty'

This is again an internal xattr. You should not worry about handling this. This also needs to be filtered from being displayed to application.

> and
> 'trusted.glusterfs.quota.limit-set'.

This should be visible from mount point, as this xattr holds the value of quota limit set on that inode. You can handle this in disperse xlator by picking the value from any of its children.

> 
> How I should handle visible xattrs in ec xlator if they have different
> values in each brick ?
> 
> trusted.glusterfs.quota.size is handled by choosing the maximum value.

This depends on how ec is handling the files/directories and the meaning of xattr. For eg., trusted.glusterfs.quota.size represents the size of the file/directory. When read from brick, the value will be the size of directory on that brick. When read from a cluster translator like dht, it will be the size of that directory across the whole cluster. So, in dht we add up the values from all bricks and set the sum as the value. However, in case of replicate/afr, we just pick the value from any of the subvolume.

> 
> Thanks,
> 
> Xavi
> 


More information about the Gluster-devel mailing list