FreeBSD(98) ハンドブック : 30分でわかるシステムの再構築 : SCSIサブシステムとbsドライバについて : 指定方法
Previous: SCSIサブシステムとbsドライバについて
Next: 運用時の注意事項

1.3.1. 指定方法

FreeBSD(98)では 2.0.5以降、複数の同種 SCSIデバイスに対して自動的に ユニット番号を割り付ける機能があります。よって一般的には 以下のように指定しておけば起動時に SCSIバスに接続された ハードディスク、光磁気ディスク、テープ、CD-ROM のそれぞれの数が いくつであっても自動的に番号が振られて使用可能な状態になります。 インテリジェントな SCSI I/F が主流となっている AT互換機では、 SCSI機器の構成を変更したりした場合にも自動的に対応できる この指定方式が推奨されています。 <hr>

    controller      scbus0
	
    device          sd0
    device          od0
    device          st0
    device          cd0
    
<hr>

一方 従来との互換性のために以下のように割り付けを指定して 固定する事もできます。そして bsドライバでは、各 SCSI機器に対応した 転送レートを管理するなどの、インテリジェントな SCSI I/F ではカード上の CPU がやってくれることを FreeBSDカーネルが行わなければならないために、 以下のように個々のデバイスを指定して記述することを推奨します。 (指定しなくても動作に支障のない場合がほとんどですが SCSI機器の 性能を引き出すためには flags の指定が重要になるからです。) <hr>

    controller scbus0 at bs0 bus0
  
    device  sd0     at scbus0 target 0 unit 0 flags 0x320c000b
    device  sd1     at scbus0 target 2 unit 0 flags 0x320c000b
    device  sd2     at scbus0 target 3 unit 0 flags 0x320c000b
    device  od0     at scbus0 target 4 unit 0 flags 0x00000106
    device  st0     at scbus0 target 5 unit 0 flags 0x00000107
    device  cd0     at scbus0 target 6 unit 0 flags 0x00000106
    
<hr>

`at scbus0'の部分は どのSCSIサブシステムにぶら下がるか (すなわち どの SCSIボードを使用するか) を指定します。

`target 0'の部分は SCSI IDを指定して下さい。

`unit 0'の部分は LUN(論理ユニット番号)を指定します。 たいていの場合は 0です。

`flags'の部分は それぞれの機器に対してどのようなアクセス方法を とるかを指定します。この値は使用するデバイスごとに最適値が 異なっています。

flagsでは 32bit を以下のように いくつかのフィールドに 区切って転送速度などのパラメータを指定します。

     MSB                                                           LSB
     +---------------+---------------+-+---------+-+-+-----+-+-+-+-+-+
     |3 3 2 2 2 2 2 2|2 2 2 2 1 1 1 1|1|1 1 1 1 1| | |     | | | | | |
     |1 0 9 8 7 6 5 4|3 2 1 0 9 8 7 6|5|4 3 2 1 0|9|8|7 6 5|4|3|2|1|0|
     +---------------+---------------+-+---------+-+-+-----+-+-+-+-+-+
     |      s        |      F        |n|    r    |n|n|  r  |q|l|w|d|s|
     |      y        |      I        |o|    s    |o|o|  s  |t|i|a|i|y|
     |      n        |      F        | |    v    | | |  v  |a|n|i|s|n|
     |      c        |      O        |S|    d    |p|s|  d  |g|k|t|c|c|
     |               |               |M|    2    |a|a|  1  | | | | | |
     |      r        |      s        |I|         |r|t|     | | | | | |
     |      a        |      i        |T|         |i| |     | | | | | |
     |      t        |      z        | |         |t| |     | | | | | |
     |      e        |      e        | |         |y| |     | | | | | |
     +---------------+---------------+-+---------+-+-+-----+-+-+-+-+-+
  
    + sync        1で同期転送、0で非同期転送
    + disc        1でdisconect/reselectをサポート、0で使用しない
    - wait        1で他のターゲットと競合するバス調停を禁止、0で許可
    + link        1でコマンドリンクを使用、0なら使用しない
      qtag        タグ付きキューのため予約
      rsvd1       予約
    - no sat      1でWD33C93のコンビネーションコマンドを使用しない、0なら使用
    + no parity   1でパリティラインを監視しない、0なら監視する
      rsvd2       予約
    - no SMIT     1でSMIT転送を禁止、0で許可(ボードがサポートしていれば)
      FIFO size   同期転送時のバッファサイズ
      sync rate   同期転送速度(転送速度を0.1MB単位で表す)
    

`+'をつけたオプションは 1にすると効率向上の効果があり、 `-'をつけたオプションは1にすると効率が下がります。

sync rateについては転送速度を0.1MB単位で表した数字になります。 例えば 5MB/secの場合は 5MB/sec = 50 * 0.1MB/secなので 0x32になります。

flagsを省略した場合はデフォルト値として 0xffff0301 が使用されます。 これは以下の指定になります。

ハードディスクについては 0x320c0003 をとりあえず用いると良いでしょう。 また CD-ROMや MOなどは 0x020c0304 あたりを指定して、 そこからチューニングしていくと良いと思います。


FreeBSD(98) ハンドブック : 30分でわかるシステムの再構築 : SCSIサブシステムとbsドライバについて : 指定方法
Previous: SCSIサブシステムとbsドライバについて
Next: 運用時の注意事項