DataDirect Networks(DDN)は、HPC用のストレージではトップメーカーである。そのDDNの新製品が「IME14K」という商品名の、バーストバッファと呼ばれるストレージである。

スパコンでも、ファイルのアクセスはアプリケーションの都合で行われるので、大きなブロックでの連続アクセスばかりでなく、小さなブロックのランダムなアクセスが行われる場合もある。また、ビッグデータ処理の場合は、1つの巨大なファイルを何千、何万ものプロセスがアクセスするというケースも出てくる。

しかし、ある程度大きなブロック単位でアクセスするハードディスクベースのストレージでは、このような小さなブロックのランダムなアクセスを効率よく処理することはできない。そのため、このようなアクセスの場合は、並列ファイルシステムはピーク性能よりもずっと低いスループットでしか動作できないことになってしまう。 この問題を解決しようというのがDDNのIMEである。次の図のように、計算ノードからは、色々なサイズのアクセスが、それぞれの都合の頻度で要求される。しかし、HDDベースの並列ファイルシステムは、このようなアクセス要求の処理には適していない。そこで、右側の図のように、計算ノードからの細切れのアクセスをまとめて大きなブロックのアクセスにしてやれば、並列ファイルシステムは高い効率で動き続けることができる。これがIMEの基本的な考え方である。

バーストバッファは細切れのアクセスをまとまったアクセスに変換して、並列ファイルシステムの効率をあげる (このレポートのすべての図は、SC16でのDDNのLaura Shepard氏の発表資料を撮影したものである)

IMEは多数のクライアントからの多数のアクセス要求を捌くため、NAND Flashを用いた多数のSSDを並列に使用している。

なお、DDNはこの機能をInfinite Memory Engine(無限メモリのエンジン)という大胆不敵な名前で呼んでいた。IMEという名前は残っているものの、Infinite Memory Engineは最近では、あまり使われていないようである。

IMEを使う場合、IMEはクライアントのサーバ群とLustreなどの並列ファイルシステムの間に置かれる。そして、クライアントは、IMEサーバにファイルのアクセス要求を送る。

IMEは、これらのアクセス要求をバッファに溜め込み、ある程度溜まったところで、並列ファイルシステムに送る。この時、IMEはこれらのアクセス要求を調べて、できるだけ大きなブロックの連続アクセスになるように、アクセス要求をまとめて、並列ファイルシステムに送り出す。

こうすれば、並列ファイルシステムが受け取るアクセス要求は、サイズが大きいブロックの連続アクセスに近くなるので、効率よくアクセスすることができる。

IMEはアクセス要求をログ構造のファイルに溜め、並列ファイルシステムと同期をとる時にアクセス要求をまとめて、連続したアクセスに変換して、並列ファイルシステムに送る

IMEは並列ファイルシステムのキャッシュであるので、データが消えてしまっても、多くの場合は致命的な問題にはならない。しかし、IMEは、オプションとしてErasure Codeによるエラー訂正を行う機能も持っている。

Erasure Codeは効率の良いコードであるが、計算量が多い。このため、IMEでは、この計算をクライアントのサーバで行わせている。この方式ならば、多数のサーバをサポートする場合でも計算能力がリミットになることはない。

IMEのデータ保護はオプションであるが、保護にはErasure Codeを使っている。Erasure Codeは計算量が多いのであるが、これをクライアント側で行わせることで、大量のクライアントを持つ構成にも使えるようになっている

また、クライアントからのアクセス要求をどのIMEサーバに送るかは、ハッシュ関数により決めるやり方と、各IMEサーバの負荷状態をみて、動的に負荷の軽いサーバにアクセス要求を送る方式が選択できるようになっている。

要求をIMEサーバに振り分けるやり方として、ハッシュ関数を使って振り分ける方法と混雑状況をみて、混んでいるサーバを避ける方法を選ぶことができる

IMEは書き込み要求が溜まってきて、指定された容量パーセントに達すると、並列ファイルシステムへの書き込みを実行する。この時、全IMEサーバに溜まっているアクセス要求をまとめて、並列ファイルシステムにアクセスする。そして、並列ファイルシステムで処理された書き込みアクセスはクリーンな状態にする。

IMEの中に溜まっているクリーンなデータが増え、空き領域が指定した比率を下回ると、クリーンデータを消して、空き領域を確保する。

書き込まれるダーティデータの比率が指定したパーセントを超えると並列ファイルシステムへの書き出しが行われる。空きスペースが指定した比率以下になると、クリーンなデータを消して空きスペースを増やす

このように動作するので、次のグラフに示すように、IMEへのアクセスは、アクセスするブロックサイズが変わっても、シーケンシャルアクセスでもランダムアクセスでも、40GB/sとほぼ一定のスループットが得られる。一方、DDN 14Kベースの「SFA14K」で作られた並列ファイルシステムを直接アクセスする場合は、8KBのブロックでは2.5GB/sのスループットしか得られず、4MBブロックでも25.5GB/sと、IMEのスループットに追いつかない。

IME(赤線)では、8KBから4MBのI/Oサイズで、ランダムアクセスでも40GB/s程度の性能が得られるが、並列ファイルシステムのSFA(青線)ではサイズが小さい場合は、バンド幅が小さく、4MBのサイズでも25.5GB/sに留まっている

IME14Kは1本のラックで768TBの容量を持ち、4KBブロックのランダムアクセスの場合でもWriteの場合は50M IOPSのアクセスが可能である。また、R/Wともに560GB/sのスループットが得られる。

768GBのIMEで、IORベンチマークで560GB/sのR/Wができ、4KBのランダムアクセスのWriteでは50M IOPSが得られる

次の表は、京コンピュータ、Oakridge国立研究所のSpider 2、NCSAのBlue Watersと東大-筑波大のOakforest-PACSスパコンのストレージを比較したものであるが、R/Wのバンド幅は、どのシステムも概ね1TB/sであるが、2011年完成の京コンピュータはラック231本を必要としているのに対して、IMEを採用した2016年のOakforest-PACSは、ラック2.5本と1/100の物量になっている。

東大-筑波大のOakforest-PACSは、IMEを採用した大型スパコンであり、京コンピュータとほぼ同等のアクセス性能を1/100の物量で実現している