目次
はじめに
NVMe over TCP(NVMe/TCP)は、標準のTCP/IPを使用してイーサネットネットワーク上でNon-Volatile Memory Express(NVMe)を拡張します。当初はNVMe over RDMA(NVMe/RDMA)の低コストな代替手段として注目されましたが、企業環境におけるその役割については、より幅広い視点で捉える必要があります。RDMA対応ハードウェアの採用が拡大するにつれ、NVMe/TCPは依然として価値があり、特に中小企業(SMB)や既存のハードウェアを戦略的に再利用するシナリオではその価値は高いものがあります。
NVMe over TCP(NVMe/TCP)とは?
NVMe/TCPは、NVMe over Fabrics(NVMe-oF)のトランスポートで、NVMeコマンドをTCP/IPネットワーク上で伝送する。超低レイテンシを実現するためにRDMA対応ハードウェアを活用するNVMe/RDMAとは異なり、NVMe/TCPは特別なネットワークハードウェアを必要とせず、標準のイーサネット上で動作します。Linuxカーネル(バージョン5.0以降)とSPDK(バージョン19.01以降)はNVMe/TCPをサポートしており、オープンソースエコシステムの互換性が確保されています。(注:SPDK は、最新世代の CPU、NVMe* SSD、NIC 向けのストレージ・ソフトウェアを最適化し、ストレージ・アプリケーションのパフォーマンスと効率を向上させることに焦点を当てたオープンソース・プロジェクト)
現代の企業におけるNVMe/TCPのニーズの評価
1. RDMAハードウェアの採用は増加しているが、普遍的ではない
多くの企業がNVIDIA(Mellanox)、Intel、BroadcomなどのベンダーからRDMA対応ハードウェアを導入している一方で、特に小規模な組織では、その採用率は大幅に異なる。中小企業はハードウェアのライフサイクルが長いことが多く、NVMe/TCPはインフラの全面的な見直しを急がずにストレージを近代化する魅力的なソリューションとなる。
2. レガシーハードウェアと階層型ストレージの利用
レガシーハードウェアを完全に廃棄するのではなく、企業は古いながらも信頼性の高いハードウェアをプライマリ(ティア1)ストレージからセカンダリ(ティア2)またはバックアップティアに再利用することがよくあります。NVMe/TCPは既存のイーサネットハードウェアの寿命を効果的に延ばし、iSCSIなどのレガシープロトコルよりもパフォーマンスと効率性を向上させながら、コスト効率の高いアップグレードを実現します。
3. iSCSIをNVMe/TCPに置き換えてパフォーマンスを向上
NVMe/TCPのもう一つの利用例は、iSCSIベースのストレージに依然として依存している組織のアップグレードパスとしての利用です。iSCSIは、SCSIカプセル化とCPU集約型の処理に依存しているため、パフォーマンスのボトルネックが生じます。NVMe/TCPは、既存のイーサネットインフラストラクチャを活用しながら、これらの非効率性を排除する、直接的な高性能の代替手段を提供します。これにより、NVMe/TCPはRDMAを採用せずにストレージ接続を近代化したい企業にとって現実的な選択肢となります。iSCSIからNVMe/TCPへの移行はオーバーヘッドを削減し、より優れたパフォーマンスを実現します。そのため、ネットワークハードウェアを全面的にアップグレードすることなく、段階的なアップグレードを求める企業にとって魅力的な選択肢となります。
NVMe/TCPとその他のトランスポートプロトコルの比較
1. NVMe/TCPとNVMe/RDMAの比較
NVMe over RoCE(RDMA over Converged Ethernet)は、NVMe/TCPと比較して、より低いレイテンシと高いパフォーマンスを実現します。 RoCEv2は、レイテンシに敏感なワークロードに対して優れたパフォーマンスを発揮しますが、特殊なハードウェアとより複雑なネットワーク構成を必要とします。 一方、NVMe/TCPは標準のイーサネットインフラを活用するため、よりコスト効率に優れ、さまざまな環境への実装が容易です。
2. NVMe/TCPとNVMe/FCの比較
NVMe over Fibre Channel(NVMe/FC)は、互換性の面ではNVMe/TCPと類似したメリットを提供しますが、ファイバーチャネルネットワークの決定論的なパフォーマンスのメリットがあります。企業がすでにFCを使用している場合、NVMe/TCPに切り替えるよりもNVMe/FCへの移行が論理的です。
3. NVMe/TCP vs. iSCSI
NVMe/TCPは、ネイティブのNVMeコマンドのサポート、処理オーバーヘッドの削減、より効率的なデータ処理により、iSCSIと比較して大幅なパフォーマンスの向上を実現します。インフラストラクチャに大幅な変更を加えることなくパフォーマンスの向上を目指す企業にとっては、iSCSIで段階的な機能強化を続けるよりも、NVMe/TCPが最適なアップグレードパスとなる可能性があります。
パフォーマンスに関する考慮事項と制限事項
NVMe over TCP(NVMe/TCP)は、パフォーマンスと導入の容易さのバランスに優れたソリューションですが、実用化にあたっては、メリットと同時に課題も伴います。ストレージインフラにNVMe/TCPの導入を検討する企業にとって、これらの要因を理解することは極めて重要です。
- ネットワークインフラ:ネットワークインフラを大幅に変更することなくストレージの近代化を検討している企業にとって、NVMe/TCPは魅力的な選択肢です。しかし、NVMe/TCPのパフォーマンス上の利点を最大限に活用するには、高速ネットワーク(25GbE以上)が必要です。
- CPUオーバーヘッド:NVMe/TCPはハードウェアアクセラレーション機能がないため、NVMe/RDMAと比較してCPUリソースを多く使用します。このオーバーヘッドは顕著ですが、多くの中小規模のワークロードにとっては許容範囲内です。
- レイテンシ:NVMe/TCPは、RDMAの代替手段と比較すると、本質的にわずかに高いレイテンシが発生します。しかし、超低レイテンシを必要としないワークロードでは、NVMe/TCPは依然として実用的で効果的です。
- パフォーマンスの変動性:NVMe/TCPのパフォーマンスは、NVMe over Fibre Channelのような専用プロトコルと比較すると、ネットワークの混雑や変動するワークロードの影響を受けやすくなります。
- TCPスタックの最適化:レイテンシやパフォーマンスの問題を軽減するには、TCPパラメータの慎重なチューニングが必要になる場合が多い。これには、TCPウィンドウサイズ、バッファ割り当て、輻輳制御設定の最適化が含まれる。
NVMe/TCPが有効なのはどのような場合か?
RDMA対応ハードウェアが広く利用可能であることを踏まえると、NVMe/TCPは現代の企業では限定的な実用性しか持ちません。しかし、NVMe/TCPは、特に以下の企業シナリオでは依然として関連性があり実用的です。
- iSCSI の代替:標準のイーサネットを活用しながら、より効率的な NVMe ベースのストレージプロトコルに iSCSI を段階的に廃止することを検討している企業。絶対的なパフォーマンスでは RDMA ベースのソリューションには及ばないものの、NVMe/TCP は従来の iSCSI に比べて大幅な改善をもたらし、平均で 35% 高い IOPS と 25% 低いレイテンシを実現します。
- 既存の環境への導入:ファイバーチャネルやRDMAアダプターのような特殊なハードウェアを必要とせず、企業は現在のネットワーク投資を活用することができます。
- エッジコンピューティングおよびROBO(リモートオフィス/支店オフィス):インフラが最小限のサイトで、RDMAへの投資は正当化されません。
- テストおよび開発環境:RDMAハードウェアを必要とせず、NVMe/TCPはステージングやテストに低コストの代替手段を提供することができます。
StarWind Virtual SAN, NVMe/RDMA

High-scopeクラスタ相互接続図、StarWind VSAN NVMe over RDMA
上図で示されているように、StarWind VSAN NVMe/RDMA セットアップは、SR-IOV (Single Root I/O Virtualization) を使用して Remote Direct Memory Access (RDMA) 用に構成された Mellanox NIC によって駆動され、NIC 仮想機能が StarWind コントローラ仮想マシン (CVM) に直接渡されるようになります。
各ハイパーバイザノードには、5つのNVMeドライブが装備されています。これらのドライブは、各ノード上のStarWind CVMに直接渡され、そこでRAID5アレイに組み立てられます。
RAID5アレイの上に、2つのStarWind HAデバイスが作成されます。これらの高可用性デバイスは、両方のノードにデータを複製するように設計されており、ノード障害が発生した場合でも、システムはダウンタイムゼロで稼働し続けます。
StarWind Virtual SAN, NVMe/TCP

High-scopeクラスタ相互接続図、StarWind VSAN NVMe over TCP
このシナリオでは、StarWind VSANは、トランスポートプロトコルとしてNVMe/TCPを使用して展開されます。ここで、主な違いはネットワーク構成にあります。コアアーキテクチャは同じのままです。StarWind CVMがNVMeデバイスを処理し、StarWind HAによってデータの冗長性を確保します。しかし、このケースでは、SR-IOVはMellanox NICには使用されません。[注:StarWind Virtual SAN(VSAN) CVM は、VMware vSphere にインストールされる Linux 仮想マシン(VM)です。]
NICの仮想機能をRDMA通信専用にするのではなく、StarWind CVMはハイパーバイザーが提供する標準の仮想ネットワークアダプターを使用します。これにより、セットアップが簡素化され、Mellanox NIC上でSR-IOVを構成する必要がなくなります。これは、NVMeストレージのパフォーマンスの優位性を維持する、おなじみのシンプルな設計です。
結論
NVMe/TCPは、RDMAの採用が拡大しているにもかかわらず、特にハードウェアのライフサイクルを戦略的に管理している中小企業や企業にとって、依然として大きな実用価値を持っています。iSCSIなどのレガシープロトコルからの論理的かつ経済的なアップグレードが可能であり、既存のインフラストラクチャの有効な再利用を保証し、レイテンシにそれほど敏感でないユースケースにも適合します。NVMe/RDMAが高性能コンピューティングのワークロードを支配する可能性がある一方で、NVMe/TCPは多くのエンタープライズストレージ環境に対して、柔軟でアクセスしやすいソリューションを提供し続けます。
StarWind VSAN NVMe/RDMAは、Linuxベースのコントローラ仮想マシン内で実行されるため、リモートパートナーからの読み取りと同じ方法で、ローカルトラフィックをネットワーク経由でルーティングするように設計されたローカル読み取りデータパスを備えています。このようなアプローチは、展開の簡素化と重要なコンポーネントの分離に最適化されています。
StarWind VSAN NVMe/RDMAは、ランダムおよびシーケンシャルなワークロードの両方で優れたパフォーマンスを発揮し、バランスを取ります。 驚くほど低いレイテンシと最小限のCPU消費で、VMの数が増加してもRDMAのアーキテクチャは安定性を維持し、データベース、リアルタイム分析、VDIなど、リソースに大きな負担をかけずに低レイテンシのパフォーマンスを必要とする環境に最適です。
一方、StarWind VSAN NVMe/TCPは、さまざまなシナリオにおいて、信頼性の高いスループットと適度なCPU使用率を維持し、安定したバランスの取れたプロファイルを維持します。すべてのシナリオにおいてStarWind VSAN RDMAのピークパフォーマンスに達するわけではなく、高スループットの読み取りで「MysteriousなVSAN」に匹敵するわけではありませんが、そのバランスの取れた出力と適度なリソース使用率により、RDMAが利用できない場合の強力で汎用性の高い代替案となります。
参考: StarWind vSAN for vShpere 技術ブログ
関連トピックス:
- 仮想マシン・ストレージ:ファイル vs ブロック
- VMware環境の設計に欠かせないリファレンス アーキテクチャ
- ESX、仮想マシンのパフォーマンス監視【仮想化プラットホーム VMware vSphere】
- VMware vSphere 5アップデート/インストール参考サイト【VMware vSphere 5】
- VMware vSphereのための仮想化データベース・パフォーマンス・モニタリング
- 仮想ハードウェアバージョン8の仮想マシンをVMware vSphere ESX4.1へクローン、移動はできません。【VMware vSphere 5】
- vSphere Client 5.5 U2のハードウェアバージョン10VMに対する編集の制限
- VMパフォーマンス・ボトルネックを引き起こすリスース競合と主要な原因
RDMA:リモートダイレクトメモリアクセスとは=> https://note.com/climb_sales/n/n499f04401e08