仮想化道場

フラッシュメモリを利用したハイブリッドストレージ「Nytro MegaRAID」

 ストレージでは、フラッシュメモリによってI/Oの劇的な向上を実現しているが、価格面などから、すべてをSSDに置き換えるというのは現実的とは言いがたい状態だ。この溝を埋めるのが、フラッシュメモリをHDDのキャッシュとして搭載するソリューションである。

 今回は、その中からLSIロジックの「Nytro MegaRAID Application Acceleration Card」(以下、Nytro MegaRAID)をお借りしたので、簡単な使用感などをお届けする。

フラッシュメモリをキャッシュとして利用する現実的な選択肢

 仮想マシンのテストを行っていると、いつも気になるのが、ストレージのパフォーマンスだ。最近のサーバーでは、搭載するCPUがマルチコア化を果たしたことで、1台のサーバーに搭載されるCPUコアの数もアップしている。また、メモリに関しても、大容量化を実現しており、1TBの内蔵メモリも驚くべきスペックとは言えなくなっている。このように、コンピュート部分は急速に仮想化への対応を果たしていると言える。

 一方で、ボトルネックになりやすくなっているのがストレージ性能の部分だろう。多くの仮想化システムでは、大容量の単一ファイルを仮想ストレージとして使用している。さらに、複数の仮想マシンが動作する環境では、仮想ストレージへのアクセスが頻繁に起こるため、仮想システムの大きなボトルネックの一つがストレージのI/O性能になる。

 最近では、フラッシュメモリを採用したSSDや、PCI Expressインターフェイスに接続するフラッシュストレージなども発売されているが、すべてのストレージをフラッシュメモリで置き換えるには、コスト的に厳しい。

 将来的に、新しい不揮発メモリテクノロジーが一般化することで、低価格かつ大容量のストレージが実現できるようになれば、HDDを置き換えるものになるかもしれない。しかし、HDDの容量増加ペースが最近では鈍化してきているとはいえ、それでもHDDの容量増加と低コスト化は驚くべきモノがある。こういったことからも、中期的にも大容量のストレージとしては、HDDが中核となるだろう。

 そこで現実的な手段として注目されているのが、HDDとフラッシュメモリのハイブリッド型ストレージである。

メインメモリとHDDの間には、速度的に大きなギャップが存在する。これをフラッシュメモリによって埋めるのが、現実的なソリューションになりつつある

フラッシュメモリをキャッシュとして搭載したRAIDカード

 Nytro MegaRAIDは、LSIロジックのRAIDカードにフラッシュメモリをキャッシュとして搭載したストレージインターフェイスカードだ。6Gbps SAS/SATAのストレージが4台接続できるRAIDカードになっており、フラッシュメモリの容量は、100GB(SLC)、200GB(eMLC)、800GB(eMLC)の3種類がラインアップされている(フラッシュメモリは、後で追加はできない)。

 LSIロジックの親会社であるLSI Corporationでは、フラッシュメモリに関して高いノウハウを持ち、高性能なコントローラを開発しているSandForceを2012年に買収しているが、この製品を含むNytroシリーズでは、SandForceの製品が利用されている。SandForceを買収したことにより、今までのHDDとは異なる、フラッシュメモリを利用した製品の企画・開発が高いレベルで進められるのは、大きなメリットだろう。

Nytro MegaRAIDは、フラッシュメモリをスマートキャッシュとして搭載したRAIDカード。フラッシュメモリの容量は、100GB、200GB、800GBの3種類が用意されている
今回、LSIロジックからお借りしたNytro MegaRAID 8100 4i。100GBのSLCフラッシュメモリを搭載し、6Gbps SAS/SATAが4ポートあるRAIDカードだ
Nytro MegaRAIDには、2つのフラッシュメモリモジュールとSandForceのフラッシュコントローラ、RAID対応のSAS/SATAコントローラチップ、コントローラチップなどが搭載されている
類似した競合製品と比べても、速度的な優位性があるという

 またハードウェアではないが、NytroシリーズにはNytro Predictorソフトウェア・ツールというソフトウェアが用意されている。このソフトでは、SANやDASストレージへのアクセス頻度が高いアプリケーションの“ホットスポット”を特定。どのデータが、ホットスポットになっているのかを分析することで、そのデータを高速なフラッシュストレージに移行することができる。

 また、どれだけI/O性能がアップするかを可視化可能なほか、フラッシュメモリをキャッシュとして利用することで、どのアプリケーションがI/O性能をアップすることができるかをチェックできるという。

 このようなソフトウェアを利用すれば、実際のハードウェアを導入する前に、どの程度の性能が上がるかを分析することができる。また、使用しているアプリケーションやデータによって、どの程度の容量を搭載した製品がマッチするかをアドバイスしてくれるのも大きな効果だ。

 なおハードウェアのNytroシリーズとしては、PCI ExpressインターフェイスのフラッシュストレージとなるNytro Warp Drive Application Acceleration Card(フラッシュメモリの容量は、200GB、400GB、800GB、1.6TBがある)、SAS/SATAのインターフェイスを持たずに、既存のSANやDAS(Direct Attached Storage)のデータをキャッシュするNytro XD Application Acceleration Card(400GB、800GB)が用意されている。

LSIロジックのフラッシュメモリソリューション一覧。大きく3つの製品群が提供されている
Nytro WarpDriveは、PCI Express 2.0バス直結のフラッシュストレージ。SAS/SATAインターフェイスのSSDとは異なり、PCI Express 2.0が持つ高いバス性能を持つフラッシュストレージとなっている
Nytro XDは、SANやDASなどのスマートキャッシュとなるカード。Nytro MegaRAIDのようにカードに直接HDDを接続しないSANストレージ、他のカードに接続するDASなどに使われる。Nytro XDを複数インストールして、SANやDASなどストレージ全般に対して、ソフトウェア的にキャッシュするシステムが構築できる

各種のハイパーバイザーをサポート

 Nytro MegaRAIDは、Windows Server 2012/Server 2008/Server 2008 R2/Server 2003や、Windows 8/7/Vistaなどに対応。それ以外にも、VMware ESX 4.0/4.1/5.0、SUSE Linux Enterprise 10/11、Red Hat Enterprise Linux 5.6/6.0/6.1/6.2などがサポートされている。

 つまりNytro MegaRAIDは、WindowsはHyper-V、VMwareはESX、LinuxはKVM/Xenなどのハイパーバイザー環境下で使用することができる。特に、ESXのドライバがリリースされているため、多くのユーザーが利用しているVMware vSphere環境においても、フラッシュメモリ連携による性能向上の恩恵を受けられる。

 もちろんドライバだけでなく、Nytro MegaRAIDを管理するMegaRAID Storage Manager ソフトウェアもWindows版、Linux版、Solaris版などが用意されている。

Nytro MegaRAIDをテストする

 今回は、LSIロジックから100GBのフラッシュメモリを搭載したNytro MegaRAID(NMR8100 4i)をお借りしたので、ストレージのI/O性能を軽くテストしてみた。

 ただし最初にお断りしておくが、手元にあったPC環境がPCI Express 3.0をサポートしていなかったり、3Gbps SATAのHDDしか用意できないなど、Nytro MegaRAIDが発揮できる最大パフォーマンスと比べると不足しているので、あくまで参考レベルにとどめていただきたい。

 さて具体的な環境だが、3Gbps SATAのHDDを3台搭載してRAID 5を構成し、ベンチマークを行った。ベンチマークには、ディスクベンチマークソフトとしてはCrystal Disk Mark(3.0.2 x64)を利用している。

 結果からいえば、さすがフラッシュメモリを搭載しているNytro MegaRAIDだと納得してしまうほどの性能を叩き出している。シーケンシャルのリードに関しては約3.3倍、シーケンシャルのライトに関しては約13倍のIO性能を実現した。

 注目すべきは、ランダムのI/O性能のアップだろう。512Kのランダム リード/ライトでは、約14倍の性能を出している。さらに、4Kのランダム リード/ライトなどの細かなブロックのアクセスに関しては約40倍、NCQ(ディスクコマンドのキューイング機能)を利用したベンチマークでは90倍ほどの性能アップとなっている。

 これは、Crystal Disk Markなどのディスクベンチマークでは、ベンチマークに利用するデータ量がそれほど大きくなく、すべてがフラッシュメモリのキャッシュに収まってしまうためだろうか。

3Gbps SATA HDD3台をRAID 5で構成したが、キャッシュがオフの状態。MegaRAIDのチップの性能なのか、HDDのみのストレージとしては高い性能だ
Nytro MegaRAIDのキャッシュをオンにすると、信じられないほど高いI/O性能が出ている。なおRAID 5だけでなくRAID 0でもテストしたが、I/O性能としてはほとんど変わらなかった
参考までに、3Gbps SATAドライブを1台接続してベンチマークを行った。キャッシュをオフにすると、チップセットのSATAポートに接続したのとほとんど変わらないIO性能だった
そこからキャッシュをオンにした状態。キャッシュなしに比べると約6~10倍のI/O性能をたたき出す。特にランダムアクセスの性能アップは目をみはるものがある

ベンチマーク環境
CPU:AMD FX-8150(8コア:Bulldozer) 3.6GHz
メモリ:DDR3-1600 16GB
HDD:HSGT 3Gbps SATA HDP72505 500GB×3台

コストパフォーマンスに優れたNytro MegaRAID

 それにしても、キャッシュをオンにした場合とオフにした場合で、これだけの差が出るのは注目に値する。

 HDDだけで高いパフォーマンスを出すには、回転数が高く、コストの高いSAS HDD(あるいはFC HDDなど)を複数台組み合わせてRAIDドライブを構築する必要がある。しかし、Nytro MegaRAIDを利用すれば、低コストで大容量なSATAドライブを使っても、高いI/O性能を出すことができる。

 特に、細かなブロックに対してアクセスを行うデータベースなどには、大きな性能向上をもたらす。LSIロジックでは、OracleやSQL Serverなどのデータベースにおいて、高いパフォーマンスが出ることをテストしている。また、1台のサーバー上で、多数の仮想マシンを稼働させるVDIなどの用途にも、高い性能を示している。

 CPUやメモリの性能アップが図られると、重要になってくるのはストレージ性能だろう。仮想化だけでなく、データ量が爆発するビッグデータなどの用途を考えれば、1台1台のストレージ性能をどれだけアップできるかが、システム全体のパフォーマンスを左右する。

 すべてのストレージをSSDなどのフラッシュメモリで構築するのは、コスト的に非現実的なため、Nytro MegaRAIDのようなハイブリッドRAIDカードは、今後サーバーには必須のシステムになるのかもしれない。

 なお、仮想環境でPCI Express直結のフラッシュストレージやNytro MegaRAIDのようなハイブリッドRAIDを利用するためには、専用のドライバが必要になる。WindowsのHyper-VやLinuxなどは、各OS用に開発されたドライバが仮想環境で利用できる。

 ただVMware ESXiに関しては、最近まではドライバ開発のファーストプライオリティではなかったようで、あまりサポートされていなかった。しかし、仮想化があたり前になり、多くの周辺機器ベンダーがドライバ開発を進めている。こういった状況を考えると、仮想環境でもフラッシュストレージの利用がより進んでくるのではないだろうか。

LSIロジックが行ったTPC-Cベンチマークでは、HDDのみの場合と比べて、キャッシュを有効にしたNytro MegaRAIDは、約9倍のI/O性能を叩き出している

(山本 雅史)