解説

チップセットがサポートするソフトウェアRAIDの実用性

1.IAA 3.5によるソフトウェアRAIDの構築と性能

元麻布春男
2003/08/12

解説タイトル


 2003年春にIntelがリリースしたチップセット「Intel 875P」ならびに「Intel 865G/PE/P」は、当初から2種類のICH(I/O Controller Hubいわゆるサウスブリッジ)が提供されている。通常版のICH5に対し、ソフトウェアRAIDをサポートするための機能が加えられたICH5Rの2種類である。ICH5シリーズの最大の特徴は、これまで使われてきたパラレルATAに加え、シリアルATAのサポートが加わったことだ。ICH5Rでは、シリアルATAポートに接続されたハードディスクに対してのみ、ソフトウェアRAIDを構成することが可能となっている。IDEハードディスクによるソフトウェアRAIDのサポートは、これまでも多くのマザーボードでサポートされてきたが、チップセットに内蔵されたのは、このICH5Rが初めてのことだ。

*1 本記事で取り扱う「ソフトウェアRAID」とは、一見するとミラーリングやストライピングといったRAIDの機能を、ハードウェアRAIDコントローラだけで実現しているように見えるが、実際には内部でPCのプロセッサによるソフトウェア処理が大部分を占めている方式を指す。安価なRAIDカードは、この方式を採用していることが多い。OSだけで実現する純粋なソフトウェアRAIDのことではないので注意していただきたい。

 チップセットによってサポートされたことで、クライアントPCにおけるRAIDの導入が加速される可能性がある。また今後、この技術はエントリ・サーバなどでも採用されることになるだろう。ICH5とICH5Rの価格はほとんど違いがない、といわれていることから、RAIDのサポートにかかるコストはほとんどないといえる。一方で、チップセットによってRAIDがサポートされているとはいえ、基本的にはソフトウェアRAIDであるため、使い勝手や性能が悪い印象がある。そこで、ここでは、実際にICH5RによるソフトウェアRAIDを構築し、その性能を検証してみることにする。そして、チップセットによるRAIDサポートの意義について考えてみる。

RAIDの構築に必要なもの

 ICH5RによるRAIDは、ソフトウェアによるものであること、内蔵する2チャネルのシリアルATAポートには各1台の合計2台のハードディスクしか接続できないことから、サポート可能なRAIDレベルはRAID 0(ストライピング)とRAID 1(ミラーリング)に自ずと限定される。2003年4月にIntel 875Pがリリースされた時点においては、ICH5RでサポートされるRAIDレベルはRAID 0のみであった。これは2月のIDF時点で明らかにされていたことであり、担当者は「2003年内にRAID 1のサポートを加えたい」と述べていた。

 そのRAID 1のサポートが、「年内」という言葉から想像されるよりも早く、この7月に加えられた。まず7月7日、RAIDソフトウェアであるIntel Application Accelerator(IAA)*2 RAID Edition Version 3.5(以下、IAA 3.5)がリリースされた(Intelの「IAAに関するページ」)。Intel 875Pと同時にリリースされたIAA Version 3.0が、RAID 0をWindows XP上でのみサポートしたものだったのに対し、このVersion 3.5ではWindows 2000もサポートOSに追加され、Windows 2000とWindows XPでRAID 0ないしはRAID 1をサポートする(ソフトウェアRAIDであるため、対応のRAIDソフトウェアが必要となるため、IAA 3.5は必須である)。

 これまでIAAというと、アプリケーションの起動時間を短縮する、他社でいうディスク・キャッシュだったのだが、Intel 875Pと同時にリリースされたVersion 3.0は、RAID 0に対応したRAIDユーティリティに生まれ変わっていた。そのためか、ICH5R以外のチップセットには対応しない。なお、それ以外のチップセットのユーザー用にIAA 2.3がいまも提供されているが、なぜか対応はICH4まででICH5には対応していない。

*2 元々のIAAは、Intel製チップセット専用のバスマスタIDEドライバを含むPC高速化ユーティリティと呼べるものだ。詳細は「実験:PCの起動を高速化する「Intelアプリケーション・アクセラレータ」の実体」を参照していただきたい。

 IAA 3.5のリリースに続き7月18日にはIntelの純正Intel 865PEマザーボード「D865PERL」用の対応BIOS(Version P08)が、続いて7月22日に同じくIntel純正Intel 875Pマザーボード「D875PBZ」用の対応BIOS(Version P09)がリリースされた(画面1)。Intel純正マザーボードでICH5Rを採用しているのはこの2製品のみである。サードパーティ製マザーボードにおいても、すでにASUSTeKがP4P800シリーズのマザーボード(チップセットはIntel 865PE)において、ICH5RによるRAID 1のサポートを行っており、今後他社も追随するものと思われる。いずれにしても、IAA 3.5を利用するには対応したBIOSが不可欠で、古いBIOSでIAA 3.5を起動すると画面2のようなエラーメッセージが表示される。

画面1 Intel RAID BIOSの設定ユーティリティ
ここで紹介するIAA 3.5を用いる方法以外にも、このBIOSユーティリティを用いることでRAIDボリュームが構成できる。RAIDボリュームにOSのインストールを行う場合は、BIOSを利用することになる。
 
画面2 IAA 3.5のエラー画面
BIOSがIAA 3.5に対応したものでない、つまりRAID機能に対応していないことを示すエラー・ダイアログ。このことからもBIOSの対応が必須であることが分かる。

 ここではIntel製マザーボードであるD875PBZに、最新のBIOS(P09)、IAA 3.5を組み合わせて、ICH5RのRAID機能を検証してみた。そのほかの機材などは表1に記したとおりだが、念のためWindows XPにはマイクロソフトのサポート技術情報「複数台のIDEドライブがS1パワーステートに入った場合に生じる障害(812415)」に関する修正プログラムを適用している。

マザーボード Intel D875PBZ
BIOS BZ87510A.86A.0041.P09
プロセッサ Pentium 4-3.2GHz
メモリ 1Gbytes(DDR-400)
グラフィックス・カード ATI Technologies製RADEON 9700 Pro
ハードディスク Seagate Barracuda SATA V 120Gbytes×2台
OS Windows XP SP1
IAA IAA 3.5
表1 テストに用いたPCの主な仕様
 
Barracuda SATA VのシリアルATAコネクタ
コネクタは小型で逆挿入防止の工夫が施されている。
 
シリアルATA用電源コネクタ変換アダプタ・ケーブル
通常の5V/12V対応電源コネクタをシリアルATAの電源コネクタに変換するアダプタ・ケーブル。現時点で多くの電源ユニットはシリアルATAに対応していないため、このようなケーブルが必要になる。なお、シリアルATAの電源コネクタは3.3Vに対応しているが、このアダプタ・ケーブルでは当然3.3Vの供給は不可能だ(今回用いたBarracuda SATA Vは3.3Vを必要としない)。
 
Serial ATAのデータ・ケーブル
パラレルATAに比べ細く、シリアルATA用ケーブルはしなやかで細いため、取り扱いが容易だ。

IAA 3.5によるソストウェアRAIDの構築

 さて上述のようにICH5Rがサポートするのは、RAID 0とRAID 1の2通りである。ストライピングとも呼ばれるRAID 0は、ハードディスクへの読み書きを複数台(ここでは2台)に分散させて同時実行することで高速化を図る技術だが、まったく冗長性がないため信頼性は1台のときよりもむしろ低下する。ビデオ編集など、特定の用途向けには利用価値があると思われるが、常用するにはリスクが伴う。一方、ミラーリングとも呼ばれるRAID 1は、2台のハードディスクにまったく同じ内容を書き込んでおくことで、片方のドライブにハードウェア的な障害が生じてアクセス不能になった場合でも、残ったドライブで運用を続けられるというものだ。冗長性は高いものの、容量が半分(2台が1台分)になってしまう。また、読み出しを2台に分ける(といってもストライピングのように、完全に分散させることはできないが)ことで若干の高速化が可能だが、2台に同じ内容を書き込むオーバーヘッドのため、書き込み速度は低下する。ただしシリアルATAは、ポイント・ツー・ポイント接続であり、2台のドライブでインターフェイスを共有しなくて済むため、そのオーバーヘッドは小さくなると考えられる。

 ICH5Rを採用したPCでのRAIDボリューム(RAIDで構成された複数台のハードディスクからなるストレージ・スペース)の作成は、RAID 0でもRAID 1でもほとんど同じだ。OSのインストール前にRAIDボリュームを作成し、そこにOSをインストールすることもできれば、すでに1台で稼働しているシステムに2台目のハードディスクを追加することで(データのバックアップをとらなくても)そのままRAID構成へと移行することもできる(念のためバックアップをとっておく方が望ましいことはいうまでもない)。サーバと異なり、クライアントPCでは1台のハードディスクでスタートすることが多いと思われるため、ここでは後者の手順によるRAIDボリューム作成を試してみた。

 まず上述したIntelのホームページから、IAA 3.5に対応したフロッピー・コンフィグレーション・ユーティリティをダウンロードする。これはWindows XPのインストール時にRAIDドライバを読み込ませるためのドライバ・フロッピーの作成に用いるものだ。ドライバ・フロッピーの準備ができたら、1台目のハードディスクをシステムに接続し、BIOSセットアップでシリアルATAポートそのものが有効になっていること、さらにIntel RAIDテクノロジが有効になっていることを確認しておく。ドライバ・フロッピーを用いてRAIDドライバを組み込み、Windows XPのインストールを行う。1台目へのインストール時において、RAIDドライバの組み込みが必要なことに注意したい。インストールが完了したら、Service Packの適用やそのほかのドライバ、肝心のIAA 3.5の組み込みを済ませる。ここでシステムをいったんシャットダウンし、2台目のハードディスクを追加すれば準備は完了だ。シリアルATAはホットプラグに対応した規格だが、Windows XPはホットプラグに対応していないので注意したい。

 システムを起動してIAA 3.5のユーティリティを立ち上げると画面3のようになる。シリアルATAポートに接続された2台のハードディスクはいずれも認識されているが、まだRAIDボリュームは存在しない。そこで[RAIDサブシステム]ツリーの[RAIDボリューム]を右クリックし、表示されるメニューから既存のディスクから作成を選択する(画面4)。すると、どちらのハードディスクのデータをRAIDボリュームに転送するか聞かれることになる(画面5)。つまり、1台のドライブの内容を元に、2台のハードディスクで構成されるRAIDボリュームを作成するわけだ。ここで選択しなかった(ソース・ディスクにしなかった)ハードディスクの内容は消去される。通常は稼働中のシステムに新しいドライブを加える、という形をとるだろうから、ソース・ディスクの指定さえ間違えなければ、気にすることはない。

画面3 IAA 3.5の起動画面
2台のハードディスクが認識されていることが分かる。しかし、この時点ではRAID構成にはなっていない。
 
画面4 RAIDの構築
[RAIDボリューム]を右クリックし、現れたメニューから[既存のディスクから作成]を選択する。これでRAID構築がスタートする。
 
画面5 ソース・ディスクの選択画面
どちらのハードディスクをベースにRAIDとするかを選択する。ここで選択した方のデータが、もう一方のハードディスクに転送され、RAIDが構成されることになる。つまり、ソース・ディスクに選択しなかった方のハードディスクの内容は消去されるわけだ。

 ソース・ディスクを選択すると、次はどのようなRAID構成にするか、指定することとなる(画面6)。IAA 3.0では、ここでRAID 0しか指定できなかったが、IAA 3.5ではRAID 1が加わっている。ここではRAID 1のRAIDボリュームを作成することにする。RAID 0で指定可能なストライプ・サイズの選択がグレーアウトされ、後は「次へ」のボタンを押すばかりだ。ただし、このボタンを押しても、RAIDボリュームの作成が直ちに始まるわけではない。その後、2度にわたり、追加されたハードディスクの内容が消去され、回復できないむねの警告が表示される。これらの警告を乗り越えて、画面7のような最終確認画面の表示へとたどりつく。ここで[マイグレート]ボタンを押すと、最後の警告が表示され、[はい]ボタンを選んでようやくRAIDボリュームの作成が始まる(画面8)。画面8に示されたように、RAIDボリュームの作成には時間がかかり、今回用いた容量120GbytesのドライブでRAID 1によるRAIDボリュームの作成に1時間10分程度、RAID 0だと1時間30分程度を要した。

画面6 RAID構成の選択画面
RAIDレベルやストライプ・サイズなどを指定する。通常はRAIDボリュームの名前とRAIDレベルのみを指定すればよい。
 
画面7 RAIDボリューム構築の最終確認画面
2度にわたり「データが消去される」という警告が表示された後に、最終確認画面が現れる。ここで最終的なRAID構成について確認を行う。
  RAIDボリュームのサイズがでたらめな数字となっている。
 
画面8 処理時間に関する警告
RAID構築に時間かかかる、という警告が表示される。ここで[はい]ボタンを選択して、やっとRAID構築作業が開始される。

 このように、すべての操作はWindows上のツールで実現されており、RAIDボリュームの作成は非常に容易だ。作成にはある程度時間がかかるが、この間もPCが完全に利用できなくなるわけではなく、Webブラウジング程度なら問題なく実行できる。RAIDを利用するためのハードルはかなり低い。

 ただ、最初のリリースのためか、まだ完成度が十分でないところも見られる。例えば画面7で、RAIDボリュームのサイズが「-858993459GB」とでたらめな数字になっている。もっと深刻なのは、パラレルATA側にハードディスクを接続していると、RAID 1ボリュームのホット・マイグレート(上で示したOS稼働中のRAIDボリューム作成手順)後、システムがブートできなくなる、というものだ。RAID 0の場合は、問題なくブートできることや、BIOSセットアップにおけるブート・デバイスの選択が変わってしまうことなどを考えると、BIOSに起因する問題かもしれない。パラレルATAにハードディスクを接続していなければ問題ないのだが、問題が問題だけに、ICH5RでRAIDを構築しようというユーザーは、データのバックアップと事前テストを十分に行っておいた方がよいだろう。

IAA 3.5によるソフトウェアRAIDの性能

 さて、作成されたRAIDボリュームだが、参考までにベンチマーク・テストを実施してみた。ここではFutureMarkのPCMark2002の結果の一部を示す。参考までにHDBench Ver 3.40 beta 6(EP82改/かず氏作)のハードディスク関連のテストを実施しているが、それについては「ベンチマーク・テストの結果」を参照していただきたい。

グラフ1 PCMark2002のHD Score
性能では、RAID 0がずば抜けて高いことが分かる。その一方で、RAID 1の性能がハードディスク1台の場合とそれほど変わらないことも見て取れる。
 
グラフ2 PCMark2002のUncached file write
ファイルの書き込み性能。RAID 0の性能が高く、RAID 1は2台のハードディスクへの書き込みが必要なためか、若干性能が落ちている。
 
グラフ3 PCMark2002のUncached file read
ファイルの読み出し性能。やはりRAID 1の性能が高い。読み出しでは、RAID 1の性能が向上すると思われたが、意外と値が低い。

 当然のことながら、RAID 0は極めて高い性能を示したが、RAID 1の結果も悪くない。同じデータを2台のハードディスクに書き込むオーバーヘッドから、書き込み性能が低下するのは避けられないのだが、ここでの数字を見る限り、性能の低下は最小限だ。すでに述べたように、シリアルATAがポイント・ツー・ポイント接続であることも、この結果によい影響を与えているものと思われる。RAID 1のマイナス・ポイントは、「容量の問題だけ」といえるかもしれない。RAID 0は高速で、容量の損失もないが、冗長性の欠如による信頼性の低下というリスクを踏まえた使い方をする必要がある。

クライアントPCにおけるRAIDサポートの今後

 最も一般的なクライアントPCにおいて、3.5インチのハードディスクを4台内蔵させるということは、PCの外形サイズや電源容量、4台のドライブから発せられる熱などを考えれば、あまり現実的ではない。Intelは、サーバ向けとしてPCI-X対応で4ポートのシリアルATAを内蔵したコントローラ・チップ(Intel 32144)や、PCI-Xスロットに対応したRAIDコントローラ・カード(SRCS14L)をリリースしており、こちらが推奨されている。2つのシリアルATAポートによる、RAID 0あるいはRAID 1によるソフトウェアRAIDという仕様は、クライアントPC用として考えれば現状では十分ということなのだろう。

 ただ、将来的にはRAID技術がより大きな広がりを持つ可能性はある。そう考える理由の1つは、ハードディスクの小型化だ。現在使われている3.5インチ幅1インチ厚のハードディスクは、1990年代半ばにメインストリームに定着して以来、その座を守り続けている。ハイエンド向けのSCSIドライブが10000RPMや15000RPMといった高いディスク回転数を実現するためにプラッタの半径を3インチや2.5インチに縮小した際も、ドライブとしてのフォームファクタは3.5インチが維持された。ホットスワップ・ベイなどの資産を継承するためだ。

 だがここにきて、変化の兆しが見られる。3.5インチ・ハードディスクのドライブ当たりの容量はすでに300Gbytesに達し、AV用途を除いて、これ以上の大容量化が必要なのか、疑問に見るむきが出てきた。ブレード・サーバの登場など、ノートPC以外でもハードディスクの小型化を望む市場が生まれてきたという事情もある。上の例でも分かるとおり、ディスクの小型化はハードディスクの高性能化にも有利だ。

 こうした事情を背景に、ハードディスク業界大手の1つであるSeagate Technologiesは、一時撤退していた2.5インチ・ハードディスク市場に再参入している。もちろん、この動きの直接の理由は米国市場でも好調なノートPCの需要の高まりによるものだろうが、同社は2003年5月19日に2.5インチでエンタープライズ向けのハードディスクをリリースすることを発表している。ノートPCとサーバが2.5インチ・フォームファクタに移行した場合、デスクトップPC向けだけが3.5インチのままということは考えにくい。

 加えて、デスクトップPCに2.5インチ・ハードディスクを採用することにもメリットはある。ハードディスクの小型化はPCの小型化に貢献できるのはもちろん、2.5インチ・ハードディスクならいままでの3.5インチ・ドライブのスペースに複数台を設置することが可能だからだ。つまり3.5インチ・ドライブでは不可能だったRAIDの構成も可能になるし、その場合でも消費電力や発熱を抑えることができる。シリアルATAならケーブルも邪魔にならない(現時点では対応チップセットが存在しないため、2.5インチのシリアルATAドライブは存在しないが、これは時間の問題だろう)。

 もちろん、だからといっていますぐデスクトップPCのハードディスクが急速に2.5インチにシフトしたり、RAIDを内蔵したりするようになるとは考えにくいが、2〜3年後にはそうした動きがハッキリしてくる可能性がある。ここにきて7200RPMの2.5インチ・ドライブが目立ち始めたのも、ノートPCやサーバだけでなくデスクトップPCへの採用も考えてのものではないかと思われてならない。このタイミングでIntelがシリアルATAでRAID機能をサポートしてきたことには、隠された意味があるようにも思われる。

  関連記事
PCの起動を高速化する「Intelアプリケーション・アクセラレータ」の実体
 
  関連リンク
IAAに関するページ英語
サポート技術情報「複数台のIDEドライブがS1パワーステートに入った場合に生じる障害(812415)
 
 

 INDEX
  チップセットがサポートするソフトウェアRAIDの実用性
  1.IAA 3.5によるソフトウェアRAIDの構築と性能
    2.ベンチマーク・テストの結果
 
目次ページへ  「System Insiderの解説」


System Insider フォーラム 新着記事
  • Intelと互換プロセッサとの戦いの歴史を振り返る (2017/6/28)
     Intelのx86が誕生して約40年たつという。x86プロセッサは、互換プロセッサとの戦いでもあった。その歴史を簡単に振り返ってみよう
  • 第204回 人工知能がFPGAに恋する理由 (2017/5/25)
     最近、人工知能(AI)のアクセラレータとしてFPGAを活用する動きがある。なぜCPUやGPUに加えて、FPGAが人工知能に活用されるのだろうか。その理由は?
  • IoT実用化への号砲は鳴った (2017/4/27)
     スタートの号砲が鳴ったようだ。多くのベンダーからIoTを使った実証実験の発表が相次いでいる。あと半年もすれば、実用化へのゴールも見えてくるのだろうか?
  • スパコンの新しい潮流は人工知能にあり? (2017/3/29)
     スパコン関連の発表が続いている。多くが「人工知能」をターゲットにしているようだ。人工知能向けのスパコンとはどのようなものなのか、最近の発表から見ていこう
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

System Insider 記事ランキング

本日 月間