仮想化道場

メモリスロットに挿すフラッシュストレージ~サンディスクが開発したULLtraDIMM

 1月中旬に発表された日本IBMの第6世代のx86サーバー「System x3850 X6」は、eXFlashメモリチャネルストレージ(以下、eXFlash)という、メモリスロットに挿すフラッシュデバイスが利用できる。

 このeXFlashはIBM自体が開発したものではなく、フラッシュメモリの大手SanDiskが開発したものだ。

 今回は、サンディスク日本法人への取材をもとに、どのようなテクノロジーなのかを解説していく。なお、SanDiskに取材を行ったので、文中ではULLtraDIMMという名称で(eXFlashは、IBMでのブランド名となる)表記している。

IBMのeXFlash DIMMは、SanDiskのULLtraDIMMをOEMしてもらっている。ただ、ドライバなどのソフトウェアはIBMが開発している(出典:IBMの発表会資料より)

PCIeフラッシュストレージよりも高速・低遅延

SanDiskのULLtraDIMMの製品写真。形状はDRAMを搭載したDIMMと全く同じ。1枚あたり200MB、400MBの製品が用意されている

 ULLtraDIMMは、いってしまえば、DRAMの代わりに、フラッシュメモリを搭載した特殊なDIMMをメモリスロットへ挿して、フラッシュストレージにしてしまおうというものだ。

 現在のフラッシュストレージでは、SATA/SASなどのディスクインターフェイスを利用するか、Fusion I/Oなどに代表されるPCI Express(以下、PCIe)カードの形態で多く利用されている。

 数年前はフラッシュメモリ自体の性能も現在より低く、コントローラの性能にも問題があったため、フラッシュストレージの性能がSATA/SASなどのディスクインターフェイスの限界を超えることはあまり多くなかった。

 しかしフラッシュストレージが一気に普及したことで、フラッシュメモリやコントローラの性能も一気にアップした。最近では、6GbpsのSAS 2.0/2.1、12GbpsのSAS 3.0、6GbpsのSATA 3.0などでは、フレッシュストレージの性能を生かし切れないようになってきているという。

 そこで利用機会が増えているのが、SAS/SATAなどより高速な、PCIeインターフェイスに挿すフラッシュストレージだ。Fusion-IOの製品ではPCIe Gen2 x8(40Gbps)を利用し、SSDよりも高速・低遅延の環境を提供している。

 ただしPCIeフラッシュストレージは、1枚のカードで1TB~2TBの容量しかない製品が多い。このため、ストレージをすべてフラッシュメモリに置き換えるというのは、容量的、コスト的にも難しく、データベースやHPCなど、一部分での利用にとどまっていた。

 またPCIe接続であるということにも問題がある。PCIeインターフェイスは、IOハブを経由して複数のPCIeインターフェイスに接続されている。このため、複数のPCIeカードが動作するとバスの調停などを行う必要ができ、PCIeフラッシュストレージから見ればレイテンシ(遅延)が発生する。レイテンシ自体も、一定の幅で遅延する訳ではなく、遅延が少ない時と遅延が大きい時では4~5倍の差が出てきてしまう。

 そこでSanDiskは、フラッシュメモリをCPUに最も近く、スピードの高いメモリスロットに挿すことで、アクセス性能の大幅な向上と低遅延を実現したのだ。

PCIe接続のフラッシュストレージカードは、複数のカードを利用した場合、PCIeインターフェイスの設計上、遅延が大きくなる。最近では、PCIeバスが直接出ているプロセッサも多くなっているが、それでもメモリインターフェイスの方が高速だ(出典:SanDiskの資料より)
PCIe接続のフラッシュストレージカードとULLtraDIMMのレイテンシー比較。PCIe接続のカードはレイテンシの振れ幅が大きい。ULLtraDIMMは、長時間経過してもレイテンシが大きく変化しない(出典:SanDisk)

(山本 雅史)