[Gluster-users] Replication does not replicate the reference node

Vikas Gorur vikas at gluster.com
Fri Nov 6 09:48:08 UTC 2009


Krzysztof Strasburger wrote:
> volume replicated
>  type cluster/replicate
>  subvolumes sub1 sub2
> end-volume
>
> and on host2:
>
> volume replicated
>  type cluster/replicate
>  subvolumes sub2 sub1
> end-volume
>
> then following (positive) side-effects should occur:
> 1. After a crash, ls -R would correctly self-heal the volume either on host1
>    or on host2 (on this one, which has the newer sobvolume as the first
>    on the list).
> 2. This is probably almost invisible, but the directory-read workload should
>    be more equally distributed between sub1 and sub2.
> Is this the right workaround.
>   

This is not a workaround. Shuffling the order of subvolumes can have 
disastrous consequences.
Replicate uses the first subvolume as the lock server, and if you 
shuffle the order
the two clients will use different subvolumes as lock servers. This can 
cause data to be inconsistent.

We plan to fix this known issue, however, in one of the 3.x releases. If 
you need a workaround,
the correct thing to do is generate a list of all files from the second 
subvolume like this:

[root at backend2] # find /export/directory/ > filelist.txt

Then trigger self heal on all the files from the mountpoint:

[root at mountpoint] # cat filelist.txt | xargs stat

This will recreate all the files.

Vikas



More information about the Gluster-users mailing list