新たなストレージインタフェースの規格「NVMe」

記録メディアとしてのフラッシュ・チップはHDDよりも高速だったが、フラッシュ・チップをHDDと同様に扱えるようにパッケージングした「SSD」は、フラッシュ・チップ本来の性能をフルに引き出すことはできなかった。

それは、SSDを接続するSATAやSASといったディスク・インタフェースがHDDを想定した帯域を確保していたため、バスやインタフェースの性能がボトルネックになったためだ。この問題はフラッシュ・ストレージ実用化の初期段階から認識されており、サーバ/PCの内部バスであるPCIeに直結する形のフラッシュストレージ・デバイスが製品化されていた。ただし、これらの製品はベンダーごとの独自仕様であったため、ソフトウェア側の対応にバラつきがあり、ユーザーにとっては必ずしも使いやすいものではなかった。

ハードウェアの開発力という問題から、フラッシュ・チップを独自に制御するコントローラの供給元が絞られてくるといった状況もあり、標準化されたSSDを使うストレージが広く普及した一方、バス直結型のフラッシュのパフォーマンスは捨てがたいということで、標準仕様として確立されたのがNVMe(Non-Volatile Memory Express)だ。

NVMeはその名称からもわかるとおり、必ずしもフラッシュに限定されず、さまざまな不揮発性メモリをストレージとして活用できるように配慮した仕様となっている。サーバ/PCで標準となっているPCI-Expressに直結できる形で、フラッシュ・チップ本来の高速性能を引き出せるように、アクセスの並列化に関しても手厚い対応が取られている。

  • NVMeに対応しているDell EMCのラックサーバ「PowerEdge R940xa」

SSDのリモートDMAを実現する「NVMe-oF」も開発

NVMeの標準的な構成としては、「超高速なストレージとしてのフラッシュ・ストレージを内部バス直結で運用する」というDAS型が想定される。DASといっても、現在ではHCI(Hyper-Converged Infrastructure)に代表されるような、ストレージを内蔵したサーバをモジュールとしてスケールアウト型で接続する。

SDS(Software-Defined Storage)として仮想統合するシステムも普及し始めているため、NVMeはこうした用途とも極めて相性がよいわけだが、一方でネットワーク接続型の大容量共有ストレージ、という用途も依然として残る。

そこで、こうした構成に対応するよう拡張が図られたのがNVMe-oF(NVMe on Fabrics)だ。NVMeをストレージ・アクセス・プロトコルととらえ、このプロトコルをローカルのPCIe上だけでなく、ネットワーク接続を介してリモートでもそのまま使える、というイメージで理解してよいだろう。

ネットワーク接続型のストレージシステムの内部にPCIe接続されたフラッシュ・デバイスがあり、サーバからネットワーク(EthernetやInfiniBand)を介して高速にアクセスするという形になる。なお、ストレージ・デバイス側でサポートするネットワーク・インタフェースとしては、50GbpsのEthernetが主流となりつつあるようだ。

かつて、IT業界のトレンドとして話題に上がった「ビッグデータ」や「データ爆発」は主にデータの量に注目する中で、大容量のストレージの必要性を強調していた。しかし現在は、「AI」「機械学習」「ディープラーニング」の利用が進んでおり、大量データを対象に高度な解析処理を実行するというデータ主導型のコンピューティングに注目が集まっている。

こうしたコンピューティングにおけるストレージは単に容量が大きいだけではだめで、高速なデータアクセスも同時に実行できる必要があるのだ。かつての階層型ストレージは、HDDを主体としつつ、高速にアクセスされる必要のある少量のデータをSSDに置くことでコストパフォーマンスを最適化していたが、高速アクセスを必要とするデータの量が増えていけば、最終的にはオールフラッシュ・ストレージに行き着かざるを得ない。

すでにエンタープライズ・ストレージの主流はHDDからフラッシュに切り替わったと言って過言ではないが、今後もシステム更新のタイミングでHDDからフラッシュへの置き換えが進行していくことは確実だろう。