Fusion-ioの本当の速さと
その理由を大公開!
2010/11/15
最近話題のPCI Expressカード型フラッシュメモリ・デバイスのひとつである、Fusion-io社の「ioDrive」はどこまで速いのか。そしてそれはなぜか。ioDriveを国内でもOEM供給しているデル株式会社のラージ・エンタープライズ・マーケティング データベース・ソリューション・ブランド・マネージャの一志達也氏が、ioDriveをめぐる「秘密」を明らかにする。
サーバのCPUは、この20数年で速度が200万倍程度向上した。しかしハードディスクの速度向上は20倍程度。すなわちハードディスクはサーバ全体としての速度向上の足かせになっている。言い換えれば、CPU/キャッシュとハードディスクの「距離」は非常に遠い。近年利用が進みつつあるSSDは、記録媒体の速度向上という点で大きな進歩をもたらした。しかし、まだCPUからの距離は十分に近くなっていない。この状況を打開すべく登場したのがFusion-ioのioDriveだ。
デルはエントリレベルからハイエンドまで多様なサーバモデルを提供しているが、例えば「使い切れないからハイエンドのプロセッサは要らない」「サーバのCPUソケット数は多くなくてもいい」「エントリサーバを並べるほうが全体のパフォーマンスを向上できる」といったユーザーが増えている。これもハードディスクが遅いことに原因がある。記録媒体が速くなれば、CPUのIO待ちを減らすことができるから、ハイエンドのプロセッサを複数搭載したサーバの活用機会ができ、結果的にサーバの台数を減らすことができる。さらに、ハードディスクのスピードを稼ぐために、多数のディスクドライブで並列化を図る必要もなくなる。すると、省電力化とスペースの節約につながり、管理対象としての装置の数も減らすことができる。
【ホワイトペーパー】
Fusion-ioを用いることによる、データセンターの省電力
Fusion-io社のioDriveは、ハードディスク装置(ストレージ)や関連機器の削減に貢献し、結果的に省電力性を高めることにつながります。
ホワイトペーパーのダウンロードページへ (TechTargetジャパン)
ブレードサーバの電力効率比較(2010年8月版)
最新ベンチマークレポート ― デル、HP、IBMのブレードサーバ&エンクロージャ の消費電力とワット性能比調査
ファイルシステムとしてのパフォーマンスは?
では、ioDriveの検証結果に移ろう。
まず、純粋にファイルシステムとしてioDriveを使った場合のパフォーマンスはどの程度だろうか。
Fusion-io社のデータによると、一般的なSSDに比べて2倍以上の速度が出るという。デルも国内で検証を行っているが、検証条件などで誤差も大きいので参考値として扱っている。それでも、どういった処理に強いのかといった傾向はよく分かる。
ランダムリード | 効果大 |
---|---|
シーケンシャルリード | 効果小(場合によってはHDDの方が高速) |
ランダムライト | 効果大 |
シーケンシャルライト | 効果小(場合によってはHDDの方が高速) |
ioDriveは一般的なSSDに比べかなり高速だが、パフォーマンス特性は同じだといえる。すなわち、ランダムI/Oは非常に高速だが、シーケンシャルI/Oでの効果は薄い。また、書き込みに関しては、読み込みほど劇的な高速化は期待できない。差が小さくなる要因は、HDDを用いたストレージに搭載されたキャッシュが効くためで、多数のHDDを並列利用すれば差は一層小さくなる。
データベースにはどう使えるのか
それでは、データベースではどうなるか。検証結果を示す前に、まずデータベースにおけるioDriveの活用方法を考えてみよう。
ioDriveの使い方は3通り考えられる。まずデータベースのデータすべてをioDriveに格納する方法、2つ目はI/Oの集中する領域だけをioDriveに格納する方法、そして3つ目は、ioDriveをキャッシュ領域として利用する方法だ。
最初の、データベースのデータすべてをioDriveに格納する方法は、もっとも効果を出しやすい。問題は、ioDriveの容量が十分かどうかだ。データ量が320GBまでなら、デルがOEM提供するSLCタイプのioDriveカード2枚を使うことにより、全データを格納できる。若干パフォーマンスは劣るが容量を確保できるMLCタイプなら、デルのOEM製品の場合、1.2TBまで格納できる。
I/Oの集中する領域だけをioDriveに格納する方法は、コストパフォーマンスが高い。ただし、どうやってデータ領域を分割するか、運用をどうするかといった課題がある。
3番目のキャッシュ領域として利用する方法について、少し考えてみよう。
データベースのチューニングにおける最大のポイントは、キャッシュヒット率を高めることとされてきた。これはハードディスクが遅いためだ。なるべくハードディスクへのアクセスを減らすことで、速度を保つ方法が実践されてきた。
業務システムならまだしも、インターネット系のアプリケーションでは、ユーザー数も利用パターンも予測が困難だ。アクセスされるデータもばらばらで、予測がつかない。このため、キャッシュヒット率がなかなか高められない。そこで、SQLをチューニングしてインデックスをうまく使わせるとか、コストを掛けてRAMの容量を増やすとか、ハードディスクの並列性を高めるとか、さまざまな工夫がなされてきた。
ioDriveでは、容易にキャッシュヒット率を高められる可能性がある。ただし、後述するように一部のソフトウェアでしか実現できないという課題がある。
デルでは、Oracle DatabaseとSQLServerのそれぞれについて、さまざまなシナリオでioDriveの利用効果を明らかにするためベンチマークテストを独自に実施した。これらの結果については下記の資料を、また、これらの実証実験を取り上げた「次世代データセンターソリューションセミナー データベースユーザー必見! 検証結果が証明するI/Oボトルネック解消術とは」のセミナーレポートもあわせてご覧いただきたい。
【ホワイトペーパー】
Fusion-ioによるデータベース性能の飛躍的向上
Fusion-ioは、ハードディスクの性能がボトルネックとなっている環境に最適です。このホワイトペーパーでは、特にデータベース環境における効果について言及しています。
ホワイトペーパーのダウンロードページへ (TechTargetジャパン)
PCIe ソリッド ステート ストレージで加速する、デル&Oracle 11g R2 データベース ソリューション
Oracle Database環境において、I/Oパフォーマンスを劇的に向上する方法のひとつは、SSDを採用することです。本ホワイトペーパーでは、SSDよりさらに高速なFusion-ioの概要と、その効果についての検証結果を紹介します。
【講演資料】
国内で実施されたFusion-io検証結果のご紹介
2010年10月開催の「次世代データセンターソリューションセミナー データベースユーザー必見! 検証結果が証明するI/Oボトルネック解消術とは」で好評を博した講演資料を特別に公開。
ioDriveはなぜそんなに速いのか
Fusion-ioのioDriveが、一般のSSDと比較して高速である理由はなんだろうか。
一般的なハードディスク型のSSDでは、SASあるいはSATAのインタフェースを経由し、さらにRAIDコントローラを経てSSDにアクセスする。その分、ステップが多いことになる。対して、ioDriveはPCIeに直結し、RAMとも直接やり取りすることができる。このため、ステップ数が少ないといえる。
内部的にも工夫がされている。例えば160GBのSLCでは、フラッシュメモリのセル(チップ)が200個搭載されている。これを24本のチャンネルに分割して使っている。このため24本の並列動作が可能だ。1チャンネルに8個のセルが割り当てられている計算になる。
PCIeカード型のSSDには、Fusion-io以外の製品もある。しかし、他社の製品では、RAIDコントローラを内蔵しているものは、内蔵HDD型のSSDと同様にオーバーヘッドが発生してしまう。また、書き込み遅延が発生するため、電源の瞬断などに備えてバッテリを搭載する必要がある。一方ioDriveは、バッテリでなくコンデンサを備えている。データが書き込みのパイプラインに入ったところでコミットされ、ACKが返される。万が一電源の瞬断があっても、コンデンサに蓄えられた電荷でフラッシュメモリに書き込める。この技術によりHDDタイプのSSDに必要なライトキャッシュとキャッシュのバッテリ保護が不要となる。
ioDriveでは信頼性がどう担保されているか
NAND型フラッシュメモリでは、半導体素子の一部が故障することがある。故障した半導体素子の数は徐々に増えていく。これは不可避だ。ioDriveでは、半導体素子の故障に備えて、予備領域を用意している。デフォルトは20%だが、GUIツールにより、この領域の比率を高めたフォーマットを行うことができる。
予備領域を広げれば、その分容量は小さくなるが、パフォーマンス向上のメリットもある。予備領域をioDriveにとってのキャッシュのように使うのだ。NAND型フラッシュメモリで一番遅い動作はデータの消去だ。予備領域を活用することで、データを書き込むまえにその素子上のデータを消去する回数を減らすことができる。書き込む場所を平準化することで、書き込み回数制限の問題を緩和できる。
フラッシュメモリでは、書き込み回数の上限からくる寿命の問題を懸念する声がよく聞かれる。しかし、ioDrive 160GB SLCは平均で75 PBの書き込みに耐える。1日当たり10TBを書き込むとすると、耐用年数は約20.5年という計算になる。ioDrive 640GB MLCの場合、平均8PBの書き込みが可能だ。1日当たり1TBとすると、耐用年数は約22年に相当する。いずれにしても、通常のサーバの利用年数をはるかに超える数値だ。実質上、ioDriveの寿命を心配する必要はない。
関連リンク
関連記事
- 噂のFusion-io ioDrive、その実力は? どう使いこなすべき?(@IT Special)
- Fusion-ioのクールな技術を使いこなせ!(@IT Special)
- デルがサーバとストレージを発表、GPUコンピューティングにも対応(@IT Server & Storage)
提供:デル株式会社
アイティメディア営業企画/制作:@IT 編集部
掲載内容有効期限:2010年12月14日