Expanding a replicated volume

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi all,

I'm doing a test setup where I have a 1-brick volume setup that I want to "online expand" into a 2-brick replicated volume setup. It's pretty hard to find information on this online; usually, only distributed volume setups are discussed.

I'm using two machines for testing: mallorca and hawaii. They have been added into each other's trusted pools.

First, I create a 1-brick volume on Mallorca:

# mkdir -p /local/glustertest/stor1 /stor1
# gluster volume create stor1 mallorca:/local/glustertest/stor1
# gluster volume start stor1
# mount -t glusterfs mallorca:/stor1 /stor1
# echo "This is file A" >/stor1/fileA.txt
# echo "This is file B" >/stor1/fileB.txt
# dd if=/dev/zero of=/stor1/largefile.img bs=1M count=100

So now /stor1 and /local/glustertest/stor1 contain these files.

Then, I expand the volume to a 2-brick replicated volume setup:

# mkdir -p /local/glustertest/stor1 /stor1
# gluster volume add-brick stor1 replica 2 hawaii:/local/glustertest/stor1
# mount -t glusterfs hawaii:/stor1 /stor1

At this point, /local/glustertest/stor1 is still filled on mallorca, and empty on hawaii (except for .glusterfs). Here is the actual question: how do I sync the contents of the two?

I tried:
* 'volume sync', but it's only for syncing of volume info between peers, not volume contents
* 'volume rebalance', but it's only for Distribute volumes
* 'volume heal stor1 full', which finishes succesfully but didn't move anything
* 'volume replace-brick', which I found online used to move some contents, but now only supports switching the actual brick pointer with 'commit force'
* listing actual file names on Hawaii.

The last one is the only one that had some effect: after listing /stor1/fileA.txt on Hawaii, the file appeared in /stor1 and /local/glustertest/stor1. The other files are still missing. So, a potential fix could be to get a list of all filenames from Mallorca and `ls` them all so they are synced. But this seems like a silly solution. There's two other viable solutions I could come up with:

* Stopping the volume, rsyncing the contents, adding the brick, starting the volume. But that's offline (and it feels wrong to be poking around inside Gluster's brick directory).
* Removing the volume, moving the brick directory, recreating the volume with 2 replicas, and moving the old contents of the brick directory back onto the new mount.

At some point, suddenly all files did appear on Hawaii, probably because of the self-heal daemon. Is there some way to trigger the daemon to walk over all files? Why didn't the explicit full self-heal do this?

Thanks,
Sjors
_______________________________________________
Gluster-users mailing list
Gluster-users@xxxxxxxxxxx
http://www.gluster.org/mailman/listinfo/gluster-users

[Index of Archives]     [Gluster Development]     [Linux Filesytems Development]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux