
        Sun Microsystems Corporation StorEdge[tm] Traffic Manager.


        If you have any questions, please call technical support.


Contents
--------
        1.0     Supported Linux Kernels
        2.0     Supported HBA's
        3.0     SSTM Installation
        4.0     Building the Linux Kernel
        5.0     SSTM Removal
        6.0     Dynamic LUN Addition
        7.0     Dynamic LUN Removal



1.0     Supported Linux Kernels
-------------------------------
Sun StorEdge Traffic Manager (SSTM) only supports RedHat Advance
Server 2.1 (AS2.1), RedHat Enterprise Server 2.1 (ES2.1), or Redhat
Workstation (WS2.1).  

It is important to note that SSTM requires installation of both
the kernel-headers and kernel-source packages.  These packages can
be installed either during or after RedHat installation.

When installing RedHat, be sure to select the "Kernel Development" package.  

If RedHat is already installed, verify these packages are installed
by typing the folowing command:
        # rpm -qa | grep kernel
If either of thes packages are not installed on the system, locate the
RedHat distribution CD's and install packages with the following commands:
        # rpm -i kernel-sources*
        # rpm -i kernel-headers        


2.0     Supported Fibre Channel HBA's
-------------------------------------
Sun StorEdge Traffic Manager (SSTM) only supports only the QLOGIC 23xx HBA.
Specifically, SSTM supports driver version 6.06.10.  This driver is 
available at the following website:

    http://download.qlogic.com/drivers/14511/qla2x00-v6.06.10-dist.tgz

It is highly recommended you remove older versions of the Qlogic drivers 
before installing the new version.  To ensure older Qlogic versions
are removed do the following:
    * Remove previously built Qlogic drivers by typing the following command:
        # find /lib/modules -name 'qla2*.o' -print | xargs -t rm
    * Remove any future build and inclusion of older Qlogic drivers into
      the kernel by modifying the kernel configuration via 'make xconfig'.
      Click on "Additional device driver support" and select 'n' for any
      line that contains "QLogic QLA".

Don't attempt to follow the instructions described in BUILD_KERNEL.txt.
Their instructions are meant for RH 7.2 systems.  Instead, utilize the 
following instructions:
    1)  Extract the driver source into /usr/src/linux2.4/drivers/scsi/qla2xxx
	Where 'qla2xxx' is the relative path to the Qlogic driver source.
	Substitute the same relative path for qla2xxx in the steps below.
    2)  Install the HBA API library 
        # ./libinstall
    3)  Remove 'makefile'
    4)  Copy 'Makefile.kernel' to 'Makefile' 
    5)  Edit /usr/src/linux2.4/drivers/scsi/Makefile.  Add the following:
        
          subdir-$(CONFIG_SCSI_AACRAID)   += aacraid
          subdir-$(CONFIG_SCSI_AIC7XXX)   += aic7xxx
        + subdir-$(CONFIG_SCSI_QLOGIC_QLA2XXX)    += qla2xxx
        + obj-$(CONFIG_SCSI_QLOGIC_QLA2XXX_QLA2100) += qla2xxx/qla2100.o
        + obj-$(CONFIG_SCSI_QLOGIC_QLA2XXX_QLA2200) += qla2xxx/qla2200.o
        + obj-$(CONFIG_SCSI_QLOGIC_QLA2XXX_QLA2300) += qla2xxx/qla2300.o
          subdir-$(CONFIG_SCSI_AIC79XX)      += aic7xxx

        Also, at the bottom of the Makefile add:
    
        qla2xxx/qla2100.o:
                cd qla2xxx; make qla2100.o
        qla2xxx/qla2200.o:
                cd qla2xxx; make qla2200.o
        qla2xxx/qla2300.o:
                cd qla2xxx; make qla2300.o
    6)  Edit /usr/src/linux2.4/drivers/scsi/Config.in.  Add the following 
        line below the line that contains "QLA 2100 driver support":

        + source drivers/scsi/qla2xxx/Config.in

    7)  Change directory to /usr/src/linux-2.4
    8)  Type "make xconfig".  Go to the SCSI Support and select SCSI Low
        Level Drivers.  Turn on the following options by setting its value
        to 'Y':
            Qlogic QLA 2100 v6 FC SCSI support
            Qlogic QLA 2200 v6 FC SCSI support
            Qlogic QLA 2300 v6 FC SCSI support
        You likely will need to turn on all three, otherwise 
        "make modules_install" will fail.
    9)  Follow steps described in "4.0 Building the Linux Kernel"
    10) After rebooting the kernel, you will see the storage
        attached to the QLogic HBAs.
    
        Type "cat /proc/scsi/scsi" to view storage attached to Qlogic HBAs.

        If you built the Qlogic driver as a module, then type "insmod qla2300"
        and verify that the devices show up.


3.0     SSTM Installation
--------------------------
1)  Create temporary directory.  
        # mkdir /tmpSSTM

2)  Change directory to the temporary directory.
        # cd /tmpSSTM

3)  Copy or download the Sun StorEdge Traffic Manager (SSTM) to the 
    temporary directory.
        # cp SunTrafficMgr-X.Y-Z.tgz   (where X.Y-Z is the release number)


4)  Extract SSTM installation files.
        # tar xvfz SunTrafficMgr-X.Y-Z.tgz
        
5)  Install SSTM
        # ./installsstm
        
6)  Remove temporary directory
        # cd /; rm -rf /tmpSSTM

7)  Change directory to the kernel source
        # cd /usr/src/linux-2.4

8)  Reconfigure the kernel
        # make xconfig

        Go to SCSI Support and enable SSTM by setting the
        'SSTM multipath support' configuration item to 'y'.
   
        Click on "Save and Exit."

9)  Follow steps described in "4.0 Building the Linux Kernel"

10) After rebooting the kernel, you will see the storage attached to SSTM
    after the Qlogic driver is running.
    
    Type "sstm" or "trafficmgr" to view storage attached to SSTM.


4.0     Building the Linux Kernel
---------------------------------
If you've never done this before, read:

   /usr/src/linux-<version>/README
   /usr/src/linux-<version>/Documentation/modules.txt
   /usr/src/linux-<version>/Documentation/initrd.txt

1)  Change directory to the kernel source
        # cd /usr/src/linux-2.4

2)  Build kernel
        # insmod loop; make clean dep bzImage modules modules_install install


3)  Build boot kernel RAM disk image 
        # mkinitrd -f /boot/initrd-<kernel_ver>custom.img <kernel_ver>custom"

        Where <kernel_ver> matches the kernel version number displayed with 
        a "uname -r" command.  The "custom" or "smp" suffix should be dropped.

4) Update boot loader to start new kernel build
        # vi /etc/grub.conf

        Copy the four lines from the "smp" stanza and paste them between
        the splashimage line and the smp line.  Then change the "smp" to
        "custom."  It should look something like this: 
        
    splashimage=(hd0,0)/grub/splash.xpm.gz
+   title Red Hat Enterprise Linux ES (2.4.9-e.12custom)
+          root (hd0,0)
+          kernel /vmlinuz-2.4.9-e.12custom ro root=/dev/sda3 console=ttyS1,9600
+          initrd /initrd-2.4.9-e.12custom.img
    title Red Hat Enterprise Linux ES (2.4.9-e.12smp)
       
5) Verify the vmlinuz and initrd files listed above are in /boot and have
    the expected date associated with the files.
        # ls -alt /boot    
   
6) Reboot 
    
7) Verify that "uname -r" says "<kernel version>custom"


5.0     SSTM Removal
--------------------------
1)  Change directory to /usr/SunTrafficManager
        # cd /usr/SunTrafficManager

2)  Remove SSTM
        # ./removesstm        
        
3)  Change directory to the kernel source
        # cd /usr/src/linux-2.4

4)  Reconfigure the kernel
        # make xconfig

        Click on "Save and Exit."

5)  Follow steps described in "4.0 Building the Linux Kernel"


6.0     Dynamic LUN Addition
------------------------------
For each HBA installed in the system, do the following:

1.) Rescan for all luns on all ports
        # echo "scsi-qlascan" > /proc/scsi/qla2300/H
    Where H is the host identifier associated with HBA
    
2.) Determine target ID (T) associated with the new LUN.
        # cat /proc/scsi/qla2300/X
    At the bottom of this file lists the ID:LUN numbers seen by 
    the QLA driver.  T is equal to the ID value.
    
3.) Add LUN to HBA
        # echo "scsi add-single-device H 0 T L" > /proc/scsi/scsi


7.0     Dynamic LUN Removal
------------------------------
1.) Determine SSTM paths associated with LUN to be removed.
        # sstm
    Locate the LUN to be removed and note the path name. 
    The path name should have the following format: hHcCtTdL.
    Where H is the host ID, C is the channel ID, T is the 
    target ID, and L is the LUN ID.

2.) Remove each path associated with LUN
        # echo "scsi remove-single-device H C T L" > /proc/scsi/scsi

3.) For each HBA installed in the system, rescan for all ports
        # echo "scsi-qlascan" > /proc/scsi/qla2300/H
        where H is the host identifier associated with HBA



