diff options
| -rw-r--r-- | extras/thin-arbiter-vol-file-example.vol | 66 | ||||
| -rw-r--r-- | extras/thin-arbiter/gluster-ta-volume.service | 13 | ||||
| -rwxr-xr-x | extras/thin-arbiter/setup-thin-arbiter.sh | 68 | ||||
| -rw-r--r-- | extras/thin-arbiter/thin-arbiter.vol | 57 | 
4 files changed, 138 insertions, 66 deletions
diff --git a/extras/thin-arbiter-vol-file-example.vol b/extras/thin-arbiter-vol-file-example.vol deleted file mode 100644 index 180bcb3189e..00000000000 --- a/extras/thin-arbiter-vol-file-example.vol +++ /dev/null @@ -1,66 +0,0 @@ -volume rep-posix -    type storage/posix -    option shared-brick-count 3 -    option volume-id dcd39537-006d-4bb5-abdd-b843636c18f6 -    option directory /home/apandey/bricks/gluster/rep-3 -end-volume - -volume rep-thin-arbiter -    type features/thin-arbiter -    subvolumes rep-posix -end-volume - -volume rep-locks -    type features/locks -    subvolumes rep-thin-arbiter -end-volume - -volume rep-upcall -    type features/upcall -    option cache-invalidation off -    subvolumes rep-locks -end-volume - -volume rep-io-threads -    type performance/io-threads -    subvolumes rep-upcall -end-volume - -volume rep-index -    type features/index -    option xattrop-pending-watchlist trusted.afr.rep- -    option xattrop-dirty-watchlist trusted.afr.dirty -    option index-base /home/apandey/bricks/gluster/rep-3/.glusterfs/indices -    subvolumes rep-io-threads -end-volume - -volume rep-io-stats -    type debug/io-stats -    option count-fop-hits off -    option latency-measurement off -    option log-level INFO -    option unique-id /home/apandey/bricks/gluster/rep-3 -    subvolumes rep-index -end-volume - -volume /home/apandey/bricks/gluster/rep-3 -    type performance/decompounder -    subvolumes rep-io-stats -end-volume - -volume rep-server -    type protocol/server -    option transport.listen-backlog 10 -    option transport.socket.keepalive-count 9 -    option transport.socket.keepalive-interval 2 -    option transport.socket.keepalive-time 20 -    option transport.tcp-user-timeout 0 -    option transport.socket.keepalive 1 -    option auth.addr./home/apandey/bricks/gluster/rep-3.allow * -    option auth-path /home/apandey/bricks/gluster/rep-3 -    option auth.login.96d610de-c290-4ff9-ba22-783b5b1330ef.password b6f0db12-5e91-4aa7-9333-fd5339c6ea2d -    option auth.login./home/apandey/bricks/gluster/rep-3.allow 96d610de-c290-4ff9-ba22-783b5b1330ef -    option transport.address-family inet -    option transport-type tcp -    subvolumes /home/apandey/bricks/gluster/rep-3 -end-volume diff --git a/extras/thin-arbiter/gluster-ta-volume.service b/extras/thin-arbiter/gluster-ta-volume.service new file mode 100644 index 00000000000..19be1757555 --- /dev/null +++ b/extras/thin-arbiter/gluster-ta-volume.service @@ -0,0 +1,13 @@ +[Unit] +Description = Thin-arbiter process to maintain quorum for replica volume +After = network.target + +[Service] +Environment = "LOG_LEVEL=WARNING" +ExecStart = /usr/local/sbin/glusterfsd -N --volfile-id ta-vol -f /var/lib/glusterd/thin-arbiter/thin-arbiter.vol --brick-port 24007 --xlator-option ta-vol-server.transport.socket.listen-port=24007 +Restart = always +KillMode=process +SuccessExitStatus=15 + +[Install] +WantedBy = multi-user.target diff --git a/extras/thin-arbiter/setup-thin-arbiter.sh b/extras/thin-arbiter/setup-thin-arbiter.sh new file mode 100755 index 00000000000..32fe7fc0cdd --- /dev/null +++ b/extras/thin-arbiter/setup-thin-arbiter.sh @@ -0,0 +1,68 @@ +#! /bin/bash + +volloc="/var/lib/glusterd/thin-arbiter" +mkdir -p $volloc + +cp -f extras/thin-arbiter/thin-arbiter.vol $volloc/thin-arbiter.vol +tafile="$volloc/thin-arbiter.vol" + +volfile_set_brick_path () { +    while read -r line +    do +        dir=`echo "$line" | cut -d' ' -f 2` +        if [ "$dir" = "directory" ] +        then +            bpath=`echo "$line" | cut -d' ' -f 3` +            sed -i -- 's?'$bpath'?'$1'?g' $tafile +            return +        fi +    done < $tafile +} + +tapath="/mnt/thin-arbiter" +echo "Volume file to be used to start thin-arbiter process is :" +echo "$tafile" +echo " " +echo "Default thin-arbiter path is : $tapath" +echo -n "Do you want to change path for thin arbiter volumes. (y/N): " +echo " " +read moveon + +if [ "${moveon}" = 'N' ] || [ "${moveon}" = 'n' ]; then +	echo "Default brick path, $tapath, has been set" +    echo "for all thin arbiter volumes using this node" +    echo " " +else +	echo -n "Enter brick path for thin arbiter volumes: " +	read tapath +	echo "Entered brick path : $tapath " +	echo "Please note that this brick path will be used for ALL" +    echo "VOLUMES using this node to host thin-arbiter brick" +    echo " " +fi + +mkdir -p $tapath/.glusterfs/indices +volfile_set_brick_path "$tapath" + +echo "Directory path to be used for thin-arbiter volume is: $tapath" +echo " " + +echo "========================================================" + +echo "Installing and starting service for thin-arbiter process" + +cp extras/thin-arbiter/gluster-ta-volume.service /etc/systemd/system/ + +chmod 0777 /etc/systemd/system/gluster-ta-volume.service + +systemctl daemon-reload +systemctl enable gluster-ta-volume +systemctl stop gluster-ta-volume +systemctl start gluster-ta-volume + +if [ $? == 0 ] +then +    echo "thin-arbiter process is setup and running" +else +    echo "Failed to setup thin arbiter" +fi diff --git a/extras/thin-arbiter/thin-arbiter.vol b/extras/thin-arbiter/thin-arbiter.vol new file mode 100644 index 00000000000..7a60f179891 --- /dev/null +++ b/extras/thin-arbiter/thin-arbiter.vol @@ -0,0 +1,57 @@ +volume ta-posix +    type storage/posix +    option directory /mnt/thin-arbiter +end-volume + +volume ta-thin-arbiter +    type features/thin-arbiter +    subvolumes ta-posix +end-volume + +volume ta-locks +    type features/locks +    subvolumes ta-thin-arbiter +end-volume + +volume ta-upcall +    type features/upcall +    option cache-invalidation off +    subvolumes ta-locks +end-volume + +volume ta-io-threads +    type performance/io-threads +    subvolumes ta-upcall +end-volume + +volume ta-index +    type features/index +    option xattrop-pending-watchlist trusted.afr.ta- +    option xattrop-dirty-watchlist trusted.afr.dirty +    option index-base /mnt/thin-arbiter/.glusterfs/indices +    subvolumes ta-io-threads +end-volume + +volume ta-io-stats +    type debug/io-stats +    option count-fop-hits off +    option latency-measurement off +    option log-level WARNING +    option unique-id /mnt/thin-arbiter +    subvolumes ta-index +end-volume + +volume ta-server +    type protocol/server +    option transport.listen-backlog 10 +    option transport.socket.keepalive-count 9 +    option transport.socket.keepalive-interval 2 +    option transport.socket.keepalive-time 20 +    option transport.tcp-user-timeout 0 +    option transport.socket.keepalive 1 +    option auth.addr./mnt/thin-arbiter.allow * +    option auth-path /mnt/thin-arbiter +    option transport.address-family inet +    option transport-type tcp +    subvolumes ta-io-stats +end-volume  | 
