[Gluster-users] Removing files directly on bricks in 3.3
Justin Dossey
jbd at podomatic.com
Thu Aug 1 23:13:14 UTC 2013
Up front, I'm going to say: you probably shouldn't do this. If you need to
remove a file, just rm it from a client and not directly on the brick.
If, however, you're like me, and you have garbage files generated during a
gluster crash, you may need to do some cleanup to restore correct operation
of your storage cluster.
At first, I just removed files. Mysteriously, even after removing a file
from all bricks, it would come back after a few minutes!
Then I read
http://joejulian.name/blog/what-is-this-new-glusterfs-directory-in-33/ --
that explains why this was happening.
Here's a quick and dirty script to remove a file directly on a brick.
YMMV, it's not my fault if your server catches fire while running this,
caveat emptor, etc., etc.
To run this, cd over to your brick top-level (the parent of the .glusterfs
dir) and issue a command like:
~/glusterrm.sh "path/to/my/file.name" --noop
The --noop (or, for that matter, any second parameter) will tell you what
it would remove but not remove anything.
If you're satisfied with the result, run
~/glusterrm.sh "path/to/my/file.name"
and the file will be deleted along with its shadow copy in the .glusterfs
dir. Make sure you run the same sequence on any replicas, and your file is
gone, gone, gone.
#!/bin/bash
FILE="$1"
hidden_file_path=$(getfattr -m gfid -d -e hex "$FILE" |\
sed -n
'2s/.*0x\(..\)\(..\)\(....\)\(....\)\(....\)\(....\)\(............\)/\1\/\2\/\1\2\3-\4-\5-\6-\7/p')
NOOP=$2
if [ "x$NOOP" = "x" ] ; then
rm -v .glusterfs/$hidden_file_path "$FILE"
else
echo "Would remove the following:"
echo .glusterfs/$hidden_file_path
echo "$FILE"
fi
--
Justin Dossey
CTO, PodOmatic
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://supercolony.gluster.org/pipermail/gluster-users/attachments/20130801/6eddf09a/attachment.html>
More information about the Gluster-users
mailing list