]> git.proxmox.com Git - ceph.git/blob - ceph/src/spdk/test/iscsi_tgt/pmem/iscsi_pmem.sh
import 15.2.0 Octopus source
[ceph.git] / ceph / src / spdk / test / iscsi_tgt / pmem / iscsi_pmem.sh
1 #!/usr/bin/env bash
2
3 testdir=$(readlink -f $(dirname $0))
4 rootdir=$(readlink -f $testdir/../../..)
5 source $rootdir/test/common/autotest_common.sh
6 source $rootdir/test/iscsi_tgt/common.sh
7
8 BLOCKSIZE=$1
9 RUNTIME=$2
10 PMEM_BDEVS=""
11 PMEM_SIZE=128
12 PMEM_BLOCK_SIZE=512
13 TGT_NR=10
14 PMEM_PER_TGT=1
15 rpc_py="$rootdir/scripts/rpc.py"
16 fio_py="$rootdir/scripts/fio.py"
17
18 timing_enter iscsi_pmem
19
20 timing_enter start_iscsi_target
21 $ISCSI_APP -m $ISCSI_TEST_CORE_MASK --wait-for-rpc &
22 pid=$!
23 echo "Process pid: $pid"
24
25 trap "iscsicleanup; killprocess $pid; rm -f /tmp/pool_file*; exit 1" SIGINT SIGTERM EXIT
26
27 waitforlisten $pid
28 $rpc_py set_iscsi_options -o 30 -a 16
29 $rpc_py start_subsystem_init
30 echo "iscsi_tgt is listening. Running tests..."
31 timing_exit start_iscsi_target
32
33 timing_enter setup
34 $rpc_py add_portal_group $PORTAL_TAG $TARGET_IP:$ISCSI_PORT
35 for i in $(seq 1 $TGT_NR); do
36 INITIATOR_TAG=$((i + 1))
37 $rpc_py add_initiator_group $INITIATOR_TAG $INITIATOR_NAME $NETMASK
38
39 luns=""
40 for j in $(seq 1 $PMEM_PER_TGT); do
41 $rpc_py create_pmem_pool /tmp/pool_file${i}_${j} $PMEM_SIZE $PMEM_BLOCK_SIZE
42 bdevs_name="$($rpc_py construct_pmem_bdev -n pmem${i}_${j} /tmp/pool_file${i}_${j})"
43 PMEM_BDEVS+="$bdevs_name "
44 luns+="$bdevs_name:$((j - 1)) "
45 done
46 $rpc_py construct_target_node Target$i Target${i}_alias "$luns" "1:$INITIATOR_TAG " 256 -d
47 done
48 timing_exit setup
49 sleep 1
50
51 timing_enter discovery
52 iscsiadm -m discovery -t sendtargets -p $TARGET_IP:$ISCSI_PORT
53 iscsiadm -m node --login -p $TARGET_IP:$ISCSI_PORT
54 timing_exit discovery
55
56 timing_enter fio_test
57 $fio_py -p iscsi -i $BLOCKSIZE -d 64 -t randwrite -r $RUNTIME -v
58 timing_exit fio_test
59
60 iscsicleanup
61
62 for pmem in $PMEM_BDEVS; do
63 $rpc_py delete_pmem_bdev $pmem
64 done
65
66 for i in $(seq 1 $TGT_NR); do
67 for c in $(seq 1 $PMEM_PER_TGT); do
68 $rpc_py delete_pmem_pool /tmp/pool_file${i}_${c}
69 done
70 done
71
72 trap - SIGINT SIGTERM EXIT
73
74 rm -f ./local-job*
75 rm -f /tmp/pool_file*
76 killprocess $pid
77 report_test_completion "nightly_iscsi_pmem"
78 timing_exit iscsi_pmem