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:
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:
BOOLEAN
UINT32
UINT32
BOOLEAN
UINT32
UINT32
BOOLEAN
UINT32
UINT32
UINT32
UINT32
UINT32
UINT32
UINT32
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
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]*;
Use the following syntax for an ssd driver:
ssd-config-list = duplet [, duplet]*;
where, duplet is "VID PID", "tunable [, tunable]*"
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.
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 is the name:value pair.
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 FileThe 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 FileThe 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.
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;
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"
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.
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.
Property array consisting of a version number which is 1, a mask number, and tunable values to be set.
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.
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.
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.
|
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 PlatformThis 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.