The software described in this documentation is either no longer supported or is in extended support.
Oracle recommends that you upgrade to a current supported release.
You can decrease the number of bricks in a volume. This may be useful if a node in the Gluster pool encounters a hardware or network fault.
When shrinking distributed replicated and distributed dispersed
volumes, you need to remove a number of bricks that is a
multiple of the replica
or
stripe
count. For example, to shrink a
distributed replicate volume with a replica
count of 2
, you need to remove bricks in
multiples of 2 (such as 4, 6, 8, and so on). The bricks you
remove must be from the same replica or disperse set.
To shrink a volume:
Remove the brick(s), for example:
#
gluster volume remove-brick
myvolume
node4:/data/glusterfs/myvolume/mybrick/brick
startThe
start
option automatically triggers a volume rebalance operation to migrate data from the removed brick(s) to other bricks in the volume.You can check the status of the brick removal using:
#
gluster volume remove-brick
myvolume
statusWhen the
brick-removal
status iscompleted
, commit the remove-brick operation. For example:#
gluster volume remove-brick
myvolume
commitYou are requested to confirm the operation. Enter
y
to confirm that you want to delete the brick(s).The data on the brick is migrated to other bricks in the pool. The data on the removed brick is no longer accessible at the Gluster mount point. Removing the brick removes the configuration information and not the data. You can continue to access the data directly from the brick if required.
Example 3.13 Removing a node from a distributed replicated volume
This example removes a node from a pool with four nodes. The
replica
count for this volume is
4
. As a node is removed, the
replica
count must be reduced to
3
. The start
option is
not needed in replicated volumes, instead, you should use the
force
option. The force
option means you do not need to check the
remove-brick
process status, or perform the
remove-brick
commit steps.
#gluster volume info
Volume Name: myvolume Type: Distributed-Replicate Volume ID: ... Status: Started Snapshot Count: 0 Number of Bricks: 4 x 4 = 16 Transport-type: tcp Bricks: Brick1: node1:/data/glusterfs/myvolume/mybrick/brick1 Brick2: node2:/data/glusterfs/myvolume/mybrick/brick1 Brick3: node3:/data/glusterfs/myvolume/mybrick/brick1 Brick4: node4:/data/glusterfs/myvolume/mybrick/brick1 Brick5: node1:/data/glusterfs/myvolume/mybrick/brick2 Brick6: node2:/data/glusterfs/myvolume/mybrick/brick2 Brick7: node3:/data/glusterfs/myvolume/mybrick/brick2 Brick8: node4:/data/glusterfs/myvolume/mybrick/brick2 Brick9: node1:/data/glusterfs/myvolume/mybrick/brick3 Brick10: node2:/data/glusterfs/myvolume/mybrick/brick3 Brick11: node3:/data/glusterfs/myvolume/mybrick/brick3 Brick12: node4:/data/glusterfs/myvolume/mybrick/brick3 Brick13: node1:/data/glusterfs/myvolume/mybrick/brick4 Brick14: node2:/data/glusterfs/myvolume/mybrick/brick4 Brick15: node3:/data/glusterfs/myvolume/mybrick/brick4 Brick16: node4:/data/glusterfs/myvolume/mybrick/brick4 Options Reconfigured: transport.address-family: inet nfs.disable: on performance.client-io-threads: off #gluster volume remove-brick myvolume replica 3 \ node4:/data/glusterfs/myvolume/mybrick/brick1 \ node4:/data/glusterfs/myvolume/mybrick/brick2 \ node4:/data/glusterfs/myvolume/mybrick/brick3 \ node4:/data/glusterfs/myvolume/mybrick/brick4 \ force
#gluster volume info
Volume Name: myvolume Type: Distributed-Replicate Volume ID: ... Status: Started Snapshot Count: 0 Number of Bricks: 4 x 3 = 12 Transport-type: tcp Bricks: Brick1: node1:/data/glusterfs/myvolume/mybrick/brick1 Brick2: node2:/data/glusterfs/myvolume/mybrick/brick1 Brick3: node3:/data/glusterfs/myvolume/mybrick/brick1 Brick4: node1:/data/glusterfs/myvolume/mybrick/brick2 Brick5: node2:/data/glusterfs/myvolume/mybrick/brick2 Brick6: node3:/data/glusterfs/myvolume/mybrick/brick2 Brick7: node1:/data/glusterfs/myvolume/mybrick/brick3 Brick8: node2:/data/glusterfs/myvolume/mybrick/brick3 Brick9: node3:/data/glusterfs/myvolume/mybrick/brick3 Brick10: node1:/data/glusterfs/myvolume/mybrick/brick4 Brick11: node2:/data/glusterfs/myvolume/mybrick/brick4 Brick12: node3:/data/glusterfs/myvolume/mybrick/brick4 Options Reconfigured: transport.address-family: inet nfs.disable: on performance.client-io-threads: off #gluster peer detach node4
peer detach: success #gluster peer status
Number of Peers: 2 Hostname: node2 Uuid: ... State: Peer in Cluster (Connected) Hostname: node3 Uuid: ... State: Peer in Cluster (Connected)
Example 3.14 Removing bricks from a distributed replicated volume
This example removes two bricks from a distributed replicated volume.
#gluster volume info
Volume Name: myvolume Type: Distributed-Replicate Volume ID: ... Status: Started Snapshot Count: 0 Number of Bricks: 4 x 3 = 12 Transport-type: tcp Bricks: Brick1: node1:/data/glusterfs/myvolume/mybrick/brick1 Brick2: node2:/data/glusterfs/myvolume/mybrick/brick1 Brick3: node3:/data/glusterfs/myvolume/mybrick/brick1 Brick4: node1:/data/glusterfs/myvolume/mybrick/brick2 Brick5: node2:/data/glusterfs/myvolume/mybrick/brick2 Brick6: node3:/data/glusterfs/myvolume/mybrick/brick2 Brick7: node1:/data/glusterfs/myvolume/mybrick/brick3 Brick8: node2:/data/glusterfs/myvolume/mybrick/brick3 Brick9: node3:/data/glusterfs/myvolume/mybrick/brick3 Brick10: node1:/data/glusterfs/myvolume/mybrick/brick4 Brick11: node2:/data/glusterfs/myvolume/mybrick/brick4 Brick12: node3:/data/glusterfs/myvolume/mybrick/brick4 Options Reconfigured: transport.address-family: inet nfs.disable: on performance.client-io-threads: off #gluster volume remove-brick myvolume \ node{1,2,3}:/data/glusterfs/myvolume/mybrick/brick3 \ node{1,2,3}:/data/glusterfs/myvolume/mybrick/brick4 \ start
volume remove-brick start: success ID: ... #gluster volume remove-brick myvolume \ node{1,2,3}:/data/glusterfs/myvolume/mybrick/brick3 \ node{1,2,3}:/data/glusterfs/myvolume/mybrick/brick4 \ status
Node ... status run time in h:m:s --------- ... ------------ -------------- localhost ... completed 0:00:00 node2 ... completed 0:00:00 node3 ... completed 0:00:01 #gluster volume remove-brick myvolume \ node{1,2,3}:/data/glusterfs/myvolume/mybrick/brick3 \ node{1,2,3}:/data/glusterfs/myvolume/mybrick/brick4 \ commit
Removing brick(s) can result in data loss. Do you want to Continue? (y/n)y
volume remove-brick commit: success Check the removed bricks to ensure all files are migrated. If files with data are found on the brick path, copy them via a gluster mount point before re-purposing the removed brick. #gluster volume info
Volume Name: myvolume Type: Distributed-Replicate Volume ID: ... Status: Started Snapshot Count: 0 Number of Bricks: 2 x 3 = 6 Transport-type: tcp Bricks: Brick1: node1:/data/glusterfs/myvolume/mybrick/brick1 Brick2: node2:/data/glusterfs/myvolume/mybrick/brick1 Brick3: node3:/data/glusterfs/myvolume/mybrick/brick1 Brick4: node1:/data/glusterfs/myvolume/mybrick/brick2 Brick5: node2:/data/glusterfs/myvolume/mybrick/brick2 Brick6: node3:/data/glusterfs/myvolume/mybrick/brick2 Options Reconfigured: transport.address-family: inet nfs.disable: on performance.client-io-threads: off