]> git.proxmox.com Git - ceph.git/blob - ceph/src/spdk/test/iscsi_tgt/pmem/iscsi_pmem.sh
update source to Ceph Pacific 16.2.2
[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 start_iscsi_target
19 "${ISCSI_APP[@]}" -m $ISCSI_TEST_CORE_MASK --wait-for-rpc &
20 pid=$!
21 echo "Process pid: $pid"
22
23 trap 'iscsicleanup; killprocess $pid; rm -f /tmp/pool_file*; exit 1' SIGINT SIGTERM EXIT
24
25 waitforlisten $pid
26 $rpc_py iscsi_set_options -o 30 -a 16
27 $rpc_py framework_start_init
28 echo "iscsi_tgt is listening. Running tests..."
29 timing_exit start_iscsi_target
30
31 timing_enter setup
32 $rpc_py iscsi_create_portal_group $PORTAL_TAG $TARGET_IP:$ISCSI_PORT
33 for i in $(seq 1 $TGT_NR); do
34 INITIATOR_TAG=$((i + 1))
35 $rpc_py iscsi_create_initiator_group $INITIATOR_TAG $INITIATOR_NAME $NETMASK
36
37 luns=""
38 for j in $(seq 1 $PMEM_PER_TGT); do
39 $rpc_py create_pmem_pool /tmp/pool_file${i}_${j} $PMEM_SIZE $PMEM_BLOCK_SIZE
40 bdevs_name="$($rpc_py bdev_pmem_create -n pmem${i}_${j} /tmp/pool_file${i}_${j})"
41 PMEM_BDEVS+="$bdevs_name "
42 luns+="$bdevs_name:$((j - 1)) "
43 done
44 $rpc_py iscsi_create_target_node Target$i Target${i}_alias "$luns" "1:$INITIATOR_TAG " 256 -d
45 done
46 timing_exit setup
47 sleep 1
48
49 timing_enter discovery
50 iscsiadm -m discovery -t sendtargets -p $TARGET_IP:$ISCSI_PORT
51 iscsiadm -m node --login -p $TARGET_IP:$ISCSI_PORT
52 timing_exit discovery
53
54 timing_enter fio_test
55 $fio_py -p iscsi -i $BLOCKSIZE -d 64 -t randwrite -r $RUNTIME -v
56 timing_exit fio_test
57
58 iscsicleanup
59
60 for pmem in $PMEM_BDEVS; do
61 $rpc_py bdev_pmem_delete $pmem
62 done
63
64 for i in $(seq 1 $TGT_NR); do
65 for c in $(seq 1 $PMEM_PER_TGT); do
66 $rpc_py bdev_pmem_delete_pool /tmp/pool_file${i}_${c}
67 done
68 done
69
70 trap - SIGINT SIGTERM EXIT
71
72 rm -f ./local-job*
73 rm -f /tmp/pool_file*
74 killprocess $pid