X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre-iokit%2Fobdfilter-survey%2Flibecho;h=9a4e8c4b0c8f4486664fc257e68890cd37168526;hb=fc7e0f430a175e258af128e01945b95180fd9c66;hp=454ea2e8f3ee237291064607b01d3f41b293307c;hpb=53741cd8c7d5df33659d5a763a4e68301926f93f;p=fs%2Flustre-release.git diff --git a/lustre-iokit/obdfilter-survey/libecho b/lustre-iokit/obdfilter-survey/libecho index 454ea2e..9a4e8c4 100644 --- a/lustre-iokit/obdfilter-survey/libecho +++ b/lustre-iokit/obdfilter-survey/libecho @@ -26,6 +26,8 @@ # Copyright 2008 Sun Microsystems, Inc. All rights reserved # Use is subject to license terms. # +# Copyright (c) 2012, Whamcloud, Inc. +# # This file is part of Lustre, http://www.lustre.org/ # Lustre is a trademark of Sun Microsystems, Inc. # @@ -49,6 +51,7 @@ declare -a do_unload_echo DSH=${DSH:-"ssh"} +NETTYPE=${NETTYPE:-tcp} dsh () { local node="$1" @@ -142,10 +145,10 @@ unload_obdecho () { } # returns the device number which is displayed in "lctl device_list" -# +# # parameter: 1. hostname -# 2. type of device ex: echo_client -# 3. name of device ex: ECHO_matrix.linsyssoft.com +# 2. type of device ex: echo_client +# 3. name of device ex: ECHO_matrix.linsyssoft.com get_devno () { local host=$1 local type=$2 @@ -174,63 +177,68 @@ get_devnos () { # do cleanup for netdisk case. cleanup_netdisk () { for osc in $@; do - $lctl </dev/null 2>&1" & pid=$! kill -term ${vmstatpids[$pidcount]} 2>/dev/null kill -kill ${vmstatpids[$pidcount]} 2>/dev/null wait $pid pidcount=$((pidcount+1)) - if ((${do_unload_obdecho[$host]})); then - unload_obdecho $host + if ((${do_unload_echo[$i]})); then + unload_obdecho $i fi done if [ $case == "network" ]; then - cleanup_network $1 + cleanup_network $1 fi if [ $case == "netdisk" ]; then - shift + shift cleanup_netdisk $@ fi if [ $exit_status ]; then @@ -244,60 +252,69 @@ cleanup () { fi exit $exit_status } -trap cleanup SIGHUP SIGINT SIGTERM +trap 'cleanup 0 $clean_srv_OSS $cleanup_oscs' SIGHUP SIGINT SIGTERM # gets echoclient device number and attach it to the client UUID -# +# Results are returned by an echo followed by an exit +# This must run in a subshell. +# # parameter: 1. hostname -# 2. client name, ex:- ns8:ECHO_ns8 -# 3. name of ost instances, ex:- lustre-OST0001 +# 2. client name, ex:- ns8:ECHO_ns8 +# 3. name of ost instances, ex:- lustre-OST0001 get_ec_devno () { + exec 8>&1 1>&2 local host=$1 local client_name="$2" local ost_name="$3" + local dev_type="${4:-obdfilter}" + local stack_type="${5:-}" + if [ -z "$client_name" ]; then - if [ -z "$ost_name" ]; then - echo "client and ost name both null" 1>&2 - return - fi + if [ -z "$ost_name" ]; then + echo "client and ost name both null" + exit 1 + fi client_name=${ost_name}_ecc fi ec=`get_devno $host echo_client $client_name` if [ -n "$ec" ]; then - echo $ec $client_name $client_name - return + echo $ec $client_name $client_name >&8 + exit 0 fi if [ -z "$ost_name" ]; then - echo "no echo client and ost_name not set, client: $client_name, host: $host" 1>&2 - return + echo "no echo client and ost_name not set, client:" \ + "$client_name, host: $host" + exit 1 fi - ost=`get_devno $host obdfilter $ost_name` + ost=`get_devno $host $dev_type $ost_name` if [ -z "$ost" ]; then - echo "OST $ost_name not setup" 1>&2 - return + echo "OST $ost_name not setup" + exit 1 fi client_name=${ost_name}_ecc - remote_shell $host "$lctl <&2 - return + echo "Can't setup echo-client" + exit 1 fi - echo $ec $client_name 1 + echo $ec $client_name 1 >&8 + exit 0 } # Create echo-clients using osc_names and osc_uuid # It creates echoclients for all osc listed using #lctl device_list command ec_using_osc () { local osc_name=$1 - $lctl </dev/null 2>&1 - $lctl </dev/null 2>&1 + $lctl <<-EOF + attach osc $ocsname $oscuuid + cfg_device $ocsname + setup echo_srv_UUID echo_UUID + EOF + $lctl <<-EOF + attach echo_client ${ocsname}_ecc $oscuuid + setup $ocsname + EOF } setup_osc_for_remote_ost () { local ost_nid=$1 local obdfilter_name=$2 local host_name=host_$3 - $lctl add_uuid ${host_name}_UUID $ost_nid@tcp >/dev/null 2>&1 - $lctl </dev/null 2>&1 + $lctl <<-EOF + attach osc ${obdfilter_name}_osc ${obdfilter_name}_osc_UUID + cfg_device ${obdfilter_name}_osc + setup ${obdfilter_name}_UUID ${host_name}_UUID + EOF } # setup obdecho on server setup_srv_obd () { local server_nid=$1 local test_ostfsnm=$2 - remote_shell "root@$server_nid" "$lctl << EOF - attach obdecho $test_ostfsnm ${test_ostfsnm}_UUID - cfg_device $test_ostfsnm - setup -EOF" + remote_shell "root@$server_nid" \ + "$lctl <<-EOF + attach obdecho $test_ostfsnm ${test_ostfsnm}_UUID + cfg_device $test_ostfsnm + setup + EOF" } # setup OSS on server setup_OSS () { local server_nid=$1 - remote_shell "root@$server_nid" "$lctl << EOF - attach ost OSS OSS_UUID - cfg_device OSS - setup -EOF" + remote_shell "root@$server_nid" \ + "$lctl <<-EOF + attach ost OSS OSS_UUID + cfg_device OSS + setup + EOF" } # cleanup and detach the echo-clients that we have created during the test. # parameter: 1. hostname -# 2. client name, ex:- ns8:ECHO_ns8 +# 2. client name, ex:- ns8:ECHO_ns8 teardown_ec_devno () { local host=$1 local client_name=$2 - remote_shell $host "$lctl <