test/iscsi: replace config files from iscsi tests with json and rpc calls

fio.sh still uses conf file because hot remove is not yet imlemented
in rpc calls

Change-Id: If9066e6b24e1e3d381876909fb9e00000a302e02
Signed-off-by: Pawel Niedzwiecki <pawelx.niedzwiecki@intel.com>
Reviewed-on: https://review.gerrithub.io/419125
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
This commit is contained in:
Pawel Niedzwiecki 2018-07-12 21:26:27 +02:00 committed by Ben Walker
parent b86c6b1704
commit 9668121208
28 changed files with 69 additions and 192 deletions

View File

@ -32,13 +32,15 @@ echo "IP=$TARGET_IP" >> /usr/local/etc/its.conf
timing_enter start_iscsi_tgt
$ISCSI_APP -c $testdir/iscsi.conf -m 0x1 &
$ISCSI_APP -m 0x1 -w &
pid=$!
echo "Process pid: $pid"
trap "killprocess $pid; delete_tmp_conf_files; exit 1 " SIGINT SIGTERM EXIT
waitforlisten $pid
$rpc_py load_subsystem_config -f $testdir/iscsi.json
$rpc_py start_subsystem_init
echo "iscsi_tgt is listening. Running tests..."
timing_exit start_iscsi_tgt

View File

@ -1,13 +0,0 @@
[Global]
[iSCSI]
NodeBase "iqn.2016-06.io.spdk"
AuthFile /usr/local/etc/auth.conf
Timeout 30
DiscoveryAuthMethod Auto
DiscoveryAuthGroup AuthGroup1
MaxSessions 256
MaxR2T 256
ErrorRecoveryLevel 2
NopInInterval 10
AllowDuplicateIsid Yes

View File

@ -0,0 +1,17 @@
{
"subsystem": "iscsi",
"config": [
{
"params": {
"allow_duplicated_isid": true,
"nop_timeout": 30,
"nop_in_interval": 10,
"discovery_auth_group": 1,
"max_sessions": 256,
"error_recovery_level": 2,
"auth_file": "/usr/local/etc/auth.conf"
},
"method": "set_iscsi_options"
}
]
}

View File

@ -67,13 +67,15 @@ fio_py="python $rootdir/scripts/fio.py"
timing_enter start_iscsi_tgt
$ISCSI_APP -c $testdir/iscsi.conf -m $ISCSI_TEST_CORE_MASK &
$ISCSI_APP -m $ISCSI_TEST_CORE_MASK -w &
pid=$!
echo "Process pid: $pid"
trap "killprocess $pid; exit 1" SIGINT SIGTERM EXIT
waitforlisten $pid
$rpc_py set_iscsi_options -o 30 -a 16
$rpc_py start_subsystem_init
echo "iscsi_tgt is listening. Running tests..."
timing_exit start_iscsi_tgt

View File

@ -1,10 +0,0 @@
[Global]
[iSCSI]
NodeBase "iqn.2016-06.io.spdk"
AuthFile /usr/local/etc/spdk/auth.conf
Timeout 30
DiscoveryAuthMethod Auto
MaxSessions 16
ImmediateData Yes
ErrorRecoveryLevel 0

View File

@ -11,21 +11,21 @@ fi
timing_enter ext4test
cp $testdir/iscsi.conf.in $testdir/iscsi.conf
$rootdir/scripts/gen_nvme.sh >> $testdir/iscsi.conf
rpc_py="python $rootdir/scripts/rpc.py"
timing_enter start_iscsi_tgt
$ISCSI_APP -c $testdir/iscsi.conf &
$ISCSI_APP -w &
pid=$!
echo "Process pid: $pid"
trap "$rpc_py destruct_split_vbdev Name0n1 || true; killprocess $pid; rm -f $testdir/iscsi.conf; exit 1" SIGINT SIGTERM EXIT
waitforlisten $pid
$rpc_py set_iscsi_options -o 30 -a 4 -b "iqn.2013-06.com.intel.ch.spdk"
$rpc_py start_subsystem_init
$rootdir/scripts/gen_nvme.sh --json | $rpc_py load_subsystem_config
$rpc_py construct_malloc_bdev 512 4096 --name Malloc0
echo "iscsi_tgt is listening. Running tests..."
timing_exit start_iscsi_tgt
@ -58,7 +58,6 @@ if [ $? -eq 0 ]; then
echo "mkfs successful - expected failure"
iscsicleanup
killprocess $pid
rm -f $testdir/iscsi.conf
exit 1
else
echo "mkfs failed as expected"
@ -116,7 +115,6 @@ done
trap - SIGINT SIGTERM EXIT
rm -f $testdir/iscsi.conf
iscsicleanup
$rpc_py destruct_split_vbdev Nvme0n1
$rpc_py delete_error_bdev EE_Malloc0

View File

@ -1,19 +0,0 @@
[Global]
Comment "Global section"
[iSCSI]
NodeBase "iqn.2013-06.com.intel.ch.spdk"
AuthFile /usr/local/etc/spdk/auth.conf
Timeout 30
DiscoveryAuthMethod Auto
MaxSessions 4
ImmediateData Yes
ErrorRecoveryLevel 0
# Do not specify InitiatorGroup, PortalGroup, Malloc,
# or TargetNode entries here - the autotest.sh script
# will use RPC to set up this part of the configuration.
[Malloc]
NumberOfLuns 1
LunSizeInMB 512

View File

@ -26,13 +26,15 @@ function remove_backends()
timing_enter start_iscsi_tgt
$ISCSI_APP -c $testdir/iscsi.conf -m $ISCSI_TEST_CORE_MASK &
$ISCSI_APP -m $ISCSI_TEST_CORE_MASK -w &
pid=$!
echo "Process pid: $pid"
trap "killprocess $pid; exit 1" SIGINT SIGTERM EXIT
waitforlisten $pid
$rpc_py set_iscsi_options -o 30 -a 16
$rpc_py start_subsystem_init
echo "iscsi_tgt is listening. Running tests..."
timing_exit start_iscsi_tgt

View File

@ -1,10 +0,0 @@
[Global]
[iSCSI]
NodeBase "iqn.2016-06.io.spdk"
AuthFile /usr/local/etc/spdk/auth.conf
Timeout 30
DiscoveryAuthMethod Auto
MaxSessions 16
ImmediateData Yes
ErrorRecoveryLevel 0

View File

@ -16,11 +16,13 @@ timing_enter start_iscsi_tgt
# Start the iSCSI target without using stub
# Reason: Two SPDK processes will be started
$ISCSI_APP -c $testdir/iscsi.conf -m 0x2 -p 1 -s 512 &
$ISCSI_APP -m 0x2 -p 1 -s 512 -w &
pid=$!
echo "iSCSI target launched. pid: $pid"
trap "killprocess $pid;exit 1" SIGINT SIGTERM EXIT
waitforlisten $pid
$rpc_py set_iscsi_options -o 30 -a 4
$rpc_py start_subsystem_init
echo "iscsi_tgt is listening. Running tests..."
timing_exit start_iscsi_tgt

View File

@ -1,15 +0,0 @@
[Global]
Comment "Global section"
[iSCSI]
NodeBase "iqn.2016-06.io.spdk"
AuthFile /usr/local/etc/spdk/auth.conf
Timeout 30
DiscoveryAuthMethod Auto
MaxSessions 4
ImmediateData Yes
ErrorRecoveryLevel 0
# Do not specify InitiatorGroup, PortalGroup, Malloc,
# or TargetNode entries here - the autotest.sh script
# will use RPC to set up this part of the configuration.

View File

@ -46,13 +46,15 @@ do
rpc_addr="/var/tmp/spdk${i}.sock"
# TODO: run the different iSCSI instances on non-overlapping CPU masks
$ISCSI_APP -r $rpc_addr -c $testdir/iscsi.conf -s 1000 -i $i -m $ISCSI_TEST_CORE_MASK &
$ISCSI_APP -r $rpc_addr -s 1000 -i $i -m $ISCSI_TEST_CORE_MASK -w &
pid=$!
echo "Process pid: $pid"
trap "kill_all_iscsi_target; exit 1" SIGINT SIGTERM EXIT
waitforlisten $pid $rpc_addr
$rpc_py -s $rpc_addr set_iscsi_options -o 30 -a 64
$rpc_py -s $rpc_addr start_subsystem_init
echo "iscsi_tgt is listening. Running tests..."
timing_exit start_iscsi_tgt_$i

View File

@ -1,10 +0,0 @@
[Global]
[iSCSI]
NodeBase "iqn.2016-06.io.spdk"
AuthFile /usr/local/etc/spdk/auth.conf
Timeout 30
DiscoveryAuthMethod Auto
MaxSessions 64
ImmediateData Yes
ErrorRecoveryLevel 0

View File

@ -1,10 +0,0 @@
[Global]
[iSCSI]
NodeBase "iqn.2016-06.io.spdk"
AuthFile /usr/local/etc/spdk/auth.conf
Timeout 30
DiscoveryAuthMethod Auto
MaxSessions 16
ImmediateData Yes
ErrorRecoveryLevel 0

View File

@ -22,13 +22,15 @@ fio_py="python $rootdir/scripts/fio.py"
timing_enter start_iscsi_tgt
$ISCSI_APP -c $testdir/iscsi.conf -m $ISCSI_TEST_CORE_MASK &
$ISCSI_APP -m $ISCSI_TEST_CORE_MASK -w &
pid=$!
echo "Process pid: $pid"
trap "iscsicleanup; killprocess $pid; exit 1" SIGINT SIGTERM EXIT
waitforlisten $pid
$rpc_py set_iscsi_options -o 30 -a 16
$rpc_py start_subsystem_init
echo "iscsi_tgt is listening. Running tests..."
timing_exit start_iscsi_tgt

View File

@ -34,29 +34,17 @@ function remove_backends()
set -e
timing_enter multiconnection
# Create conf file for iscsi multiconnection.
cat > $testdir/iscsi.conf << EOL
[iSCSI]
NodeBase "iqn.2016-06.io.spdk"
AuthFile /usr/local/etc/spdk/auth.conf
Timeout 30
DiscoveryAuthMethod Auto
MaxSessions 128
ImmediateData Yes
ErrorRecoveryLevel 0
EOL
# Get nvme info through filtering gen_nvme.sh's result.
$rootdir/scripts/gen_nvme.sh >> $testdir/iscsi.conf
timing_enter start_iscsi_tgt
# Start the iSCSI target without using stub.
$ISCSI_APP -c $testdir/iscsi.conf &
$ISCSI_APP -w &
iscsipid=$!
echo "iSCSI target launched. pid: $iscsipid"
trap "remove_backends; iscsicleanup; killprocess $iscsipid; exit 1" SIGINT SIGTERM EXIT
waitforlisten $iscsipid
$rpc_py set_iscsi_options -o 30 -a 128
$rpc_py start_subsystem_init
$rootdir/scripts/gen_nvme.sh --json | $rpc_py load_subsystem_config
timing_exit start_iscsi_tgt
$rpc_py add_portal_group $PORTAL_TAG $TARGET_IP:$ISCSI_PORT
@ -90,7 +78,6 @@ sync
trap - SIGINT SIGTERM EXIT
rm -f $testdir/iscsi.conf
rm -f ./local-job*
iscsicleanup
remove_backends

View File

@ -27,21 +27,21 @@ NETMASK=$INITIATOR_IP/32
function run_nvme_remote() {
echo "now use $1 method to run iscsi tgt."
cp $testdir/iscsi.conf $testdir/iscsi.conf.tmp
if [ "$1" = "remote" ]; then
echo "[NVMe]" >> $testdir/iscsi.conf.tmp
echo " HostNQN nqn.2016-06.io.spdk:host1" >> $testdir/iscsi.conf.tmp
echo " TransportID \"trtype:RDMA adrfam:ipv4 traddr:$NVMF_FIRST_TARGET_IP trsvcid:4420 subnqn:nqn.2016-06.io.spdk:cnode1\" Nvme0" >> $testdir/iscsi.conf.tmp
fi
# Start the iSCSI target without using stub
iscsi_rpc_addr="/var/tmp/spdk-iscsi.sock"
ISCSI_APP="$rootdir/app/iscsi_tgt/iscsi_tgt"
$ISCSI_APP -r "$iscsi_rpc_addr" -c $testdir/iscsi.conf.tmp -m 0x1 -p 0 -s 512 &
$ISCSI_APP -r "$iscsi_rpc_addr" -m 0x1 -p 0 -s 512 -w &
iscsipid=$!
echo "iSCSI target launched. pid: $iscsipid"
trap "killprocess $iscsipid; killprocess $nvmfpid; rm -f $testdir/iscsi.conf.tmp; exit 1" SIGINT SIGTERM EXIT
trap "killprocess $iscsipid; killprocess $nvmfpid; exit 1" SIGINT SIGTERM EXIT
waitforlisten $iscsipid "$iscsi_rpc_addr"
$rpc_py -s "$iscsi_rpc_addr" set_iscsi_options -o 30 -a 16
$rpc_py -s "$iscsi_rpc_addr" start_subsystem_init
if [ "$1" = "remote" ]; then
$rpc_py -s $iscsi_rpc_addr construct_nvme_bdev -b "Nvme0" -t "rdma" -f "ipv4" -a $NVMF_FIRST_TARGET_IP -s $NVMF_PORT -n nqn.2016-06.io.spdk:cnode1
fi
echo "iSCSI target has started."
timing_exit start_iscsi_tgt
@ -64,11 +64,13 @@ timing_enter nvme_remote
# Start the NVMf target
NVMF_APP="$rootdir/app/nvmf_tgt/nvmf_tgt"
$NVMF_APP -c $rootdir/test/nvmf/nvmf.conf -m 0x2 -p 1 -s 512 &
$NVMF_APP -m 0x2 -p 1 -s 512 -w &
nvmfpid=$!
echo "NVMf target launched. pid: $nvmfpid"
trap "killprocess $nvmfpid; rm -f $testdir/iscsi.conf.tmp; exit 1" SIGINT SIGTERM EXIT
trap "killprocess $nvmfpid; exit 1" SIGINT SIGTERM EXIT
waitforlisten $nvmfpid
$rpc_py set_nvmf_target_options -u 8192 -p 4
$rpc_py start_subsystem_init
echo "NVMf target has started."
bdevs=$($rpc_py construct_malloc_bdev 64 512)
$rpc_py construct_nvmf_subsystem nqn.2016-06.io.spdk:cnode1 "trtype:RDMA traddr:$NVMF_FIRST_TARGET_IP trsvcid:4420" "" -a -s SPDK00000000000001 -n "$bdevs"
@ -78,7 +80,7 @@ timing_enter start_iscsi_tgt
run_nvme_remote "local"
trap "iscsicleanup; killprocess $iscsipid; killprocess $nvmfpid; rm -f $testdir/iscsi.conf.tmp; \
trap "iscsicleanup; killprocess $iscsipid; killprocess $nvmfpid; \
rm -f ./local-job0-0-verify.state; exit 1" SIGINT SIGTERM EXIT
sleep 1
@ -88,7 +90,6 @@ $fio_py 4096 1 randrw 1 verify
rm -f ./local-job0-0-verify.state
iscsicleanup
killprocess $iscsipid
rm -f $testdir/iscsi.conf.tmp
run_nvme_remote "remote"
@ -100,7 +101,6 @@ trap - SIGINT SIGTERM EXIT
iscsicleanup
killprocess $iscsipid
rm -f $testdir/iscsi.conf.tmp
$rpc_py delete_nvmf_subsystem nqn.2016-06.io.spdk:cnode1
killprocess $nvmfpid

View File

@ -1,10 +0,0 @@
[Global]
[iSCSI]
NodeBase "iqn.2016-06.io.spdk"
AuthFile /usr/local/etc/spdk/auth.conf
Timeout 30
DiscoveryAuthMethod Auto
MaxSessions 16
ImmediateData Yes
ErrorRecoveryLevel 0

View File

@ -1,10 +0,0 @@
[Global]
[iSCSI]
NodeBase "iqn.2016-06.io.spdk"
AuthFile /usr/local/etc/spdk/auth.conf
Timeout 30
DiscoveryAuthMethod Auto
MaxSessions 16
ImmediateData Yes
ErrorRecoveryLevel 0

View File

@ -18,13 +18,15 @@ fio_py="python $rootdir/scripts/fio.py"
timing_enter iscsi_pmem
timing_enter start_iscsi_target
$ISCSI_APP -c $testdir/iscsi.conf -m $ISCSI_TEST_CORE_MASK &
$ISCSI_APP -m $ISCSI_TEST_CORE_MASK -w &
pid=$!
echo "Process pid: $pid"
trap "iscsicleanup; killprocess $pid; rm -f /tmp/pool_file*; exit 1" SIGINT SIGTERM EXIT
waitforlisten $pid
$rpc_py set_iscsi_options -o 30 -a 16
$rpc_py start_subsystem_init
echo "iscsi_tgt is listening. Running tests..."
timing_exit start_iscsi_target

View File

@ -87,7 +87,6 @@ iscsicleanup
$rpc_py delete_target_node 'iqn.2016-06.io.spdk:Target1'
rm -f ./local-job0-0-verify.state
rm -f $testdir/iscsi.conf
trap - SIGINT SIGTERM EXIT
killprocess $pid

View File

@ -1,10 +0,0 @@
[Global]
[iSCSI]
NodeBase "iqn.2016-06.io.spdk"
AuthFile /usr/local/etc/spdk/auth.conf
Timeout 30
DiscoveryAuthMethod Auto
MaxSessions 16
ImmediateData Yes
ErrorRecoveryLevel 0

View File

@ -22,12 +22,14 @@ fio_py="python $rootdir/scripts/fio.py"
timing_enter start_iscsi_tgt
$ISCSI_APP -c $testdir/iscsi.conf -m $ISCSI_TEST_CORE_MASK &
$ISCSI_APP -m $ISCSI_TEST_CORE_MASK -w &
pid=$!
trap "killprocess $pid; rbd_cleanup; exit 1" SIGINT SIGTERM EXIT
waitforlisten $pid
$rpc_py set_iscsi_options -o 30 -a 16
$rpc_py start_subsystem_init
echo "iscsi_tgt is listening. Running tests..."
timing_exit start_iscsi_tgt

View File

@ -1,10 +0,0 @@
[Global]
[iSCSI]
NodeBase "iqn.2016-06.io.spdk"
AuthFile /usr/local/etc/spdk/auth.conf
Timeout 30
DiscoveryAuthMethod Auto
MaxSessions 16
ImmediateData Yes
ErrorRecoveryLevel 0

View File

@ -21,13 +21,15 @@ fi
timing_enter start_iscsi_tgt
$ISCSI_APP -c $testdir/iscsi.conf &
$ISCSI_APP -w &
pid=$!
echo "Process pid: $pid"
trap "killprocess $pid; exit 1" SIGINT SIGTERM EXIT
waitforlisten $pid
$rpc_py set_iscsi_options -o 30 -a 16
$rpc_py start_subsystem_init
echo "iscsi_tgt is listening. Running tests..."
timing_exit start_iscsi_tgt

View File

@ -1,10 +0,0 @@
[Global]
[iSCSI]
NodeBase "iqn.2016-06.io.spdk"
AuthFile /usr/local/etc/spdk/auth.conf
Timeout 30
DiscoveryAuthMethod Auto
MaxSessions 16
ImmediateData Yes
ErrorRecoveryLevel 0

View File

@ -22,13 +22,15 @@ rpc_config_py="python $testdir/rpc_config.py"
timing_enter start_iscsi_tgt
$ISCSI_APP -c $testdir/iscsi.conf &
$ISCSI_APP -w &
pid=$!
echo "Process pid: $pid"
trap "killprocess $pid; exit 1" SIGINT SIGTERM EXIT
waitforlisten $pid
$rpc_py set_iscsi_options -o 30 -a 16
$rpc_py start_subsystem_init
echo "iscsi_tgt is listening. Running tests..."
timing_exit start_iscsi_tgt

View File

@ -1,7 +0,0 @@
[Global]
Comment "Global section"
ReactorMask 0xF
[Nvmf]
MaxQueuesPerSession 4
IOUnitSize 8192