エンタープライズ データ ストレージ ベンダーに相談すると、返ってくるのはNVMeがどうだこうだという内容ばかりです。
こうした言葉が返ってくるのには理由があります。SAN環境にエンドツーエンドのデータ転送プロトコルとしてNVMe(NVM Express)を実装すると、スループットが大幅に向上し、レイテンシが低減して、ユーザ エクスペリエンスが劇的に向上します。しかし、重要なのは「エンドツーエンド」の部分です。残念ながら、現在市場に出回っているNVMeデータ ストレージ製品の多くは、NVMeが秘めているパフォーマンス向上能力のごく一部しか提供していません。
これは、NVMeデータ転送標準に次の2つの側面があるためです。
- フラッシュ メディアとストレージ コントローラ間の「バックエンド」プロトコルである
- データ ファブリック全体におけるホストとストレージ コントローラ間の「フロントエンド」プロトコルである(つまり、NVMe over Fabrics(NVMe-oF))
細かい点であっても注目すべきなのは、ほとんどの場合、NVMeで可能な高速化の20%未満がバックエンドNVMeメディアの使用によるものであり、80%以上のメリットは、SCSIベースのフロントエンド データ転送プロトコルの代わりにNVMe-oFを使用することから得られるためです。データセンターのマーケティング関連ブログの中には、実のところ首をかしげるようなものもあります。そのため、問題となっているストレージ システムが、バックエンドのNVMeフラッシュ メディアではなく、実際にNVMe-oFを実行しているかどうかを常に確認してください。
NVMeの圧倒的な並列処理機能をデータ ファブリックに導入すると、パフォーマンスが大幅に向上します。そのため、IT担当部門のリーダーやアーキテクトが直面するのは、パフォーマンス、信頼性、コストに大きな違いがあるファブリックのどれを採用すべきかという課題です。
NVMe-oF標準は、2016年の開始以来、NVMeコマンド セットを可能な限り幅広いファブリックおよびネットワーク トランスポートで転送できるように設計されています。
ファブリックの主な3つのタイプ
現在、IT業界での主要なデータ転送プロトコルは次のとおりです。
- ファイバチャネル(FC)。ストレージ デバイスとサーバ間でデータを転送するための主要なプロトコルで、ほとんどのエンタープライズSANシステムで使用されています。
- リモート ダイレクト メモリ アクセス(RDMA)。オペレーティング システムに依存せずに、コンピュータ システム間でメモリに直接アクセスするさまざまな方法です。
- Transmission Control Protocol/Internet Protocol(TCP/IP)。TCP転送プロトコルを使用して、インターネットのように、IPネットワーク全体にデータを配信します。
NVMeでサポートされるファブリックには、次の3種類があります。
- NVMe/FC。FCフレーム内にカプセル化されたNVMeコマンド セット。ゾーニングなどの一般的なFCプロセスに依存しており、SCSIコマンド セットをFCフレームにカプセル化する最新の標準的なFCプロトコルとも簡単に共存できます。
- NVMe over RoCE(NVMe/RoCE)、InfiniBand、およびiWARP。最近登場した代替プロトコルとして、RoCE(RDMA over a physical Converged Ethernet)(データセンター ブリッジング ロスレス イーサネット ネットワーク)を使用するRoCE v2があります。
- NVMe over TCP(NVMe/TCP)。NVMeは、物理トランスポートとしてイーサネット経由でTCPデータグラム内で転送されます。RoCEとNVMe/TCPはどちらもイーサネットを使用しますが、どちらもI/Oにメッセージングのセマンティクスを使用するため、NVMe/TCPはNVMe/FCのように動作します。
ここでは、データ ファブリック全体にNVMeを実装する3つの方法の基盤となるテクノロジを紹介してから、それぞれの方法の長所と短所を説明します。
NVMeの高速処理の理由
現在SANシステムで使用されている主なデータ転送プロトコルは、FCプロトコル、iSCSI、FCoEです。これらの頭字語は、今後は無視してかまいません。なぜなら、これらの頭字語はすべて、フロッピー ディスクとハードディスク ドライブ用に設計された1970年代のインターフェイス標準のセットであるSCSI上で構築されているからです。
NVMe標準は過去10年にわたって開発されたもので、フラッシュ メモリ、ソリッド ステート ドライブ(SSD)、NVMe接続SSD、さらにはこれから発明されるストレージ テクノロジをも最大限に活用するように特別に設計されています。SCSIの単一コマンド キュー(32コマンドの深度)の代わりに、NVMeは65,000のキューをサポートし、キューあたり65,000のコマンドをサポートします。つまり、はるかに多くのコマンドを同時に実行できます。
NVMeの最初の反復処理は、高速のPeripheral Component Interconnect Express(PCIe)バスを介して接続されたホスト コンピュータとローカルNVMeメディア間のI/Oを最適化することに重点を置いていました。NVMe-oFに進化した際の設計上の主な目的は、できるだけ幅広い種類のファブリックとネットワーク プロトコルをサポートすることでした。現在は、NVMe/FC、NVMe over RDMA(NVMe/RDMA)、NVMe/TCPという3つの主要なデータ転送プロトコルがあります。
NVMe/FC
現在、ほとんどの企業は、優れた高速性、効率性、可用性を一貫して実現するFCベースのSANシステムに、ミッションクリティカルなワークロードを任せています。
- NVMe/FC
- 長所:
- NVMe/FCは、パフォーマンス上のメリットが大変大きく、ワークロードのレイテンシを低減します。
- FCプロトコルは安定性、成熟性、効率性、高速性に優れており、一貫して高いパフォーマンスを実現します。
- 現在利用可能なNetApp® AFF A300、AFF A700s、およびAFF A800ストレージ システムは、同じファブリック コンポーネント(HBA、スイッチなど)を使用することで、NVMe/FCとFCの両方のトラフィックを同時にホストおよびサポートできるため、FCからNVMe/FCへの移行は簡単です。
- NetApp NVMeソリューションでは、NVMe/FCの実装にアプリケーションを変更する必要がないため、大掛かりなアップグレードは必要ありません。
- この標準は、NetAppが開発し、NVMe仕様に貢献した、NVMe Asymmetric Namespace Access(ANA)の機能強化を備えた高可用性(HA)ストレージを提供します。
- NVMe/FCは他のNVMe-oFオプションよりも成熟しており、NVMe-oFの世界には最大のエコシステムが登場しています。
- NVMe/FCのテストや導入をご検討中であれば、NetApp ONTAP® 9.4以降にアップグレードしてNVMe/FCライセンスを追加するだけでそれが可能です。
- 短所:
- 他のNVMe製品と同様、NVMe/FCは非常に新しく、サポート対象のオペレーティング システム、ホスト バス アダプタ(HBA)、スイッチのエコシステムも比較的まだ小規模です。
- NVMe/FCのエコシステムの方がRoCE v2より規模は大きいものの、成熟度の高いFCプロトコルに比べるとまだ小規模です。
- NVMe/FCはFCファブリックに依存するため、FCファブリックを持たない組織や、FCファブリックからの移行を検討している組織には適さない場合があります。
RDMA
RDMAは、ネットワーク内の2台のコンピュータのメイン メモリ間で、どちらのコンピュータのプロセッサ、キャッシュ、またはOSも介さずにデータを交換する方法です。RDMAは、OSをバイパスするため、一般的には、ネットワーク経由でデータを通信するための最速かつ最小オーバーヘッドのメカニズムです。
エンタープライズ コンピューティングでは、InfiniBandとRDMA over Converged Ethernet(RoCE)という2つの主要なRDMAがあります。
NVMe Over InfiniBand(NVMe/IB)
InfiniBandはRDMAの初期の実装の1つであり、超高速のパフォーマンスで知られています。NetAppは2017年以降、100Gbps InfiniBandをサポートするEシリーズのハイブリッドおよびオールフラッシュ アレイを出荷しており、ビッグ データ分析のワークロードで100マイクロ秒未満のレイテンシを実現しています。InfiniBandはその利点にもかかわらず、比較的近いRoCEやエンタープライズ標準のFCほど人気がありません。
- NVMe/IB
- 長所:
- きわめて高速なプロトコルです。
- ビッグ データ分析(Hadoopワークロードなど)や科学計算で広く使用されています。
- 短所:
- 高価であり、多くのベンダーではサポートしていません。
- 拡張が容易ではありません。
- 一般的なエンタープライズ コンピューティング環境にはありません。
RoCE v2
RDMAプロトコルの中で、最も有望な候補はRoCEです。RoCEは、ロスレスを目的とした、イーサネット プロトコルに対する一連のData Center Bridging(DCB)の機能拡張であるConverged Ethernet上で実行されます。RoCE v1は、Open Systems Interconnection(OSI)モデルのデータ リンク層であるレイヤ2で動作します。サブネット間のルーティングはできないため、同じイーサネット ネットワーク内の2台のホスト間の通信のみをサポートします。RoCE v2は、User Datagram Protocol(UDP)を使用し、NVMe/TCPのようにOSIレイヤ3で動作し、ルーティングが可能なため、はるかに価値があります。
- NVMe/RoCE v2
- 長所:
- NVMe/RoCEは、転送にイーサネット ネットワークを使用することで、広く普及しているこのネットワーク標準を活用しています。
- RoCE v2製品は、複数のエンタープライズ ストレージ ベンダーによって開発されています。
- 短所:
- RoCE v2には現在、1バージョンのLinuxのみの非常に小規模なエコシステムがあるだけで、ストレージの高可用性やマルチパスはサポートしていません。
- イーサネットは基本的に損失の多い手段です。信頼性の低いネットワークに対処するように設計されているため、エラー修正や再送信のための多くのオプションがあります。一方、NVMe I/O用のConverged Ethernet(RoCEでは「CE」)ネットワークはロスレスでなければならず、Priority Flow Control(PFC)やExplicit Congestion Notification(ECN)などのメカニズムが必要です。そのため、Converged Ethernetネットワークには厳しい耐久性が設定されており、拡張が困難です。
- RoCE v2の採用を検討しているほとんどの組織では、比較的高価な専用のDCBネットワーク スイッチとRDMAネットワーク インターフェイス カード(RNIC)の購入が必要です。DCBネットワークは、セットアップやスケールアップが困難な場合があります(組織がネットワークにスイッチを追加する場合など)。
NVMe Over TCP/IP
現在のところ、FCネットワークやInfiniBandネットワークはコストがかかり、一部の組織にとってはNVMe-oF市場への参入の障壁になっています。市場でのこのギャップに対処するため、NetAppとNVMe.orgコンソーシアムの他のメンバーは、トランスポートとしてTCPデータグラムを使用するイーサネットLANを使った、新しいNVMe-oF標準(NVMe/TCP)を開発し、公開しました。
実際、2018年11月、NVMe標準化団体は新しい転送メカニズムとしてNVMe/TCPを承認しました。将来的には、TCP/IPがNVMeの重要なデータセンター トランスポートになる可能性があります。
- NVMe over TCP
- 長所:
- この標準は、トランスポートとしてTCPを使用します。TCPは認知度が高く、十分理解されており、拡張性にも優れています。
- 接続にイーサネットを使用するものの、NVMe/TCPはNVMe/FCによく似ています。なぜなら、どちらもコア通信にメッセージを使用するためです。それは、メモリ セマンティクスを使用するRoCEなどのRDMAベースのプロトコルとは異なります。
- TCPの世界にはベンダーの巨大なエコシステムがあり、パフォーマンス機能の向上に多大な資金が投じられています。今後数年間で、その速度は大幅に増加する可能性があります。
- 短所:
- ネットワーク設計は、NVMe/TCPのパフォーマンスに大きな影響を与える可能性があります。特に、バッファの割り当ては「ぴったり」でなければなりません。バッファリングが多すぎると遅延が発生し、少なすぎるとドロップや再送信が発生します。
- NVMe over TCPはNVMe向けの最新のファブリック テクノロジで、まだ市販されていません。
どのファブリックを選ぶか
NVMe-oFに対応するため、インフラのアップグレードを計画しているエンタープライズITアーキテクトにとって、一番の問題はどのファブリックを選ぶかです。当然、その答えは、現在のインフラの中身と、将来の計画と予算に依存します。
もう1つの重要な要素はタイミングです。NVMe/RoCE v2は大きな可能性を秘めていますが、ティア1のエンタープライズ ワークロードを安心して任せられるレベルまで進化するには、さらに数年かかるでしょう。また、テクノロジが成熟すれば、NVMe/TCPのコストとパフォーマンスのバランスもよくなるはずですが、それも数年後のことです。
現時点で、ほとんどのITアーキテクトは、エンタープライズ向けのミッションクリティカルなワークロードに適した最も成熟したデータ転送プロトコルはFCであり、NVMe/FCがファブリックの選択肢として最適であると結論付けています。Demartekのテクニカル アナリストによる2018年のレポート『Performance Benefits of NVMe over Fibre Channel』では、次の図に示すように、NVMe/FCファブリックによるパフォーマンス向上の大きさが確認されています。 NetApp AFF 700システムで実行される一般的なOracleワークロードの場合、NVMe/FCのIOPSはSCSI FCプロトコルに比べて約50%高くなっています。[/caption]このラボ テストは、シングルノードのAFF A700システムで実行しており、ブロック サイズ8KBでの80対20の読み取り/書き込み(典型的なOLTPデータベースのI/O)と、少量の64KBのシーケンシャル書き込み(典型的なredoログ)を伴う、Oracleワークロードのシミュレーションを使用しています。その結果、NVMe/FCは、SCSI FCプロトコルと比較して、375μsのレイテンシでIOPSが58%高いことが判明しました。
同様の結果は、2018年5月から出荷されているAFF A800 SANストレージ システムを使用したラボでも確認されています。これらのシステムは、NVMe接続のフラッシュ メディアと、ストレージ コントローラとホスト間のファブリック全体におけるNVMe/FC接続を備えた、包括的なエンドツーエンドのNVMe接続を提供します。テスト結果によると、バックエンドのNVMe接続メディアはAFF A800でのOracleアプリケーションの実行時に測定可能なパフォーマンス向上を示すものの、ほとんどのパフォーマンス向上は、高度に並列化されたフロントエンドのNVMe-oFによるものであることが確認されました。
最適な選択肢を選べば、最も成熟した現在のストレージ ネットワーク テクノロジをシステム無停止で実装しつつ、NVMeが主流となる来たるべき未来に備えることができます。
詳細については、『Performance Benefits of NVMe over Fibre Channel』レポートをご覧ください(登録不要)。