この付録では、sd-config-list または ssd-config-list グローバルプロパティーを使用して、.conf ファイル内の Oracle Solaris ディスクターゲットドライバ (sd または ssd ドライバ) のプロパティーをチューニングする方法について説明します。
付録では、ディスクターゲットドライバのプロパティーをチューニングするための次の形式について説明します。
ディスクドライバをチューニングするチューニング可能パラメータでは次の接頭辞カテゴリを使用します。
BCD – Table D–1 に示す Binary-Coded-Decimal
delay – 再試行の発行の遅延時間
timeout - プロセスで許可される最大時間
reset – リセット制御
retries – 失敗までの再試行回数
throttle – アクティビティー制御
Oracle Solaris 10 および Oracle Solaris 11 では、次のチューニング可能パラメータ名とそれらのデータ型がサポートされています。
BOOLEAN
UINT32
UINT32
BOOLEAN
UINT32
UINT32
BOOLEAN
UINT32
UINT32
UINT32
UINT32
UINT32
UINT32
UINT32
UINT32
Oracle Solaris 11 でのみサポートされているチューニング可能パラメータはすべて BOOLEAN データ型です。パラメータ:
cdb-suppress-dpofua
mmc-gesn-polling
power-condition
sd および ssd ドライバは、特定のチューニング可能プロパティー値を設定できる JSON テキスト name:value 形式をサポートします。
sd ドライバには次の構文を使用します。
sd-config-list = duplet [, duplet]*;
ssd ドライバには次の構文を使用します。
ssd-config-list = duplet [, duplet]*;
ここで、duplet は「VID PID」、「tunable [, tunable]*」です
SCSI INQUIRY コマンドへのデバイス応答のベンダー ID (VID) フィールドの内容。VID フィールドは 8 文字の長さにする必要があります。VID フィールドが 8 文字未満の場合、VID の長さが 8 文字になるように空白を追加する必要があります。Example D–1 を参照してください。
SCSI INQUIRY コマンドへのデバイス応答の製品 ID (PID) フィールドの内容。PID には左揃えの 16 文字まで含めることができます。16 文字未満を指定した場合、比較は指定した PID の長さに制限されます。
tunable は name:value ペアです。
PID 値は、SCSI INQUIRY コマンドによって返された接頭辞値と sd-config-list または ssd-config-list の PID が同じである場合に、一致とみなされます。たとえば、CMS200 が sd-config-list または ssd-config-list エントリの PID であり、SCSI INQUIRY コマンドで返された PID が CMS200-R、CMS200-T、または CMS200-UV10 である場合、すべて一致とみなされます。
SPARC プラットフォームで、ターゲットデバイスが FC デバイスであるかどうか、およびデバイスで MPxIO が有効にされているかどうかによって、そのデバイスを sd または ssd ドライバにバインドできます。prtconf コマンドを使用して、デバイス構成情報をチェックできます。prtconf(1M) マニュアルページを参照してください。
使用例 D-1 sd.conf ファイルの 2 つのターゲットデバイスの構成次の例では、sd.conf ファイルで 2 つのターゲットデバイス SAMPLE および SUM を構成する方法を示します。
sd-config-list = "SAMPLE STTU1234566AB", "delay-busy:6000000000", "SUM ABC200_R", "retries-busy:5, throttle-max:300";
この例で、デバイス SAMPLE の場合、VID は SAMPLE で、PID は STTU1234566AB です。再試行までの遅延時間は 6 秒に設定されます。
デバイス SUM の場合、VID は SUM で、PID は ABC200_R です。I/O ビジーステータスでの再試行回数は 5 に設定されます。最大スロットル値は 300 に設定されます。
使用例 D-2 ssd.conf ファイルの 2 つのターゲットデバイスの構成次の例では、ssd.conf ファイルで 2 つのターゲットデバイス GATES および SINE を構成する方法を示します。
ssd-config-list = "GATES AB568536611CD46G", "reset-lun:TRUE", "SINE XYZ200_R", "retries-notready:6, throttle-min:200";
この例で、デバイス GATES の場合、VID は GATES で、PID は AB568536611CD46G です。reset-lun チューニング可能パラメータの TRUE の値は、LUN がリセットされることを示します。
デバイス SINE の場合、VID は SINE で、PID は XYZ200_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」です。
SCSI INQUIRY コマンドへのデバイス応答のベンダー ID (VID) フィールドの内容。VID フィールドは 8 文字の長さにする必要があります。ベンダー ID フィールドが 8 文字未満の場合、VID の長さが 8 文字になるように空白を追加する必要があります。
SCSI INQUIRY コマンドへのデバイス応答の製品 ID (PID) フィールドの内容。PID には左揃えの 16 文字まで含めることができます。16 文字未満を指定した場合、比較は指定した PID の長さに制限されます。
1 のバージョン番号、マスク番号、および設定されるチューニング可能値から構成されるプロパティー配列。
0x01 から 0x7FFFF までの値。mask の値は複数の目的のフラグの OR 結果にできる場合があります。Table D–1 に、各チューニング可能パラメータのビット値を示します。
mask の値に対応する有効なプロパティー値と 0 の数のシーケンス。value-sequence の長さ制限は 19 文字です。チューニング可能パラメータのデータ型については、ディスクドライバのチューニング可能なパラメータを参照してください。
PID 値は、SCSI INQUIRY コマンドによって返された接頭辞値と sd-config-list または ssd-config-list の PID が同じである場合に、一致とみなされます。たとえば、CMS200 が sd-config-list または ssd-config-list エントリの PID であり、SCSI INQUIRY コマンドで返された PID が CMS200-R、CMS200-T、または CMS200-UV10 である場合、すべて一致とみなされます。
各ビットの位置の定義はプラットフォームによって異なります。チューニング可能パラメータは異なるプラットフォームの異なるフラグ値に対応する場合があります。Oracle Solaris 11 と Oracle Solaris 10 はどちらもビットマスク形式の同じ一連の 19 個のチューニング可能パラメータをサポートしています。
次の表に、さまざまなプラットフォームでのチューニング可能パラメータとそれらのフラグ値を示します。
|
この例では 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;
この例では、デバイス SUM の VID は SUM で、PID は ABC200_R です。
マスク値 0x801 は 0x00800 および 0x00001 フラグのビット単位 OR 値です。これらの値は x86 プラットフォームでの retries-busy および throttle-max チューニング可能パラメータです。
使用例 D-4 SPARC プラットフォーム上の ssd ドライバのチューニング可能パラメータの構成この例では SPARC プラットフォームで ssd.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;
この例では、デバイス SUM の VID は SUM で、PID は XYZ200_R です。
マスク値 0x5 は 0x00004 および 0x00001 フラグのビット単位 OR 値です。これらの値は SPARC プラットフォームでの retries-busy および throttle-max チューニング可能パラメータです。
.conf ファイルに同じターゲットデバイスをチューニングする複数の sd-config-list または ssd-config-list エントリが含まれている場合、最初のエントリのみが有効になります。同じ VID と PID を持つ後続のエントリはすべて無視されます。この動作はビットマスク形式と name:value ペア形式のどちらでも同じです。
sd-config-list プロパティーに、同じ VID と PID を持つ複数の duplet が含まれる場合、エントリの順番で後の指定が優先され、以前の duplet に現れた値が置き換えられます。この動作はビットマスク形式と name:value ペア形式のどちらでも同じです。
ビットマスク形式では、value-sequence パラメータの長さが 19 文字を超える場合、 19 番目の文字より後の値は無視されます。value-sequence の長さが 19 文字未満の場合、構成結果はその前の mask 値によって異なります。mask 値のフラグが付けられたビットの対応する値の位置が空の場合、ターゲットドライバのそのプロパティーにランダムな値が割り当てられます。
ターゲットドライバは .conf ファイルの構文チェックを行わないため、チューニング可能パラメータ名のスペルミスや value-sequence の正しくないエントリなどのエラーについての警告メッセージを表示しません。