●RAID 0/1を実現する「AMI HyperDisk」
HyperDiskが用いているIDE/ATAホストコントローラはCMDのPCI-648。PCIバスに対応したUltra DMA/66サポートのホストコントローラチップだ。このコントローラチップ以上に重要なのが、フラッシュメモリに収められたBIOS(拡張ROM BIOS)である。これがなかったら、HyperDiskは単なるPCI IDEホストアダプタになってしまうといっても過言ではない。BIOSはHyperDiskがサポートするストライピング(RAID 0)およびミラーリング(RAID 1)をリアルモードでサポートすると同時に、RAIDボリュームに対しディスクBIOSレベルの互換性を与える(つまりRAIDボリュームに対し、FDISKなどのユーティリティの実行を可能にする)。RAIDボリュームからのシステム起動を可能にするのも、このBIOSの役割だ。
もちろん、プロテクトモードでRAIDボリュームを利用するには別途デバイスドライバが必要になるが、このHyperDiskにはWindows 95/98、Windows NT 4.0、Windows 2000の各OS用ドライバが添付されている。RAID機能を実現するソフトウェアがどこにあるか(BIOS、サードパーティ製やWindows NT等の組み込みドライバ、拡張カード上のファームウェアなど)を別として、そのソフトウェアをホストCPUで実行するのがソフトウェアRAID、ホストCPU以外のプロセッサ(多くはRAIDコントローラカード上のローカルプロセッサ)で処理するものをハードウェアRAIDと呼ぶ。HyperDiskは、間違いなくソフトウェアRAIDのカードである。
HyperDiskと組み合わせるために用意したハードディスクは、Maxtorの53073U6だ。DiamonMax Plus 40シリーズに属するこのドライブは、プラッタあたり10GBの容量を持つ7,200rpmスピンドルのハードディスクで、今回用いたのは容量30GBのモデルである。現在市販されるATAドライブの中では、比較的高性能な製品だ。
加えて、ハードディスクをマウントするケースとして、Promise TechnologyのFastSwap66も編集部から届けられた。PCケースの5インチハーフハイトのフォームファクタに、1インチ厚の3.5インチハードディスク1台をマウントできる。必要性があるかどうかは別にして、ATAドライブのホットスワップをサポートしているという。ハードディスクを分離可能なケースに収めるということは、ケース内部でケースのコネクタとハードディスクの間を短いケーブルで接続する、ということでもある。これは、ATAのケーブルからスタブが発生することを意味する。ATAの規格は、このようなスタブを認めていないのだが、FastSwap66の場合1枚基板が入っている(一部接着されたケースを分解していないので詳細は分からない)ことから、バッファリング等を行なっているのかもしれない。少なくともメーカーがUltra DMA/66での動作を保証していることだし、とりあえず、前面からドライブの交換ができるだけでも重宝すると思い、使ってみることにした。
●ケーブル長の物理的制限による困難な引き回し
実際のテストは、まずHyperDiskを空いているPCIスロットに挿すところからスタートするのだが、早くもここから苦労が始まった。ケーブルの引きまわしが大変なのである。FastSwap66を使うとなると、ハードディスクはケースの5インチベイにマウントすることになる。しかし、一般的なケースでは、5インチベイはケースの上側、拡張スロットはケースの下側にある。うっかり下寄りのスロットにHyperDiskを挿すと、ケーブルが届かない。ATAのケーブルは、全長が最大457mmと決まっており、延長することが認められないからだ。おのずとHyperDiskを挿すのはAGPスロットの隣、最もマザーボードの中央寄りのスロットになる。
だが、正直言ってこれでも1本のケーブルに2台のドライブを接続すると、ケーブル長が足りない。457mmというのは全長(つまりホストコネクタから、反対側の端にあるDevice0コネクタまでの長さ)であり、2台接続した場合、引きまわしに使えるのはホストコネクタから中間にあるDevice1(スレーブデバイス)までの長さになってしまうからだ。ちなみに、80ピンケーブルにおいては、ケーブルの端(ホストコネクタの正反対)のコネクタがDevice0(マスタ)、中間のコネクタがDevice1(スレーブ)というのは、規格で決められていることで、Ultra DMA/66対応(ATA/ATAPI-5に準拠)のハードディスクだけを接続する分には、ハードディスクのジャンパをケーブルセレクトにしておけば(Ultra DMA/66対応ドライブの多くは、工場出荷時にこのように設定されているようだ)、挿したコネクタに応じてマスタとスレーブは自動的に設定される(80ピンケーブルはそのように作られている)。そうでなければ、FastSwap66のようなケースは、いちいちケースを開けてジャンパスイッチを変更せねばならず、面倒で実用にならないだろう。
さて、今回はHyperDiskに添付されていた80ピンフラットケーブルを用いたが、このケーブルの全長は453mm、ホストコネクタからDevice0までの長さが306mmであった。つまり、2台のハードディスクを1本のケーブルに接続してしまうと、引きまわしに使えるのは30cm程度の長さしかない。80ピンケーブルが固いことに加え、これだけ短いとケース内でのひきまわしはかなり困難だ。用いたのは、ごく標準的なミドルタワーケースだが、1本のケーブルに2台のハードディスクを接続すると、ケーブルはパンパンで、かなりイビツな形にケーブルを曲げるハメになった。かといって、拡張スロットとドライブベイの間の距離が短いミニタワーケースだと、5インチベイが足りない(逆にドライブベイに余裕のあるフルタワーケースなら間違いなくケーブルが届かないだろう)。このあたりは、製品の問題ではなく、ATAの仕様の問題なので、どうしようもない(やはり本格的なRAIDにはSCSIを使うべきだ、という理由の一つでもある)。
それではと、2本のケーブルに1台づつハードディスクを接続すると、ケースの中はフラットケーブルだらけとなる。ハードディスクを接続した2本に加え、最低でもCD-ROMドライブ(あるいはDVD-ROMドライブ)用のケーブルが必要になる(HyperDiskにはCD-ROMドライブやSuperDiskなどのARMDドライブを接続してはならない)。多くの場合は、これにフロッピーディスク用のフラットケーブルも加わるだろう。ケース内部を4本ものフラットケーブルが這い回っては、美観を損なうだけでなく、冷却が心配になる(これを克服するためか、スマートケーブルなるものが市販されているが、本質的な解決策ではない。やはりインターフェイスのシリアル化が必要だろう)。
●それほど高くないCPUの占有率
話が横道にそれたが、ここではWindows 2000とWindows 98 Second Edition、2つのOSについて、まず表のようなテストを行なった。HyperDiskに2台のハードディスクを接続、1チャンネルに2台のドライブを接続した場合、2チャンネルに1台づつ接続した場合の両方でミラーリングとストライピングを設定し、Ziff DavisのWinBench 99のDisk WinMarkを実施した。RAIDボリュームは、Windows 2000ではNTFS、Windows 98ではFAT 32でそれぞれフォーマットしてある。なお、測定条件を極力統一するため、OSはオンボードのプライマリIDEインターフェイスに接続されたハードディスクから起動している。また、比較のためにオンボードのセカンダリIDEインターフェイスにハードディスクを接続した場合の結果も計測した(Windows 2000ではビルトインのストライピングについてもベンチマークテストを実行してある)。
【WinBench 99 Ver 1.1(カッコ内はCPU占有率)】
Business Disk WinMark | High-End Disk WinMark | |
---|---|---|
Windows 2000 Professional/NTFS | ||
On Board I/F, Single Drive | 6,090(31.07%) | 16,700(17.74%) |
On Board I/F, 2Drive/1ch Stripe | 6,720(32.47%) | 18,100(21.87%) |
HyperDisk 2Drive/1ch Stripe | 6,330(33.89%) | 17,500(26.45%) |
HyperDisk 2Drive/1ch Mirror | 6,220(34.89%) | 15,800(21.63%) |
HyperDisk 2Drive/2ch Stripe | 6,700(35.98%) | 19,200(28.15%) |
HyperDisk 2Drive/2ch Mirror | 6,680(36.14%) | 15,800(22.06%) |
Windows 98 Second Edition/FAT32 | ||
On Board I/F, Single Drive | 5,540(30.73%) | 16,100(21.45%) |
HyperDisk 2Drive/1ch Stripe | 4,910(33.88%) | 16,400(35.04%) |
HyperDisk 2Drive/1ch Mirror | 5,220(34.68%) | 14,800(28.57%) |
HyperDisk 2Drive/2ch Stripe | 5,340(36.13%) | 18,700(36.24%) |
HyperDisk 2Drive/2ch Mirror | 5,300(34.97%) | 15,000(28.24%) |
【テストシステム】
マザーボード:Intel CC820
CPU:Pentium III 600B MHz
メモリ:128MB PC100 SDRAM
HDD(OS起動用):DJNA-371350
DVD-ROMドライブ:SD-M1212
サウンドカード:YMF744
ビデオカード:ELSA ERAZORX2(GeForce 256)
この結果を見て分かるのは、いずれの場合もCPU占有率が最も低いのは、オンボードインターフェイスに1台のドライブを接続した場合である、ということだ。RAIDソフトウェアを実行しているのがCPUである以上、当然CPUの占有率は高くなるが、それほど大きいものではない。パリティを計算しそれを分散して書き込むような上位のRAIDレベルと異なり、ミラーリングやストライピングの負荷はそれほど高くないようだ(それでも負荷率が上がることは間違いない)。CPU占有率が上がる、ということで100%近くになると考える人もいるかもしれないが、ハードディスクに対するデータ転送自体は、IDEホストコントローラ(オンボードインターフェイスの場合はICH、HyperDiskはPCI-648)がバスマスタになってDMA転送を行なうため、PIO転送のようなことはない。
データ転送速度については、確かにストライピングの効果はあるものの、Disk WinMarkではそれほど大きなものではなかった。一般的なPC用途であれば、信頼性の低下というリスクを負ってまで、踏み切るほどではないように思う。ビデオ編集用ワークエリアなどの用途で、どうしてももう少しデータ転送速度が欲しい場合に試してみる程度だろう。ストライピングは、アレイに加えるドライブの数が増えれば増えるほど、信頼性が低下する反面、性能が向上する。実は、今回4ドライブでのストライピングも試みたのだが、残念ながら正常にシステムが起動しなくなってしまった(電源の容量不足によるトラブルも考えられるため、一応電源ユニットは300Wまで試したのだが)。4台接続すると、当然ケーブル1本あたりのハードディスクは2台になる。ケーブルの引きまわしが極端に困難だったことを考えても、望ましい利用法とは言えないように思う。
ストライピングとは逆に、ミラーリングを行なうと、書き込みのオーバーヘッドによりシングルドライブの時よりデータ転送速度が低下する。だが、これもそれほど大きなものではない。むしろ、この程度の低下ですむのなら、ミラーリングによる安心感(特にバックアップが事実上不可能な場合)の方が大きいだろう。
いずれの場合も、ハードディスクは2チャンネルに分散させた方が、良い結果が得られている。ケーブル引きまわしの自由度確保という点でも、各ケーブルに1台づつのハードディスクをインストールした方が良いのだが、2本のケーブルを追加することは、冷却の点で懸念される。場合によっては高価だが、スマートケーブルを使った方が良いかもしれない。
やはり、IDE RAIDコントローラの使い方として、最も理にかなっていそうなのは、2つのチャネルに1台づつドライブを接続し、ミラーリングペアにする、ということだ。そこで、オンボードのハードディスクを取り外し、ミラーリングペアにOSをインストールすることにしてみた。Windows 98は、セットアップ途中にファイルシステムドライバを組み込むことができないため、大半の作業がリアルモードになる。そのため、シングルドライブの場合よりインストールに時間がかかるが、Windows 98のインストールは可能だった(もちろん、セットアップ後ドライバを組み込むことで、ファイルシステムはプロテクトモードになる)。Windows 2000はインストール時にHyperDiskのドライバを組み込めるため(ドライバが組み込めないと、OSのインストールそのものが不可能)、Windows 98のようなことはない。作業は極めて順調だった。
(2000年4月19日)
[Text by 元麻布春男]