Hi,
after waiting a really long time (nearly two days) for a heal and a rebalance to finish we are left with the following situation: - the heal did get rid of some of the empty sticky bit files outside of .glusterfs dir (on the root of each brick), but not all - the duplicates are still there also after doing a rebalance (and rebalance fix-layout) Our cluster is: Type: Distributed-Replicate (over three nodes) Number of Bricks: 21 x 2 = 42 (replication set to 2) Transport-type: tcp Let's take one file (3009f448-cf6e-413f-baec-c3b9f0cf9d72.vhd) as an example... On the 3 nodes where all bricks are formatted as XFS and mounted in /export and 272b2366-dfbf-ad47-2a0f-5d5cc40863e3 is the mounting point of a NFS shared storage connection from XenServer machines: [root@gluster01 ~]# find /export/*/272b2366-dfbf-ad47-2a0f-5d5cc40863e3/ -name '300*' -exec ls -la {} \; -rw-r--r--. 2 root root 44332659200 Feb 17 23:55 /export/brick13gfs01/272b2366-dfbf-ad47-2a0f-5d5cc40863e3/3009f448-cf6e-413f-baec-c3b9f0cf9d72.vhd -rw-r--r--. 2 root root 0 Feb 18 00:51 /export/brick14gfs01/272b2366-dfbf-ad47-2a0f-5d5cc40863e3/3009f448-cf6e-413f-baec-c3b9f0cf9d72.vhd root@gluster02 ~]# find /export/*/272b2366-dfbf-ad47-2a0f-5d5cc40863e3/ -name '300*' -exec ls -la {} \; -rw-r--r--. 2 root root 44332659200 Feb 17 23:55 /export/brick13gfs02/272b2366-dfbf-ad47-2a0f-5d5cc40863e3/3009f448-cf6e-413f-baec-c3b9f0cf9d72.vhd [root@gluster03 ~]# find /export/*/272b2366-dfbf-ad47-2a0f-5d5cc40863e3/ -name '300*' -exec ls -la {} \; -rw-r--r--. 2 root root 44332659200 Feb 17 23:55 /export/brick13gfs03/272b2366-dfbf-ad47-2a0f-5d5cc40863e3/3009f448-cf6e-413f-baec-c3b9f0cf9d72.vhd -rw-r--r--. 2 root root 0 Feb 18 00:51 /export/brick14gfs03/272b2366-dfbf-ad47-2a0f-5d5cc40863e3/3009f448-cf6e-413f-baec-c3b9f0cf9d72.vhd 3 files with information, 2 x a 0-bit file with the same name Checking the 0-bit files: [root@gluster01 ~]# getfattr -m . -d -e hex /export/brick14gfs01/272b2366-dfbf-ad47-2a0f-5d5cc40863e3/3009f448-cf6e-413f-baec-c3b9f0cf9d72.vhd getfattr: Removing leading '/' from absolute path names # file: export/brick14gfs01/272b2366-dfbf-ad47-2a0f-5d5cc40863e3/3009f448-cf6e-413f-baec-c3b9f0cf9d72.vhd security.selinux=0x73797374656d5f753a6f626a6563745f723a66696c655f743a733000 trusted.afr.dirty=0x000000000000000000000000 trusted.afr.sr_vol01-client-34=0x000000000000000000000000 trusted.afr.sr_vol01-client-35=0x000000000000000000000000 trusted.gfid=0xaefd184508414a8f8408f1ab8aa7a417 [root@gluster03 ~]# getfattr -m . -d -e hex /export/brick14gfs03/272b2366-dfbf-ad47-2a0f-5d5cc40863e3/3009f448-cf6e-413f-baec-c3b9f0cf9d72.vhd getfattr: Removing leading '/' from absolute path names # file: export/brick14gfs03/272b2366-dfbf-ad47-2a0f-5d5cc40863e3/3009f448-cf6e-413f-baec-c3b9f0cf9d72.vhd security.selinux=0x73797374656d5f753a6f626a6563745f723a66696c655f743a733000 trusted.afr.dirty=0x000000000000000000000000 trusted.afr.sr_vol01-client-34=0x000000000000000000000000 trusted.afr.sr_vol01-client-35=0x000000000000000000000000 trusted.gfid=0xaefd184508414a8f8408f1ab8aa7a417 This is not a glusterfs link file since there is no "trusted.glusterfs.dht.linkto", am I correct? And checking the "good" files: # file: export/brick13gfs01/272b2366-dfbf-ad47-2a0f-5d5cc40863e3/3009f448-cf6e-413f-baec-c3b9f0cf9d72.vhd security.selinux=0x756e636f6e66696e65645f753a6f626a6563745f723a66696c655f743a733000 trusted.afr.dirty=0x000000000000000000000000 trusted.afr.sr_vol01-client-32=0x000000000000000000000000 trusted.afr.sr_vol01-client-33=0x000000000000000000000000 trusted.afr.sr_vol01-client-34=0x000000000000000000000000 trusted.afr.sr_vol01-client-35=0x000000010000000100000000 trusted.gfid=0xaefd184508414a8f8408f1ab8aa7a417 [root@gluster02 ~]# getfattr -m . -d -e hex /export/brick13gfs02/272b2366-dfbf-ad47-2a0f-5d5cc40863e3/3009f448-cf6e-413f-baec-c3b9f0cf9d72.vhd getfattr: Removing leading '/' from absolute path names # file: export/brick13gfs02/272b2366-dfbf-ad47-2a0f-5d5cc40863e3/3009f448-cf6e-413f-baec-c3b9f0cf9d72.vhd security.selinux=0x73797374656d5f753a6f626a6563745f723a66696c655f743a733000 trusted.afr.dirty=0x000000000000000000000000 trusted.afr.sr_vol01-client-32=0x000000000000000000000000 trusted.afr.sr_vol01-client-33=0x000000000000000000000000 trusted.gfid=0xaefd184508414a8f8408f1ab8aa7a417 [root@gluster03 ~]# getfattr -m . -d -e hex /export/brick13gfs03/272b2366-dfbf-ad47-2a0f-5d5cc40863e3/3009f448-cf6e-413f-baec-c3b9f0cf9d72.vhd getfattr: Removing leading '/' from absolute path names # file: export/brick13gfs03/272b2366-dfbf-ad47-2a0f-5d5cc40863e3/3009f448-cf6e-413f-baec-c3b9f0cf9d72.vhd security.selinux=0x73797374656d5f753a6f626a6563745f723a66696c655f743a733000 trusted.afr.dirty=0x000000000000000000000000 trusted.afr.sr_vol01-client-40=0x000000000000000000000000 trusted.afr.sr_vol01-client-41=0x000000000000000000000000 trusted.gfid=0xaefd184508414a8f8408f1ab8aa7a417 Seen from a client via a glusterfs mount: [root@client ~]# ls -al /mnt/glusterfs/272b2366-dfbf-ad47-2a0f-5d5cc40863e3/300* -rw-r--r--. 1 root root 0 Feb 18 00:51 /mnt/glusterfs/272b2366-dfbf-ad47-2a0f-5d5cc40863e3/3009f448-cf6e-413f-baec-c3b9f0cf9d72.vhd -rw-r--r--. 1 root root 0 Feb 18 00:51 /mnt/glusterfs/272b2366-dfbf-ad47-2a0f-5d5cc40863e3/3009f448-cf6e-413f-baec-c3b9f0cf9d72.vhd -rw-r--r--. 1 root root 0 Feb 18 00:51 /mnt/glusterfs/272b2366-dfbf-ad47-2a0f-5d5cc40863e3/3009f448-cf6e-413f-baec-c3b9f0cf9d72.vhd Via NFS (just after performing a umount and mount the volume again): [root@client ~]# ls -al /mnt/nfs/272b2366-dfbf-ad47-2a0f-5d5cc40863e3/300* -rw-r--r--. 1 root root 44332659200 Feb 17 23:55 /mnt/test/272b2366-dfbf-ad47-2a0f-5d5cc40863e3/3009f448-cf6e-413f-baec-c3b9f0cf9d72.vhd -rw-r--r--. 1 root root 44332659200 Feb 17 23:55 /mnt/test/272b2366-dfbf-ad47-2a0f-5d5cc40863e3/3009f448-cf6e-413f-baec-c3b9f0cf9d72.vhd -rw-r--r--. 1 root root 44332659200 Feb 17 23:55 /mnt/test/272b2366-dfbf-ad47-2a0f-5d5cc40863e3/3009f448-cf6e-413f-baec-c3b9f0cf9d72.vhd Doing the same list a couple of seconds later: [root@client ~]# ls -al /mnt/nfs/272b2366-dfbf-ad47-2a0f-5d5cc40863e3/300* -rw-r--r--. 1 root root 0 Feb 18 00:51 /mnt/test/272b2366-dfbf-ad47-2a0f-5d5cc40863e3/3009f448-cf6e-413f-baec-c3b9f0cf9d72.vhd -rw-r--r--. 1 root root 0 Feb 18 00:51 /mnt/test/272b2366-dfbf-ad47-2a0f-5d5cc40863e3/3009f448-cf6e-413f-baec-c3b9f0cf9d72.vhd -rw-r--r--. 1 root root 0 Feb 18 00:51 /mnt/test/272b2366-dfbf-ad47-2a0f-5d5cc40863e3/3009f448-cf6e-413f-baec-c3b9f0cf9d72.vhd And again, and again, and again: [root@client ~]# ls -al /mnt/nfs/272b2366-dfbf-ad47-2a0f-5d5cc40863e3/300* -rw-r--r--. 1 root root 0 Feb 18 00:51 /mnt/test/272b2366-dfbf-ad47-2a0f-5d5cc40863e3/3009f448-cf6e-413f-baec-c3b9f0cf9d72.vhd -rw-r--r--. 1 root root 0 Feb 18 00:51 /mnt/test/272b2366-dfbf-ad47-2a0f-5d5cc40863e3/3009f448-cf6e-413f-baec-c3b9f0cf9d72.vhd -rw-r--r--. 1 root root 0 Feb 18 00:51 /mnt/test/272b2366-dfbf-ad47-2a0f-5d5cc40863e3/3009f448-cf6e-413f-baec-c3b9f0cf9d72.vhd This really seems odd. Why do we get to see "real data file" once only? It seems more and more that this crazy file duplication (and writing of sticky bit files) was actually triggered when rebooting one of the three nodes while there still is an active (even when there is no data exchange at all) NFS connection, since all 0-bit files (of the non Sticky bit type) were either created at 00:51 or 00:41, the exact moment one of the three nodes in the cluster were rebooted. This would mean that replication currently with GlusterFS creates hardly any redundancy. Quiet the opposite, if one of the machines goes down, all of your data seriously gets disorganised. I am buzzy configuring a test installation to see how this can be best reproduced for a bug report.. Does anyone have a suggestion how to best get rid of the duplicates, or rather get this mess organised the way it should be? This is a cluster with millions of files. A rebalance does not fix the issue, neither does a rebalance fix-layout help. Since this is a replicated volume all files should be their 2x, not 3x. Can I safely just remove all the 0 bit files outside of the .glusterfs directory including the sticky bit files? The empty 0 bit files outside of .glusterfs on every brick I can probably safely removed like this: find /export/* -path */.glusterfs -prune -o -type f -size 0 -perm 1000 -exec rm {} \; not? Thanks! Cheers, Olav On 18/02/15 22:10, Olav Peeters wrote:
|
_______________________________________________ Gluster-users mailing list Gluster-users@xxxxxxxxxxx http://www.gluster.org/mailman/listinfo/gluster-users