IBM PC のドライブの技術に関しては、この文書よりもずっと充実した議論が The Enhanced IDE/Fast-ATA FAQ の Web ページにあります。 これは Usenet ニュースにも定期的にポストされています。 また ATA と ATAPI の情報やソフトウェアを集めたサイト http://ata-atapi.com もあります。
ここではセットアップの際に必要となるドライブ関連技術の知識を かいつまんで示します。
ドライブとはデータを保持する物理デバイスのことです。 とてもたくさんの種類があり、 オペレーティングシステムからはどれも似たように見えますが、 中身は非常に異なっています。 それぞれがどのように機能しているかを知ることは、 後で行なうディスク配置の際に大きな助けとなるでしょう。 フロッピードライブに関しては今のところ無視していますが、 もし要望が多ければ将来追加するかもしれません。
ディスクドライブは 1〜数枚の円板 (platter) からなっており、 ここにデータが読み書きされます。 読み書きを行なうのは移動式のヘッドに固定されたセンサーです。 それぞれの円板に対応する「ヘッド」はひとつのアームに固定されていて、 すべてのヘッドが一緒に動きます。 従ってデータ転送は全部の円板の表面から同時にされることになり、 これがトラックの「シリンダ」となります。 またドライブは「セクタ」によっても分割されています。 セクタは多数のデータフィールドから構成されています。
これらシリンダ (Cylinder)、ヘッド (Head)、セクタ (Sector) の数 (以下 CHS と呼びます) のことをまとめて「ジオメトリ」と言います。 ドライブはこのジオメトリによって分類されます。
色々な理由から、今では以下のようなものの間で CHS データの変換がされるようになっています。
このようになってしまっているのは、 つまるところシステムの出来が悪いためで、 様々な混乱の原因となっています。もっと知りたい方には Large Disk mini-HOWTO を推薦しておきます。
訳注: Large Disk HOWTO の日本語訳 は JF にあります。
メディアの技術は、 ディスクの読み書き速度・シーク時間・記憶容量・ 書き込み可能かリードオンリーとなるかなどの 重要な要素を決定づけます。
読み書き可能な大容量記憶媒体として代表的なものです。 コンピュータ分野の通例にもれず、 様々な特性、機能のものが乱立しています。 読み書き可能な通常のメディアの中では最速のものと言って良いでしょう。 ディスクは一定の角速度で回転しています。 磁気媒体の面積を有効に利用できるように、 物理セクタの線密度はディスクの内側と外側で異なっています。 長さ当たりのビット数がだいたい一定になるように、 外側のトラックでの論理セクタの数を増やしてあるのです。
回転角速度は通常 4500 か 5400 RPM (rounds per minute: 一分間あたりの回転数) です。 7200 RPM のものも出まわっています。 ごく最近では 10000 RPM の製品も市場に出はじめているようです。 シーク時間は 10 ms 程度です。 転送速度はモデルによってだいぶ違いがありますが、 通常およそ 4〜40 MB/s 程度です。 高い性能を持ったドライブでは、 電力が余計に必要になることも忘れないでください。 この電力は最終的には熱に転化します。この点については 電力と発熱 の節を参照してください。
データの転送にはいくつかの段階があり、 それぞれ異なった単位が用いられることに注意してください。 まず磁気円板からドライブ内のキャッシュまでの転送があり、 これは通常 Mbits/s で表されます。 一般的には 50〜250 Mbits/s 程度のものが多いようです。 次にドライブ内に組み込まれたキャッシュからホストアダプタまでの転送があります。 これは MB/s で記述され、 3〜40 MB/s 程度であることが多いようです。 ただしこれはキャッシュの中にデータが存在している場合の 最高速度を表したものであり、実際の転送速度はもっとずっと低くなります。
光を利用した読み書き可能なディスクも存在していますが、 遅いのでそれほど一般的ではありません。 NeXT のマシンで用いられているようですが、 遅いせいで良く文句のタネになっています。 データの保存には相変化を用いますが、 このときの熱特性が書き込み速度を決めています。 たとえ強力なレーザを用いたとしても、 相変化を引き起こす温度変化にかかる時間は 磁気ドライブの磁気効果の時間よりも遅いのです。
今日では多くの人々が CD-ROM を利用するようになっています。 名前からわかるようにこれはリードオンリーです。 容量はおよそ 650 MB、転送速度はドライブによりますが 1.5 MB/s 以上のものもあるようです。 データは渦巻状の一本のトラックに保存されます。 したがってジオメトリは意味を持ちません。 データ密度はトラック上で一定で、 ドライブは線速度が一定になるように回転します。 トラックが渦巻であるためにシーク動作も低速で、 大体 100 ミリ秒程度です。 最近では線速度一定動作と角速度一定動作を組み合わせて 性能を最適化させるようにもなってきています。 これによりシーク時の回転速度合わせの動作が軽減されるため、 アクセス時間も短縮できます。
新型の光ディスク (DVD) も姿を現しつつあります。 これは一枚のディスクに 18 GB の容量を記録できます。
比較的最近利用されるようになった技術で、 ポータブルコンピュータや組み込みシステムではポピュラーになってきています。 動作部分が無いのでアクセスも転送も非常に高速です。 フラッシュ RAM が最も良く用いられていますが、他の形式もあります。 数年前には磁気バブルメモリが嘱望されたこともありましたが、 高価なので一般的にはなりませんでした。
ところで RAM ディスクを用いるのは一般に良くないとされています。 RAM ディスクにするメモリがあるなら、その分を OS に管理させ、 バッファやキャッシュ、プログラム領域、 データ領域などとして利用する方が有効だからです。 RAM ディスクが有効なのは非常に特殊な場合、 例えばタイムマージンの厳しい リアルタイムシステムなどだけであると考えてください。
今日では数 10 MB サイズのフラッシュ RAM が利用できるようになりましたので、
これを高速な一時記憶領域として利用したくなるかもしれません。
しかしこれには大きな問題があります。フラッシュ RAM には寿命があって、
再書き込みを行える回数に制限があるのです。
したがってこのようなデバイスをスワップや /tmp
,
/var/tmp
などにあてがうと、
これらの寿命を非常に縮めることになってしまいます。
そのかわりに、フラッシュ RAM を
「頻繁に読み込まれるがめったに書き込まれないディレクトリ」に用いると、
非常に性能が向上するでしょう。
フラッシュ RAM の寿命をより長くしたい場合は、 専用のドライバを用いて RAM の全領域を均等に用いたり、 ブロック消去の回数を減らしたりする必要があるでしょう。
これは「ディレクトリごとに割り当てるデバイスを変える」 ことによる利点を示す例であると言えます。
固体素子のディスクは実体としての CHS アドレスを持っていません。 しかし OS とのインターフェースを共通にするために、 ドライバが見せかけの CHS アドレスを割り当てるようになっています。
世の中には選ぶのに困ってしまうほど多種多様のインターフェースがあり、 価格や性能も様々です。最近のほとんどのマザーボードには、 新世代のチップセットの一部として IDE のインターフェースが付属しています。
SCSI インターフェース機能を持っているマザーボードも多くなりました。 これらは Symbios (以前の NCR) のチップを直接 PCI バスに接続しています。 お使いのマザーボードの機能と BIOS サポートを調べておくと良いでしょう。
むかしむかし、まだ 20 MB のハードディスクが羨望の目で眺められていた頃には、 これらは最先端の技術でした。今日の容量と比べると、 まるで恐竜がいた頃なんじゃないかとさえ思えますね。 これらの技術も恐竜同様すでに滅んでしまいました。 今日のものに比べると速度でも信頼性でも劣るからです。 Linux は MFM や RLL をサポートしていますが、 これらのインターフェースにドライブを繋ぐのは全くお勧めできません。 それでも強いて繋ぐなら、同じく過去の遺物である DOS を入れて、 緊急用のパーティションにしておくのがせいぜいでしょう。
ESDI は SMD に合わせて作られた技術でした。 SMD インターフェースは 「巨大な」コンピュータで広く使われたインターフェースですが、これを ST506 インターフェースで用いられていたケーブルセットに合わせるためのものが ESDI だったのです。 SMD で使われていた 60 ピン + 26 ピンのコネクタをペアで用意するより、 両者をまとめた ST506 のセットのほうが便利だったのでした。 ST506 は「間抜け」なインターフェースで、 コントローラとホストコンピュータにいろいろな作業をすべて任せていました (CHS の場所の計算、ヘッド位置の追跡などなど)。 ST506 にはコントローラが必要で、 これはリカバーされたデータからクロックを取り出したり、 メディア上でのトラック構造の物理的な位置を 1 ビットずつ制御したりするものでした。 MFM や RLL, ERLL/ARLL モジュレーション機構などを含めることにすれば、 ST506 はおよそ 10 年ほどの寿命を保ちました。 一方 ESDI はインテリジェントなインターフェースで、 1 ドライブあたり 3〜4 つものマイクロプロセッサを使うのが普通でした。 トラックのフォーマット、データ転送、シーク動作などの 高レベルのコマンドが使えました。 データストリームからのクロックリカバリや、 クロックラインのドライブと NRZ へのデータ表示もドライブ側でできました。 ただしエラー修正はコントローラの受け持ちでした。 ESDI では可変長ビット密度での記録も可能でした、 というか他にもいろいろなデータ変調技術が使えました。 データはドライブでローカルに生成・分解できたからです。 ESDI の技術は、その多くが後に IDE に取り込まれましたが、 SCSI がポピュラーになるにつれ、 コンピュータでは利用されないようになっていきました。 ESDI は 10 年の寿命を保ったと書きましたが、 それは PC でのことではなく、 サーバなど「巨大な」システムでのことでした。
その後の技術の進歩によって、 ドライブを制御する回路は ISA スロットからドライブ本体に置かれるようになり、 IDE (Integrated Drive Electronics) が誕生しました。 IDE は単純かつ安価で、またそれなりの速度を持っていたため、 多くの BIOS 設計者がこの技術を用いました。その結果 (コンピュータ業界には良くあることですが) 面倒な問題が起こりました。 ヘッド数が 16 までという IDE の制限と、シリンダ数が 1024 までという BIOS の制限が重ね合わさって、悪名高き 504 MB の制限が生れたのです。 さらにコンピュータ業界の伝統に習い、 この問題の解決にはその場しのぎのお粗末な方法が選択されました。 その結果全く互換性のない数多くの変換方法、 様々な仕様の BIOS が乱立しました。 この結果 Linux で BIOS からドライブ容量の情報を取得するのが非常に面倒になりました。 インストール文書を隅から隅まで丁寧に読み、 使っている BIOS の種類とバージョンを調べなければならなくなったのです。 しかし幸いなことに Linux では BIOS を経由せずに 直接カーネルにドライブのパラメータ (従って容量も) を渡すこともできます。 LILO と Loadlin のドキュメントを良く調べてみてください。 IDE と ATA (AT Attachment) とは同じものです。 IDE でのデータ転送は CPU 主導型の Programmed I/O (PIO) です。 より効率的な Direct Memory Access (DMA) 技術は使われていません。 転送速度の上限は 8.3 MB/s です。
この 3 つは大体同じものです。 Fast-ATA と ATA-2 は同じもので、 EIDE はこれにさらに ATAPI を加えたものです。 ATA-2 は今日非常に広く用いられており、 IDE より高速で DMA も使っています。 転送速度は 16.6 MB/s に増加しています。
より高速な新しい DMA モードで、 EIDE PIO-Mode 4 のおよそ2倍の速度 (33 MB/s) です。 Ultra-ATA モードを持つディスクと持たないディスクは同じケーブルで共存でき、 それによって高速な方のドライブのスピードが低下することもありません。 Ultra-ATA インターフェースは電気的にはノーマルの Fast-ATA インターフェースと等価で、ケーブルの最大長も同じです。
最新の製品は 66 MB/s 版の DMA/66 です。
ATA パケットインターフェースは IDE のポートで CD-ROM ドライブを利用するために設計されました。 IDE と同様、ATAPI は安価でシンプルです。
SCSI (Small Computer System Interface) は、 ドライブだけでなくディスクアレイやプリンタ、スキャナなど、 色々なものを繋げる多目的インターフェースです。 SCSI はマルチタスク環境に適しているため、 ワークステーションなどのハイエンド機に用いられてきました (したがって "Small" というのは正確ではないかもしれません)。
SCSI のバンド幅は標準で 8 ビットで、 8 つのデバイスを接続できます。 wide SCSI と呼ばれる規格ではバンド幅は 16 ビット (したがって転送クロックが同じなら転送量は 2 倍)、 接続可能なデバイスは 16 個となっています。 ホストアダプタもひとつのデバイスとみなされます。 普通は 7 番がホストアダプタの ID に割り当てられます。 32 ビットの wide バスを使うこともできますが、 この場合すべての信号線を接続するには、 通常ケーブルが 2 セット必要になります。
古い標準の規格では転送速度は 5 MB/s でしたが、新しい fast-SCSI では 10 MB/s に増えています。最近では ultra-SCSI (Fast-20 とも呼ばれます) という規格が定まり、 8 ビット幅のバスで 20 MB/s の転送量を持つようになりました。 最新の、低電圧差動信号 (Low Voltage Differntial signal: LVD signal) を用いる方式では、同程度の高い速度に加え、 以前よりずっと長いケーブルを使うことができます。
さらに最近には、もっと速い規格も導入されています。 SCSI 160 (もとの名前は SCSI 160/m) で、 16 ビット幅のバスを用い、 なんと 160 MB/s の能力を持っています。 実装はまだまだですが、 10000 RPMディスクの中には 40 MB/s の転送を定常的に行えるものもあります。 このようなディスクを 6 台集めて RAID にすれば、 こんなバスも飽和 (そして PCI バスも飽和) させてしまうことができます。 現段階では、明らかに最高級のハイエンドサーバ用のものです。 この規格に関するより詳しい情報は The Ultra 160 SCSI home page から入手できます。
最近 Adaptec は、彼らの 160 ホストアダプタ用の Linux ドライバの 発表をしました。詳しいことがわかりしだい、ここでもお知らせします。
通常 SCSI は (E)IDE よりも高性能ですが、価格も高い場合が多いようです。 ドライブも SCSI の方が IDE より性能が高い場合が多いです。 一方デバイスを追加するのは SCSI の方が簡単で、 ほとんどの場合は単にデバイスを抜き差しするだけです (中には電源を入れたままでこれをやる人もいます)。 これは複数のシステムを持っている場合には非常に便利で、 どれかのシステムが何らかの理由で故障しても、 デバイスを移すだけですみます。
SCSI に関してはためになる文書がたくさん出ています。 SCSI HOWTO や SCSI FAQ などは、 Usenet ニュースにもポストされています。
SCSI にはバックアップのためのテープドライブや、 一部のプリンタやスキャナを接続できるという利点もあります。 また別々のコンピュータを一つの SCSI バスに繋ぎ、 デバイスを共有させることで、超高速のネットワークを作ることさえ可能です。 作業は進行中のようですが、 接続された別々のコンピュータの間でキャッシュの整合性を保証するのが難しく、 それほど簡単な仕事ではないようです。
SCSI 番号は調停 (arbitration) にも使われます。 複数のドライブが要求を同時に出した場合、 もっとも低い番号のドライブが優先されます。
新しい SCSI カードには、タイプの異なる複数の SCSI デバイスを、 それぞれ最適な速度で同時に使えるようなものもあります。
ハードウェア寄りの話をするつもりはあまりなかったのですが、 配線に関しては少々触れておく必要があるように感じました。 特に技術的に難しい部分ではないのですが、 ここがいろいろな問題の原因になっていることが多いのです。 今日のように高速な転送が行われるようになると、 ケーブルは高周波デバイスとして考える必要があり、 インピーダンスマッチングが重要になります。 しかるべき措置を行っておかないと信頼性は非常に低下しますし、 まったく動かなくなることもありえます。 SCSI ホストアダプタの一部の製品は、この点に非常に敏感です。
シールドケーブルはシールドされていないケーブルより良いに決まっていますが、 価格もとても高価になります。少々注意を払えば、 安価なシールドのないケーブルでも充分な性能が得られます。
Bus Speed (MHz) | Max Length (m)
--------------------------------------------------
5 | 6
10 (fast) | 3
20 (fast-20 / ultra) | 3 (max 4 devices), 1.5 (max 8 devices)
xx (differential) | 25 (max 16 devices
--------------------------------------------------
SCSI の配線や終端処理に関するより詳しい情報は ネットのたくさんの web ページに書かれています。
ドライブからのインターフェースケーブルを繋ぎ、 コンピュータのバスとの仲立ちをします。 コンピュータバスの速度とドライブの速度は同程度のものを利用すべきで、 そうでないとどちらかがボトルネックになります。 例えば RAID 0 のディスクセットを ISA のバスに繋いだりするとそういうことになります。 最近のコンピュータのほとんどでは 32 ビットの PCI バスを使うことができます。 これは 132 MB/s の転送速度を持っていますので、 しばらくの間はボトルネックになることなく利用できるでしょう。
ドライブの制御回路の大部分がドライブ本体に収められるようになると、 残りの部分である (E)IDE インターフェースは非常にコンパクトになり、 PCI のチップセットに標準的に用意されるようになりました。 SCSI ホストアダプタはもう少し複雑で、 専用の CPU を使ったりすることも多いため、 IDE に比べて高価です。 まだ PCI チップセットにも取り込まれていないようです。 もちろん技術が進歩すれば状況は変わるでしょう。
ホストアダプタには独自のキャッシュや拡張制御機能を持っているものもあります。 しかしこれは本来 OS の機能のはずなので、 使っている OS によって効果があったりなかったりします。 原始的な OS (特に名を秘す :-) では高い効果が得られることもありますが、 Linux はもともと良くできているので、 これらの機能によって得られる効果はたいした物ではありません。
DPT コントローラのドライバを書いた Mike Neuffer によれば、 DPT のコントローラはとても賢く、 充分なキャッシュメモリをあてがってやれば非常に性能が向上するそうです。 またこの事から彼は、 インテリジェントな SCSI コントローラで性能が向上しないのは、 キャッシュコントローラの方の問題ではないかと言っています。
スループットを上げるには、最大のボトルネックを特定し、 それを排除する必要があります。 システムによっては (特にたくさんのドライブを接続しているシステムでは) 複数のコントローラを並列動作させることで効果が得られることがあります。 これは SCSI でも IDE でも同じです (IDE はもともと 2 チャンネル付いているハードウェアが多いでしょう)。 Linux でもこのような動作はサポートされています。
RAID コントローラの中には、二つまたは三つのチャンネルが付いていて、 ディスクアクセスを別々のチャンネルに振り分けることができるようなものも 存在しています。別の言い方をすれば、 2 チャンネルのコントローラに対して RAID にしたい 2 台の SCSI ドライブがある場合には、 それらは別々のチャンネルに接続すべきだ、ということです。
一台のマシンには SCSI と IDE の両方を繋ぐことができますが、 さらに 2 つ以上の SCSI コントローラを接続することもできます。 可能なコントローラの組合せは SCSI-HOWTO をチェックしてください。 さらに、複数の SCSI, IDE コントローラをプローブするように カーネルに教えてやる必要があるでしょう。 これはブート時にカーネルにパラメータを与えることによって実現します。 例えば LILO などが使えます。これには SCSI や LILO の HOWTO をチェックしてください。
マルチボードのシステムでは、ディスクの配置を正しく設定すれば、
大きな速度性能の向上が期待できます (とくに RAID 0 では)。
コントローラーやドライブを互い違いにして、
md の RAID デバイスに正しい順序でドライブを追加してください。
コントローラ 1 にドライブ sda
と sdc
が、コントローラ 2 にドライブ sdb
と sdd
が接続されていたとしますと、並列性を最大にするには
sda - sdc - sdb - sdd
の順序で繋ぐことです。
なぜなら互い違いに接続すると、
2 クラスタ以上の読み書きが二つのコントローラにまたがるようになるからです。
sda - sdb - sdc - sdd
ではあまり効果が上がりません。
同じ手法は IDE にも使えます。ほとんどのマザーボードでは、 4 つの IDE ポートが使えます。
hda
primary masterhdb
primary slavehdc
secondary masterhdd
secondary slavehda - hdc - hdb - hdd
で、
このとき両チャンネルの並列性がもっとも期待できることになります。
以下の表は転送速度をまとめたものです。 ただしこれらは理論上の最大値に過ぎないことに注意してください。 転送速度の単位は MB/s です。バスの幅の単位はビットです。
IDE : 8.3 - 16.7
Ultra-ATA : 33 - 66
SCSI :
Bus width (bits)
Bus Speed (MHz) | 8 16 32
--------------------------------------------------
5 | 5 10 20
10 (fast) | 10 20 40
20 (fast-20 / ultra) | 20 40 80
40 (fast-40 / ultra-2) | 40 80 --
--------------------------------------------------
ISA : 8-12
EISA : 33
VESA : 40 (Sometimes tuned to 50)
PCI
Bus width (bits)
Bus Speed (MHz) | 32 64
--------------------------------------------------
33 | 132 264
66 | 264 528
--------------------------------------------------
これはとても、とっても難しい問題です。 ここではこの地雷原に対する警告をいくつか挙げるにとどめておきます。 まず、実際に何らかの意味を持つベンチマークを行い、 この結果から有益な結論を導き出すのは、とても難しいことなんです。 とはいっても、これくらいでやめるような人はいませんよね...
どちらかというと、自分自身のシステムが以前と同じくらい速いままであるか (つまり、遅くなっていないか) を診断するために ベンチマークを使うのがいいでしょう。 また例えば、単純なファイルシステムから RAID に変更した場合はかなりの効果が見込めるはずですから、 性能に変化がなければどこかがおかしい、などのチェックにも使えるでしょう。
ベンチマークを行うときには、自分独自の方法は使わず、
iozone
や bonnie
を参照するようにしましょう。
これらの文書を隅々まで読むようにしてください。
特にバッファのサイズは必ず RAM のサイズより大きくしてください。
さもないとディスクではなく RAM のテストをすることに
なってしまい、非現実的に高い性能が得られてしまいます。
非常に簡単ではありますが、
hdparm -tT
でもベンチマークを行うことができます。
これは IDE のドライブでも SCSI でも使えます。
ベンチマークや各種プラットフォームにおけるソフトウェアに 関するより多くの情報は ACNC のベンチマークページを見てください。 こちらのページ や The Benchmarking-HOWTO. などもどうぞ。
現在では bonnie, bonnie++, iozone には、それぞれ公式ページもあります。
雑学: Bonnie はローカルなボトルネックの発見用のもので、 名前は Bonnie Raitt, 「ボトルネックの使い方を知ってるひと」 にちなんでつけた、と著者は書いています。 (訳注: Bonnie Raitt はギタリストです :-)
SCSI の性能は EIDE より高いですが、値段も高くなります。 SCSI ではケーブル終端の処理が面倒ですが、拡張は楽です。 4 台 (場合によっては 2 台) 以上の IDE ドライブを使うのは大変ですが、 wide SCSI なら 15 台まで簡単に使えます。 複数のチャンネルを持っている SCSI ホストアダプタなら、 この台数はチャンネル数を乗じたものになり、さらに多くなります。
SCSI では、ホストアダプタ一つにつき一つの IRQ が必要で、 これで 15 台のドライブをまかなえます。これに対して EIDE では IRQ がチャンネル一つ (ディスク二台までつなげます) に一つ必要で、 これは conflict の原因になるかもしれません。
RLL と MFM は一般的に言って古すぎます。 たいていの用途には速度、信頼性とも足りないでしょう。
SCSI-3 も策定中で、リリースは近そうです。 より高速のデバイスに関してはすでにアナウンスがあり、 ごく最近には 80 MB/s、 さらには 160 MB/s というモンスター規格も提案され、 ごく最近には商品も出ました。 これらは 40 MHz のクロックを用いる Ultar-2 規格で、 16 ビットのケーブルを用いるものです。
SCSI-3 対応デバイスをアナウンスしたメーカもあるようですが、 標準規格がまだしっかり定まっていない現在では、 これはまだ時期尚早といったものでしょう。 転送速度が上昇するにつれ、 PCI バスのバンド幅がいっぱいになる日も近いかもしれません。 現在の 64 ビットバージョンの PCI バスのリミットは 264 MB/s となっています。 将来 PCI のクロックは現在の 33 MHz から 66 MHz へ上がるようで、 そうするとリミットは 528 MB/s となります。
ATA の開発は続いており、 新たな ATA/100 標準の登場に伴って性能も向上を続けています。 ほとんどの ATA デバイスでは、 円板からの定常的な転送速度はこれより遅いので、 ほとんどの人にとっては性能向上は大きなものではありません。
より興味深いのはシリアル ATA の開発です。 これはフラットケーブルの代わりに高速なシリアル接続を用います。 配線は現在のものよりずっと単純になり、 ケーブリングによってドライブ周りの空気の流れが阻害される問題も解決できます。
もうひとつの流れはディスクの巨大化です。最近聞いた話では、 一台のドライブで 75 GB を実現することも可能だそうです (高価になるでしょうが)。 現在のところではコストパフォーマンスが最も良いのは 30 GB のクラスでしょうが、このサイズも大きくなり続けています。 近い将来に DVD が出てくれば、大きなインパクトが期待できます。 DVD は一枚のディスクに 18 GB を記録できます。 これは世界各地にある有名な FTP サイトをフルコピーできる容量です。 ディスク技術の「質」が上がるかどうかは確言できませんが、 「量」は確実に増えていくでしょう。
追加:この部分を書いてからすぐ、 CD-ROM の最大速度が 20 倍速となり、 機械的な安定性が大きな問題になるであろうという記事を目にしました。 またその一ヶ月後、今度は 24 倍速の CD-ROM の宣伝が出ていました... (訳注: もう今では 24 倍も普通になってますね) おそらく 40x 以上のものが、すでに出荷直前の段階にあることでしょう。
私の個人的な意見では、 システムを初めて作る場合には EIDE または Ultra-ATA が最適です。 特に DOS を同時に使う場合はこれで充分です。 一方システムを何年にもわたって拡張する予定や、 サーバとして使う予定があるのでしたら、 SCSI のドライブを強くお薦めします。 現在のところ wide SCSI はまだ少々高価なようですので、 8 ビット幅の SCSI を選ぶ方がコストパフォーマンスが良いでしょう。 ケーブルの最大長を大きく取れるような SCSI バスの規格もあるようですが、 値段はさらに割高になるので普通のユーザにはお薦めしません。
SCSI バスにはディスクドライブだけではなく、 製品を限ればスキャナやプリンタ、ネットワークなどを繋ぐこともできます。
システムの拡張にあたっては、 より大きな電力が必要になることも忘れないでください。 使っている電源の容量が足りるか、 冷却が充分かどうかにも気をつけなければなりません。 SCSI ドライブの多くはスピンアップを順番に行う機能を持っているので、 大きなシステムにはこれを用いるのが良いでしょう。 電力と発熱 の節にある情報も参考にしてください。