SiI3124とポートマルチプライヤによるRAIDの構成例

作成
2008/06/18 Wed
公開
2008/06/25 Wed
更新

 安価に多くのHDDを使ったRAIDを試してみたいと思ったとき、SATAのHostRAIDカード+ポートマルチプライヤを内蔵したeSATA HDD Boxは扱いやすい候補の一つです。

 ここでは玄人志向SATA2RAID-PCIX (Silicon Image SiI3124)とRATOC Systems SA-DK5ES-PE(ポートマルチプライヤを内蔵した外付HDD Box)様々なRAIDを組んで比較した結果が記載されています。Intel(R) Matrix Storageの例は「WD Raptorで構成したRAID0の調整例」の方に少しですが記述が有ります。


Tips へ戻る トップへ戻る

◎目次


Tips へ戻る トップへ戻る

1.目的

 当サイトのメインPCは、少し多めのHDDを搭載するためにSATAのインターフェイスを拡張しています。このインターフェイスとして、安価で入手しやすいのにPCI-Xに対応して十分な転送能力を確保出来る玄人志向SATA2RAID-PCIX (Silicon Image SiI3124)を使っています。各ポートは、内蔵HDD用に使っているほかに、リムーバブルケースを5つもったRATOC Systems SA-DK5ES-PE(ポートマルチプライヤを内蔵した外付HDD Box)を繋げて、バックアップ用HDDを接続したり、面白そうなHDDを実験したりするのに使っています。

 普段RAIDを使わず単なる拡張SATAインターフェイスとして動作しています。玄人志向SATA2RAID-PCIXを動作させているワークステーション/サーバ系のチップセット Intel 5000Xを使ったM/B Supermicro X7DAE上のPCI-Xは強力で余裕のあるI/Oバスです。このシステム上に乗せて使っているのもあるのでしょう、非常に良く性能が出ています。

 さて、気軽にHDD台数の多いRAIDを組もうと思うと、SATAのHotsRAID+ポートマルチプライヤというのは外せないラインです。その割に、特性について参考になる資料が少ないように思います。よく見かけるのは、RAID構成の仕方の資料で、其の特性を全般的に調べた資料が少ないのです。

 特に、RAIDらしいRAIDのインテリジェントRAIDインターフェイスやRAID BOXで常識とされている振る舞いと異なる振る舞いをする可能性があるのですが、其の辺りについて調べた資料はあまりありません。

 ちょうど良いことに単体HDDで良い性能が出ている上記組み合わせは、RAIDを構成できます。そこで、玄人志向SATA2RAID-PCIX (Silicon Image SiI3124)+RATOC Systems SA-DK5ES-PEを組み合わせて、安価なRAIDの構成例として特性を測ってみることにしました。

 以下の文書では其の測定結果について解説します。


目次へ戻る Tips へ戻る トップへ戻る

2.結論


目次へ戻る Tips へ戻る トップへ戻る

3.RAIDの特性比較

3−1.測定条件

測定条件表
IF玄人志向 SATA2RAID-PCIX (Silicon Image SiI3124)
Host Raid ROMVersion 6.4.09
Host RAID DriverVersion 1.5.11.0
バックプレーンRATOC Systems SA-DK5ES-PE
HDDWD Raptor(WD1500ADFD)
ベンチマークソフトCrystalDiskMark 2.1
その他フォーマット後の空のボリュームに対してベンチマークを行っています。

 なお、CrystalDiskMark2.1はテストサイズを 500/1000MB に設定した場合に Random Read/Write 4KB テストにて前半の 134MB しか使用しないという重大な不具合が報告されています。

 この文書内で Random Read/Write 4KBについては、50Mbyteの試験サイズと1000Mbyteの試験サイズの比較は、50Mbyteの試験サイズと134Mbyteの試験サイズの比較の状態になっています。一応試験サイズがキャッシュサイズを大きく超える場合と大きくは超えない場合の比較になっていますが、1000Mbyteの比較ほどの差になっていないはずですのでお気をつけください。

3−2.RAID方式の違いによる性能差

RAID方式の違いによる性能差 Test Size 1000MB RAID方式の違いによる性能差 Test Size 50MB

 グラフは、テストサイズ1000Mbyteの物と50Mbyteの物の2つを取り上げています。50Mbyteのテストサイズの場合はキャッシュが効きやすい状態になります。逆にテストサイズが1000Mbyteもあるとキャッシュはあまり効かない状態になります。

 RAID1のシーケンシャル読み出しの転送速度の低下が目立ちます。単独HDDの半分以下です。HDDのアクセスランプの点き方を見ていると小さなサイズで2つのHDDを交互にアクセスしているように見えます。この読み出し方をHDD側から見ると飛び飛びにアクセスされることになり、連続読込みの半分が無駄になるのではないかと考えます。

 これに比べるとIntel Matrix StorageのRAID1構成の場合は、リクエストサイズに応じてある程度は片方だけのHDDから読み出すようです。このため、単独のHDDの読み書き性能から大幅に低下することはないようです。

 RAID1のシーケンシャル読み出しの性能からすると、RAID10はシーケンシャル読み出しは良く性能が出ています。単独HDDの性能に比較してこの程度性能が出ていれば納得の出来きます。

 RAID0は、複数のHDDの組み合わせる事により読み書きを並列に行う事が出来ることによる教科書的な性能向上はもとより、キャッシュが増加した効果が良く現れています。WD Raptor(WD1500ADFD)は16Mbyteのキャッシュを持つのでRAID0で4台合わせると64Mbyteの大きなキャッシュサイズを持つことになります。

 通常、RAID0の構成を取っても、ランダムアクセスはさほど性能が向上しないというのがよく言われることだと思います。しかし、この組み合わせの場合は、キャッシュの効果らしき性能向上がランダムアクセス性能に現れています。このくらいランダムアクセスの性能が向上すると使用感が大幅に向上すると思います。HDD4台をRAID0に使う効果は大きいので安全性の犠牲と性能のトレイドオフに関して用途に応じて考えるのは十分意味がありそうです。

 RAID5は、得意とするはずのシーケンシャル読み出しで性能がさほど伸びずに、書き込み性能低下が目立ってしまいます。やはりRAID5はパリティ計算を積極的に支援する機構のあるインテリジェントRAIDカードやRAID Boxが似合っていると思いました。

 これらの方式と比較した場合、単独HDDはなかなか良い価格性能比を保っていると感じます。特にこの組み合わせの場合RAID1の性能低下が目立つ項目があるので余計にそれを感じます。Intel Matrix StorageのRAID1構成のように性能低下が少なければ、単独HDDがここまで善戦した印象がなかったと思います。

3−3.RAID0のHDD台数による転送速度変化

RAID0の台数の違いによる性能差 Test Size 1000MB RAID0の台数の違いによる性能差 Test Size 50MB

 台数が増えると速度が上がるという当たり前の結論ではあるのですが、その増え方に注目すると少し別の物が読み取れます。

 まず分かるのは転送速度の飽和傾向です。読み出しの方は230Mbyte/s程度、書き込みの方は212Mbyte/s程度で転送速度が飽和しているようです。この差は、転送速度の7%程に達しています。

 取り上げている組み合わせの場合、ポートマルチプライヤによりポート数を拡張しています。このため、SATAインターフェイスである玄人志向SATA2RAID-PCIX (Silicon Image SiI3124)とポートマルチプライヤ間の通信が混み合うところになります。この部分はGeneration 2:3.0Gbit/sec(SATA300接続)なので、上り下りおのおの300Mbyte/sの通信量が限界になります。また、SA-DK5ES-PEが使っているSATALink SATA II Port MultiplierのSiI3726の処理限界も効いてくるはずです。

 HDD⇒SiI3124方向には読み出しデータと、結果のステータスが流れます。SiI3124⇒HDD方向にはコマンドと書き込みデータが流れます。結果のステータスよりコマンドの方が大きいので、通信負荷をぎりぎりまでかけると書き込みの場合の方が実質のデータ転送量が減少します。これが読み書きの飽和の差に関わっていそうです。

 どちらにしても、もう新しいHDDでなくシーケンシャルアクセス性能が見劣りし始めたWD Raptor(WD1500ADFD)で飽和していますので、より高速な昨今のHDDでは、より少ない台数で飽和することになります。このため最高速度を生かしてRAIDを組むには各HDDとSATAインターフェイスと直結する必要がありそうです。ただ、現在のHDDでも最後のほうのセクタの転送速度はまだまだ遅いので、ポートマルチプライヤでRAID0を組高速化する意味は十分ありそうです。

 転送速度のほかに、ランダムアクセスのキャッシュの効き方を見て取ることができます。キャッシュのよく効くテストサイズ50Mbyteの方で大幅に性能が向上しているのがキャッシュの効果とみなせます。読み出しでは、合計のキャッシュサイズが64Mbyteになりテストサイズを超える4台のHDDによるRAID0で、ランダム読み出しの性能が大幅に向上しています。また、512Kbyteのブロックサイズのランダム書き込みでは2台の構成から性能が大幅に向上しています。

 これが示すような向上があるのなら、10台や20台というもっと多台数でやってみたい気がしますが、安全性が、1/10や1/20になってしまいます。これは実用ではつらいので、RAID10かRAID5で行うことになります。ここまでやるならば本格的なインテリジェントRAIDインターフェイスを導入したいとも思います。

 これらの特性を勘案すると、シーケンシャルアクセスの性能は飽和しているもののランダムアクセスで性能の向上が見られる4台くらいがこの組み合わせではよいバランスかなと思います。

3−4.RAID5のHDD台数による転送速度変化

RAID5の台数の違いによる性能差 Test Size 1000MB RAID5の台数の違いによる性能差 Test Size 50MB

 RAID5の組んだHDDの中の1台分のパリティが生成されます。書き込みはこのパリティ生成為のロスが発生しますが、読み出しはパリティ部分を読み飛ばすだけで済むはずです。シーケンシャルアクセスの場合、有効読み出しHDDは4台構成の場合3台相当、3台構成の場合2台相当となります。このため構成台数-1台と同じHDDを使ったRAID0程度のシーケンシャル読み出し性能を期待したいところです。

 ところがこの組み合わせの場合、構成台数-2台程度の性能も出ておらず、RAID5が苦手なことがよく分かります。読み出しでこの性能ですので、書き込みはさらに性能低下が激しくパリティ生成のための機構がないデメリットが直に出ています。RAID1の例といい、SiI3124とメーカー製ファームウエアの組み合わせは冗長を持たせるのが苦手のようです。

 これらの特性のため、この組み合わせによるRAID5は、読み書き共にメリットが少ないと思います。やはりRAID5は、インテリジェントRAIDカードかRAID-BOXが似合っているように思います。せめてパリティ生成のための支援機構を持ったカードでないとデメリットが大きいように思います。

 この組み合わせの場合特に、大容量HDDが手軽に入手できる現在では、あっさりRAID10を選択しても良いように思います。

3−5.RAID0のStrip Sizeによる速度変化

RAID0のStrip Sizeによる性能差 Test Size 1000MB RAID0のStrip Sizeによる性能差 Test Size 50MB

 ストライプサイズが大きい方がランダムアクセスの性能が向上し、小さい方がシーケンシャルアクセス性能が向上すると言われています。

 しかし、この組み合わせの場合一番大きなサイズである128Kbyteでほとんどの場合性能が良くなっています。劣っている場合はほんのわずかの差になっています。どうもよく言われているような法則が成り立たないようです。

 これは、この頃のHDDが大きめのキャッシュを持っているのが関わっているように思います。ストライプサイズが小さいとキューが有効に使われにくく、全体の性能が低下したり、コマンド発行回数が増えて通信効率が低下してしまうのではないかと思います。

 この組み合わせの場合、迷うことなく、128Kbyteのストライプサイズを選択して良いのではないでしょうか。他のHDDとの組み合わせの場合も、WD Raptor(WD1500ADFD)と同等以上の大きなキャッシュを持っていることが多いのでまず128Kbyteのストライプサイズから試して、応用の様子により小さい物を選択するのがよいように思います。

3−6.RAID10のStrip Sizeによる速度変化

RAID10のStrip Sizeによる性能差 Test Size 1000MB RAID10のStrip Sizeによる性能差 Test Size 50MB

 RAID0の時と比べると、変化が少ないようです。128Kbyteのストライプサイズでシーケンシャル読み出し性能が大幅に劣化している他は、変化が乏しいグラフになっています。他の差異としてはHDDのキャッシュの影響が大きいテストサイズ50Mbyteのシーケンシャル読み出しに大きめの差が認められます。

 この中でストライプサイズ8kbyteか64Kbyteが性能が高そうです。ただ、HDDのキャッシュの影響が大きいテストサイズ50Mbyteのシーケンシャル読み出しの8Kbyteの性能は、キャッシュが特によく効いた時の特異点のように見えますので、ここは64Kbyteの方が有効のように思います。


目次へ戻る Tips へ戻る トップへ戻る