xref: /spdk/test/iscsi_tgt/rbd/rbd.sh (revision cc6920a4763d4b9a43aa40583c8397d8f14fa100)
1#!/usr/bin/env bash
2
3testdir=$(readlink -f $(dirname $0))
4rootdir=$(readlink -f $testdir/../../..)
5source $rootdir/test/common/autotest_common.sh
6source $rootdir/test/iscsi_tgt/common.sh
7
8iscsitestinit
9
10timing_enter rbd_setup
11rbd_setup $TARGET_IP $TARGET_NAMESPACE
12trap 'rbd_cleanup; exit 1' SIGINT SIGTERM EXIT
13timing_exit rbd_setup
14
15rpc_py="$rootdir/scripts/rpc.py"
16fio_py="$rootdir/scripts/fio-wrapper"
17
18timing_enter start_iscsi_tgt
19
20"${ISCSI_APP[@]}" -m $ISCSI_TEST_CORE_MASK --wait-for-rpc &
21pid=$!
22
23trap 'killprocess $pid; rbd_cleanup; iscsitestfini; exit 1' SIGINT SIGTERM EXIT
24
25waitforlisten $pid
26$rpc_py iscsi_set_options -o 30 -a 16
27$rpc_py framework_start_init
28echo "iscsi_tgt is listening. Running tests..."
29
30timing_exit start_iscsi_tgt
31
32$rpc_py iscsi_create_portal_group $PORTAL_TAG $TARGET_IP:$ISCSI_PORT
33$rpc_py iscsi_create_initiator_group $INITIATOR_TAG $INITIATOR_NAME $NETMASK
34rbd_cluster_name="$($rpc_py bdev_rbd_register_cluster iscsi_rbd_cluster)"
35$rpc_py bdev_rbd_get_clusters_info -b $rbd_cluster_name
36rbd_bdev="$($rpc_py bdev_rbd_create $RBD_POOL $RBD_NAME 4096 -c $rbd_cluster_name)"
37$rpc_py bdev_get_bdevs
38
39$rpc_py bdev_rbd_resize $rbd_bdev 2000
40num_block=$($rpc_py bdev_get_bdevs | grep num_blocks | sed 's/[^[:digit:]]//g')
41# get the bdev size in MiB.
42total_size=$((num_block * 4096 / 1048576))
43if [ $total_size != 2000 ]; then
44	echo "resize failed."
45	exit 1
46fi
47# "Ceph0:0" ==> use Ceph0 blockdev for LUN0
48# "1:2" ==> map PortalGroup1 to InitiatorGroup2
49# "64" ==> iSCSI queue depth 64
50# "-d" ==> disable CHAP authentication
51$rpc_py iscsi_create_target_node Target3 Target3_alias 'Ceph0:0' $PORTAL_TAG:$INITIATOR_TAG 64 -d
52sleep 1
53
54iscsiadm -m discovery -t sendtargets -p $TARGET_IP:$ISCSI_PORT
55iscsiadm -m node --login -p $TARGET_IP:$ISCSI_PORT
56waitforiscsidevices 1
57
58trap 'iscsicleanup; killprocess $pid; rbd_cleanup; exit 1' SIGINT SIGTERM EXIT
59
60$fio_py -p iscsi -i 4096 -d 1 -t randrw -r 1 -v
61$fio_py -p iscsi -i 131072 -d 32 -t randrw -r 1 -v
62
63rm -f ./local-job0-0-verify.state
64
65trap - SIGINT SIGTERM EXIT
66
67iscsicleanup
68$rpc_py bdev_rbd_delete $rbd_bdev
69$rpc_py bdev_rbd_unregister_cluster $rbd_cluster_name
70killprocess $pid
71rbd_cleanup
72
73iscsitestfini
74