SA
Section: Devices and Network Interfaces (4)
索引
jman
BSD mandoc
FreeBSD
索引
名称
sa
- SCSI シーケンシャルアクセスデバイスドライバ
索引
書式
device sa0
device sa1 at scbus0 target 4 lun 0
索引
解説
sa
ドライバはサポートされている
SCSI
ホストアダプタを経由して、システムにアタッチされている
シーケンシャルなアクセスクラスのすべての
SCSI
デバイスへのサポートを提供します。
シーケンシャルアクセスクラスはテープなどのリニアなアクセスデバイスです。
SCSI
ホストアダプタは
SCSI
シーケンシャルアクセスデバイスが設定される前に
別にシステムに設定されていなければなりません。
索引
マウントセッション
ドライバは、テープがマウントされてからアンマウントされるまでの
期間として定義される
``マウントセッション
''
の概念に基づいています。マウントセッションの間にセットされた
任意のパラメータは、そのセッションの残り期間あるいは
テープが取り替えられるまで、有効になっています。
何からの方法でセッションをクローズすることで、
テープをアンマウントすることができます。
クローズする方法には次のようなものがあります。
-
以下に示すサブモード 00 にしたがい `巻戻しデバイス' をクローズする。例えば
/dev/rsa0。
-
ioctl(2)
の MTOFFL コマンドを使う。
mt(1)
の
`offline
'
コマンドを利用することにより可能です。
テープデバイスは排他的にオープンされるデバイスであることに
注意すべきです。制御モードデバイスがオープンされている場合は例外で、
必要な時 (例えばパラメータをセットする時) に限り排他的な
アクセスをする必要があります。
索引
サブモード
マイナー番号のビット 0 とビット 1 は
`サブモード'
として解釈されます。
サブモードの違いは、デバイスがクローズされた時の挙動にあります:
- 00
-
クローズされるとデバイスを巻戻します; もしテープに書き込まれていたら、
巻戻しが要求される前にファイルマークが書き込まれます。デバイスは
アンマウントされます。
- 01
-
クローズ後もテープがマウントされたままにします。
テープに書き込まれていたら、ファイルマークが書き込まれます。
それ以外にヘッドの移動は行なわれません。
さらに読み込んだり書き込んだりすると、最後に読み出された
り、あるいはファイルマークが書き込まれた後から直接行なわれます。
- 10
-
クローズされるとデバイスを巻き戻します。もしテープに書き込まれて
いたら、巻き戻し要求の前にファイルマークが書き込まれます。
巻き戻しが完了すると、アンロードコマンドが発行されます。
デバイスはアンマウントされます。
索引
ブロッキングモード
SCSI
テープは
`可変
'
あるいは
`固定
'
ブロックサイズモードで動くことができます。
ほとんどの
QIC
タイプのデバイスは固定ブロックサイズモードで動き、
ほとんどの 9 トラックテープと多くの新しいカートリッジフォーマットは
可変ブロックサイズを許容します。この二つの違いはつぎの通りです:
- 可変ブロックサイズ:
-
デバイスへの書き込み毎に、単一の論理レコードがテープに書き込まれます。
レコードの
一部分
をテープから読み込んだり書き込んだりすることはできません
(たとえ大きなブロックを要求して小さなレコードを読んでもです);
複数のブロックを読み込むこともできません。
すなわち、1 回の書き込みによるデータは 1 回で読み込まれます。
ブロックサイズは、デバイスすなわち
SCSI
アダプタとシステムがサポートしている任意の値です。
(大抵は 1 バイトから 64K バイトの間で、もっと大きくなる場合もあります。)
テープから可変長のレコードやブロックを読み込む時、
ヘッドは最後に読み込まれたアイテムの直後にあり、
次のアイテムの直前にあると考えられます。もし次のアイテムがファイルマークで、
まだ読まれていなかったとすると、読み込みですぐにそのファイルマークに
当たり、ファイル終端 (end-of-file) の通知を受けます。
- 固定ブロックサイズ:
-
ユーザが書き込んだデータは固定サイズのブロックの連続としてテープに
渡されます。それはメモリ中で連続しているかもしれませんが、
独立したブロックの連続と考えられます。
ブロックサイズの正確な整数倍ではない量のデータを読み込む
ことはできません。異なるレコード集合として、同じデータを読み込んだり
書き込んだりすることはできます。
言い換えると、一緒に書き込まれたブロックを別々に読み込むことが
できますし、逆もまた可能です。
ファイルの中に残っているものより多いブロックが要求されると、ドライブは
ファイルマークに遭遇するでしょう。返すべきデータが存在する
ので (ファイルマークより前にレコードが存在する限り)、
そのデータは返され、読み込みは成功します。
次の読み込みは直ちに 0 を返します。
(上のように、もしファイルマークが読まれないと、非巻き戻しモードの場合は
次の読み込み処理へ残ります)。
索引
ファイルマークの扱い
ファイルマークは自動的に扱われます。ユーザがテープに書き込み、
最後に書き込んでから読み込みをしなかった場合、デバイスをクローズ
する時にファイルマークがテープに書き込まれるでしょう。
書き込みの後に巻き戻し要求があると、ドライバはテープ上の最後のファイルが
書き込まれたと仮定し、テープに書き込まれた 2 つのファイルマークが存在
することを保証します。
これには例外があって、
ある種のテープは、実際には 2 つのファイルマークを書き込まず、
最後のファイルが読み込まれた時に `幻の' ファイルマークを報告するという
標準 (我々はこれに従いますが、どうしてそうするのか理解できません)
が存在するようです。
それらのデバイスには、QIC ファミリが含まれます。
(このデバイスは固定ブロックデバイスと同じかも
しれません。これはまだはっきりとしていませんが、現在ドライバは別の
振舞いとして扱っています。)
索引
IOCTL
sa
ドライバは
mtio(4)
のすべての ioctl をサポートしています。
索引
ファイル
- /dev/[n][e]rsa[0-9]
-
一般的な形 :
- /dev/rsa0
-
クローズ時に巻き戻し
- /dev/nrsa0
-
クローズ時に巻き戻さない
- /dev/erst0
-
クローズ時にイジェクトする (可能なら)
- /dev/rsa0.ctl
-
制御モードデバイス (他のプログラムがそのデバイスにアクセスしている間に
状態を検査するなどのためのもの)
索引
バグ
古いデバイスを扱うために必要な多くのハックが欠けています。
多くの古い
SCSI-1
デバイスは、このドライバでは正しく動かないでしょう。
特別なデバイス名に結合された、高密度および圧縮モードのサポートを
加える必要があります。
パーティションの利用による高速なインデックシングのサポートがありません。
索引
診断
ありません。
索引
関連項目
mt(1),
scsi(4),
sa(9)
索引
歴史
sa
ドライバは
CAM
SCSI
サブシステムのために Justin T. Gibbs と Kenneth Merry が書きました。
Julian Elischer が書き、
Mach
2.5 から移植した
st
デバイスドライバからはたくさんのアイディアを得ています。
現在、記録を所有しているのは、
テープドライバを破壊してきたあまりにも長い年月を
犠牲にしている Matthew Jacob です。
索引
Index
- 名称
-
- 書式
-
- 解説
-
- マウントセッション
-
- サブモード
-
- ブロッキングモード
-
- ファイルマークの扱い
-
- IOCTL
-
- ファイル
-
- バグ
-
- 診断
-
- 関連項目
-
- 歴史
-
Time: 07:07:24 GMT, January 12, 2009