Solaris FC Multipath Configuration

Solaris SPARC servers are generally used with FC and multipath configured
The following doc show how to configure Solaris10, it assumes Soalris was upgraded to latest version SunOS Solaris10 5.10 Generic_147147-26

1. Configuration files
The main configuration file is /kernel/drv/scsi_vhci.conf
There Zadara VPSA must be configured so Solaris can handle it as multipath devices.fully certified

Zadara FC supports implicit ALUA, which means that the Solaris driver cannot explicitly failover the paths, but only Zadara VPSA target does it.
Load balancing could be round-robin or none, our tests showed that none is more stable and there is a better chance that paths will survive online and no IO error happen in case of VC reboots. round-robin policy can also be applied but care must be taken.
Another important parameter is to disable auto-failback since Zadara supports implicit ALUA

See the following paramenters:

#load-balance="round-robin";
load-balance="none";
#
auto-failback="disable";
#
# For enabling MPxIO support for 3rd party symmetric device need an
# entry similar to following in this file. Just replace the "SUN     SENA"
# part with the Vendor ID/Product ID for the device, exactly as reported by
# Inquiry cmd.
#
device-type-scsi-options-list =
"Zadara  VPSA    ", "f_tpgs";
# Tunable for updating path states after a UNIT ATTENTION reset.
# There are arrays which do not queue UAs during resets
# after an implicit failover. For such arrays, we need to
# update the path states after any type of UA resets, since
# UA resets take higher precedence among other UNIT ATTENTION
# conditions. By default, scsi_vhci does not update path states
# on UA resets. To make scsi_vhci do that for such arrays, you need
# to set the tunable scsi-vhci-update-pathstate-on-reset to "yes"
# for the VID/PID combination as described below.
#
#       "012345670123456789012345",     "yes" or "no"
#       "|-VID--||-----PID------|",
#
scsi-vhci-update-pathstate-on-reset =
        "Zadara  VPSA    ",     "yes";

2. Setting up multipath
While in Solaris x86 multipath is a default, in SPARC servers it must be configured using:

bash-3.2# stmsboot -e

And a reboot is needed after issuing the command.

2.1 Create and attach a block volume and server through FC (assuming zoning done)

2.2  Rescan paths and configure devices
# cfgadm -al -o show_FCP_dev
Ap_Id                          Type         Receptacle   Occupant     Condition
c2                             fc-fabric    connected    configured   unknown
c2::2102b07e7034e21e,0         disk         connected    configured   unusable
c2::2102b07e7034e21e,1         disk         connected    configured   unusable
c2::2102b07e7034e220,0         disk         connected    configured   unusable
c2::2102b07e7034e220,1         disk         connected    configured   unusable
c2::21a2b07e70c9050d,0         disk         connected    unconfigured unknown
c2::21a2b07e70c9050f,0         disk         connected    unconfigured unknown
c3                             fc-fabric    connected    configured   unknown
c3::2102b07e7034e21d,0         disk         connected    configured   unusable
c3::2102b07e7034e21d,1         disk         connected    configured   unusable
c3::2102b07e7034e21f,0         disk         connected    configured   unusable
c3::2102b07e7034e21f,1         disk         connected    configured   unusable
c3::21a2b07e70c9050c,0         disk         connected    unconfigured unknown
c3::21a2b07e70c9050e,0         disk         connected    unconfigured unknown

Force configuration of paths

# cfgadm -o force_update -c configure c2

Ap_Id                          Type         Receptacle   Occupant     Condition
c2                             fc-fabric    connected    configured   unknown
c2::2102b07e7034e21e,0         disk         connected    configured   unusable
c2::2102b07e7034e21e,1         disk         connected    configured   unusable
c2::2102b07e7034e220,0         disk         connected    configured   unusable
c2::2102b07e7034e220,1         disk         connected    configured   unusable
c2::21a2b07e70c9050d,0         disk         connected    configured   unknown
c2::21a2b07e70c9050f,0         disk         connected    configured   unknown
c3                             fc-fabric    connected    configured   unknown
c3::2102b07e7034e21d,0         disk         connected    configured   unusable
c3::2102b07e7034e21d,1         disk         connected    configured   unusable
c3::2102b07e7034e21f,0         disk         connected    configured   unusable
c3::2102b07e7034e21f,1         disk         connected    configured   unusable
c3::21a2b07e70c9050c,0         disk         connected    unconfigured unknown
c3::21a2b07e70c9050e,0         disk         connected    unconfigured unknown

# cfgadm -o force_update -c configure c3

Ap_Id                          Type         Receptacle   Occupant     Condition
c2                             fc-fabric    connected    configured   unknown
c2::2102b07e7034e21e,0         disk         connected    configured   unusable
c2::2102b07e7034e21e,1         disk         connected    configured   unusable
c2::2102b07e7034e220,0         disk         connected    configured   unusable
c2::2102b07e7034e220,1         disk         connected    configured   unusable
c2::21a2b07e70c9050d,0         disk         connected    configured   unknown
c2::21a2b07e70c9050f,0         disk         connected    configured   unknown
c3                             fc-fabric    connected    configured   unknown
c3::2102b07e7034e21d,0         disk         connected    configured   unusable
c3::2102b07e7034e21d,1         disk         connected    configured   unusable
c3::2102b07e7034e21f,0         disk         connected    configured   unusable
c3::2102b07e7034e21f,1         disk         connected    configured   unusable
c3::21a2b07e70c9050c,0         disk         connected    configured   unknown
c3::21a2b07e70c9050e,0         disk         connected    configured   unknown

2.3 See device and paths

# luxadm probe

Found Fibre Channel device(s):
  Node WWN:20a2b07e70c9050b  Device Type:Disk device
    Logical Path:/dev/rdsk/c4t3133393965633636d0s2

2.4 Check paths for the device and it´s status

# luxadm -v display /dev/rdsk/c4t3133393965633636d0s2

  Displaying information for: /dev/rdsk/c4t3133393965633636d0s2
DEVICE PROPERTIES for disk: /dev/rdsk/c4t3133393965633636d0s2
  Vendor:               Zadara
  Product ID:           VPSA
  Revision:              302
  Serial Num:           1399ec66
  Unformatted capacity: 51200.000 MBytes
  Write Cache:          Enabled
  Read Cache:           Enabled
    Minimum prefetch:   0x0
    Maximum prefetch:   0x0
  Device Type:          Disk device
  Path(s):

  /dev/rdsk/c4t3133393965633636d0s2
  /devices/scsi_vhci/ssd@g3133393965633636:c,raw
   Controller           /devices/pci@1e,600000/pci@0/pci@2/emlx@0/fp@0,0
    Device Address              21a2b07e70c9050d,0
    Host controller port WWN    10000090fa9fd345
    Class                       secondary
    State                       STANDBY
   Controller           /devices/pci@1e,600000/pci@0/pci@2/emlx@0/fp@0,0
    Device Address              21a2b07e70c9050f,0
    Host controller port WWN    10000090fa9fd345
    Class                       primary
    State                       ONLINE
   Controller           /devices/pci@1e,600000/pci@0/pci@8/emlx@0/fp@0,0
    Device Address              21a2b07e70c9050c,0
    Host controller port WWN    10000000c9a0b802
    Class                       secondary
    State                       STANDBY
   Controller           /devices/pci@1e,600000/pci@0/pci@8/emlx@0/fp@0,0
    Device Address              21a2b07e70c9050e,0
    Host controller port WWN    10000000c9a0b802
    Class                       primary
    State                       ONLINE

2.4.1 Check status of the device for each path and also if explicit failover is disabled

#  mpathadm show logical-unit /dev/rdsk/c4t3133393965633636d0s2
Logical Unit:  /dev/rdsk/c4t3133393965633636d0s2
        mpath-support:  libmpscsi_vhci.so
        Vendor:  Zadara
        Product:  VPSA
        Revision:   302
        Name Type:  unknown type
        Name:  3133393965633636
        Asymmetric:  yes
        Current Load Balance:  none
        Logical Unit Group ID:  NA
        Auto Failback:  off
        Auto Probing:  NA

        Paths:
                Initiator Port Name:  10000090fa9fd345
                Target Port Name:  21a2b07e70c9050d
                Override Path:  NA
                Path State:  OK
                Disabled:  no

                Initiator Port Name:  10000090fa9fd345
                Target Port Name:  21a2b07e70c9050f
                Override Path:  NA
                Path State:  OK
                Disabled:  no

                Initiator Port Name:  10000000c9a0b802
                Target Port Name:  21a2b07e70c9050c
                Override Path:  NA
                Path State:  OK
                Disabled:  no

                Initiator Port Name:  10000000c9a0b802
                Target Port Name:  21a2b07e70c9050e
                Override Path:  NA
                Path State:  OK
                Disabled:  no

        Target Port Groups:
                ID:  1
                Explicit Failover:  no
                Access State:  standby
                Target Ports:
                        Name:  21a2b07e70c9050d
                        Relative ID:  12

                        Name:  21a2b07e70c9050c
                        Relative ID:  11

                ID:  2
                Explicit Failover:  no
                Access State:  active optimized
                Target Ports:
                        Name:  21a2b07e70c9050f
                        Relative ID:  22

                        Name:  21a2b07e70c9050e
                        Relative ID:  21
 
2.5 Other useful commands:

2.5.1 Display HBA port status
#  luxadm -e port
/devices/pci@1e,600000/pci@0/pci@2/emlx@0/fp@0,0:devctl            CONNECTED
/devices/pci@1e,600000/pci@0/pci@8/emlx@0/fp@0,0:devctl            CONNECTED

2.5.2 Reset HBA port or at device base

# luxadm -e forcelip /devices/pci@1e,600000/pci@0/pci@2/emlx@0/fp@0,0:devctl  <- HBA port reset

# luxadm -e forcelip /dev/rdsk/c4t3133393965633636d0s2  <- all paths to device reset


2.6 Useful documentation

see links:
https://docs.oracle.com/cd/E19253-01/820-1931/820-1931.pdf
http://docs.oracle.com/cd/E19253-01/820-1931/6ndinfi78/index.html
https://docs.oracle.com/cd/E19957-01/819-0139/ch_4_config_multi_SW.html
http://www.asgaur.com/wp/how-to-rescan-new-luns-added-in-linux-hp-ux-aix-solaris/

Have more questions? Submit a request

0 Comments

Please sign in to leave a comment.