NVDIMMとは?
街はすっかりクリスマスでいっぱいですが、ちょっと都会から離れると、まだまだ紅葉のシーズンは続いています。関東近郊もこれから色づき始めるような時期で、今週末あたりが見頃になる場所も多いのではないかと思います。
都会では11月からすぐにクリスマスになってしまい、秋を通り越して冬に突入するような気分になりますが、自然に目を向ければ、四季の移り変わりはしっかりと残っているのだと感じます。
今日は、最近のITインフラで積極的に利用が進み始めたNVDIMMについてお話します。ITインフラ技術はHDD -> SSD -> NMDIMMと急激に変革の時期を迎えているように思います。この技術変革をいち早く取り入れて普及に務めることがITベンダーの役割の1つだと思っています。
NVDIMMの概要
2016年現在、メモリのDIMM規格はDDR4が最新です。DDR4にNVDIMMという新たな規格が追加されました。では、NVDIMMとはどのような規格なのでしょうか。
NVDIMMとは、Non-volatile memory(不揮発性メモリ)の性質を持ったDIMMという意味で、メモリの基盤に高速な不揮発性メモリ(DRAM)用いたメモリの規格です。その名の通り、DIMMスロットに装着します。不揮発性メモリは、電源を供給せずにデータを記憶できるメモリを指します。DRAMとNANDを組み合わせる方式で使用するのが現状の使い方です。NVDIMMが誕生した背景には、メモリI/OがPCの性能におけるボトルネックとなっていたからです。この状況では、メモリとストレージ間のレイテンシーを解決しなければならず、解決策として提示されました。メモリとストレージ間のデータ転送を高速化するとともに、メモリへデータ保存ができるため、NVDIMMは一時的なバックアップができます。つまり、メモリとストレージの役割を相互に補完できるのです。
NVDIMMはどのように機能するか
NVDIMMの動作について見てみましょう。
まず、通常動作時はDDR3 DRAMモジュールのような機能です。しかし、停電時になると、NVDIMMがバスから隔離されます。超コンデンサがホールド・アップ電力をモジュールに供給し、一時的にオンボード・フラッシュへデータを保存します。保存作業が終わると、NVDIMMモジュールはシャットダウンするという方式です。電力が復旧すると、超コンデンサが再充電されます。その後、データはフラッシュからDRAMに復旧され、ホストシステムが起動し、停電直前の状態で使えるようになります。
3種類のNVDIMM規格
NVDIMM規格の仕様は、「NVDIMM-N」、「NVDIMM-F」、「NVDIMM-P」の3種類があります。現在、N、Fは具体的な使用の策定が決定していますが、Pについては使用方法の提案が行われている段階です。それぞれの用途を見てみましょう。NVDIMM-Nは、同じ記憶容量の中にDRAMと不揮発性メモリを混載したDIMMです。平常時はDRAM DIMMとして機能しますが、電元社男児には不揮発性メモリを使い、バックアップメモリとして使われます。CPUおよびOSからアクセスできるのはDRAMだけです。なお、NVDIMM-Nはすでに実用化されています。NVDIMM-Fは、不揮発性メモリのみを搭載し、DRAMがないDIMMです。CPUやOSからはストレージとして認識されており、不揮発性メモリとしての役割を果たします。NVDIMM-Nより記憶容量が大きく、メモリならではの十分な高速データ転送も可能です。ただし、ストレージとしての側面が強いため、データ転送のスピードはNVDIMM-Nと比べると大きく劣ります。NVDIMM-Pは、DRAMと不揮発性メモリを混載していますが、NVDIMM-Nよりも不揮発性メモリの記憶容量が大きく、NVDIMM-Fでの動作モードも備えている点です。この場合、DRAMはストレージ用のバッファとして利用できます。
NVDIMMの用途
PCIeフラッシュのスピードを上回るNVDIMMは、ログへの書き込み時間を1/8に減少、データの読み込みスピードを16倍にできるという実験結果も出ています。一方で容量の少なさが課題となっているため、容量が少ない部分またはライトバックキャッシュに使う方法が考えられています。なかでも注目を集めている方法は、データベースを高速化して、ビッグデータを活用するためのサーバーという用途で、NVDIMMの使用が考えられています。これまでデータベースの高速化のボトルネックは、その大半がストレージI/Oでした。従来はフラッシュテクノロジーで解消するのが一般的でしたが、これでは急激なアクセス増加に対応できません。データベースを高速化するにあたって、全データをメモリ上に展開するという手法もあります。しかし、これではコストが大幅にかかってしまい現実的ではありません。データベースを高速化してもストレージへログを書き込み続ける必要がありました。NVDIMMはこの課題を解決できるメモリ規格です。サーバーのメモリスロットに装着し、通常のストレージとして機能させます。すると、高速ストレージとして働くため、アプリケーションを修正せずにログを書き込めるのです。大幅な高速化とコスト削減を両立できるのが、NVDIMMの大きな魅力と言えます。
ビッグデータを高速で扱うNVDIMM
NVDIMMは巨大なデータベースを高速で扱えるメモリです。Windowsサーバーとの相性はありますが、ユーザー視点からはほとんどの環境で安定した性能を発揮します。ローコストでハイパフォーマンスを達成できるので、高速でビッグデータを扱いたい人や企業の間で活用されるのではないでしょうか。
なお、Tintri EC6000とT1000には高速なNVDIMMが採用されており、仮想化環境において安定した性能を発揮することに大きく寄与しています。