From 95e735b71b077d1ad7fd8c5a7152176968cc6588 Mon Sep 17 00:00:00 2001 From: Ashish Pandey Date: Tue, 22 May 2018 15:48:16 +0530 Subject: thin-arbiter : Provide scripts and service file to start thin-arbiter process 1 - setup-thin-arbiter.sh To setup directory path for thin-arbiter. This is the path where replica id file will be placed and used by TA process. By default it will be /mnt/thin-arbiter. It is better to use default path and once set it should not be changed. 2 - gluster-ta-volume.service This is the Unit file used by systemd to start and keep the thin-arbiter process running. 3 - thin-arbiter.vol This is the default volume file for thin-arbiter. It will be used to start thin-arbiter process. This should not be modified by user except the directory path which can be modified using [1]. Change-Id: I68f2164f24adfa326c1d1a7a98c6ac4ff04ed553 fixes: bz#1579786 Signed-off-by: Ashish Pandey --- extras/thin-arbiter/gluster-ta-volume.service | 13 +++++ extras/thin-arbiter/setup-thin-arbiter.sh | 68 +++++++++++++++++++++++++++ extras/thin-arbiter/thin-arbiter.vol | 57 ++++++++++++++++++++++ 3 files changed, 138 insertions(+) create mode 100644 extras/thin-arbiter/gluster-ta-volume.service create mode 100755 extras/thin-arbiter/setup-thin-arbiter.sh create mode 100644 extras/thin-arbiter/thin-arbiter.vol (limited to 'extras/thin-arbiter') 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 -- cgit