Skip to content

AlertBear/fcior

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

#
# Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
#


FC IOR test suite README   -   JUNE 27, 2015


================================================================

Table of Contents

1. Introduction

2. Test System Requirements
   2.1 Hardware Requirements
   2.2 Software Requirements

3. Execute the Test Suite
   3.1 Test Configuration
   3.2 Test Execution

4. Build Test Suite
   4.1 Bring Over Source Code
   4.2 Build and Install
   4.3 Build package

5. Test Case Development
   5.1 Test Suite Framework
   5.2 Test Suite Structure
   5.3 Naming Space
   5.4 Debugging
   5.5 Logging

6. References

7. Contact us


================================================================

1.  Introduction

    IOR is a feature that permits an IO domain (SPARC platform) to continue
    running when the root domain providing it with services is interrupted.
    This removes the vulnerability of unexpected root domain failure and
    expected occasional maintenance requirement, and thus add resiliency to
    the operations of the IO domains. The current project intends to add this
    capability to the networking, fibre channel IO and InfiniBand traffic with
    proper fail-over configurations.

    This test suite is designed to provide fibre channel ior functional and
    stress tests.

================================================================


2.  Test System Requirements

2.1  Hardware Requirements

    o Hosts - CPU type is SPARC, T4/T5 or newer, running Solaris 11.2.7 or upper
    o FC cards - At least 2 16Gb Ganymede FC cards
    o FC switch - One SR-IOV compatible FC switch
    o FC storage - Any FC storage that is accessible via FC switch


2.2  Software Requirements

    o Solaris 11 and upper version
    o SUNWstc-tetlite(SVR4) or tetlite (IPS) must be installed
    o Python module pexpect must be installed
    o Vdbench 5.04 is not necessary but may need in stress test
    o Make sure NFS client and autofs work well as some NFS paths are referenced.

2.2.1  Install suite package and dependence packages

    This suite package and the dependence packages need be installed in test
    system.
    Two formats are provided for suite package and its dependency packages:
        SUNWstc-tetlite           (SVR4) or tetlite  (IPS)
        SUNWstc-storage-fcior     (SVR4) or fcior    (IPS)
        SUNWstc-3rdparty-pexpect  (SVR4) or pexpect  (IPS)
    User have to choose one format and install them on host manually

    (Replace "$STC-GATE" with actual path that matches the Solaris version.
    If you are unsure about that, put "/ws/stcnv-gate" for solaris 11 or
    "/ws/stc12-gate" for solaris 12)

    - Install packages of IPS format:
        # pkg set-publisher -p $STC-GATE/packages/repo.stc/$(uname -p)
        # pkg install stc/suites/storage/fcior
        (Note that "pkg install" will automatically solve dependencies for you)

    - Install packages of SVR4 format:
        # pkgadd -d $STC-GATE/packages/$(uname -p) SUNWstc-storage-fcior
        # pkgadd -d $STC-GATE/packages/$(uname -p) SUNWstc-tetlite
        # pkgadd -d $STC-GATE/packages/$(uname -p) SUNWstc-3rdparty-pexpect

2.2.2 Distribute vdbench

    Vdbench is a command line utility specifically created to help generate disk
    I/O workloads. It is not necessary but will be used in stress test.

    Before stress test, prepare to download the vdbench files from the following
    link:
    http://sbm-240b.central.sun.com/speweb/vdbench/index.html
    or
    http://www.oracle.com/technetwork/server-storage/vdbench-downloads-1901681.html

    It is packaged as a zip file. Copy the file to the target io domain and
    uncompress to the specific directory which is "/export/home/fcior_vdbench" in
    io domain.
    # unzip -o vdbench50402.zip -d /export/home/vdbench

================================================================


3.  Execute Tests Suite

    Before executing the test suite, please ensure that all hardware and
    software prerequisites are satisfied by the systems being used to test.

    Once that has been done, the following steps will execute the test suite
    and provide a log in "/var/tmp/fcior".  The summary provided at the end of
    the test suite execution will indicate the actual location of the execution
    log file.

3.1  Test Configuration

3.1.1 Export environment variables

    Export CTI_ROOT
        If install packages of IPS format:
        # export CTI_ROOT=/opt/stc/tools/tet/contrib/ctitools
        or install packages of SVR4 format:
        # export CTI_ROOT=/opt/SUNWstc-tetlite/contrib/ctitools

    Export PEXPECT
        If install packages of IPS format:
        # export PEXPECT=/opt/stc/3rdparty/pexpect
        or install packages of SVR4 format:
        # export PEXPECT=/opt/SUNWstc-3rdparty-pexpect

    Add "$CTI_ROOT/bin" to the PATH
        # export PATH=$CTI_ROOT/bin:$PATH

3.1.2 Update the configuration variables

    Test suite configuration variables are stored in the "config/test_config"
    file.  Test user should update this file to reflect test configuration
    prior to running "run_test". Please see the specific contents in the file.

3.1.3 Setup the test domains

    There are two ways to setup the test domains(NPRD_A, NPRD_B, IOD) defined
    in the configuration file. Create them manually, or semi-automatically.

    Manually:
        N/A
    Semi-automatically:
        1. Create the SOURCE_DOMAIN defined in configuration file by using a
        zfs filesystem

        2. Leave the two buses where PF_A and PF_B defined in the configuration
        file locates available.

        3. Execute "run_test --configure"
        This process to create test domains(NPRD_A, NPRD_B, IOD) by snapshot
        the zfs volume of SOURCE_DOMAIN and clone the one to create the other
        ROOT domains and IO domain.

3.1.4 Cleanup the test domains(After the test execution phase)

    Execute "run_test --unconfigure"
    This process to delete the test domains(NPRD_A, NPRD_B, IOD) by delete the
    zfs volumes of these domains and zfs volume snapshot of the SOURCE_DOMAIN.


3.2  Test Execution

    Below are examples of running different scenarios:

    o Executing all scenarios (default)

    # run_test fcior

    o Executing specific scenario(defined in tet_scen in test suite)

    # run_test fcior func_03

================================================================


4. Build Test Suite

4.1 Bring over Source Code

    S12:
    # WS=$HOME/ws/stc12-gate/usr
    # hg clone /ws/stc12-gate/usr/closed $WS
    S11:
    # WS=$HOME/ws/stcnv-gate/usr
    # hg clone /ws/stcnv-gate/usr/closed $WS

4.2 Build and Install

    # CTI_ROOT=/ws/stc12-gate/packages/sparc/SUNWstc-tetlite/reloc/contrib/ctitools
    # export $CTI_ROOT
    # cd $WS/suites/SUNWstc-storage-fcior/fcior
    # make ; make install

4.3 Build Package

    # make package (SVR4) or # make publish (IPS)

================================================================


5.  Test Case Development

5.1 Test Suite Framework

    FC-IOR test suite uses tetlite as test harness, which provide for test suites
    to run on local machines.

    This test suite simulate a test user who has logined the local system, and
    telnet on the root domain or IO domain to operate the necessary commands.


5.2 Test Suite Structure

    Test suit source code structure follows CTI User Guide.

    fcior
     |
     +--- config
     +--- lib(*)
     +--- bin(*)
     +--- src
     |      |
     |      +---lib
     |      |    |
     |      |    +--- Ldom.py
     |      |    +--- common.py
     |      |    +--- error.py
     |      |
     |      +---utils
     |           |
     |           +--- test_configure.py
     |           +--- test_unconfigure.py
     |
     +--- tests
            |
            +--- functional
            |	     |
            |	     +--- test01
            |	     +--- test02
            |	     +--- test03
            |	     +--- test04
            |	     +--- test05
            |	     +--- float
            |
            +--- stress
            	   |
            	   +--- maxvf
            	   +--- multidom


    NOTE: (*) created when make install

    o Reference :
      http://onwiki.us.oracle.com/bin/view/SolarisQE/cti-user-guide

5.3 Naming Space

    To unify name space, the whole test suite follow the following naming rule

o Library

o Global Variable

o TC and TP

    The test cases and test purpose functions name rule.

    "tc_" : The prefix of tc function. Such as "tc_test01" and "tc_test02".
    "tp_" : The prefix of tp function. Such as "tp_test01_001 and tp_test02_002"

5.4 Logging

    All the interraction logfile between test suite and the guest domain will be
    saved after the test case, please check the "/var/tmp/fcior" path to read
    and find the corresponding logfile.

================================================================


6.  References

o CTI Users Guide
  http://onwiki.us.oracle.com/bin/view/SolarisQE/cti-user-guide

o CTI Interfaces
  http://onwiki.us.oracle.com/bin/view/SolarisQE/cti-interfaces

================================================================


7.  Contact us

If you want to contact us, please use the STC_CONTACT email address provided
in the STC.INFO file.

Any feedback is greatly appreciated.


# EOF of README

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors