160スレッドのCPU能力を活用するには
日本ヒューレット・パッカードの伊藤章一氏が、セミナー冒頭で紹介したのが講談社でのデータウェアハウス/BIの事例。Microsoft SQL ServerとHP ProLiant DL980、そしてフラッシュメモリーだけで構成されたストレージ「VMAシリーズ」という組み合わせだ。
この組み合わせが採用されたポイントは「実機検証を行ったこと」。5年分の実データを用いた実機による検証の結果、現行の5倍以上の処理速度が確認できた。そのうえ、コストは他社アプライアンス製品の1/4だったことが採用の決め手となった。
この事例でも活用されているHP ProLiant DL980 G7とは、いったいどんなサーバーなのか。
最新のハイエンドCPUである、インテルのXeonプロセッサE7ファミリーを搭載するハイエンドサーバー。搭載するプロセッサは10コアで、これを8個搭載できる。つまり80コア、スレッド数はなんと160にもなるのだ。
「これに4TBのメモリが搭載可能で、もっともスケールアップされたサーバーです。HP独自のチップセットとの組み合わせで、業界標準のベンチマークテストでも、世界最高性能を発揮しています」(伊藤氏)
単純に80コア160スレッドで動くとは言っても、これはじつは簡単なことではない。80コア160スレッドのCPUの能力を均等かつ効率的に利用するには、ソフトウェアがまずこれに対応できなければならない。
「SQL Server 2008 R2では、NUMA(Non-Uniform Memory Access)に対応しています。当然、OSであるWindows ServerもNUMA対応しているので、80コアをフルに使うことができるのです。とはいえ、ソフトウェアが対応しているだけでも十分ではない。その上で、高速なデータの読み取りができなければいけません」(伊藤氏)
そのために活用されたのが、フラッシュメモリストレージだったというわけだ。
CPUコアがたくさんあっても、そこで処理するためのデータがなければCPUは結局処理待ち状態になってしまう。そうなれば、パフォーマンスメータのグラフの線は、処理ゼロのところで横一直線の状態になってしまう。この図のように160スレッドすべてが、処理待ち状態ではなくきちんと個別に処理を行っているグラフ状態となるためには、十分なデータを160スレッドすべてに渡せなければならないのだ。これができるからこそ、前述の検証結果のように高い処理性能が発揮できる。
ポイントは160スレッドに待ち時間なしでストレージからデータを渡すこと
この160スレッドを効率的に活用し、高い性能を発揮すると共に、信頼性を確保しているのもGL980 G7の特長だ。これを支えているのが、HPの独自開発のチップセットで実現している「PREMAアーキテクチャ」。伊藤氏によれば、HPのUNIX領域で培ってきたノウハウを元にしたもので、Itaniumサーバーでもすでに実績のあるテクノロジーだという。
「障害時にも適切にログを取得し、システムが稼働し続ける状態を維持します。そして、仮想マシンの障害を封じ込めることができ、普通のx86サーバーではできない信頼性と可用性を実現しています」(伊藤氏)
このPREMAアーキテクチャで高速化に寄与しているのが、スマートCPUキャッシングという機能だ。マルチプロセッサの処理では、プロセッサ間のキャッシュ情報のやり取りが多数発生し、それがボトルネックとなりパフォーマンスが出ないことがある。これは「キャッシュ・コヒーレンシ・トラフィック」が増大すると表現され、通常のマシンではキャッシュ情報のやり取りが1ホップから2ホップ必要になり、平均すると1.57ホップになるとのこと。PREMAアーキテクチャでは、スマートCPUキャッシングという機能により、平均1ホップで各CPUはデータを読み込むことができ、これで高速化ができるのだ。
これに組み合わせて使うのが、HP VMAシリーズメモリーアレイだ。
「HPはさまざまなフラッシュメモリーのソリューションを持っています。その中でもVMAシリーズは、3Uの筐体の中で、フラッシュメモリーをPCI Expressバスに直接接続する形のストレージアレイとなっています。フラッシュメモリーには高性能で高寿命のSLCを採用し、搭載できる容量は5テラバイトと10テラバイトの2種類を用意しています」(伊藤氏)
すべてがフラッシュメモリーで構成されるストレージアレイが登場した背景としては、NANDフラッシュが大容量化しさらに低コスト化したことがある。2010年以降、NANDフラッシュの利用が急激に広がっているという。その結果、サーバーにフラッシュメモリーを直接接続できるような、新しいストレージが安価に提供できるようになったのだ。
VMAシリーズでは、VIMMと呼ばれる容量128ギガバイトのモジュールを84枚搭載できる。1枚のVIMMにはDRAMとViolion memory Controller、そしてNANDフラッシュが搭載されている。84枚のVIMMのうち、4枚はホットスペアとして機能する。電源やファンも当然二重化されている。つまり、フラッシュメモリーをエンタープライズ用途で十分に使えるよう、最初から設計されているものなのだ。
GL980 G7とVMAシリーズの組み合わせは、よくOracleのExadataと競合することがあるとか。ある事例では、比較検証した結果、この組み合わせがクエリーによっては約4倍速い性能を発揮した。
「DL980 G7とVMA、これにSQL Serverを組み合わせると性能的なメリットはかなり大きなものがあります。コストの面でも低コストで導入運用できる。アプライアンスの提案機会がある際には、この組み合わせも是非検討して欲しいです」とリレーセッションのホスト役を務めたマクロソフトの北川氏も、伊藤氏の話を補足。
実際、価格は本当に安いのか。VMAシリーズの10テラバイトの製品は、4000万円強。5テラバイトではおよそ2100万円。この金額だけみると、かなり高価な製品に思える。とはいえ、ギガバイト単価でみるとどちらの場合もおよそ4000円。
「HPの既存のIOアクセラレータ製品で、ギガバイト単価は5000円を超えます。SAS SSDでもギガバイト単価は3500円を超えるので、VMAシリーズはギガバイト単価でみれば十分に安いと考えています」(伊藤氏)
さらに、現在はデータベースプラットフォームとしてDL980 G7とVMAシリーズの組み合わせを採用した場合には、価格を半額以上割り引くキャンペーンを実施している。最初に紹介した講談社の事例も、まさにこのキャンペーンを活用しているとのことだ。
通常は、80コアを使うとなると仮想化という話になりがちだ。とはいえ、十分に速いVMAシリーズと組み合わせれば、DL980の80コアこそがビッグデータに向いていると言えるだろう。そのときのポイントは、いかに効率的にCPUにデータを渡すことができるのか。多スレッド化により高性能化しているサーバーでは、フラッシュメモリーを活用することで、それが新たなビッグデータ活用につながることになるだろう。