仮想化道場
メモリスロットに挿すフラッシュストレージ~サンディスクが開発したULLtraDIMM
(2014/2/28 06:00)
1月中旬に発表された日本IBMの第6世代のx86サーバー「System x3850 X6」は、eXFlashメモリチャネルストレージ(以下、eXFlash)という、メモリスロットに挿すフラッシュデバイスが利用できる。
このeXFlashはIBM自体が開発したものではなく、フラッシュメモリの大手SanDiskが開発したものだ。
今回は、サンディスク日本法人への取材をもとに、どのようなテクノロジーなのかを解説していく。なお、SanDiskに取材を行ったので、文中ではULLtraDIMMという名称で(eXFlashは、IBMでのブランド名となる)表記している。
PCIeフラッシュストレージよりも高速・低遅延
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に最も近く、スピードの高いメモリスロットに挿すことで、アクセス性能の大幅な向上と低遅延を実現したのだ。