Search code examples
glusterfs

gluster reduce a 2 x 2 node volume to a 1 x 2 node volume


I have a simple gluster setup where 4 servers each have 1 brick. I'd like to take two servers out of action and simply have 2 servers with replicated data.

I've tried gluster volume remove-brick gv0 machine1:/export/brick1 machine2:/export/brick1

however I get the error volume remove-brick commit force: failed: Bricks not from same subvol for replica

How do I go about this?

FYI gluster volume info gv0

Volume Name: gv0 Type: Distributed-Replicate Volume ID: 75a37568-67e7-4bf9-8b74-fabfa8487e97 Status: Started Number of Bricks: 2 x 2 = 4 Transport-type: tcp Bricks: Brick1: machine3:/export/brick1 Brick2: machine2:/export/brick1 Brick3: machine1:/export/brick1 Brick4: machine4:/export/brick1

Thanks


Solution

  • While removing/adding the gluster brick you should provide the correct replica number within the remove/add command, ie, while adding new brick provide replica number as N+1 , ie, N is the number of bricks that exists, and while removing replica number will be N-1. Then it'll work.

    here, we have 4 number of bricks, and from that we are going to remove 2, so new replica number will be 4-2=2. and provide 'force' option at the end.

    gluster volume remove-brick gv0 replica 2 machine1:/export/brick1 machine2:/export/brick1 force

    or as two seperate commands.

    gluster volume remove-brick gv0 replica 3 machine1:/export/brick1 force

    gluster volume remove-brick gv0 replica 2 machine2:/export/brick1 force