Glusterd changes: With this patch, glusterd creates a socket file in DATADIR/run/glusterd.socket , and listen on it for cli requests. It listens for 2 rpc programs on the socket file, - The glusterd cli rpc program, for all cli commands - A reduced glusterd handshake program, just for the 'system:: getspec' command The location of the socket file can be changed with the glusterd option 'glusterd-sockfile'. To retain compatibility with the '--remote-host' cli option, glusterd also listens for the cli requests on port 24007. But, for the sake of security, it listens using a reduced cli rpc program on the port. The reduced rpc program only contains read-only procs used for 'volume (info|list|status)', 'peer status' and 'system:: getwd' cli commands. CLI changes: The gluster cli now uses the glusterd socket file for communicating with glusterd by default. A new option '--gluster-sock' has been added to allow specifying the sockfile used to connect. Using the '--remote-host' option will make cli connect to the given host & port. Tests changes: cluster.rc has been modified to make use of socket files and use different log files for each glusterd. Some of the tests using cluster.rc have been fixed. Change-Id: Iaf24bc22f42f8014a5fa300ce37c7fc9b1b92b53 BUG: 980754 Signed-off-by: Kaushal M <kaushal@redhat.com> Reviewed-on: http://review.gluster.org/5280 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Krishnan Parthasarathi <kparthas@redhat.com> Reviewed-by: Vijay Bellur <vbellur@redhat.com>
109 lines
1.9 KiB
Bash
Executable File
109 lines
1.9 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
CLUSTER_PFX="127.1.1"; # ".x" for each glusterd
|
|
CLUSTER_COUNT=1; # Just initial definition
|
|
|
|
function launch_cluster() {
|
|
local count=$1;
|
|
|
|
CLUSTER_COUNT=$count;
|
|
|
|
define_backends $count;
|
|
define_hosts $count;
|
|
define_glusterds $count;
|
|
define_clis $count;
|
|
|
|
start_glusterds;
|
|
}
|
|
|
|
|
|
function define_backends() {
|
|
local b;
|
|
|
|
for i in `seq 1 $count`; do
|
|
eval "B$i=$B0/$i";
|
|
done
|
|
|
|
for i in `seq 1 $count`; do
|
|
b="B$i";
|
|
mkdir -pv ${!b}/glusterd;
|
|
done
|
|
}
|
|
|
|
|
|
function define_glusterds() {
|
|
local count=$1;
|
|
local h;
|
|
local b;
|
|
local wopt;
|
|
local bopt;
|
|
local popt;
|
|
|
|
for i in `seq 1 $count`; do
|
|
b="B$i";
|
|
h="H$i";
|
|
wopt="management.working-directory=${!b}/glusterd";
|
|
bopt="management.transport.socket.bind-address=${!h}";
|
|
popt="--pid-file=${!b}/glusterd.pid";
|
|
sopt="management.glusterd-sockfile=${!b}/glusterd/gd.sock"
|
|
lopt="--log-file=${!b}/glusterd.log"
|
|
eval "glusterd_$i='glusterd --xlator-option $wopt --xlator-option $bopt --xlator-option $sopt $lopt $popt'";
|
|
eval "glusterd$i='glusterd --xlator-option $wopt --xlator-option $bopt --xlator-option $sopt $lopt $popt'";
|
|
done
|
|
}
|
|
|
|
|
|
function start_glusterds() {
|
|
local g;
|
|
|
|
for i in `seq 1 $CLUSTER_COUNT`; do
|
|
g="glusterd_$i";
|
|
${!g};
|
|
done
|
|
}
|
|
|
|
|
|
function kill_glusterd() {
|
|
local index=$1;
|
|
local b;
|
|
local pidfile;
|
|
|
|
b="B$index";
|
|
pidfile="${!b}/glusterd.pid";
|
|
|
|
kill `cat $pidfile`;
|
|
}
|
|
|
|
|
|
function kill_node() {
|
|
local index=$1;
|
|
local h;
|
|
|
|
h="H$index";
|
|
|
|
kill -9 $(ps -ef | grep gluster | grep ${!h} | awk '{print $2}');
|
|
}
|
|
|
|
|
|
function define_hosts() {
|
|
local count=$1;
|
|
|
|
for i in `seq 1 $count`; do
|
|
eval "H_$i=${CLUSTER_PFX}.$i"
|
|
eval "H$i=${CLUSTER_PFX}.$i";
|
|
done
|
|
}
|
|
|
|
|
|
function define_clis() {
|
|
local count=$1;
|
|
local h;
|
|
|
|
for i in `seq 1 $count`; do
|
|
b="B$i";
|
|
eval "CLI_$i='$CLI --glusterd-sock=${!b}/glusterd/gd.sock'";
|
|
eval "CLI$i='$CLI --glusterd-sock=${!b}/glusterd/gd.sock'";
|
|
done
|
|
}
|
|
|