[Gluster-users] Manual rsync before self-heal to prevent repaired server hanging

Dan Bretherton d.a.bretherton at reading.ac.uk
Fri Oct 7 11:15:56 UTC 2011

Hello All,
I have replicated-distributed volumes (created with the CLI) spread over 
several servers.  One of the servers in the cluster has been down for 
two weeks due to hardware problems and I am now ready to put it back 
into service.  The problem is that the files on it are now very 
different to the files on its GlusterFS replica; a lot of data has been 
added to the GlusterFS volumes in the past two weeks, and several users 
have deleted or modified a lot of files as well.  Therefore, I am 
wondering if it would be better to manually synchronise the files on the 
off-line server with the files on the live server before attempting a 
GlusterFS self heal on the volumes.  I know how to synchronise xattrs 
using rsync, but I would like to find out if this procedure is safe 
before going ahead.  My main worry is that GlusterFS replication might 
rely on there being differences between the xattrs on replicated pairs 
in normal operation, and that making the xattrs the same would break 
replication.  Can anyone tell me if it is safe to manually rsync a pair 
of replicated servers while one of them is off line?

There is another side to this story that may or may not be relevant.  
The hardware vendor doesn't think there is anything wrong with the 
server that keeps hanging.  Instead, they think that GlusterFS causes 
the server to hang when a lot of file synchronisation by GlusterFS self 
healing is going on.  I'm not sure whether or not to believe this, but 
the suspicion has come about because the server hangs every time it 
comes back into service following the replacement of a piece of hardware 
(and there is not much left of the original server inside now).  The 
live (and supposedly non-faulty) server has also hung on a few occasions 
during a large GlusterFS self heal operation (ie. one involving a lot of 
files), and the vendor is understandably unhappy about the prospect of 
taking that one apart as well.  Both servers produce ext4 related kernel 
errors just before they hang.  They have both been upgraded to CentOS 
5.7 since the trouble began, and GlusterFS on all servers has been 
upgraded from 3.2.3 to 3.2.4.  The vendor suggested manually 
synchronising the two servers with rsync before starting glusterd on the 
server that has been repaired.  I have been trying to break the server 
with rsync and various stress testing utilities without success for the 
past couple of days, so the vendor's view is that rsync is safe, but a 
large amount of continuous GlusterFS file synchronisation is not.  I 
would be happy to use the rsync approach if it keeps the servers 
running, as long as it doesn't ruin my xattrs.

Any comments or suggestions would be much appreciated.
Dan Bretherton.

More information about the Gluster-users mailing list