[Gluster-users] Any workarounds for creating a non-empty replicated volume
Andreas Hollaus
andreas.hollaus at ericsson.com
Fri Apr 3 08:32:48 UTC 2015
Hi,
I understand that the proper way to create a GlusterFS volume is to use
bricks that consists of empty directories. Are there no workarounds for
this, so that a non-empty directory could be transformed into a
replicated brick?
I have seen that when there are existing files in the directory before
the volume is created, those files will be treated by GlusterFS when
more data is written. For instance:
1. A file which exists on both replicated bricks will get additional
data whenever written using the volume path.
2. A file which exists on only on of the bricks will be copied to the
other brick and get additional data whenever more data is written using
the volume path.
3 A file which exists on both replicated volumes, but with different
contents, will get additional data whenever written using the volume
path. However, the original differences will remain so the files are not
properly synchronized.
However, I have failed to synchronize these files using stat. I have to
write to the files to achieve these results. Could this or any other
circumstance be used to create a replicated volume in a preoccupied
directory?
Have there been any ideas to support such cases? I guess it wouldn't be
impossible to detect this as those files that already exists in the
directory lack the extended file attributes that are used to determine
if the file is in sync. Whenever those attributes doesn't exist, the
file could be copied to the other bricks (the favourite child option
could be used to state which brick to trust). Maybe this is not the way
GlusterFS is intended to work, but I guess it could have been
implemented like that, right?
The reason I ask these (rather stupid) questions is that I am really
worried about performance when we create our volume and have to move all
files to the new directory.
Regards
Andreas
More information about the Gluster-users
mailing list