HOST="192.168.12.1" NEW_BASE="/mnt/ands/glusterfs/vg_ce3a7c1bb6da5c98ce4bb3e76aeacb8b" GLUSTER_BIN="gluster" DRYRUN=1 # set to 0 to actually run GLUSTER_UID=107 # adjust if your gluster user has a different uid/gid # get all volumes like vol_ VOLS=$($GLUSTER_BIN volume list | grep '^vol_') for VOL in $VOLS; do # find bricks on this host # lines look like: "Brick2: 192.168.12.1:/var/lib/heketi/.../brick" mapfile -t OLDBRICKS < <($GLUSTER_BIN volume info "$VOL" \ | grep "$HOST:" \ | awk '{print $2}') # skip volumes that don't have a brick on this host if [ ${#OLDBRICKS[@]} -eq 0 ]; then continue fi for OLD in "${OLDBRICKS[@]}"; do BRICKID=$(echo "$OLD" | sed -n 's#.*/\(brick_[^/]*\)/brick#\1#p') if [ -z "$BRICKID" ]; then echo "WARN: could not extract brick ID from $OLD" continue fi NEW="$HOST:$NEW_BASE/$BRICKID" echo "=== volume: $VOL ===" echo "old brick: $OLD" echo "new brick: $NEW" $GLUSTER_BIN volume replace-brick "$VOL" "$OLD" "$NEW" commit force done done