SA(4) FreeBSD カーネルインタフェースマニュアル SA(4)
名称
sa − SCSI シーケンシャルアクセスデバイスドライバ |
書式
device sa0 |
device sa1 at scbus0 target 4 lun 0 |
解説 |
sa ドライバはサポートされている SCSI ホストアダプタを経由して、システムに アタッチされているシーケンシャルなアクセスクラスのすべての SCSI デバイス へのサポートを提供します。シーケンシャルアクセスクラスはテープなどのリニ アなアクセスデバイスです。 SCSI ホストアダプタは SCSI シーケンシャルアクセスデバイスが設定される前に 別にシステムに設定されていなければなりません。 |
マウントセッション
sa ドライバは、テープがマウントされてからアンマウントされるまでの期間とし て定義される ‘‘マウントセッション’’ の概念に基づいています。マウントセッ ションの間にセットされた任意のパラメータは、そのセッションの残り期間ある いはテープが取り替えられるまで、有効になっています。何からの方法でセッ ションをクローズすることで、テープをアンマウントすることができます。ク ローズする方法には次のようなものがあります。 |
1. 以下に示すサブモード 00 にしたがい ‘巻戻しデバイス’ をクローズする。例えば /dev/rsa0。
2. 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]
一般的な形 : バグ |
古いデバイスを扱うために必要な多くのハックが欠けています。多くの古い SCSI-1 デバイスは、このドライバでは正しく動かないでしょう。 特別なデバイス名に結合された、高密度および圧縮モードのサポートを加える必 要があります。 パーティションの利用による高速なインデックシングのサポートがありません。 |
診断
ありません。 |
関連項目
歴史
sa ドライバは CAM SCSI サブシステムのために Justin T. Gibbs と Kenneth Merry が書きました。 Julian Elischer が書き、 Mach 2.5 から移植した st デ バイスドライバからはたくさんのアイディアを得ています。 現在、記録を所有しているのは、テープドライバを破壊してきたあまりにも長い 年月を犠牲にしている Matthew Jacob です。 FreeBSD October 15, 1998 FreeBSD |