仮想化道場

サーバーを大きく変える可能性を持つ「3D XPoint」

最初の製品となるOptane SSD DC P4800X

 IntelとMicronが2015年に発表した新しい不揮発性メモリ、「3D XPoint」。これを使った新しいSSDが、3月19日にIntelから発表された。

 今回は、この詳細を説明しよう。

3D XPoint最初の製品となるOptane SSD DC P4800X

 3D XPointは、フラッシュメモリを生産しているIntelとMicronの合弁企業IM Flash Technologiesが開発・生産している。

 IntelではOptaneというブランド名で、MicronはQuantXというブランド名でそれぞれ製品を提供することになっているが、今回発表されたSSDは、サーバーやデータセンター向けの「Optane SSD DC P4800X」(以下、P4800X)だ。

 P4800Xには、NVMe対応のAdd in Card(AIC)と、2.5型ドライブ形状のU.2の2種類が用意されている。インターフェイスは両方ともPCI Express Gen3 x4で、容量に関しては、375GB、750GB、1.5TBの3種類が提供される。

 今回の発表は一般販売の開始ではなく、早期採用の顧客に対して4月19日より提供が開始されるというものだ。P4800Xの一般販売は2017年後半(2H)、あるいは4~6月(Q2)といったスケジュールになっているようで、いわば今回の発表は、今後このような製品を販売していくといったアナウンスに近い。このため、価格に関しても、今回の発表では明らかにされていない。

今回発表されたOptane SSD DC P4800X。3月19日に発表されたが、製品提供は2017年後半になるという。製品は、PCIeカード型(AIC)と2.5型ドライブのU.2型がリリースされる(出典:P4800X記者説明会資料より)
Optaneでは、アクセス性能と応答性と耐久性を向上させ、レイテンシを小さくしている。NANDメモリとは根本的に異なる不揮発メモリだ(出典:P4800X記者説明会資料より)

NANDフラッシュより高速な3D XPoint

 3D XPointを使用しているP4800Xの最大の特徴は、現在多くのSSDに採用されているNANDフラッシュメモリよりも非常に高い性能を持っていることだ。

 データアクセスに関しては、NANDフラッシュメモリを採用したIntel P3700に比べるとランダムリードで10倍、ランダムライトで3倍、リード/ライトのミックス(リード70%/ライト30%)で8倍の性能を実現しているという。

 またレイテンシに関しては、既存のNANDフラッシュメモリよりも10倍も高速になっている。

 Intelが配布している資料(70%リード/30%ライト 4Kランダム)では、P3700は32万IOPSあたりで頭打ちになる。レイテンシに関しても100μ秒から始まり、負荷がかかると1万μ秒を超えるまで遅延が起こっている。しかしP4800Xでは、10μ秒から始まり、負荷がかかってもあまり遅延は大きくなっていない。データアクセスは52万IOPSあたりで頭打ちになっている。

 なお52万IOPSの限界が、3D XPoint、コントローラ、インターフェイスなどのどこに起因するものなのかはこれだけの資料ではわからないが、当初Intelがうたっていた3D XPointの性能ほどは出せていない。つまり、まだ高速化する余地があるわけだ。

負荷をかけてリード/ライトを行っても、P4800Xはレイテンシが大きくならない(出典:P4800X記者説明会資料より)。
P4800Xでは、データアクセスのIOPSが52万IOPSと、NANDフラッシュメモリを使ったP3700に比べると大幅にアップしている
NANDフラッシュのP3700では、Queue Depth(QD)を深くしてスループットを上げるか、QDを浅くしてレイテンシを少なくするかの2択だった。しかしOptane P4800Xは、QDを浅くしても高いスループットが得られる(出典:P4800X記者説明会資料より)

 また別の資料では、3D XPointの耐久性の高さを示している。フラッシュメモリなどの耐久性を表す指標として、製品の容量に対し、1日にフラッシュメモリ全体を何度書き換えられるかというDWPD(Drive Write Per Day)がある。NANDフラッシュメモリでは、0.5~10DWPDだが、3D XPointでは30DWPDを保証している。3D XPoint自体としては、もっと高いDWPDを実現しているのだろう。

Optaneは高い耐久性を持っている。毎日30回すべてのデータを書き換えても、5年以上エラーが起こらないことを保証しているという(出典:P4800X記者説明会資料より)

 NANDフラッシュメモリでは、データのリード/ライトをページ単位で行っている。このため、ランダムのリード/ライトは時間がかかる。しかし、3D XPointでは、ワード単位でのデータのリード/ライトが行える(DRAMと同じ単位)ため、NANDフラッシュメモリよりも効率よくデータアクセスが行える。このあたりが、性能の向上につながっているのだろう。

Optaneは、NANDフラッシュメモリよりも小なデータ粒度(ページ単位ではなくワード単位)でアクセスできるため、レスポンスタイムが向上しているという

 容量面では、3D XPointはNANDフラッシュメモリと同じ容量を実現しているとIntelでは説明している。とはいえP4800Xでは、最大1.5TBにとどまっており、2TBや4TBといった大容量の製品は、現状では用意されていない。3D XPointメモリは第1世代のため、まだまだメモリチップの熟成が進んでいないのかもしれない。

 3D XPointの試作チップは128Gビットだったため、製品化においても同様の容量と思われる。また、NANDフラッシュメモリのように積層化が難しいと言われているので、大幅な容量増加は難しいのではと予測されている。

 一方で、NANDフラッシュメモリでは256Gビットと、3D XPointの2倍の容量が製品化されている。また開発段階ではあるが、512Gビットや1Tビットといった大容量のNANDフラッシュメモリも視野に見えてきている。

 3D XPointの容量に関する問題は今後、新しいテクノロジージャンプにより解決するかもしれないし、逆にNANDフラッシュで速度に関する大幅な技術革新がないとも言い切れないが、現状の製品を見る限りは、ここ2~3年間、NANDフラッシュメモリと3D XPointは別々の用途で使われていくだろう。

Optaneは、3D XPointだけでなく、Intelが持つさまざまなハードウェアテクノロジーやソフトウェアテクノロジーによって構築されている(出典:P4800X記者説明会資料より)。

Optaneはメモリとディスクのギャップを埋める

 さて、具体的な用途を見てみよう。

 IntelではOptaneを、メインメモリとSSDやHDDとのギャップを埋める新たなメモリとして位置づけている。

Intelでは3D XPointをDRAMとSSDのギャップを埋める新しいメモリとして定義している(出典:P4800X記者説明会資料より)

 サーバー向けのプロセッサのXeon、P4800XとIntel Memory Technologyを組み合わせることで、P4800Xをメインメモリのようにして利用できるとしているのだ。

 Optaneをメモリとして使用する場合、インターフェイスがPCI Express Gen3 x4になるため、メインメモリのDDR4 2400などと比べると大幅にアクセス性能は落ちてしまうはずだが、同社の資料では、MySQLを使ったベンチマークで、メインメモリをフル実装する場合と、メインメモリを少なくしてP4800Xを搭載した場合でも、ほとんどパフォーマンスが変わらないという結果が紹介されている。

 このメリットは、大容量のメモリ空間を実現できる点だ。Xeon E5 v4などでは(メモリチップによって容量は異なるが)現在の最大メモリサイズとしては1.54TBになる。しかしP4800Xを1基使えば、メインメモリ1.54TB+P4800Xの1.5TBで、最大3TBのメモリ空間を持つサーバーとして利用できる。もちろんP4800Xの台数を増やせば、それだけメモリ空間は拡大する。

 これだけの大きなメモリ空間を使えば、データベースのデータをすべてメモリに搭載して処理できる。Optaneに比べると100倍以上のレイテンシを持つSSD、1万倍以上のレイテンシを持つHDDなどを使う場合と比べると、データベースのパフォーマンスが大幅にアップする。

 なおOptaneのラインアップとしては、メモリスロットに挿すNVDIMM形状のOptaneが計画されている。Optaneのパフォーマンスを最も生かすには、PCI Express Gen3 x4よりも大幅にアクセス性能が高い、メモリスロットの利用が必要になるだろう。

 ただ、メモリスロットにOptaneのNVDIMMを搭載すると、DRAMを搭載するスロットが少なくなってしまうので、今後のサーバーでは、より多くのメモリスロットのサポートが必要になるかもしれない。

Optane SSDは、既存のNAND SSDを置き換えるのではなく、SSDとDRAMの間に置かれる新しいメモリといえる。ストレージだけでなく拡張メモリとしても使えるという(出典:P4800X記者説明会資料より)
P4800Xを使うことで、既存のNAND SSDに比べると、10倍のTPSを得られる(出典:P4800X記者説明会資料より)
Intelでは、将来的にDIMM形式のOptaneメモリをリリースする予定。ただし、最初に提供されるNVMe接続のOptaneでも、ストレージだけでなくメモリプールとして利用できる(出典:P4800X記者説明会資料より)。
Optane SSDとIntel Memory Drive Technologyを組み合わせることで、Optane SSDをメモリプールとして利用することができる(出典:P4800X記者説明会資料より)。
P4800Xをメモリプールとして使用することで、メインメモリを少なくしても、MySQLのベンチマークで同様の性能を実現している。また、メモリをフル実装した上でP4800Xの容量をメモリプールとして使うようにすれば、メインメモリだけでは実現できない広大なメモリ空間を使って、データベースのデータをすべてメモリ上に置き、高速に処理できるようになる(出典:P4800X記者説明会資料より)
2ソケットのXeonなら最大24TB、4ソケットのXeonなら48TBまで拡張できる(出典:P4800X記者説明会資料より)

Storage Class Memory

 このように、Optaneは、短期的には、既存のSSDやHDDをリプレイスするのではなく、メモリとSSDの間に置かれるものとして、つまりメインメモリの代わり、あるいは超高速なストレージとして利用されていくだろう。業界では、こうした製品をStorage Class Memory(SCM)と呼称している。

新しい不揮発メモリ(Optaneなど)の提供により、新たなStorage Class Memoryというレイヤが登場する(出典:Gen-Zコンソーシアムの資料より)

 ただし、高速な不揮発メモリは3D XPointだけではない。NANDフラッシュメモリの最大手Samsungでは、Z-NANDというチップの開発が行われている。

 またSCMだけでなく、GPUやFPGAなどとの間で高速にデータを転送するためのインターフェイスが必要になっている。PCI Expressなども高速化してきているが、マルチプロセッサ、マルチFPGA、マルチGPU、マルチSCMが接続できる高速なインターコネクトが必要になっているのだ。そこで、新しいインターコネクトの規格化の検討も始まっている。

 例えばGPUの分野では、NVIDIAとIBMにより、GPUとPowerプロセッサを接続するNVLINKが実装されている。NVLINKはGPUとプロセッサ間だけでなく、GPU-GPU間でのインターフェイスにも使われ、PCI Express Gen3の5~12倍の性能を持つとされている。

 コンソーシアムとしても、Open CAPI、Gen-Z、CCIXなどが設立されている。それぞれのコンソーシアムに多くの企業がオーバーラップして参加しているため、どの規格がスタンダードになるかはまだまだわからない(将来的に統合される可能性もある)。

 ただ、多くの企業が新しいインターコネクト規格の制定に興味があるということを考えれば、高速なインターコネクトが今後のサーバーに必須のテクノロジーとなってくるのではないか。

Gen-Zでは、SoC化されたプロセッサ、FPGA、GPU、プールメモリを接続するための新しいインターコネクトを規格化する。HPEでは、2020年を目指して開発しているThe Machineのインターコネクトとして使用するつもりだ(出典:Gen-Zコンソーシアムの資料より)。
OpenCAPIでも、FPGA、GPU、プールメモリを接続する新しいインターコネクトの規格化を計画している。IBMのPowerプロセッサを中心にしているようだ(出典:OpenCAPIコンソーシアムの資料より)

*****

 将来のサーバーは、複数のプロセッサがローカルのメインメモリを持ち、インターコネクトを経由してOptaneのようなSCMに、DRAMよりも少しレイテンシの高いプールドメモリとしてアクセスできるようになるだろう。

 また高速インターコネクトを使えば、ビッグデータや機械学習を高速に処理するために、GPUやFPGAにデータを大量に転送できるようになり、処理スピードが数けたアップするかもしれない。このようになれば、機械学習などで使われるニューラルネットのレイヤをより深くしても、今よりも高速に処理が行えるようになり、より精度の高い学習が可能になるだろう。

 またデータベースでも、インメモリデータベースが当たり前になるかもしれない。

 Optaneは、こういった新しいサーバーシステムへの第一歩といえるだろう。