Skip to main content

アバター画像

NVMe over TCP 対 iSCSI: ネットワークストレージの進化

3月 05th, 2025 | 3 min read

TLDR: NVMe over TCP と iSCSI の直接比較では、NVMe over TCP がすべてのカテゴリーで iSCSI を上回り、IOPS の改善は最大で 50%(それ以上)で、レイテンシの改善は最大で 34% です。

データが増えると、ストレージも増加する必要があります。そこで登場するのがリモート接続された SAN(Storage Area Network)システムです。これまで、これらは主に 3 つのプロトコルのいずれかを通じて接続されていました:Fibre Channel、Infiniband、または iSCSI。しかし、iSCSI は「低価格帯」に位置し、特別なハードウェアなしで動作できるため、NVMe over Fabrics(NVMe-oF)—特に NVMe over TCP (NVMe/TCP) が iSCSI の後継として、これらの旧式のプロトコルを置き換え、レイテンシ、スループット、IOPS に即座に改善をもたらす時代が到来しています。

iSCSI: 簡単な歴史

Nokia 3310, 2000年9月発売(出典: Wikipedia)
図1: Nokia 3310、2000年9月発売(出典: Wikipedia)

iSCSI は、リモートストレージソリューション(主にハードウェアストレージアプライアンス)をストレージクライアントに接続するプロトコルです。これらのクライアントは通常、ローカルストレージがない(または最小限の)サーバーや仮想マシンです。最近では、iSCSI がコンテナストレージのバックエンドとして使用されることもあります。

iSCSI は「Internet Small Computer Storage Interface」の略で、標準の SCSI コマンドを TCP/IP パケット内にカプセル化します。これにより、iSCSI は汎用のイーサネットネットワークで動作し、ネットワークカード(NIC)やスイッチなどの専門的なハードウェアが不要になります。

iSCSI 標準は 2000 年初頭に初めてリリースされました。それは今日とは非常に異なる世界でした。2000 年の電話がどうだったか覚えていますか?

とはいえ、最初のフラッシュベースのシステムにアクセスできたものの、価格はまだ非常に高く、ストレージシステムは回転ディスクを前提に設計されていました。それを覚えておいてください。後でそれに戻ります。

SCSIとは?

SCSI(Small Computer Storage Interface)は、コンピュータと周辺機器間でデータを接続および転送するための標準のセットです。1980年代に開発され、SCSIはデータストレージインターフェースの基盤技術として、主にハードドライブ、光学ドライブ、スキャナーなどさまざまなデバイスタイプをサポートしています。

SCSIは改善を続け、NVMeのような技術向けに新しいコマンドを追加してきましたが、その基盤は1980年代初頭にあります。それにも関わらず、多くの標準は今でもSCSIコマンドセットを使用しており、SATA(家庭用コンピュータ)、SAS(サーバー)、iSCSIなどがそれにあたります。

NVMeとは?

Non-Volatile Memory Express(NVMe)は、最新のPCI Express(PCI-e)ベースのストレージインターフェースです。最初の仕様は2011年に遡り、NVMeはPCIeバスを介して接続されるソリッドステートドライブ(SSD)のために特別に設計されています。したがって、NVMeデバイスはCPUやバス上の他のデバイスと直接接続され、スループットとレイテンシを向上させます。NVMeは従来のストレージインターフェースと比較して、レイテンシを劇的に削減し、1秒あたりの入出力操作(IOPS)を増加させます。

NVMe標準の一環として、追加の仕様が開発されており、例えばNVMeコマンドがどのように輸送されるかを定義するトランスポート仕様(PCI ExpressバスやTCP/IPのようなネットワークプロトコルを通じて)も含まれています。

回転ディスクとNVMeの根本的な違い

従来の回転ハードディスクドライブ(HDD)は、物理的に回転するディスクと可動の読み書きヘッドに依存して、データを記録またはアクセスします。データが要求されると、機械的なコンポーネントはディスクスタックの正しい位置に物理的に配置される必要があり、その結果、10~14ミリ秒のアクセスレイテンシが発生します。

フラッシュストレージ、特にNVMeデバイスは、機械的な部品を排除し、代わりにNANDフラッシュチップを使用します。NANDはデータを完全に電子的に保存し、アクセスレイテンシは20マイクロ秒(さらには非常に高性能な機器ではそれよりも低い)まで低減されます。これにより、HDDに比べて100倍速くなります。

長い間、フラッシュストレージは容量制限という巨大な欠点を抱えていました。しかし、この欠点は企業がより大容量のデバイスを導入することで徐々に解消されつつあります。例えば、東芝は180TBのフラッシュストレージデバイスを発表しました。

コストという第二の重要な欠点も、開発と生産の進歩により低下し続けています。QLC NANDのような技術は、手頃な価格で驚異的なストレージ密度を提供しています。

ところで、なぜ機械的ストレージと電子的ストレージの原理を取り上げているのかというと、その理由は簡単です:アクセスレイテンシの問題です。SCSIやiSCSIは、超低レイテンシのデバイス向けに設計されたものではありません。それらが開発された時点では、そのようなデバイスは存在しなかったからです。そして、年々プロトコルに調整が加えられましたが、その基本設計は時代遅れであり、後方互換性の理由から変更することができません。

NVMe over Fabrics: ネットワーク上のフラッシュストレージ

NVMe over Fabrics(またはNVMe-oF)は、NVMeベースの仕様の拡張です。これにより、NVMeストレージはネットワークファブリックを通じてアクセスされ、ローカルのNVMeデバイスと同様の低レイテンシ、高パフォーマンスの特性を維持します。

NVMe over Fabrics自体は、複数のトランスポート層プロトコルを定義する複数のサブ仕様の集合です。

  • NVMe over TCP: NVMe/TCPは、一般的なインターネット標準プロトコルであるTCP/IPを利用します。これにより、コモディティのEthernetネットワーク上で展開可能で、既存のネットワークトラフィックと並行して動作できます。これにより、NVMe over TCPはiSCSIの後継として、iSCSIが終わった場所で登場します。したがって、NVMe over TCPは、通常TCP/IPネットワーキングのみを提供するパブリッククラウドベースのストレージソリューションに最適なソリューションです。
  • NVMe over Fibre Channel: NVMe/FCは、既存のFibre Channelネットワークファブリックを基盤に構築されています。NVMeコマンドをFibre Channelパケットでトンネルし、利用可能なFibre Channelハードウェアを再利用できるようにします。ただし、Fibre Channel機器の高い導入コストのため、新しい導入にはお勧めできません。
  • NVMe over Infiniband: NVMe/IBは、NVMe over Fibre Channelと同様に、既存のInfinibandネットワークを利用してNVMeプロトコルをトンネルします。既存のInfiniband機器がある場合、NVMe over Infinibandは選択肢になるかもしれません。ただし、新しい導入には初期の導入コストが高すぎます。
  • NVMe over RoCE: NVMe over Converged Ethernetは、リモートダイレクトメモリアクセス(RDMA)用のEthernetファブリックを使用するトランスポート層です。NVMe over RoCEを使用するには、RDMA対応のNICが必要です。RoCEには2つのバージョンがあります:RoCEv1はレイヤー2プロトコルであり、ルーティングできませんが、RoCEv2はUDP/IPを使用し、複雑なネットワークを越えてルーティングできます。NVMe over RoCEはNVMe over TCPほどスケールしやすくはありませんが、さらに低いレイテンシを提供します。

NVMe over TCP vs iSCSI: 比較

NVMe over TCPとiSCSIを比較すると、すべての主要な指標(レイテンシ、スループット、IOPS)において大きな改善が見られます。

Medium queue-depth workload at 4KB blocksize I/O (Source: Blockbridge)
図2: 4KBブロックサイズのI/Oでの中程度のキュー深度ワークロード(出典:Blockbridge)

Blockbridgeの方々が実施した広範な比較では、NVMe over TCPがiSCSIを上回る結果が出ており、どのベンチマークでもNVMe over TCPの方が優れています。

ここでは最も重要なベンチマークをご紹介しますが、この記事を終えた後にフルベンチマークの記事を読むことをお勧めします。

さて、NVMe over TCPとiSCSIのベンチマークに関する実際の事実に少し深掘りしてみましょう。

編集者のノート: 当社の開発者アドボケイトであるChris Engelbert氏が、最近ダブリンで開催されたSREconにて、NVMe over TCPとiSCSIのパフォーマンスについて講演し、この記事が書かれました。詳細なプレゼンテーション「NVMe/TCP makes iSCSI look like Fortran」をぜひご覧ください。

ネットワークストレージのベンチマーク

ストレージパフォーマンスを評価するには、4つの主要なパフォーマンス指標を比較する必要があります。

  1. IOPS: 秒あたりに処理される入出力操作の数
  2. レイテンシ: 1回の入出力操作を完了するのにかかる時間
  3. スループット: 単位時間あたりに転送されるデータ量
  4. プロトコルオーバーヘッド: 通信プロトコルによって要求される追加の処理

編集者のノート: レイテンシ、スループット、IOPSについては、それらの必要性、関係性、および計算方法について深く掘り下げたブログ記事がありますので、ぜひご覧ください。

包括的なパフォーマンステストは、実際のシナリオを模倣したシミュレートされたワークロードを使用します。このプロセスを簡素化するために、ベンチマークはFIO(Flexible I/O Tester)などのツールを使用して、異なるストレージ構成やシステムにおける一貫した再現可能なテストデータと結果を生成します。

NVMe over TCP vs iSCSIのIOPS改善

IOPSを集中的に使用するアプリケーションでは、ストレージシステムで利用可能なIOPSの数が重要です。IOPS集中的なアプリケーションとは、データベース、分析プラットフォーム、アセットサーバーなど、同様のソリューションを指します。

ストレージネットワークプロトコルを交換することでIOPSを改善することは、データベースにとっても、私たちにとっても即効的な勝利となります。

NVMe over TCPを使用すると、特に小さなブロックサイズでIOPSが劇的に増加することがわかります。512バイトのブロックサイズでは、BlockbridgeはIOPSの平均35.4%の増加を見つけました。より一般的な4KiBのブロックサイズでは、平均で34.8%の増加が見られました。

つまり、同じハードウェアであっても、追加コストなしでNVMe over TCPを使用することで、iSCSIと比較してIOPSが1/3以上向上します。

平均的なIOPSの改善:NVMe over TCP vs iSCSI(ブロックサイズ別)(出典:Blockbridge)
図3:NVMe over TCP vs iSCSIの平均IOPS改善(ブロックサイズ別)(出典:Blockbridge)

NVMe over TCP vs iSCSIのレイテンシ改善

IOPS集中的なユースケース、たとえばデータベース(Cassandra)での圧縮イベントはIOPSの劇的な増加から恩恵を受けますが、レイテンシに敏感なアプリケーションは低アクセスレイテンシを好みます。レイテンシは、リモート接続されたストレージよりもローカルNVMeストレージを選択する主要な要因であり、多くのデメリットを知っていながらも選ばれます。

レイテンシに敏感なアプリケーションには、高頻度取引システム(ミリ秒が金銭に直結する)、通信システム(レイテンシがシステム同期に問題を引き起こす可能性がある)、サイバーセキュリティおよび脅威検出ソリューション(可能な限り迅速に反応する必要がある)などがあります。

したがって、レイテンシを減少させることは、多くの業界やソリューションにとって大きな利点です。それに加えて、低アクセスレイテンシは常にデータアクセスを高速化します。たとえシステムが必ずしもレイテンシに敏感でなくても、その違いを感じることができます。

Blockbridgeは、16KiBのブロックサイズと128のキュー深度(I/O要求の厳しいソリューションで簡単に達成可能)の組み合わせで、アクセスレイテンシの最大の削減効果を発見しました。iSCSIの平均レイテンシは5,871μsに対し、NVMe over TCPは5,089μsでした。アクセスレイテンシの782μs(約25%)の減少は、ストレージプロトコルを交換するだけで実現されました。

4KiB、8KiB、16KiBにおけるNVMe over TCP vs iSCSIの平均アクセスレイテンシ比較(出典:Blockbridge)
図4:4KiB、8KiB、16KiBにおけるNVMe over TCP vs iSCSIの平均アクセスレイテンシ比較(出典:Blockbridge)

NVMe over TCP vs iSCSIのスループット改善

ストレージパフォーマンスの3つ目の主要指標であるスループットは、実際にディスクからワークロードに転送されるデータ量を示します。

スループットは、ビデオエンコーディングやストリーミングプラットフォーム、大規模な分析システム、巨大なワールドをメモリにストリーミングするゲームサーバーなどのアプリケーションにとって主要な要因です。さらに、タイムシリーズストレージ、データレイク、ヒストリアンデータベースにも関連しています。

スループット重視のシステムは、「作業を早く終わらせる」ために高いスループットから恩恵を受けます。スループットを増加させることは簡単ではないことがよくあります。ディスクが提供するスループットや、ネットワーク接続されたシステムの場合はネットワーク帯域幅に制限されるからです。高いスループットと容量を実現するためには、リモートネットワークストレージは高帯域幅のネットワーキングやFibre Channel、Infinibandなどの専門的なネットワークシステムを利用します。

Blockbridgeは、デュアルポート100Gbit/sネットワークカードでテストを実施し、PCI Express x16 Gen3バスの制限により最大スループットは約126Gbit/sでした。新しいPCIe規格では、はるかに高いスループットを実現できます。したがって、NVMeデバイスとNICはもはやPCIeバスの「制限」に縛られることはありません。

16KiBのブロックサイズと32のキュー深度で、彼らのベンチマークでは、NVMe over TCPとiSCSIの間でパフォーマンスが2.3GB/sも向上しました。iSCSIで10.387GBit/sから12.665GBit/sにスループットが増加し、20%の向上を実現—再び、同じハードウェアを使用しての結果です。これが、コストを節約する方法です。

異なるキュー深度(1, 2, 4, 8, 16, 32, 64, 128)におけるNVMe over TCP vs iSCSIの平均スループット(出典:Blockbridge)
図5:異なるキュー深度(1, 2, 4, 8, 16, 32, 64, 128)におけるNVMe over TCP vs iSCSIの平均スループット(出典:Blockbridge)

NVMe over TCPの説得力のある理由

これまでの内容から、NVMe over TCPはiSCSIに比べて、3つの主要なストレージパフォーマンス指標すべてにおいて優れたパフォーマンスの利点があることがわかりました。それでも、NVMe over TCPにはiSCSIに対してさらに多くの利点があります。

  • 標準イーサネット: NVMe over TCPの最大の利点は、標準的なイーサネットネットワーク上で動作する能力です。InfinibandやFibre Channelのような専門的なネットワーク技術とは異なり、NVMe/TCPは追加のハードウェア投資や複雑な設定を必要とせず、あらゆる規模の組織にとって非常にアクセスしやすいです。
  • パフォーマンス特性: NVMe over TCPは、プロトコルのオーバーヘッドを最小限に抑え、NVMeの設計の効率性を活用することで優れたパフォーマンスを提供します。ローカルストレージに匹敵するレイテンシを達成しながら、ネットワーク接続リソースの柔軟性を提供できます。最新の実装では、従来のストレージプロトコルを大きく上回るスループットを維持できます。
  • 展開の容易さ: NVMe over TCPは、LinuxとWindows(Server 2025以降)にシームレスに統合されます。必要なドライバーはすでにカーネルの一部として含まれているため、NVMe/TCPの実装と管理が非常に簡単です。シームレスな互換性により、新しいストレージ技術の導入に伴う学習曲線や統合の課題が軽減されます。

NVMe over TCPとiSCSIの選択

2つの技術の間で選択するのは、必ずしも簡単なことではありません。しかし、NVMe over TCPとiSCSIの場合、それほど難しくはありません。新しいiSCSIの導入ユースケースは非常に限られています。私の観点では、唯一の有効なユースケースは、まだNVMe over TCPをサポートしていない既存のレガシーシステムとの統合です。

そのため、SimplyblockはNVMe over TCPを最優先とするソリューションでありながら、iSCSIが本当に必要な場合には提供しています。移行は一夜にして行われるものではないため、iSCSIを提供しているのです。しかし、できる限り新しい技術(例えばNVMe over TCP)の利点を活用したいと考えています。Simplyblockを使えば、論理ボリュームをNVMe over TCPまたはiSCSIデバイスとして簡単にプロビジョニングできます。後でiSCSIからNVMe over TCPへの切り替えも可能です。

いずれにせよ、以下のような場合にはNVMe over TCPを選ぶべきです:

  • 高パフォーマンスコンピューティング環境を運用している場合
  • 大容量の帯域幅を持つ最新のデータセンターを有している場合
  • 低レイテンシ、高IOPS、またはスループットが要求されるストレージアクセスを展開している場合
  • スケーラブルで柔軟なストレージソリューションが求められるシナリオにある場合
  • リモート接続されたストレージが必要な他の状況の場合

iSCSIにとどまるべき(または徐々に移行するべき)場合:

  • 限定的なアップグレードパスを持つレガシーインフラストラクチャを持っている場合

ご覧の通り、選択肢は多くありません。したがって、新しいストレージソリューションを選ぶだけです。個人的には、最近ではSimplyblockのようなソフトウェア定義ストレージソリューションをお勧めしますが、ちょっと偏っているかもしれません。いずれにせよ、SDSは両方の世界の良いところを提供します:汎用ストレージハードウェア(96ベイのストレージサーバーにフル投入するオプションもあり)とパフォーマンスです。

Simplyblock: 柔軟性の受け入れ

Simplyblockは、NVMe over TCPとiSCSIの両方をサポートすることで、前向きなストレージ設計を示しています。これにより、利用可能な最高のパフォーマンスを提供し、既存のレガシークライアントの場合はゆっくりと移行できるチャンスも提供します。

さらに、Simplyblockは、従来のSANストレージシステムや「ファイルシステム」(例:ZFS) から知られる機能も提供しています。これには、インスタントスナップショットとクローンを備えた完全なコピーオンライトバックエンドが含まれます。ストレージクラスター間での同期および非同期レプリケーションも可能です。最後に、Simplyblockは、専用ホスト、仮想マシン、コンテナにストレージを提供する現代的なストレージソリューションです。クライアントが何であれ、Simplyblockは既存の環境や今後の環境との統合を最もシームレスに行います。

NVMe over TCPの未来

企業およびクラウドコンピューティングが進化し続ける中、NVMe over TCPはリモート接続ストレージの選択技術として位置づけられています。まず第一に、それはシンプルさ、パフォーマンス、広範な互換性を兼ね備えています。次に、汎用ネットワーク機器を活用したコスト効率が高くスケーラブルなソリューションを提供します。

このプロトコルは現在も進化しており(最後の仕様更新は2024年5月)、効率の向上、レイテンシの低減、スケーラビリティの強化が見られます。

NVMe over TCPは、ストレージネットワーキング技術における重要な進展を示しています。さらに、NVMeの生のパフォーマンスとイーサネットネットワーキングの普及を組み合わせることで、現代のコンピューティング環境にとって魅力的なソリューションを提供します。iSCSIは特定のユースケースや移行段階では依然として重要ですが、NVMe over TCPは未来を代表する技術であり、できるだけ早く採用すべきです。

Simplyblockでは、このストレージの歴史の重要な一歩を踏み出すことに関わっていることを嬉しく思っています。

質問と回答

NVMe over TCPはiSCSIより優れていますか?

はい、NVMe over TCPはiSCSIに比べてほとんど全ての面で優れています。NVMe over TCPは、iSCSIと比較してプロトコルオーバーヘッドが少なく、スループットが高く、レイテンシが低く、IOPSが高いです。新しく設計されたインフラにiSCSIを使用しないことをお勧めし、古いインフラは可能な限り移行することを推奨します。

NVMe over TCPはiSCSIと比較してどれくらい速いですか?

NVMe over TCPは、IOPS、レイテンシ、スループットという主要なストレージ指標すべてにおいて優れています。NVMe over TCPは、同じネットワークファブリックおよびストレージを使用した場合、最大35%高いIOPS、25%低いレイテンシ、20%増加したスループットを示します。

NVMe over TCPとは何ですか?

NVMe/TCPは、インターネット標準プロトコルであるTCP/IPを輸送層として利用するストレージネットワーキングプロトコルです。標準的なイーサネットファブリックを通じて展開され、既存のネットワークトラフィックと並行して実行できますが、VLANや物理的に分離されたネットワークを通じて分離することが推奨されます。NVMe over TCPは、iSCSIプロトコルの後継と見なされています。

iSCSIとは何ですか?

iSCSIは、インターネット標準プロトコルであるTCP/IPを輸送層として利用するストレージネットワーキングプロトコルです。リモートストレージソリューション(主にハードウェアストレージアプライアンス)をストレージクライアントに接続するため、標準的なイーサネットファブリックを通じて通信します。iSCSIは2000年に標準化されました。多くの企業は、iSCSIを優れたNVMe over TCPプロトコルに置き換えています。

SCSIとは何ですか?

SCSI(Small Computer Storage Interface)は、コンピュータと周辺機器を接続し、データを転送するためのコマンドセットです。1980年代に開発され、SCSIはデータストレージインターフェースの基盤となる技術で、ハードドライブ、光学ドライブ、スキャナなどのさまざまなデバイスをサポートしています。

NVMeとは何ですか?

NVMe(Non-Volatile Memory Express)は、ストレージデバイスとコンピュータ間の接続およびデータ転送を定義する仕様です。最初の仕様は2011年に公開されました。NVMeは、PCIeバスを介して接続されたソリッドステートドライブ(SSD)のために特別に設計されています。NVMeデバイスは、SCSI、SATA、SASなどの古い規格に比べてレイテンシとパフォーマンスが向上しています。

Topics

Share blog post