HowTo Configure SCST Block Storage Target Enabled with ISER

Version 15

    This post shows how to install and setup SCST target with support for iSER.

     

    References:

     

    Compiling SCST:

     

    Installing SCST involves compiling it from the source. In order to download the sources either refer to SCST 3.0.x stable release and download a snapshot, or checkout from SVN by running:

    #svn checkout svn://svn.code.sf.net/p/scst/svn/branches/3.0.x scst-svn

     

    At this point if you are using OFED (either MLNX_OFED or OFA OFED), you need to perform extra steps detailed in How to compile SCST with iSER with Mellanox OFED

     

    Next step would be to configure the SCST make files for performance. Run the following from SCST source root:

    #make 2perf

     

    Now in order to compile and install the actual SCST with iSER, run the following:

     

    #make scst

    #make scst_install

    #make scstadm

    #make scstadm_install

    #make iscsi

    #make iscsi_install

              

     

    Target configuration example:

     

    There are number of ways to configure SCST. The easiest way is to create a config file (/etc/scst.conf) and start scst service.

    Note: From the SCST point of view there is no difference between configuring iSCSI and configuring iSER - each defined iSCSI target will be available with iSER.

     

    Example of /etc/scst.conf:

     

    HANDLER vdisk_blockio {

            DEVICE disk01 {

                    filename /dev/ram0

            }

    }

     

    HANDLER vdisk_nullio {

            DEVICE disk_null

    }

     

    TARGET_DRIVER iscsi {

            enabled 1

     

            TARGET iqn.2006-10.tgt {

                    allowed_portal 192.168.22.210

                    QueuedCommands 128

                    LUN 0 disk_null

                    LUN 1 disk01

                    enabled 1

            }

    }

     

    The basic idea is to create the backing store first (HANDLER). In this example it is a ram device, but could be any block device.

    Note: that we also create a disk_null device which is used as LUN 0 device and does not have any actual backing store associated with it. This is done for better compatibility with different initiators.

    The next step is to define a target and add the disk we created in previous step as one of the target's LUNs.

     

    A few important fields in target definition:

    1. allowed_portal - This parameter should be the IP address of your IPoIB or ethernet interface (in case of RoCE)
    2. QueuedCommands - This is not required, but will yield greater performance in case of iSER, since SCST default is 32

     

    In order to see more details on configuring SCST, see:

    1. SCST readme - For general SCST description as well as different handler types description
    2. iSCSI SCST howto - Quickstart guide for iSCSI installation and configuration in SCST
    3. iSCSI SCST readme - For iSCSI SCST specific configurations (such as ACLs and more)
    4. iSER specific readme - For iSER specific configuration considerations as well as some troubleshooting advice