Hide Forgot
Description of problem: directory limits are getting crossed and hence the volume level as well, Version-Release number of selected component (if applicable): 3.3.0qa26 How reproducible: always Steps to Reproduce: 1. create a distribute-replicate volume 2. put volume and directory level limits 3. create data inside the directories Actual results: the directory limits are getting crossed Expected results: the limits should be respected Additional info: [root@RHEL6 ~]# gluster volume quota quota_dist_rep list path limit_set size ---------------------------------------------------------------------------------- / 2MB 3.2MB /d0 200KB 1.6MB /d1 200KB 1.6MB [root@RHEL6 ~]# extended attribute information, [root@RHSSA1 ~]# getfattr -m . -d -e hex /export-xfs/quota_dist_rep.1331200944 getfattr: Removing leading '/' from absolute path names # file: export-xfs/quota_dist_rep.1331200944 security.selinux=0x756e636f6e66696e65645f753a6f626a6563745f723a66696c655f743a733000 trusted.gfid=0x00000000000000000000000000000001 trusted.glusterfs.dht=0x0000000100000000000000007ffffffe trusted.glusterfs.quota.dirty=0x3000 trusted.glusterfs.quota.size=0x00000000001dc000 trusted.glusterfs.volume-id=0x95253ee63b924adf9f0ec9cf0b9b7b5e [root@RHSSA1 ~]# getfattr -m . -d -e hex /export-xfs/quota_dist_rep.1331200944/d0 getfattr: Removing leading '/' from absolute path names # file: export-xfs/quota_dist_rep.1331200944/d0 security.selinux=0x756e636f6e66696e65645f753a6f626a6563745f723a66696c655f743a733000 trusted.gfid=0xb3f6a3f3e1384fff8cdb8373edbe9405 trusted.glusterfs.dht=0x0000000100000000000000007ffffffe trusted.glusterfs.quota.00000000-0000-0000-0000-000000000001.contri=0x00000000000ee000 trusted.glusterfs.quota.dirty=0x3000 trusted.glusterfs.quota.size=0x00000000000ee000 [root@RHSSA1 ~]# [root@RHSSA1 ~]# [root@RHSSA1 ~]# [root@RHSSA1 ~]# getfattr -m . -d -e hex /export-xfs/quota_dist_rep.1331200944/d1 getfattr: Removing leading '/' from absolute path names # file: export-xfs/quota_dist_rep.1331200944/d1 security.selinux=0x756e636f6e66696e65645f753a6f626a6563745f723a66696c655f743a733000 trusted.gfid=0x0206ff9dae4a4f148977c8db8feff66b trusted.glusterfs.dht=0x0000000100000000000000007ffffffe trusted.glusterfs.quota.00000000-0000-0000-0000-000000000001.contri=0x00000000000ee000 trusted.glusterfs.quota.dirty=0x3000 trusted.glusterfs.quota.size=0x00000000000ee000 [root@RHSSA1 ~]# [root@RHSSA1 ~]# getfattr -m . -d -e hex /export-xfs/quota_dist_rep.133120097 getfattr: /export-xfs/quota_dist_rep.133120097: No such file or directory [root@RHSSA1 ~]# getfattr -m . -d -e hex /export-xfs/quota_dist_rep.1331200947 getfattr: Removing leading '/' from absolute path names # file: export-xfs/quota_dist_rep.1331200947 security.selinux=0x756e636f6e66696e65645f753a6f626a6563745f723a66696c655f743a733000 trusted.gfid=0x00000000000000000000000000000001 trusted.glusterfs.dht=0x00000001000000007fffffffffffffff trusted.glusterfs.quota.dirty=0x3000 trusted.glusterfs.quota.size=0x0000000000154000 trusted.glusterfs.volume-id=0x95253ee63b924adf9f0ec9cf0b9b7b5e [root@RHSSA1 ~]# ^M : command not found [root@RHSSA1 ~]# getfattr -m . -d -e hex /export-xfs/quota_dist_rep.1331200947/d0 getfattr: Removing leading '/' from absolute path names # file: export-xfs/quota_dist_rep.1331200947/d0 security.selinux=0x756e636f6e66696e65645f753a6f626a6563745f723a66696c655f743a733000 trusted.gfid=0xb3f6a3f3e1384fff8cdb8373edbe9405 trusted.glusterfs.dht=0x00000001000000007fffffffffffffff trusted.glusterfs.quota.00000000-0000-0000-0000-000000000001.contri=0x00000000000aa000 trusted.glusterfs.quota.dirty=0x3000 trusted.glusterfs.quota.size=0x00000000000aa000 [root@RHSSA1 ~]# getfattr -m . -d -e hex /export-xfs/quota_dist_rep.1331200947/d1 getfattr: Removing leading '/' from absolute path names # file: export-xfs/quota_dist_rep.1331200947/d1 security.selinux=0x756e636f6e66696e65645f753a6f626a6563745f723a66696c655f743a733000 trusted.gfid=0x0206ff9dae4a4f148977c8db8feff66b trusted.glusterfs.dht=0x00000001000000007fffffffffffffff trusted.glusterfs.quota.00000000-0000-0000-0000-000000000001.contri=0x00000000000aa000 trusted.glusterfs.quota.dirty=0x3000 trusted.glusterfs.quota.size=0x00000000000aa000 [root@RHSSA1 ~]#
same is the case for nested directories
Saurabh, Can you run the tests with "performance.write-behind off" on client and with io-threads commented out on server side? I ran the tests with these two translators off and observed no overshooting of quota. If this is the same case with your setup, mark this as a known issue which is happening because of quota updation delay on bricks. Updation is a background process, with write-behind and io-threads, there can be many writes that happen in parallel within the updation window. The size by which quota is overshoot should be equal to the size of writes that happen in the updation window. regards, Raghavendra.
Raghavendra, I disables write-behind and io-threads and the directory limits were not crossed. Infact the "mv" of files from one directory to another one happened within the limits set earlier. so, according to me this should either be documented or fixed as without setting write-behind and io-threads the limits are crossed by a large number.