Managing SAN Devices and Multipathing in Oracle® Solaris 11.2

Exit Print View

Updated: December 2014
 
 

Tuning Disk Target Driver Properties

This appendix explains how to tune the Oracle Solaris disk target driver (sd or ssd driver) properties in the .conf file by using the sd-config-list or ssd-config-list global property.

The appendix describes the following formats for tuning disk target driver properties:

Tunable Parameters for Disk Drivers

The tunable parameters to tune a disk driver uses the following prefix categories:

  • BCD – Binary-Coded-Decimal as shown in Table D–1

  • delay – Delay time in issuing a retry

  • timeout – Maximum time allowed by a process

  • reset – Reset control

  • retries – Number of retries before failure

  • throttle – Activity control

The following tunable names and their data types are supported by Oracle Solaris 10 and Oracle Solaris 11:

cache-nonvolatile

BOOLEAN

controller-type

UINT32

delay-busy

UINT32

disksort

BOOLEAN

emulation-rmw

UINT32

physical-block-size

UINT32

reset-lun

BOOLEAN

retries-busy

UINT32

retries-timeout

UINT32

retries-notready

UINT32

retries-reset

UINT32

rmw-type

UINT32

timeout-releasereservation

UINT32

throttle-max

UINT32

throttle-min

UINT32

The tunable parameters that are supported only in Oracle Solaris 11 are all BOOLEAN data types. The parameters are:

  • cdb-suppress-dpofua

  • mmc-gesn-polling

  • power-condition


Note -  The BOOLEAN value must be either TRUE or FALSE.

Name:Value Pair Format to Tune Disk Drivers

The sd and ssd drivers support the JSON-text name:value format, which enables you to set specific tunable property values.

Use the following syntax for an sd driver:

sd-config-list = duplet [, duplet]*;

Note -  Be sure to end the entry with a semicolon or the configuration will be invalid and the properties will retain their default values.

Use the following syntax for an ssd driver:

ssd-config-list = duplet [, duplet]*;

where, duplet is "VID PID", "tunable [, tunable]*"

VID

Content of the vendor identification (VID) field of the device response to a SCSI INQUIRY command. The VID field must be eight characters in length. If the VID field is less than eight characters, you must add whitespaces to make the length of the VID to eight characters. See Example D–1.

PID

Content of the product identification (PID) field of the device response to a SCSI INQUIRY command. The PID can contain a maximum of 16 left-adjusted characters. If you provide less than 16 characters, then the comparison is limited to the length of the PID that you have provided.

tunable[, tunable] *

tunable is the name:value pair.


Note -  If you misspell a tunable or do not end the entry with a semicolon, the configuration is invalid and the device properties will retain their default values.

The PID value is considered a match when the prefix value returned by the SCSI INQUIRY command and the PID in the sd-config-list or ssd-config-list are same. For example, if CMS200 is the PID in the sd-config-list or ssd-config-list entry and if the PID returned by the SCSI INQUIRY command is CMS200-R, CMS200-T, or CMS200-UV10 would all be considered a match.


On a SPARC platform, the target devices can be bound to sd or ssd driver depending on whether the device is an FC device and whether MPxIO is enabled on the device. You can use the prtconf command to check the device configuration information. See the prtconf(1M) man page.

Example D-1  Configuring Two Target Devices in an sd.conf File

The following example shows how to configure two target devices SAMPLE and SUM in an sd.conf file.

sd-config-list = "SAMPLE  STTU1234566AB", "delay-busy:6000000000", 
                 "SUM     ABC200_R", "retries-busy:5, throttle-max:300";

In this example, for the device SAMPLE, the VID is SAMPLE and the PID is STTU1234566AB. The delay time before retrying is set to 6 seconds.

For the device SUM, the VID is SUM and the PID is ABC200_R. The number of retries on an I/O busy status is set to 5. The maximum throttle value is set to 300.

Example D-2  Configuring Two Target Devices in an ssd.conf File

The following example shows how to configure two target devices GATES and SINE in an ssd.conf file.

ssd-config-list = "GATES   AB568536611CD46G", "reset-lun:TRUE", 
                  "SINE    XYZ200_R", "retries-notready:6, throttle-min:200";

In this example, for the device GATES, the VID is GATES and the PID is AB568536611CD46G. The value TRUE for the reset-lun tunable parameter indicates that the LUN is reset.

For the device SINE, the VID is SINE and the PID is XYZ200_R. The number of retries when the I/O is not ready is set to 6. The minimum throttle value is set to 200.

Bit-Masking Format to Tune Disk Drivers

You can tune parameters by using the bit-masking format, also known as the Version1 format. The bit-masking format includes the sd-config-list property, which contains entries for the property array.

Use the following syntax for an sd driver:

sd-config-list = duplet [, duplet ]*;
sd-ver1-conf-data = 1, mask, value-sequence;

Note -  Be sure to end the entry with a semicolon or the configuration will be invalid and the properties will retain their default values.

Use the following syntax for an ssd driver:

ssd-config-list = duplet [, duplet ]*;
sd-ver1-conf-data = 1, mask, value-sequence;

where duplet is "VID PID", "sd-ver1-conf-data"

VID

Content of the vendor identification (VID) field of the device response to a SCSI INQUIRY command. The VID field must be eight characters in length. If the vendor identification field is less than eight characters, you must add whitespaces to make the length of the VID eight characters.

PID

Content of the product identification (PID) field of the device response to a SCSI INQUIRY command. The PID can contain a maximum of 16 left-adjusted characters. If you provide less than 16 characters, then the comparison is limited to the length of the PID that you have provided.

sd-ver1-conf-data

Property array consisting of a version number which is 1, a mask number, and tunable values to be set.

mask

Value between 0x01 to 0x7FFFF. The value of mask can sometimes be the OR result of multiple desired flags. Table D–1 shows the bit value of each tunable parameter.

value-sequence

Sequence of valid property values and number of 0's corresponding to the value of mask. The length limit for value-sequence is 19 characters. See Tunable Parameters for Disk Drivers for the data type of tunable parameters.


Note -  The duplets with different VIDs and PIDs either share the same sd-ver1-conf-data property array or define their own property array. You can customize the property array name.

The PID value is considered a match when the prefix value returned by the SCSI INQUIRY command and the PID in the sd-config-list or ssd-config-list are same. For example, if CMS200 is the PID in the sd-config-list or ssd-config-list entry and if the PID returned by the SCSI INQUIRY command is CMS200-R, CMS200-T, or CMS200-UV10 would all be considered a match.


The definition of each bit's position depends on the platform. A tunable might correspond to a different flag value on a different platform. Both Oracle Solaris 11 and Oracle Solaris 10 support the same set of 19 tunable parameters in the bit-masking format.

The following table lists the tunable parameters and their flag values on different platforms.

Table D-1  Supported Tunables and Their Flag Values on Different Platforms
Bit
Flag Value
sd Driver on SPARC
ssd Driver on SPARC
sd Driver on x86 or x64
1
0x00001
throttle-max
throttle-max
throttle-max
2
0x00002
controller-type
retries-notready
controller-type
3
0x00004
retries-notready
retries-busy
fab-devid
4
0x00008
fab-devid
fab-devid
disable_caching
5
0x00010
disable_caching
disable_caching
BCD-play
6
0x00020
retries-busy
controller-type
BCD-read-subchannel
7
0x00040
BCD-play
BCD-play
BCD-read-TOC-TRK
8
0x00080
BCD-read-subchannel
BCD-read-subchannel
BCD-read-TOC-ADDR
9
0x00100
BCD-read-TOC-TRK
BCD-read-TOC-TRK
no-READ-HDR
10
0x00200
BCD-read-TOC-ADDR
BCD-read-TOC-ADDR
CD-read-XD4
11
0x00400
no-READ-HDR
no-READ-HDR
retries-notready
12
0x00800
CD-read-XD4
CD-read-XD4
retries-busy
13
0x01000
retries-reset
retries-reset
retries-reset
14
0x02000
timeout-releasereservation
timeout-releasereservation
timeout-releasereservation
15
0x04000
tur-check
tur-check
tur-check
16
0x08000
throttle-min
throttle-min
throttle-min
17
0x10000
disksort
disksort
disksort
18
0x20000
reset-lun
reset-lun
reset-lun
19
0x40000
cache-nonvolatile
cache-nonvolatile
cache-nonvolatile
Example D-3  Configuring the Tunable Parameters for an sd Driver on an x86 Platform

This example shows how to tune the parameters in an sd.conf file on an x86 platform.

sd-config-list = "SUM     ABC200_R","sd-ver1-x86-example";
sd-ver1-x86-example = 1,0x801,300,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0;

In this example, for the device SUM, the VID is SUM and the PID is ABC200_R.

The mask value 0x801 is the bitwise OR value of 0x00800 and 0x00001 flags. These values are retries-busy and throttle-max tunable parameters on an x86 platform.

Example D-4  Configuring the Tunable Parameters for an ssd Driver on a SPARC Platform

This example shows how to tune the parameters in an ssd.conf file on a SPARC platform.

ssd-config-list = "SUM     XYZ200_R","sd-ver1-ssd-example";
sd-ver1-ssd-example = 1,0x5,300,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;

In this example, for the device SUM, the VID is SUM and the PID is XYZ200_R.

The mask value 0x5 is the bitwise OR value of 0x00004 and 0x00001 flags. These values are retries-busy and throttle-max tunable parameters on a SPARC platform.

If a .conf file contains multiple sd-config-list or ssd-config-list entries tune the same target device, only the first entry takes effect. All subsequent entries with the same VID and PID are ignored. This behavior is the same for both the bit-masking format and the name:value pair format.

If an sd-config-list property contains more than one duplet with the same with the same VID and PID, the succeeding specifications in the order of entries take precedence and replace the values that appeared in earlier duplets. This behavior is the same for both the bit-masking format and the name:value pair format.

In the bit-masking format, if the length of the value-sequence parameter is more than 19 characters, values after the 19th character are ignored. If the length of the value-sequence is less than 19 characters, the configuration result depends on its preceding mask value. If the corresponding value position of the flagged bit in the mask value is empty, then it results in a random value is assigned for that property in the target driver.

The target driver does not provide a syntax check for the .conf file so no warning messages for errors like misspelling of tunable names and incorrect entries for value-sequence.