NVMeはPCIe SSDの性能を最大化するだけでなく、数百台を超える膨大な数のSSDを扱える、ホスト・インタフェースでもある。
ところで、実際に使われている高速なインタフェースや高速なネットワークなどは、PCIeとは限らない。既に設置してある高速のネットワークにも、SSDを接続するケースは当然ながらあり得る。特に重要なのは、リモートアクセス(厳密にはリモートDMA(Remote Direct Memory Access))が可能なネットワークである。
リモートDMAでは、CPUを介在せずに、別のホスト・システムのSSDからデータを直接、読み込んだり、あるいはデータを直接、書き込んだりする。ネットワークを介して別のシステムのSSDに読み出しアクセスするときはふつう、システムメモリにSSDのデータをいったん読み込み、それから、ネットワーク経由でデータを伝送する。このため、CPUの介在と、長い待ち時間が避けられない。リモートDMAでは、このようなボトルネックが解消される。
リモートアクセスが可能なネットワーク(あるいはスイッチドファブリック)を経由してNVMeのホストとNVMeのデバイスを接続する。このために策定中の技術仕様が「NVMe Over Fabrics(NVMeオーバーファブリック)」である。
NVMeオーバーファブリックでは、NVMeとスイッチドファブリックの間に、抽象化層(トランスポート・アブストラクション層)を挟んでデータを変換し、スイッチドファブリックにデータを載せる。スイッチドファブリック経由で受け取ったデータは、再び抽象化層を通して変換される。
NVMeオーバーファブリックで想定しているネットワークは現在のところ、「InfiniBand(インフィニバンド)」「iWARP(Internet Wide Area RDMA Protocol)」「RoCE(RDMA Over Converged Ethernet)」などである。いずれも、リモートDMA(Remote Direct Memory Access)をサポートするファブリックだ。
リモートアクセスによる遅延の増加と性能の低下
ファブリック経由でのSSD接続で問題となるのが、ローカルのSSDに対するアクセスで発生するレイテンシ(遅延時間)と、リモートアクセスで発生するレイテンシの違いである。当然、リモートアクセスのレイテンシは長くなる。NVMeオーバーファブリックでは、リモートアクセスによるレイテンシの増加を10マイクロ秒以内に抑えることを目標仕様としている。
また、リモートアクセスによる入出力速度(IOPS)の低下も考慮すべき問題点である。NVMeオーバーファブリックでは具体的な数値は定めず、「IOPSの低下は最小限にとどめる」としている。
IntelのNVMe SSD「P3700」を使用してローカルとリモートでSSDの性能を比較した結果、リモートアクセスによるレイテンシの増加は8マイクロ秒にとどまった。また、リモートアクセスによるIOPS性能の低下は発生しなかった。