EN JA
ADA(4)
ADA(4) FreeBSD Kernel Interfaces Manual ADA(4)

名称

adaATA Direct Access デバイスドライバ

書式

device ada

解説

ada ドライバは、CAM サブシステムによってサポートされるホストアダプタを通してシステムにアタッチされる ATA コマンドプロトコルを実装する、ダイレクトアクセスデバイスのサポートを行います。

また、ホストアダプタは、 ATA ダイレクトアクセスデバイスが設定される前に、別々にシステムに設定されなければなりません。

コマンドキュー

コマンドキューによって、デバイスは、しばしば、シークの回数と長さを減少するために再順序付し、同時に複数のトランザクションを処理できます。 ATA は、2 つのタイプのキューを定義します: TCQ (タグ付けをされたコマンドキュー、PATA legacy) と NCQ (ネイティブのコマンドキュー、SATA) です。 ada デバイスドライバは、サポートされるとき、NCQ を完全に利用します。現在のヘッド位置に近いサービス要求によって無期限に延期されるメディアの遠隔部分へのトランザクションが、タイミング良く完了されることを保証するために、順序付けられたトランザクションが、連続したデバイス操作の間に、7 秒毎に送信されます。

キャッシュ効果

多くのダイレクトアクセスデバイスは、読み込みと/または書き込みキャッシュを備えています。デバイスのキャッシュに影響するパラメータは、デバイス IDENTIFY データで報告され、 camcontrol(8) ユーティリティを通して検査され、変更できます。

読み込みキャッシュは、使用頻度の高いデータと同様に、デバイスで開始される先読み操作からのデータを格納するために使用されます。読み込みキャッシュは、ユーザにとって透過的であり、少しの悪影響なしで有効にすることができます。読み込みキャッシュがあるほとんどのデバイスは、それが有効にされている状態で工場から出荷されます。

書き込みキャッシュは、書き込み操作の待ち時間を大いに減少させ、デバイスが効率と性能を増加するために書き込みを再編成することができます。この性能を獲得することは、高くつきます。キャッシュがコミットされない書き込み操作を含んでいる間に、デバイスの電源が落ちるなら、これらの書き込みは、失われます。ファイルシステムで書き込みトランザクションの損失の影響は、非決定論的であり、データの破損を起こすかもしれません。ほとんどのデバイスは、最近完了すると報告されたいくつかのトランザクションへの脆弱性を制限するために書き込みトランザクションに時間を掛けますが、それにもかかわらず、Uninterruptible Power Supply (UPS) に存在する書き込みキャッシュが有効にされたデバイスがあるシステムで推奨されます。 ada デバイスドライバは、キャッシュとメディアがデバイスの最終的なクローズで、または予期していなかったシャットダウン (パニック) イベントで同期することを確実にします。いったんオペレーティングシステムが、それが停止したと報告されると、これは、電源を切断することが安全であることを確実にします。

SYSCTL 変数

次の変数は、 sysctl(8) 変数と loader(8) 調整変数の両方で利用可能です:
kern.cam.ada.retry_count

この変数は、 ada ドライバが何回 READ または WRITE コマンドを再試行するかを決定します。これは、プローブ時間の間に使用される再試行の数または ada ドライバダンプルーチンに影響しません。この値は、現在、4 をデフォルトとします。

kern.cam.ada.default_timeout

この変数は、 ada ドライバが、未解決のコマンドをタイムアウトする前にどれくらい長くウェートする (待つ) かを決定します。この値のための単位は、秒で、デフォルトは、現在、30 秒です。

kern.cam.ada.spindown_shutdown

この変数は、シャットダウンするとき、ディスクをスピンダウンするかどうかを決定します。スピンダウンを有効にするためには、1 に設定し、無効にするためには、0 に設定します。デフォルトは、現在有効にされています。

kern.cam.ada.write_cache
kern.cam.ada. X .write_cache

これらの変数は、デバイスの書き込みキャッシュが全体的に、またはデバイス毎に有効にされるべきか、または無効にされるべきであるかを決定します。書き込みキャッシュを有効にするには、1 に設定し、無効にするには、0 に設定し、そのままにするには、-1 に設定します。実行時に変更された値は、デバイスのリセットの後にだけ効力を生じます。全体的なデフォルトは、現在有効にされています。デバイス毎のデフォルトは、(全体的な設定に続いて) そのままにされます。

関連ファイル

/dev/ada*
ATA デバイスノード

関連項目

ahci(4), cam(4), da(4), siis(4)

歴史

ada ドライバは、 FreeBSD 8.0 ではじめて登場しました。

作者

Alexander Motin <mav@FreeBSD.org>
February 8, 2012 FreeBSD