summaryrefslogtreecommitdiffstats
path: root/scripts/gluster.sh
diff options
context:
space:
mode:
authorSuren A. Chilingaryan <csa@suren.me>2019-10-06 04:43:13 +0200
committerSuren A. Chilingaryan <csa@suren.me>2019-10-06 04:43:13 +0200
commitacd54ba601e34dafac063f94054bb80348e73dcd (patch)
treebb904bbf2d58e2a97d2649193c29d31f174ef8e1 /scripts/gluster.sh
parent55ae94fdb6a6508f30c0eb0f5dfe95a11ac9682f (diff)
downloadands-acd54ba601e34dafac063f94054bb80348e73dcd.tar.gz
ands-acd54ba601e34dafac063f94054bb80348e73dcd.tar.bz2
ands-acd54ba601e34dafac063f94054bb80348e73dcd.tar.xz
ands-acd54ba601e34dafac063f94054bb80348e73dcd.zip
Script to fullhy clean-up outdated rc
Diffstat (limited to 'scripts/gluster.sh')
-rwxr-xr-xscripts/gluster.sh177
1 files changed, 0 insertions, 177 deletions
diff --git a/scripts/gluster.sh b/scripts/gluster.sh
deleted file mode 100755
index a3ff186..0000000
--- a/scripts/gluster.sh
+++ /dev/null
@@ -1,177 +0,0 @@
-#! /bin/bash
-
-. opts.sh
-
-[ $? -ne 0 -o -z "$gpod" ] && { echo "No storage pods are running..." ; exit 1 ; }
-[ -z "$1" ] && { echo "Usage: $0 <info|heal|migrate> <vol|all> [src] [dst]" ; exit 1 ; }
-action=$1
-shift
-
-
-function info {
- vol=$1
-
- status=$(gluster volume info "$vol" | grep -P 'Status' | awk '{ print $2 }' | tr -d '\r\n')
- bricks=$(gluster volume info "$vol" | grep -P 'Number of Bricks' | awk '{ print $NF }' | tr -d '\r\n')
- avail=$(gluster volume status "$vol" detail | grep Brick | wc -l)
- online=$(gluster volume status "$vol" detail | grep Online | grep Y | wc -l)
-
- echo "Volume $vol: $status (Bricks: $bricks, Available: $avail, Online: $online)"
-}
-
-function heal {
- vol=$1
-
- distributed=0
- gluster volume info "$vol" | grep "Type:" | grep -i "Distribute" &> /dev/null
- [ $? -eq 0 ] && distributed=1
-
- echo "Healing volume $vol"
- echo "-------------------"
- gluster volume heal "$vol" full
- gluster volume heal "$vol" info
-
- if [ $distributed -eq 1 ]; then
- echo "Rebalancing distributed volume $vol"
- gluster volume rebalance "$vol" fix-layout start
- fi
-
-
- gluster volume status "$vol"
-}
-
-function migrate {
- vol=$1
- src=$2
- dst=$3
-
- [ -z "$src" -o -z "$dst" ] && { echo "Source and destination servers are required" ; exit 1 ; }
-
- src_brick=$(gluster volume info $vol | grep -P '^Brick\d+:' | awk '{ print $2 }' | grep -P "^$src" | tr -d '\r\n' )
- dst_brick=${src_brick/$src/$dst}
-
- [ -z "$src_brick" -o -z "$dst_brick" ] && return 0
-
- echo "Volume $vol: migrating failed brick"
- echo " from $src_brick"
- echo " to $dst_brick"
- echo "Press enter to continue"
- read
- [ $? -ne 0 ] && exit
-
- gluster volume replace-brick $vol "$src_brick" "$dst_brick" commit force
- heal $vol
-}
-
-
-function transport {
- vol=$1
- transport=${2:-tcp,rdma}
- echo "Changing $vol to transport $transport"
- gluster volume stop "$vol"
- gluster volume set "$vol" config.transport "$transport"
- gluster volume start "$vol"
-}
-
-
-
-function restart {
- vol=$1
-
- echo $vol
- bricks=$(gluster volume info "$vol" | grep -P 'Number of Bricks' | awk '{ print $NF }' | tr -d '\r\n')
- online=$(gluster volume status "$vol" detail | grep Online | grep Y | wc -l)
-
- if [ "$bricks" -ne "$online" ]; then
- echo "Restarting $vol ($online bricks of $bricks are/is online)"
- gluster --mode=script volume stop "$vol"
- gluster --mode=script volume start "$vol"
- fi
-}
-
-function delete_failed {
- vol=$1
-
- bricks=$(gluster volume info "$vol" | grep -P 'Number of Bricks' | awk '{ print $NF }' | tr -d '\r\n')
- online=$(gluster volume status "$vol" detail | grep Online | grep Y | wc -l)
-
- if [ "$online" == "0" ]; then
- echo "Deleting $vol ($online bricks of $bricks are/is online)"
-# gluster --mode=script volume stop "$vol"
- gluster --mode=script volume delete "$vol"
- fi
-}
-
-
-function lvm_clean {
- used_bricks=`gluster volume info | grep "/brick_" | sed -r -e 's/.*brick_(.*)\/brick/\1/'`
-
- for ip in $(seq 1 3); do
- echo "Node $ip"
- echo "========"
- lvm_bricks=`node $ip lvscan | grep brick | sed -r -e 's/.*brick_([0-9a-z]*)[^0-9a-z].*/\1/'`
-
- diff=$(echo $used_bricks $lvm_bricks | tr -d '\r' | tr ' ' '\n' | sort | uniq -u)
- remove=$(echo "$diff $lvm_bricks" | tr -d '\r' | tr ' ' '\n' | sort | uniq -d)
-
- for id in $remove; do
- echo "Removing ---------------------------------------------"
- node $ip lvs -o name,time,size -S "'name =~ $id'"
- echo "Removing ---------------------------------------------"
- node $ip lvremove -y -S "'name =~ $id'"
- done
- done
-
-
-}
-
-function lvm_remove_today {
- for ip in $(seq 1 3); do
- node $ip hostname
-#lvdisplay -o name,time -S 'time since "2018-03-16"'
- done
-}
-
-
-function heketi_cmd {
- heketi "$@"
-}
-
-function heketi_clean {
- heketi_vols=`heketi topology info | grep "Name: vol_" | sed -r -e 's/.*(vol_[0-9a-z]+)\s*$/\1/'`
- gluster_vols=`gluster volume info | grep "Name: vol_" | sed -r -e 's/.*(vol_[0-9a-z]+)\s*$/\1/'`
- echo $heketi_vols
-
- diff=$(echo $gluster_vols $heketi_vols | tr -d '\r' | tr ' ' '\n' | sort | uniq -u)
- remove=$(echo "$diff $gluster_vols" | tr -d '\r' | tr ' ' '\n' | sort | uniq -d)
-
- for vol in $remove; do
- echo "Stopping and deleting volume $vol"
- echo "---------------------------------"
- gluster --mode=script volume stop "$vol"
- gluster --mode=script volume delete "$vol"
- done
-}
-
-if [[ "$action" =~ ^heketi ]]; then
- eval "$action" "$@"
-elif [[ "$action" =~ ^lvm ]]; then
- eval "$action" "$@"
-elif [[ -z "$1" || "$1" =~ ^all ]]; then
- all=0
- [ "$1" == "all_heketi" ] && all=1
- [[ "$1" =~ ^all ]] && shift
-
- vols=$(gluster volume info | grep -P '^Volume Name' | awk '{ print $NF }' | tr '\r\n' ' ')
- for vol in $vols; do
- if [ $all -eq 0 ]; then
- [[ "$vol" =~ [0-9] ]] && continue
- [[ "$vol" =~ ^vol_ ]] && continue
- [[ "$vol" =~ ^heketi ]] && continue
- fi
-
- eval "$action" "$vol" "$@"
- done
-else
- eval "$action" "$@"
-fi