summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRajesh Amaravathi <rajesh@redhat.com>2011-12-13 12:58:25 +0530
committerVijay Bellur <vijay@gluster.com>2011-12-25 21:41:12 -0800
commit4511ed196f94f639846b899e6b58f5f6af3fa668 (patch)
tree422f8cf09d66ed7a971c71c89f692d36a0fa8f03
parent31fa06932952f0cb706653aa7d0450646009eb07 (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-xextras/clear_xattrs.sh43
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