]> git.proxmox.com Git - ceph.git/blob - ceph/src/spdk/test/iscsi_tgt/multiconnection/multiconnection.sh
import 15.2.0 Octopus source
[ceph.git] / ceph / src / spdk / test / iscsi_tgt / multiconnection / multiconnection.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 # $1 = "iso" - triggers isolation mode (setting up required environment).
9 # $2 = test type posix or vpp. defaults to posix.
10 iscsitestinit $1 $2
11
12 rpc_py="$rootdir/scripts/rpc.py"
13 fio_py="$rootdir/scripts/fio.py"
14
15 CONNECTION_NUMBER=30
16
17 # Remove lvol bdevs and stores.
18 function remove_backends() {
19 echo "INFO: Removing lvol bdevs"
20 for i in $(seq 1 $CONNECTION_NUMBER); do
21 lun="lvs0/lbd_$i"
22 $rpc_py destroy_lvol_bdev $lun
23 echo -e "\tINFO: lvol bdev $lun removed"
24 done
25 sleep 1
26
27 echo "INFO: Removing lvol stores"
28 $rpc_py destroy_lvol_store -l lvs0
29 echo "INFO: lvol store lvs0 removed"
30
31 echo "INFO: Removing NVMe"
32 $rpc_py delete_nvme_controller Nvme0
33
34 return 0
35 }
36
37 set -e
38 timing_enter multiconnection
39
40 timing_enter start_iscsi_tgt
41 $ISCSI_APP --wait-for-rpc &
42 iscsipid=$!
43 echo "iSCSI target launched. pid: $iscsipid"
44 trap "remove_backends; iscsicleanup; killprocess $iscsipid; iscsitestfini $1 $2; exit 1" SIGINT SIGTERM EXIT
45
46 waitforlisten $iscsipid
47 $rpc_py set_iscsi_options -o 30 -a 128
48 $rpc_py start_subsystem_init
49 $rootdir/scripts/gen_nvme.sh --json | $rpc_py load_subsystem_config
50 timing_exit start_iscsi_tgt
51
52 $rpc_py add_portal_group $PORTAL_TAG $TARGET_IP:$ISCSI_PORT
53 $rpc_py add_initiator_group $INITIATOR_TAG $INITIATOR_NAME $NETMASK
54
55 echo "Creating an iSCSI target node."
56 ls_guid=$($rpc_py construct_lvol_store "Nvme0n1" "lvs0" -c 1048576)
57
58 # Assign even size for each lvol_bdev.
59 get_lvs_free_mb $ls_guid
60 lvol_bdev_size=$(($free_mb / $CONNECTION_NUMBER))
61 for i in $(seq 1 $CONNECTION_NUMBER); do
62 $rpc_py construct_lvol_bdev -u $ls_guid lbd_$i $lvol_bdev_size
63 done
64
65 for i in $(seq 1 $CONNECTION_NUMBER); do
66 lun="lvs0/lbd_$i:0"
67 $rpc_py construct_target_node Target$i Target${i}_alias "$lun" $PORTAL_TAG:$INITIATOR_TAG 256 -d
68 done
69 sleep 1
70
71 echo "Logging into iSCSI target."
72 iscsiadm -m discovery -t sendtargets -p $TARGET_IP:$ISCSI_PORT
73 iscsiadm -m node --login -p $TARGET_IP:$ISCSI_PORT
74
75 echo "Running FIO"
76 $fio_py -p iscsi -i 131072 -d 64 -t randrw -r 5
77 $fio_py -p iscsi -i 262144 -d 16 -t randwrite -r 10
78 sync
79
80 trap - SIGINT SIGTERM EXIT
81
82 rm -f ./local-job*
83 iscsicleanup
84 remove_backends
85 killprocess $iscsipid
86 iscsitestfini $1 $2
87 timing_exit multiconnection