1 #
   2 # CDDL HEADER START
   3 #
   4 # The contents of this file are subject to the terms of the
   5 # Common Development and Distribution License (the "License").
   6 # You may not use this file except in compliance with the License.
   7 #
   8 # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
   9 # or http://www.opensolaris.org/os/licensing.
  10 # See the License for the specific language governing permissions
  11 # and limitations under the License.
  12 #
  13 # When distributing Covered Code, include this CDDL HEADER in each
  14 # file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  15 # If applicable, add the following below this CDDL HEADER, with the
  16 # fields enclosed by brackets "[]" replaced with your own identifying
  17 # information: Portions Copyright [yyyy] [name of copyright owner]
  18 #
  19 # CDDL HEADER END
  20 #
  21 
  22 #
  23 # Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
  24 # Use is subject to license terms.
  25 #
  26 
  27 #
  28 # A test purpose file to test functionality of backing storage
  29 #
  30 
  31 # __stc_assertion_start
  32 #
  33 # ID: iscsi_fs_005
  34 #
  35 # DESCRIPTION:
  36 #       Running I/O data validation on multi initiators session to one target
  37 #
  38 # STRATEGY:
  39 #       Setup:
  40 #               MPXIO is enable on initiator host
  41 #               zfs LUs (specified by VOL_MAX variable in configuration) are
  42 #                   created in iSCSI target host 
  43 #               Map all the LUs can be accessed by all the target and host groups
  44 #                   by stmfadm add-view option
  45 #               Create one target portal group 1 with all the portals included
  46 #               Create one target node with tpgt 1
  47 #               Modify initiator target-param to allow all the initiator portals
  48 #                   to create multi (specified by SESSION_MAX variable in 
  49 #                   configuration) sessions individually to support mutlti-pathing 
  50 #                   with each target node
  51 #               Setup initiator node to enable "SendTarget" method
  52 #               Setup SendTarget with discovery address on initiator host
  53 #       Test:
  54 #               Start diskomizer on the initiator host
  55 #               Running I/O for 5 minutes
  56 #                       
  57 #       Cleanup:
  58 #               Stop the diskomizer
  59 #               Delete the target portal group
  60 #               Delete the target node
  61 #               Delete the configuration information in initiator and target
  62 #
  63 #       STRATEGY_NOTES:
  64 #
  65 # TESTABILITY: explicit
  66 #
  67 # AUTHOR: john.gu@sun.com
  68 #
  69 # REVIEWERS:
  70 #
  71 # ASSERTION_SOURCE:
  72 #
  73 # TEST_AUTOMATION_LEVEL: automated
  74 #
  75 # STATUS: IN_PROGRESS
  76 #
  77 # COMMENTS:
  78 #
  79 # __stc_assertion_end
  80 #
  81 function iscsi_fs_005
  82 {
  83         cti_pass
  84 
  85         tc_id="iscsi_fs_005"
  86         tc_desc="verify I/O data validation on multi initiators session to one target"
  87         print_test_case $tc_id - $tc_desc
  88 
  89         msgfile_mark $ISCSI_IHOST START $tc_id
  90         msgfile_mark $ISCSI_THOST START $tc_id
  91 
  92         stmsboot_enable_mpxio $ISCSI_IHOST
  93 
  94         build_fs zfs
  95 
  96         typeset vol_num=0
  97         while [ $vol_num -lt $VOL_MAX ]
  98         do
  99                 typeset vol_id=`/usr/bin/printf "%03s" $vol_num`
 100                 typeset vol_name=vol${vol_id}
 101 
 102                 touch $MP/$vol_name
 103                 sbdadm_create_lu POS -s ${VOL_SIZE} $MP/$vol_name
 104                 (( vol_num+=1 ))
 105         done
 106 
 107         build_full_mapping
 108 
 109         build_tpgt_portals $ISCSI_THOST 1
 110 
 111         itadm_create POS target -t 1
 112 
 113         iscsiadm_modify POS $ISCSI_IHOST discovery -t disable
 114         iscsiadm_add POS $ISCSI_IHOST discovery-address $ISCSI_THOST
 115         iscsiadm_modify POS $ISCSI_IHOST initiator-node -c $SESSION_MAX
 116         iscsiadm_modify POS $ISCSI_IHOST discovery -t enable
 117 
 118         start_disko $ISCSI_IHOST
 119 
 120         sleep $FS_SECONDS
 121 
 122         stop_disko $ISCSI_IHOST
 123         verify_disko $ISCSI_IHOST  
 124         ret=$?
 125         echo Done verify_disko
 126 
 127         msgfile_mark $ISCSI_IHOST STOP $tc_id
 128         msgfile_extract $ISCSI_IHOST $tc_id
 129         msgfile_mark $ISCSI_THOST STOP $tc_id
 130         msgfile_extract $ISCSI_THOST $tc_id
 131 
 132         host_reboot $ISCSI_IHOST
 133         tp_cleanup
 134         clean_fs zfs
 135         initiator_cleanup $ISCSI_IHOST
 136         [[ $ret -eq 0 ]] && cti_pass "tp_iscsi_fs_005: PASS"
 137 }
 138