- Enabling MPXIO on Solaris 10 Solaris MPxIO provides a multipathing solution for storage devices accessible through multiple physical paths. Multipathing provides the ability to set up multiple redundant paths to a storage system and gives you the benefits of load balancing and failover.
- Oracle Solaris Storage Multipathing MPxIO provides multipath access to storage luns by grouping together the physical paths and presenting a single logical path. MPxIO can also be referred as STMS or SCSIVHCI due to the commands used and logical device paths created.
Configuration files
For Solaris 10 and earlier
Administering Multipathing Devices (mpathadm) 5. Configuring SAN Devices. Configuring Virtual Fibre Channel Ports. Configuring FCoE Ports. Configuring SAS Domains. Configuring IPFC SAN Devices. Booting the Solaris OS From Fibre Channel Devices on x86 Systems. Persistent Binding for Tape Devices.
/kernel/drv/fp.conf | Fiber channel port configuration file (For Fiber Channel Devices) |
/kernel/drv/mpt.conf | mpt scsi/SAS HBA controller driver configuration file (For SAS Devices) |
/kernel/drv/scsi_vhci.conf | MPXIO operation configuration file (Used to define loadbalancing and failback modes and configure 3rd party devices) |
/kernel/drv/iscsi_conf | iSCSI MPxIO configuration file (For iSCSI devices) |
For Solaris 11
In case of Solaris 11, files in the directory /kernel/drv/ and /etc/driver/drv are the sample default configuration files delivered with OS (not used by MPxIO). Do not edit these files. The location of the configuration files is /etc/driver/drv/. The 4 configuration files used in case of Solaris 11 are the same, performing the same task. Although the syntax may be different.
In case of Solaris 11, files in the directory /kernel/drv/ and /etc/driver/drv are the sample default configuration files delivered with OS (not used by MPxIO). Do not edit these files. The location of the configuration files is /etc/driver/drv/. The 4 configuration files used in case of Solaris 11 are the same, performing the same task. Although the syntax may be different.
It is best practice to edit these files using the stmsboot utility, rather than editing them manually.
Enabling/Disabling MPxIO
The syntax of the command stmsboot used to enable/disable MPxIO is :
Few examples of using stmsboot command are :
# stmsboot -e | To enable MPxIO or all devices (globally) |
# stmsboot -D fp -e | To enable MPxIO for fiber channel devices |
# stmsboot -d | To disable MPxIO for all devices (globally) |
How to confirm MPxIO is enabled
To make sure that MPxIO is enabled for a LUN, simply run the format command and check for the /scsi_vhci in the logical path of the LUN.
Another way is to check the “mpxio-disable” parameter in the configuration files :
Solaris 7,8,9
Solaris 10
Solaris 11
Solaris 10 Mpathadm Disable Path
For Solaris 10 and 11, MPxIO is enabled by default on X86 platforms.
Verifying that the scsi_vhci module is loaded
scsi_vhci is the virtual host controller interconnect driver used to manage path of storage LUN. If you find that the scsi_vhci module is not loaded, then most likely MPxIO is not enabled.
Verifying Health of paths
We can check the multiple paths to the storage array LUNs by using mpathadm or luxadm command. The various states for the paths are :
mpathadm (supported for FC/SAS/iSCSI) [Works on Solaris 10, 11]
luxadm (supported on FC only) [Works on Solaris 7,8,9,10,11]
luxadm (supported on FC only) [Works on Solaris 7,8,9,10,11]
To check the health of the paths using mpathadm :
![Mpathadm Mpathadm](/uploads/1/1/3/6/113630565/260727371.png)
To check health of paths using luxadm :
Load Balancing policies
MPxIO also provides the load balancing capability to the I/O. There are basically 3 options to configure load balancing :
Round Robin | Selects all paths in a round robin way. |
Logical Block | I/Os within the range specified by range_size parameter would go on the same path. Improves performance on some storage arrays which have per path caching of data. |
None | No load balancing – only one path is used. |
The load balancing policy can be set in the configuration file /kernel/drv/scsi_vhci.conf for solaris 10 and earlier or in the /etc/driver/drv/scsi_vhci.conf file for solaris 11.
Auto-failback policy
Auto-failback policy enables the re-enable the failed path after it has recovered from the failure. By default the auto-failback is enabled. There are 2 ways to enable the auto-failback :
Non-persistent way
By this method, the auto-failback option does not persist across reboots.
By this method, the auto-failback option does not persist across reboots.
Persistent way
For the changes to persist across reboots set the auto-failback parameter in the configuration file /kernel/drv/scsi_vhci.conf for solaris 10 and earlier or in the /etc/driver/drv/scsi_vhci.conf file for solaris 11. This requires a reconfiguration reboot.
For the changes to persist across reboots set the auto-failback parameter in the configuration file /kernel/drv/scsi_vhci.conf for solaris 10 and earlier or in the /etc/driver/drv/scsi_vhci.conf file for solaris 11. This requires a reconfiguration reboot.
Verifying auto-failback
To confirm that the auto-failback is enabled use :
To confirm that the auto-failback is enabled use :
Some IMP notes about SAN Multipating |
Solaris is the computer operating system that Sun Microsystems provides for its family of Scalable Processor Architecture-based processors as well as for Intel-based processors. When it comes to Solaris Servers whether it is a Solaris 10 or Solaris 11 server, I should admit that I am not really exposed at. However, during the past days, I was messing around Solaris machines. The environment is not the same as on Linux machines. Arguments in commands can be very painful as they are different compared to Linux machines. Here are some tips which might be helpful.
Networking
Getting the network cards and its IP addresses :
Verify Firewall status (Enabling and Disabling the service IpFilter)
CPU
The CPU status:
Memory
Memory assigned on the Solaris Machine:
Processes and Ports
Find all listening ports of all processes
![Mpathadm Solaris 10 Mpathadm Solaris 10](/uploads/1/1/3/6/113630565/851522037.png)
More detailed view of all processes
Architecture
Check compatibility for 32 or 64-bit binaries support (Applicable for only Solaris 10)
Other interesting stuff to begin with:
Mpathadm Solaris 10 Vm
To list all the services instances active, inactive and disabled as recorded in the service configuration repository.
Each of the services in Solaris has one log file each. It is located at
Downloading a package from a repository. The Download can be carried out on a Solaris11 machine even if the installation destination is a Solaris10 server.
For the installation of the package on a Solaris 10 machine, use the following command:
Getting the list of LUNs
Mpathadm Solaris 10 Release
Getting state of LUNs
Hope you enjoyed it. I’m looking forward to some Solaris tutorials soon.