35f1321e14
This script helps restart the AFS servers, which is useful when updating parameters. It can also enable audit logging. It can also stop and start the servers, although it's unlikely we'd want all the servers offline at the same time so stopping has a warning included. Documentation is updated to refer to the helper script Change-Id: Idcb3e43a3f6e614cdb787d4334e692a98bffdd15
121 lines
3.0 KiB
Bash
Executable File
121 lines
3.0 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Copyright 2019 Red Hat, Inc.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
# not use this file except in compliance with the License. You may obtain
|
|
# a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
# License for the specific language governing permissions and limitations
|
|
# under the License.
|
|
|
|
#
|
|
# Start/stop AFS servers
|
|
#
|
|
# Usage:
|
|
#
|
|
# 1) run this authenticated with admin account
|
|
# (mirror-update.opendev.org is one choice with everything setup,
|
|
# but can do locally)
|
|
#
|
|
# $ kinit $username/admin
|
|
# $ aklog
|
|
#
|
|
# 2) afs-service-restart.sh <restart|restart-auditing|start|start-auditing|stop>
|
|
#
|
|
# 3) If enabled, audit logs will be in a timestampped /opt file
|
|
#
|
|
#
|
|
|
|
SERVERS=(afs01.dfw.openstack.org afs02.dfw.openstack.org afs01.ord.openstack.org)
|
|
|
|
# See AFS system-config documentation for discussion of parameters
|
|
DAFILESERVER_OPTS="
|
|
-L -p 242 -busyat 600 -rxpck 700
|
|
-s 1200 -l 1200 -cb 2000000 -b 240 -vc 1200
|
|
-udpsize 131071 -sendsize 131071"
|
|
|
|
TIMESTAMP=$(date +%s)
|
|
|
|
function stop_server {
|
|
local afs_host=$1
|
|
|
|
echo "Stopping server $afs_host"
|
|
bos stop -server $afs_host -instance dafs -wait
|
|
sleep 5
|
|
bos delete -server $afs_host -instance dafs
|
|
sleep 5
|
|
echo "Done"
|
|
}
|
|
|
|
function start_server {
|
|
local afs_host=$1
|
|
local audit_log=$2
|
|
local opts=$DAFILESERVER_OPTS
|
|
local with_log=""
|
|
|
|
if [[ $audit_log == "true" ]]; then
|
|
opts+=" -auditlog /opt/dafileserver.audit.$TIMESTAMP.log"
|
|
with_log=" (with audit logging) "
|
|
fi
|
|
|
|
echo "Enable server $afs_host $with_log"
|
|
|
|
bos create -server $afs_host -instance dafs -type dafs \
|
|
-cmd "/usr/lib/openafs/dafileserver ${opts}" \
|
|
-cmd /usr/lib/openafs/davolserver \
|
|
-cmd /usr/lib/openafs/salvageserver \
|
|
-cmd /usr/lib/openafs/dasalvager
|
|
}
|
|
|
|
if [[ $1 == "start" ]]; then
|
|
|
|
for server in ${SERVERS[@]}; do
|
|
start_server $server false
|
|
done
|
|
|
|
elif [[ $1 == "start-auditing" ]]; then
|
|
|
|
for server in ${SERVERS[@]}; do
|
|
start_server $server true
|
|
done
|
|
|
|
elif [[ $1 == "restart" ]]; then
|
|
|
|
for server in ${SERVERS[@]}; do
|
|
stop_server $server
|
|
sleep 2
|
|
start_server $server false
|
|
done
|
|
|
|
elif [[ $1 == "restart-auditing" ]]; then
|
|
|
|
for server in ${SERVERS[@]}; do
|
|
stop_server $server
|
|
sleep 2
|
|
start_server $server true
|
|
done
|
|
|
|
elif [[ $1 == "stop" ]]; then
|
|
|
|
echo "*** JUST CHECKING YOU REALLY WANT TO STOP ALL SERVERS ***"
|
|
echo "It may be better to restart so the servers aren't all offline"
|
|
echo "I will wait 10 seconds, ctrl-c to cancel now"
|
|
sleep 10
|
|
|
|
for server in ${SERVERS[@]}; do
|
|
stop_server $server
|
|
done
|
|
|
|
else
|
|
|
|
echo "*** usage: <restart|restart-auditing|start|start-auditing|stop>"
|
|
exit 1
|
|
|
|
fi
|