Wednesday, May 01, 2013

Native Solaris Storage Multipathing with mpathadm

The “Solaris FC and Storage Multipathing Software” is included with the Solaris 10 license. It is enabled by default with the Solaris 10x86 installation, but is optional in the Sparc installlation.

Currently, the software supports multipathing for fibre channel connections using supported host bus adapters. It does not currently support multipathing for parallel SCSI devices or IP over FC.

For Sparc-based systems, multipathing support is enabled and disabled via the stmsboot -e and stmsboot -d commands. This command reboots the system to complete the process, so make sure that the right boot-device is included in the EEPROM settings before proceeding.

When multipathing is enabled, copies of the /etc/vfstab and /kernel/drv/fp.conf files are preserved to allow the changes to be backed out if necessary.

For x86-based systems, directly edit the fp.conf to change the value of mpxio-disable to “no.” (Disabling it will involve changing it to “yes.”) After the change, run a reconfiguration reboot.

To enable or disable multipathing on a per-port basis, the mpxio-disable parameter may be set on a port-specific line in the fp.conf. (Syntax guidance is included in the comments of the fp.conf file.)

mpathadm Commands
TaskCommand
List available multipathing support mpathadm list mpath-support
View properties for supported multipathing facilities. mpathadm show mpath-support facilityname
List initiator ports. mpathadm list initiator-port
Get initiator port properties. mpathadm show initiator-port portname
List available logical units. mpathadm list lu
Get logical unit properties. mpathadm show lu lunname
List logical units associated with a target port. mpatadm list lu -t portname
Configure auto-failback. mpathadm modify mpath-support -a off facilityname
Disable a path. mpathadm disable path -i initportname -t tgtportname -l luname

Adding Third Party Device Support

Support for many third-party devices is not contained in the default version of the configuration file at /kernel/drv/scsi_vhci.conf. The following shows the changes necessary to bring EMC Symmetrix support into the multipathing software:

# cat /kernel/drv/scsi_vhci.conf
#
# Copyright 2004 Sun Microsystems, Inc. All rights reserved.
# Use is subject to license terms.
#
#pragma ident "@(#)scsi_vhci.conf 1.9 04/08/26 SMI"
#
name="scsi_vhci" class="root";
...
# symmetric-option = 0x1000000;
device-type-scsi-options-list =
"EMC SYMMETRIX 5671", "symmetric-option";

symmetric-option = 0x1000000;

Unfortunately, the syntax on the scsi_vhci.conf file is incredibly picky. The vendor name must be exactly eight characters long, even if you have to pad it with spaces. The product ID can be “up to” 16 characters long, but most recommendations I've seen say to pad the product ID with spaces as well.

Fortunately, the scsi_vhci.conf file contains helpful syntax comments.

No comments: