SCSIとATAはまったく異なる標準です。現在、これらは両方ともINCITS標準化団体の支援の下で、異なるグループによって開発されています。SCSIは技術委員会T10の下にあり、ATAはT13の下にあります。1
ATAは、ハードディスクドライブのみを考慮して設計されました。SCSIはより広範かつ古く、大容量記憶装置、テープドライブ、リムーバブル光学メディアドライブ(CD、DVD、Blu-Ray ...)、スキャナー、およびその他の多くのデバイスタイプを制御する標準的な方法です。
IDEがPCの世界に導入された1980年代半ばには、SCSIがコンピューティングの世界の端に押し出されることは明らかではありませんでした。SCSIは十分に確立されており、より能力がありました。UnixワークステーションとMacintoshコンピューターには、SCSIハードディスクドライブが何十年も出荷されていました。ハイエンドPCには、少なくとも周辺機器用のSCSIカードが搭載されていることが多く、システムHDDにも搭載されていることがよくあります。初期のパーソナルコンピュータ用のCD-ROMおよびテープドライブは、最初にSCSI形式で登場しました。
しかし、PC業界はその通りであるため、SCSIの代わりに安価なATA標準を使用するよう求められました。最初の妥協案はATAPIと呼ばれ、ATAの拡張機能であり、SCSIを内部的に理解しているデバイスがATAインターフェイスを介してこれらのSCSIコマンドを受信できるようにします。詳細については、以下をご覧ください。
数年後、SCSIは、基本的にATAPIの逆であるATAコマンドパススルー機能を取得し、SCSIバスを介したATAコマンドを許可しました。この機能の用途の1つは、SCSIを介してATA SMARTコマンドをトンネリングすることです。たとえば、smartmontools
これを行います。
その後、INCITS T10委員会はSCSIコマンドをATAコマンドに、またはその逆に変換するSCSI / ATA変換(SAT)と呼ばれる標準を開発しました。2のLinuxカーネルのlibata
ライブラリが間、Linux用の土の実装を提供し、他のもの。
SCSIとATAプロトコルは両方ともハードディスクドライブを制御するため、これらのプロトコルには論理的なオーバーラップがあります。どちらも明らかに特定のハードドライブセクターを検索する方法、そのセクターのコンテンツを取得する方法などを必要とします。それにもかかわらず、コマンド形式はまったく異なります。そうでなければ、これらの変換およびパススルーメカニズムは必要ありません。
SATAは実際にSCSIと「対話」します
これは、「車はピンクです」という主張とほぼ同じです。一部の車はピンクです。
ATAPI、ATAパススルー、およびSATは、ストーリーの一部にすぎません。読む。
互換性のあるケーブルを共有していないため、物理層で異なることは当然と考えられます。
古いパラレルSCSIの世界ではそうでしたが、SATAがPATAに取って代わり、SASがパラレルSCSIに取って代わりました。
SASとSATAは同じドライブコネクタを共有し、電気的に互換性があります。SASコントローラーはSASおよびSATAデバイスと通信できますが、SASドライブはSATA専用コントローラーでは機能しません。違いはネゴシエーションにあり、ケーブルの両端のデバイスが何と通信しているかを把握した後に使用できるコマンドにあります。
実際、多くの「SATA RAID」コントローラーは実際にはSAS RAIDコントローラーです。このようなコントローラには、多くの場合、カードに1つ以上のSFF-8087 SAS嵌合コネクタがありますが、SFF-8087から4x SATAブレイクアウトケーブルを使用してSATAドライブを接続できます。したがって、2つのSFF-8087嵌合コネクタを備えたSAS / SATA RAIDカードは、最大8台のドライブを制御します。3
別の一般的な状況は、ホットスワップドライブエンクロージャまたはSAS バックプレーンを備えたコンピューターケースです。通常、バックプレーンにはSFF-8087コネクタがあり、バックプレーンからディスクコントローラーへの単純な8087-to-8087ケーブルを使用できます。ホットスワップトレイのドライブがSATAである場合、それは問題ではありません。SASコントローラは、SASバックプレーンにドライブを接続するドライブスレッドに座っているため、SASケーブルを介して通信できます。ただし、SCSIプロトコルではなく、ATAプロトコルについて言えば、ドライブはまだSATAドライブです。
ATAPIはSCSIのカプセル化であることも知っています
確かに、しかし、ATAPIはデバイスだけのために使用されている他のハードディスクドライブより。この標準が存在する主な理由は、ATAインターフェイスがテープドライブのストリーミングデータコマンド、光ディスクドライブの「メディアの取り出し」コマンド、CDオーディオディスクの「トラックの再生」コマンドなどのSCSIコマンドを転送できるようにするためです。 。
ATAPIを介してSCSIを使用していた非HDDデバイスが消えるか、他のインターフェイスに移行するにつれて、この事実は重要性を失います。ローエンドのテープドライブはもはや存在しないため、テープドライブはすべてSASになりました。4最近のスキャナーは、ほとんどUSB専用です。光学式メディアドライブは、USB経由で接続するためにコンピューターケースの外に移動するか、完全に消えて、ATAPIを話すますます希少な内部光学式ドライブを残しています。
いずれにしても、SCSI over ATAPIを理解するSATAデバイスは、限られた方法でのみ「SCSIデバイス」です。そのようなデバイスは、SCSIを介したSASの利点のほとんどから恩恵を受けません。これらの機能により、SASはSATA、ATAPIに比べて明らかに価値があります。
別の車のアナロジーが必要な場合、楕円形のレーストラックで自分の車を走らせることができるという事実は、レースカーにはなりません。
NCQ、FUA、DPOなどのSCSIの機能(間違って覚えていない場合)がSCSIから採用されていることに気付きました。しかし、実際にどのくらいのSCSIコマンドセットが共有されているか、類似しているのかは不明です。
ほとんどこれはローエンドの模倣になります。たとえば、NCQはTCQと同じものではありません。SASデバイスの場合、TCQを備えたハードドライブのみを取得できます。NCQ対応のSATAドライブをSASコントローラーに接続すると、突然TCQ機能が得られません。
とはいえ、最近のSATAデバイスは10年前のSCSIデバイスよりもはるかに優れた機能を備えている可能性があります。確かに、はるかに高いレベルのI / Oが可能になるでしょう。
これはすべて、PCハードウェアの世界の性質であるため、混乱を招き、重複しています。オプティカルドライブメーカーは、1つのサブ業界を選択するだけで、完全に異なる2つのドライブを構築したくないため、明確なラインはありません。だから、彼らは妥協します。彼らは、そのような標準を定義する委員会に働きかけて、SATAドライブをSASバスにドロップできる単一の標準を作成しました。
これに関する明確な情報、特にLinuxカーネルとの関係はどこで見つけることができますか?
最終的には、Linuxソースを読みたいと思います。libATA
開発者ガイドも参考にする必要があります。
これがどのように機能するかについての簡単な要約は知りません。簡単に設計されていません。30年にわたるハードウェアの進化、競合する標準、異なる目標に対応するように設計されました。さらに、魔法のようなレベルの先見性なしに設計されました。要するに、それは混乱です。混乱の仕組みを本当に知っている必要があるのは、OSカーネルを構築している人、ハードウェアを設計している人、そしてそれほどではないがOSカーネルのドライバを書いている人だけです。そのような非常に有能な人々の小さな幹部にとっては、標準と作業コードで十分です。
今日、Linuxはほとんどの書き換え可能な大容量記憶装置を呼び出しています/dev/sd?
。「SD」はかつて「SCSIディスク」の略で、単に/dev/hd?
「ハードディスク」という一般的な意味と区別するために存在していましたが、ほとんどの場合PATAを意味します。この区別は、今日のもう1つの実用的な無関係です。現在、SSD、USBサムドライブ、仮想ハードドライブ、iSCSIデバイスなど、すべてが呼び出されてい/dev/sd?
ます。デバイスが「ATA over SATA」、「ATA over Ethernet」、「SCSI over USB」、「SCSI over ATAPI」、「SCSI over SAS」、「SCSI over IP(iSCSI )、またはあなたは何を持っています。
中心的な問題は、多くの場合、命名スキームがスキームの背後にある理由より長引くことです。これはにあり/dev/scd0
ます。その/dev
ノードに接続されているデバイスは、最近ではコンパクトディスクドライブよりもDVDまたはブルーレイドライブである可能性が高くなります。
別の方法(/dev
ノードに接続されている正確なデバイスタイプに基づいて各ノードに名前を付ける)には、独自の問題があります。/dev
使用した低レベルプロトコルに基づいてノードに名前を付けると本当に良いでしょうか?/dev/atapi0
、/dev/sas0
など?それとも、あなたはそれを好む/dev/atapibluray0
でしょうか?マルチメディアドライブはどうですか?/dev/atapicd0
コンパクトディスクをBlu-Rayドライブにスライドさせる場合、同じドライバーも公開する必要がありますか?これは、混乱を招くスキームを別のものに置き換えるだけです。
Linuxの/dev/sd?
抽象化は完璧ではありませんが、便利です。たとえば、/dev/sda
その名前の背後にあるケーブル、インターフェイスプロトコル、およびメディアを気にすることなく、ほとんどの場合ブートドライブであるという事実を知ることができます。特定のLinuxボックスに単一のシステムドライブ、オプティカルドライブがあり、USBサムドライブが接続されている場合があることを伝えると、それぞれ/dev/sda
、/dev/sdb
およびが呼び出されていると自信を持って推測でき/dev/sdc
ます。
脚注:
SCSIとATAは、親標準組織の共有を開始しませんでした。どちらも独自のハードディスクコントローラーとしてスタートしました。SCSIはShugart AssociatesのSASIから発展し、ATA / IDEは、Western Digital、Compaq、およびCDCの間の設計コラボレーションから生まれました。
ANSIは後に両方を標準化し、約1年後にATA-1をSCSI-1に準拠させました。
INCITSはANSIの一種の姉妹組織です。INCITSは、米国のANSIおよび世界中のISO / IEC JTC 1を通じて最終標準を公開しています。
現在の標準であるSAT-3 SAT-4で、2015年5月に発表された、とSAT-5 進行中で、私は七月中旬2018でこれを書いている後者のリンクは、進行中のバージョンのドラフトが表示されます。
SATAポートマルチプライヤ、SASエクスパンダなどを無視しています。
古いパラレルSCSIシステムとの互換性のために作られたモデルを除きます。