在 Oracle® Solaris 11.2 中管理 SAN 设备和多路径

退出打印视图

更新时间: 2014 年 12 月
 
 

调优磁盘目标驱动程序属性

此附录介绍如何通过使用 sd-config-listssd-config-list 全局属性,在 .conf 文件中调优 Oracle Solaris 磁盘目标驱动程序(sdssd 驱动程序)属性。

该附录介绍了以下用于调优磁盘目标驱动程序属性的格式:

磁盘驱动程序的可调参数

用于调优磁盘驱动程序的可调参数使用以下前缀类别:

  • BCD-二进制编码的十进制,如Table D–1 中所示

  • delay-发出重试时的延迟时间

  • timeout-进程允许的最大时间

  • reset-重置控制

  • retries-失败之前的重试次数

  • throttle-活动控制

Oracle Solaris 10 和 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

仅在 Oracle Solaris 11 中受支持的可调参数全都是 BOOLEAN 数据类型。这些参数包括:

  • cdb-suppress-dpofua

  • mmc-gesn-polling

  • power-condition


注 -  BOOLEAN 值必须为 TRUEFALSE

用于调优磁盘驱动程序的名称:对格式

sdssd 驱动程序支持 JSON 文本名称:值格式,从而支持设置特定的可调参数属性值。

sd 驱动程序使用以下语法:

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

注 -  请确保用分号作为条目的结尾,否则配置将无效,属性将保留其缺省值。

ssd 驱动程序使用以下语法:

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

其中 duplet 为 "VID PID", "tunable [, tunable]*"

VID

设备的供应商标识 (vendor identification, VID) 字段的内容响应 SCSI INQUIRY 命令。VID 字段长度必须为八个字符。如果 VID 字段少于八个字符,则必须添加空格使 VID 的长度达到八个字符。请参见Example D–1

PID

设备的产品标识 (product identification, PID) 字段的内容响应 SCSI INQUIRY 命令。PID 最多可以包含 16 个左对齐的字符。如果提供的字符不到 16 个,则仅对您提供的 PID 长度进行比较。

tunable[, tunable] *

tunable名称:对。


注 -  如果可调参数拼写错误或者条目不以分号结尾,则配置无效,设备属性将保留其缺省值。

当 SCSI INQUIRY 命令返回的前缀值与 sd-config-listssd-config-list 中的 PID 相同时,则认为 PID 值是一个匹配项。例如,如果 CMS200sd-config-listssd-config-list 条目中的 PID,那么,当 SCSI INQUIRY 命令返回的 PIDCMS200-RCMS200-TCMS200-UV10 时,它们都被视为匹配项。


在 SPARC 平台上,目标设备可以绑定到 sdssd 驱动程序,具体取决于设备是否为 FC 设备以及设备上是否启用了 MPxIO。可以使用 prtconf 命令检查设备配置信息。请参见 prtconf(1M) 手册页。

示例 D-1  在一个 sd.conf 文件中配置两个目标设备

以下示例说明了如何在一个 sd.conf 文件中配置两个目标设备 SAMPLESUM

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

在此示例中,对于设备 SAMPLEVIDSAMPLEPIDSTTU1234566AB。重试之前的延迟时间设置为 6 秒。

对于设备 SUMVIDSUMPIDABC200_R。针对 I/O 忙状态的重试次数设置为 5。最大限制值设置为 300

示例 D-2  在一个 ssd.conf 文件中配置两个目标设备

以下示例说明了如何在一个 ssd.conf 文件中配置两个目标设备 GATESSINE

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

在此示例中,对于设备 GATESVIDGATESPIDAB568536611CD46Greset-lun 可调参数的值为 TRUE 时表示重置 LUN。

对于设备 SINEVIDSINEPIDXYZ200_R。I/O 未就绪时的重试次数设置为 6。最小限制值设置为 200

用于调优磁盘驱动程序的位掩码格式

可以通过使用位掩码格式(也称为 Version1 格式)调优参数。位掩码格式包括 sd-config-list 属性,其中包含属性数组条目。

sd 驱动程序使用以下语法:

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

注 -  请确保用分号作为条目的结尾,否则配置将无效,属性将保留其缺省值。

ssd 驱动程序使用以下语法:

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

其中 duplet 为 "VID PID", "sd-ver1-conf-data"

VID

设备的供应商标识 (vendor identification, VID) 字段的内容响应 SCSI INQUIRY 命令。VID 字段长度必须为八个字符。如果供应商标识字段少于八个字符,则必须添加空格使 VID 的长度达到八个字符。

PID

设备的产品标识 (product identification, PID) 字段的内容响应 SCSI INQUIRY 命令。PID 最多可以包含 16 个左对齐的字符。如果提供的字符不到 16 个,则仅对您提供的 PID 长度进行比较。

sd-ver1-conf-data

属性数组由一个版本号 1、一个掩码号和要设置的可调参数值组成。

mask

0x010x7FFFF 之间的值。mask 的值有时可以是多个所需标志的 OR 运算结果。Table D–1 显示了每个可调参数的位值。

value-sequence

对应于 mask 值的有效属性值序列和 0 的数量。value-sequence 的长度限制为 19 个字符。有关可调参数的数据类型,请参见磁盘驱动程序的可调参数


注 -  具有不同 VIDPID 的 duplet 共享相同的 sd-ver1-conf-data 属性数组,或者定义自己的属性数组。可以定制属性数组名称。

当 SCSI INQUIRY 命令返回的前缀值与 sd-config-listssd-config-list 中的 PID 相同时,则认为 PID 值是一个匹配项。例如,如果 CMS200sd-config-listssd-config-list 条目中的 PID,那么,当 SCSI INQUIRY 命令返回的 PIDCMS200-RCMS200-TCMS200-UV10 时,它们都被视为匹配项。


每个位的位置定义取决于平台。可调参数可能对应于不同平台上的不同标志值。Oracle Solaris 11 和 Oracle Solaris 10 支持采用位掩码格式的由 19 个可调参数组成的相同集合。

下表列出了不同平台上的可调参数及其标志值。

表 D-1  不同平台上支持的可调参数及其标志值
标志值
SPARC 上的 sd 驱动程序
SPARC 上的 ssd 驱动程序
x86 或 x64 上的 sd 驱动程序
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
示例 D-3  在 x86 平台上配置 sd 驱动程序的可调参数

此示例说明了如何在 x86 平台上调优 sd.conf 文件中参数。

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;

在此示例中,对于设备 SUMVIDSUMPIDABC200_R

掩码值 0x8010x008000x00001 标志的按位或值。这些值是 x86 平台上的 retries-busythrottle-max 可调参数。

示例 D-4  在 SPARC 平台上配置 ssd 驱动程序的可调参数

此示例说明了如何在 SPARC 平台上调优 sd.conf 文件中的参数。

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;

在此示例中,对于设备 SUMVIDSUMPIDXYZ200_R

掩码值 0x50x000040x00001 标志的按位或值。这些值是 SPARC 平台上的 retries-busythrottle-max 可调参数。

如果某个 .conf 文件包含多个 sd-config-listssd-config-list 条目,用于调优同一个目标设备,则仅第一个条目生效。具有相同 VIDPID 的所有后续条目将被忽略。对于位掩码格式和名称:值对格式,此行为是相同的。

如果某个 sd-config-list 属性包含多个具有相同 VIDPID 的 duplet,则条目顺序中的后续指定优先,并替换在较早的 duplet 中出现的值。对于位掩码格式和名称:值对格式,此行为是相同的。

在位掩码格式中,如果 value-sequence 参数的长度大于 19 个字符,则第 19 个字符之后的值会被忽略。如果 value-sequence 的长度小于 19 个字符,则配置结果取决于其前面的 mask 值。如果 mask 值中标志位的对应值位置为空,则将导致在目标驱动程序中为该属性分配一个随机值。

目标驱动程序不为 .conf 文件提供语法检查,因此对于诸如可调参数名称拼写错误和 value-sequence 条目不正确之类的错误,不会出现警告消息。