diff options
author | Rajesh Amaravathi <rajesh@redhat.com> | 2011-12-13 12:58:25 +0530 |
---|---|---|
committer | Vijay Bellur <vijay@gluster.com> | 2011-12-25 21:41:12 -0800 |
commit | 4511ed196f94f639846b899e6b58f5f6af3fa668 (patch) | |
tree | 422f8cf09d66ed7a971c71c89f692d36a0fa8f03 | |
parent | 31fa06932952f0cb706653aa7d0450646009eb07 (diff) |
extras: clean up a brick's gfid xattr
* extras/clear_xattrs.sh: This script enables a brick from a
deleted volume(stale brick) to be used in a new volume by
clearing all the trusted.gfid xattr from the brick tree.
* One should run this script on all machines which have
stale bricks if one wants to re-use the same bricks
for a new volume.
NOTE: This script *SHOULD BE RUN ONLY AFTER STOPPING A VOLUME*,
thereby ensuring that no replace-brick or rebalance operations
are on-going.
Change-Id: I35a4a2784fe502749184b87299b1a043b8e48e90
BUG: 765572
Signed-off-by: Rajesh Amaravathi <rajesh@redhat.com>
Reviewed-on: http://review.gluster.com/781
Reviewed-by: Amar Tumballi <amar@gluster.com>
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijay Bellur <vijay@gluster.com>
-rwxr-xr-x | extras/clear_xattrs.sh | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/extras/clear_xattrs.sh b/extras/clear_xattrs.sh new file mode 100755 index 00000000000..bdce5b895a3 --- /dev/null +++ b/extras/clear_xattrs.sh @@ -0,0 +1,43 @@ +#!/bin/bash + +# Clear the trusted.gfid xattr in the brick tree + +# This script must be run only on a stopped brick/volume +# Stop the volume to make sure no rebalance/replace-brick +# operations are on-going + +# Not much error checking +remove_xattrs () +{ + find "$1" -exec setfattr -h -x "trusted.gfid" '{}' \; > /dev/null 2>&1; + find "$1" -exec setfattr -h -x "trusted.glusterfs.volume-id" '{}' \; > /dev/null 2>&1; +} + +main () +{ + if [ -z "$1" ]; then + echo "Please specify the brick path(s)"; + exit 1; + fi + + which getfattr > /dev/null 2>&1; + if [ $? -ne 0 ]; then + echo "attr package missing"; + exit 1; + fi + + which setfattr > /dev/null 2>&1; + if [ $? -ne 0 ]; then + echo "attr package missing"; + exit 1; + fi + + for brick in "$@"; + do + echo "xattr clean-up in progress: $brick"; + remove_xattrs "$brick"; + echo "$brick ready to be used as a glusterfs brick"; + done; +} + +main "$@";
\ No newline at end of file |