前のページ 次のページ 目次

3. ドライブの技術

IBM PC のドライブの技術に関しては、この文書よりもずっと充実した議論が The Enhanced IDE/Fast-ATA FAQ にあります。 これは Usenet ニュースにも定期的にポストされています。 ここではセットアップの際に必要となるドライブ関連技術の知識をかいつまん で示します。

3.1 ドライブ

ドライブとはデータを保持する物理デバイスのことです。多くの色々があり、 オペレーティングシステムからはどれも似たように見えますが中身は非常に異 なっています。それぞれがどのように機能しているかを知ることは、後で行な うディスク配置の際に大きな助けとなるでしょう。フロッピードライブに関し ては今のところ無視していますが、もし要望が多ければ将来追加するかもしれ ません。

3.2 ジオメトリ

ディスクドライブは複数枚の円板からなっており、ここにデータが読み書きさ れます。読み書きを行なうのは移動式のヘッド上に固定されたセンサーです。 それぞれの円板に対応する「ヘッド」はひとつのアームに固定されていて、す べてのヘッドが一緒に動きます。従ってデータ転送は全部の円板の表面から同 時にされることになり、これがトラックの「シリンダ」を決めます。またドラ イブは、多数のデータフィールドからなる「セクタ」によっても分割されてい ます。

これらシリンダ(Cylinder)、ヘッド(Head)、セクタ(Sector)数(以下 CHS と呼びます)のことをまとめて「ジオメトリ」と言います。ドライブ はジオメトリによって分類されています。

色々な理由から、今では以下のようなものの間で CHS データの変換が されるようになっています。

このようになってしまっているのは、つまるところシステムのできが悪いため で、様々な混乱の原因となっています。もっと知りたい方には Large Disk mini-HOWTO を推薦しておきます。

3.3 メディア

メディアの技術はディスクの読み書きの速度やシーク時間、記憶容量、また 書き込み可能かリードオンリーとなるかなどを決定づける重要な要素です。

磁気ディスク

読み書き可能な大容量記憶媒体として代表的なものです。(コンピュータの世 界で良くあるように)様々な特性、機能のものが乱立しています。読み書き可 能な通常のメディアの中では最速のものと言って良いでしょう。ディスクは一 定の角速度で回転しています。物理セクタの線密度は磁気媒体の面積を有効に 利用できるようにディスクの内側と外側で異なっています。長さ当たりのビッ ト数がだいたい一定になるように、外側のトラックでの論理セクタの数を増や してあるのです。シーク時間は 10 ms 程度です。転送速度はモデルによっ てだいぶ違いがありますが、通常およそ 4〜40 MB/s 程度です。

データの転送にはいくつかの段階があり、それぞれ異なった単位が用いられる ことに注意してください。まず磁気円盤からドライブ内のキャッシュまでの転 送があり、これは通常 Mbits/s で表されます。一般的には 50〜250 Mbits/s 程度のものが多いようです。次にドライブ内に組み込まれたキャッシュからホ ストアダプタまでの転送があります。これは MB/s で記述され、 3〜40 MB/s 程度であることが多いようです。しかし、このデータはキャッシュの中にデー タが存在している場合の最高速度を表したものであり、実効的な値はもっとずっ と低くなります。

ドライブを記述する際にはジオメトリ(ドライブパラメータ)が用いられます。 ヘッド数、セクタ数、シリンダ数です。物理的なジオメトリを論理的なジオメ トリに変換する方法は、現在のところ非常に混乱しています。この地雷原とも 言うべきテーマに関しては、記憶メディア関連のたくさんの FAQ で触れられ ています。これらを読んで、関係者の苦労を偲んで下さい。

光ディスク

光を利用した読み書き可能なディスクも存在していますが、遅いのでそれほど 一般的ではありません。 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 ア ドレスを割り当てるようになっています。

3.4 インターフェース

世の中には選ぶのに困ってしまうほど多種多様のインターフェースがあり、価 格や性能も様々です。最近のマザーボードにはほとんど IDE (かそれ以上) のインターフェースが付属しています。非常にポピュラーになった Intel の Triton PCI チップセットも IDE をサポートしています。 SCSI インターフェー ス機能を持っているマザーボードも多くなりました。これらは NCR のチップ を直接 PCI バスに接続しています。お使いのマザーボードの機能と BIOS サ ポートを調べておくと良いでしょう。

MFM と RLL

むかしむかし、まだ 20 MB のハードディスクが羨望の目で眺められていた頃に は、これらは最先端の技術でした。今日の容量と比べると、まるで恐竜 の時代ほども昔のような気がしますね。これらの技術も恐竜同様すでに滅んで しまいました。今日のものに比べると速度でも信頼性でも劣るからです。 Linux は MFM や RLL をサポートしていますが、これらのインターフェースに ドライブを繋ぐのは全くお薦めできません。それでも強いて繋ぐなら、これま た過去の遺物である DOS を入れて、緊急用のパーティションにしておくのが せいぜいでしょう。

IDE と ATA

その後の技術の進歩によって、ドライブを制御する回路は 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 です。

EIDE と Fast-ATA、 ATA-2

この 3 つは大体同じものです。 Fast-ATA と ATA-2 は同じで、 EIDE これに さらに ATAPI を併せたものです。 ATA-2 は今日非常に広く用いられて おり、 IDE より高速で DMA も使っています。転送速度は 16.6 MB/s に増加 しています。

ATAPI

ATA パケットインターフェースは IDE のポートで CD-ROM ドライブを利用す るために設計されました。 IDE と同様、ATAPI は安価で単純なものです。

SCSI

SCSI (Small Computer System Interface) は、ドライブだけでなくディス クアレイやプリンタ、スキャナなど、色々なものを繋げる多目的インターフェー スです。 SCSI はマルチタスク環境に適しているため、ワークステーションな どのハイエンド機に用いられてきました(したがって "Small" というのは正確ではないかもしれません)。

SCSI のバンド幅は標準で 8 ビットで、 8 つのデバイスを接続できます。 wide SCSI と呼ばれる規格ではバンド幅は 16 ビット(したがって転送クロッ クが同じなら転送量は 2 倍)、接続可能なデバイスは 16 個となっています。 ホストアダプタもひとつのデバイスとみなされます。普通は 7 番がホストア ダプタの ID に割り当てられます。

古い標準の規格では転送速度は 5 MB/s でしたが、新しい fast-SCSI では 10 MB/s に増えています。最近では ultra-SCSI (Fast-20 とも呼ばれます) という規格が定まり、 20 MB/s の転送量を持つようになりました。

通常 SCSI は (E)IDE よりも高性能ですが、価格も高い場合が多いようです。 なお、ターミネーションを正しく設定することと良い性能のケーブルを 使うことが非常に重要です。ドライブも SCSI の方が IDE より性能が高い場 合が多く、またデバイスを追加するのも SCSI の方が簡単です。

SCSI に関してはためになる文書がたくさん出ています。 SCSI HOWTO や SCSI FAQ などは、 Usenet ニュースにもポストされています。

SCSI にはバックアップのためのテープドライブや、一部のプリンタやスキャ ナを接続できるという利点もあります。また別々のコンピュータを一つの SCSI バスにつなぎデバイスを共有することで、超高速のネットワークを作る ことさえ可能です。作業は進行中のようですが、接続された別々のコンピュー タの間でキャッシュの整合性を保証するのが難しく、それほど簡単な仕事では ないようです。

3.5 配線 (Cabling)

ハードウェア寄りの話をするつもりはあまりなかったのですが、配線に関して は少々触れておく必要があるように感じました。特に技術的に難しい部分で はないのですが、ここがいろいろな問題の原因になっていることが多いのです。 今日のように高速な転送が行われるようになると、ケーブルは高周波デバイス として考える必要があり、インピーダンスマッチングが重要になります。しか るべき措置を行っておかないと信頼性は非常に低下しますし、まったく動かな くなることもありえます。 SCSI ホストアダプタの一部の製品は、この点に非 常に敏感ですす。

シールドケーブルはシールドされていないケーブルより良いに決まっています が、価格もとても高価になります。少々注意を払えば、安価なシールドのない ケーブルでも充分な性能が得られます。

3.6 ホストアダプタ

ドライブからのインターフェースケーブルをつなぎ、コンピュータのバスとの 仲立ちをします。コンピュータバスの速度とドライブの速度は同程度のものを 利用すべきで、さもなければボトルネックを抱えることになります。例えば RAID 0 のディスクセットを ISA のバスにつないだりするとそういうことにな ります。最近のコンピュータのほとんどでは 32 ビットの PCI バスを使うこと ができます。これは 132 MB/s の転送速度を持っていますので、しばらくの間 はボトルネックになることなく利用できるでしょう。

ドライブの制御回路の大部分がドライブ本体に収められるようになると、 残りの部分である (E)IDE インターフェースは非常にコンパクトになり、 PCI のチップセットに標準的に用意されるようになりました。 SCSI ホストアダプ タはもう少し複雑で、また専用の CPU を使ったりすることも多いため、 IDE に比べて高価です。まだ PCI チップセットにも取り込まれていないようです。 もちろん技術が進歩すれば状況は変わるでしょう。

ホストアダプタには独自のキャッシュや拡張制御機能を持っているものもあり ます。しかしこれは本来 OS の機能のはずなので、使っている OS によって効 果があったりなかったりします。原始的な OS (特に名を秘す :-) では高い効 果が得られることもありますが、 Linux はもともと良くできているので、こ れらの機能によって得られる効果はたいした物ではありません。

3.7 比較検討

SCSI の性能は EIDE より高いですが、値段も高くなります。 SCSI ではケー ブル終端の処理が面倒ですが、拡張が楽です。 4 台(場合によっては 2 台) 以上の IDE ドライブを使うのは大変ですが、 wide SCSI なら 15 台まで簡単 に使えます。複数の回線を切り替えることで、さらに多くの台数を使うこと のできる SCSI ホストアダプタもあるようです。

RLL と MFM は一般的に言って古すぎます。たいていの用途には速度、信頼性 とも足りないでしょう。

3.8 将来展望

一般的な傾向として、新しい規格ではより速いデバイスを取り扱うようになり ます。しかし出たばかりの ATA-3 では転送速度の高速化は定められていませ ん(これらは策定中の ATA-4 で実現されるでしょう)。 Quantum はすでに DMA/33 と言う規格を提出したようです。

SCSI-3 も策定中で、(希望的観測を含めて言えば)リリースは近そうです。 より高速のデバイスに関してはすでにアナウンスがあり、ごく最近では 80 MB/s というお化けのような規格が提案されています。これは 40 MHz のクロックを 用いる ultar-2 規格で 16 ビットのケーブルを用いるものです。

SCSI-3 対応デバイスをアナウンスしたメーカもあるようですが、標準規格が まだしっかり定まっていない現在ではこれはまだ時期尚早といったものでしょ う。転送速度の上昇につれ、 PCI バスのバンド幅がいっぱいになる日も近い かもしれません。現在の 64 ビットバージョンの PCI バスのリミットは 264 MB/s となっています。将来 PCI のクロックは現在の 33 MHz から 66 MHz へ上がるようで、そうするとリミットは 528 MB/s となります。

もうひとつの流れはディスクの巨大化です。最近聞いた話では、ひとつのドラ イブで 55 GB を実現することも可能だそうです(高価になるでしょうが)。現 在のところではコストパフォーマンスが最も良いのは 2 GB のクラスでしょう が、このサイズも大きくなり続けています。近い将来に DVD が出てくれば、 大きなインパクトが期待できます。 DVD は一枚のディスクに 20 GB を記録で きます。これは世界各地にある有名な FTP サイトをフルコピーできる 容量です。ディスク技術の「質」が上がるかどうかは確言できませんが、「量」 は確実に増えていくでしょう。

3.9 お薦め

私の個人的な意見では、システムを初めて作る場合には EIDE がお薦めです。 特に DOS を同時に使う場合は EIDE で充分です。一方システムを何年にもわたって 拡張したり、サーバとして使う予定があるのでしたら SCSI のドライブを強く お薦めします。現在のところ wide SCSI はまだ少々高いようですので、 8 ビッ ト幅の SCSI を選ぶ方がコストパフォーマンスが良いでしょう。ケーブルの最大 長を大きく取れるような SCSI バスの規格もあるようですが、値段はさらに割 高になるので普通のユーザにはお薦めしません。

SCSI バスにはディスクドライブだけではなく、製品を限ればスキャナやプリ ンタ、ネットワークなどをつなぐこともできます。

システムの拡張にあたっては、より大きな電力が必要になることも忘れないで 下さい。使っている電源の容量が足りるか、冷却が充分かどうかにも気をつけ なければなりません。 SCSI ドライブの多くはスピンアップを順々に行う機能 を持っているので、大きなシステムにはこれを用いるのが良いでしょう。


前のページ 次のページ 目次