NVMeとNVMe-oFについて

NVMeとNVMe-oFについて

NVMe トランスポートは、信頼性の高い NVMe コマンドとデータ転送を提供するために設計された抽象プロトコル レイヤーです。データセンターのネットワーク ストレージをサポートするために、NVMe over Fabric を使用して PCIe バス上の NVMe 標準を拡張し、SAN における SCSI の優位性に挑戦します。 NVMe over Fabric は、 FC、InfiniBand、RoCE v2、iWARP、TCP などの複数のファブリック伝送オプションへの NVMe のマッピングをサポートします

[[251462]]

ただし、これらのファブリック オプション プロトコルの中で、 InfiniBand、RoCE v2 ( Routable RoCE) 、および iWARP は RDMA をサポートしているため、理想的なファブリックであると考えられることがよくあります。

  • InfiniBand (IB):最初から RDMA をサポートする新世代のネットワーク プロトコル。これは新しいネットワーク テクノロジであるため、このテクノロジをサポートするネットワーク カードとスイッチが必要です。
  • RDMA 統合イーサネット (RoCE):イーサネット上で RDMA を可能にするネットワーク プロトコル。下位ネットワーク ヘッダーは Ethernet ヘッダーであり、上位ネットワーク ヘッダー (データを含む) は InfiniBand ヘッダーです。これにより、標準のイーサネット インフラストラクチャ (スイッチ) 上で RDMA を使用できるようになります。 NIC のみが特別で、RoCE をサポートする必要があります。
  • インターネット ワイド エリア RDMA プロトコル (iWARP): TCP 経由で RDMA を可能にするネットワーク プロトコル。 IB と RoCE には、iWARP ではサポートされていない機能があります。これにより、標準のイーサネット インフラストラクチャ (スイッチ) 上で RDMA を使用できるようになります。 NIC のみが特別で、iWARP をサポートしている必要があります (CPU オフロードを使用している場合)。そうでない場合、すべての iWARP スタックが SW に実装され、RDMA パフォーマンスの利点のほとんどが失われます。

では、ファブリックよりも NVMe を選択する場合、RDMA をサポートすることにはなぜ固有の利点があるのでしょうか?これは、RDMA の機能と利点から始まります。

RDMA は、プロセッサによる時間のかかる処理を必要とせずに、コンピュータが他のコンピュータのメモリに直接アクセスできるようにする新しいメモリ アクセス テクノロジです。 RDMA は、オペレーティング システムに影響を与えることなく、あるシステムからリモート システムのメモリにデータをすばやく移動します。 RDMA テクノロジーの原理と TCP/IP アーキテクチャとの比較を下の図に示します。

したがって、RDMA は、関連するハードウェアとネットワーク テクノロジを使用して、サーバー 1 のネットワーク カードがサーバー 2 のメモリを直接読み書きできるようにすることで、最終的に高帯域幅、低レイテンシ、および低リソース使用率の効果を実現すると簡単に理解できます。下の図に示すように、アプリケーションはデータ転送プロセスに参加する必要はありません。メモリの読み取りアドレスと書き込みアドレスを指定し、転送を開始して、転送が完了するまで待つだけです。 RDMA の主な利点は次のようにまとめられます。

1) ゼロコピー:ネットワーク プロトコル スタックのさまざまな層間でデータをコピーする必要がないため、データ フロー パスが短縮されます。

2) カーネルバイパス:アプリケーションはデバイス インターフェイスを直接操作し、システム コールを介してカーネル状態に切り替えることはなくなり、カーネル切り替えのオーバーヘッドは発生しません。

3) CPU なし:データ転送には CPU の関与は必要なく、ネットワーク カードによって完全に処理されます。パケット送受信の割り込み処理を行う必要がなく、CPU リソースを消費しません。

まとめると、これらの利点により、処理効率が向上し、レイテンシが短縮されます。他のネットワーク ファブリックが RDMA と同様のテクノロジーを通じて NVMe over Fabric の効率性とレイテンシの要件を満たすことができる場合、それらを NVMe over Fabric のファブリックとして使用することもできますか? NVMe-oF と NVMe の違いを見てみましょう。

NVMe-oF と NVMe の主な違いは、コマンドを送信するメカニズムです。 NVMe は、Peripheral Component Interconnect Express (PCIe) インターフェイス プロトコルを通じて、要求と応答をホスト内の共有メモリにマッピングします。 NVMe-oF はメッセージベースのモデルを使用して、ネットワーク経由でホストとターゲット ストレージ デバイス間で要求と応答を送信します。

NVMe-oF は PCIe に代わるもので、NVMe ホストと NVMe ストレージ サブシステム間の通信距離を延長します。 NVMe-oF の当初の設計目標は、ローカル ホストの PCIe バスを使用する NVMe ストレージ デバイスのレイテンシと比較して、適切なネットワーク ファブリックを介して接続された NVMe ホストと NVMe ストレージ ターゲット間のレイテンシを 10 マイクロ秒以下に抑えることでした。

さらに、両者は技術的な詳細と動作メカニズムにおいて大きく異なります。 NVMe-oF は、NVMe (NVMe over PCIe) をベースに拡張および改善されています。具体的な違いは次のとおりです。

  • NVMe over PCIe との互換性に基づいて命名メカニズムが拡張され、たとえば SUBNQN が導入されました。
  • 用語の変更: カプセルとレスポンスカプセルは送信されたメッセージを表すために使用されます
  • カプセル内データ転送をサポートするために、Scatter Gather Lists (SGL) を拡張しました。以前は、NVMe over PCIe の SGL はカプセル内データ転送をサポートしていませんでした。
  • トポロジ内のNVMサブシステムを検出して接続するための検出および接続メカニズムを追加しました
  • 接続メカニズムにキュー作成メカニズムが追加され、NVMe over PCIe でキューを作成および削除するためのコマンドが削除されます。
  • NVMe-oF には、PCIe アーキテクチャのような割り込みメカニズムはありません。
  • NVMe-oF は CQ フロー制御をサポートしていないため、CQ がオーバーランするのを防ぐために、各キューの OutStanding Capsules の数は、対応する CQ のエントリ数より大きくすることはできません。
  • NVMe-oFはSGLのみをサポートし、NVMe over PCIeはSGL/PRPをサポートします。

まず、Brocade がこれまで提唱してきた FC ファブリックについてお話ししましょう。 FC-NVMe は、NVMe コマンド セットを基本的な FCP 命令に簡素化します。ファイバー チャネルはストレージ トラフィック用に設計されているため、デバイスの検出、管理、エンドツーエンドの検証などの機能がシステムに組み込まれています。

ファイバー チャネルは、100 社を超えるテクノロジー企業が加盟する非営利団体 NVMExpress Inc. によって開発された仕様である NVMe over Fabrics (NVMe-oF) のファブリック トランスポート オプションです。その他の NVMe トランスポート オプションには、イーサネット経由のリモート ダイレクト メモリ アクセス (RDMA) と InfiniBand が含まれます。 NVM Express Inc. は、2016 年 6 月 5 日に NVMe-oF バージョン 1.0 をリリースしました。

国際情報技術標準化委員会 (INCITS) の T11 委員会は、NVMe-oF をファイバー チャネルに適用するためのフレーム形式とマッピング プロトコルを定義しました。 T11 委員会は 2017 年 8 月に FC-NVMe 標準の最初のバージョンを完成させ、INCITS に公開のために提出しました。

FC プロトコル (FCP) を使用すると、NVMe、Small Computer System Interface (SCSI)、IBM 独自の Fiber Optic Connection (FICON) などの上位層トランスポート プロトコルをマッピングして、ホストと周辺ターゲット ストレージ デバイスまたはシステム間のデータおよびコマンドの転送が可能になります。

NVMe over FC は、大規模なブロック フラッシュ ベースのストレージ環境で採用される可能性が最も高くなります。 FC-NVMe ファイバー チャネルは、SCSI と同じ NVMe-oF ファブリック、予測可能性、信頼性機能を提供し、さらに、NVMe-oF トラフィックと従来の SCSI ベースのトラフィックを同じ FC ファブリック上で同時に実行できます。

FC 標準に基づく NVMe は、FC-NVMe プロトコル層を定義します。 NVMe over Fabrics 仕様は、NVMe-oF プロトコル層を定義します。 NVMe 仕様は、NVMe ホスト ソフトウェアと NVM サブシステム プロトコル層を定義します。

潜在的なメリットを実現するために NVMe over Fibre Channel をサポートする必要があるインフラストラクチャ コンポーネントには、ストレージ オペレーティング システム (OS) やネットワーク アダプタ カードなどがあります。 FC ストレージ システム ベンダーは、自社製品を FC-NVMe 要件に準拠させる必要があります。 FC-NVMe をサポートするホスト バス アダプタ (HBA) の現在のベンダーには、Broadcom と Cavium が含まれます。 Broadcom と Cisco が主要な FC スイッチ サプライヤーです。現在、Brocade の Gen 6 FC スイッチはすでに NVMe-oF プロトコルをサポートしています。

NVMe over Fabric のホワイト ペーパーでは、ファイバー チャネルが NVMe over Fabrics のオプションとして明示的にリストされており、理想的なファブリックには信頼性の高いクレジット ベースのトラフィック制御および配信メカニズムが必要であることも説明されています。ただし、クレジットベースのフロー制御メカニズムは、FC および PCIe 伝送のネイティブ機能です。 NVMe のホワイト ペーパーでは、RDMA は「理想的な」NVMe over Fabric の重要な属性としてリストされていません。つまり、RDMA は NVMe Fabric を実装するための単なる方法であること以外は特別なものではありません。

FC は、DMA データ転送をサポートするゼロコピー テクノロジーも提供します。 RDMA は、ローカル サーバーからリモート サーバーにスキャッター ギャザー リストを渡すことによってローカル メモリをリモート サーバーと効果的に共有し、リモート サーバーがローカル サーバーのメモリを直接読み書きできるようにします。 NVMe over FC の詳細については、「NVMe over FC または FC-NVMe 標準」および「Brocade が FC を最適なファブリックと考える理由」を参照してください。

次に、RDMA テクノロジーをベースに NVMe over Fabric を実装する Fabric テクノロジーについて説明します。 RDMA テクノロジーは Infiniband ネットワークで初めて登場し、HPC 高性能コンピューティング クラスターの相互接続に使用されます。 NVMe over InfiniBand は、非常に高い帯域幅と低いレイテンシを必要とする高性能コンピューティング ワークロードに適しています。 InfiniBand ネットワークは通常、ホストとストレージ間の通信ではなく、バックエンド ストレージ システム内の通信に使用されます。 FC と同様に、InfiniBand は特別なハードウェアを必要とするロスレス ネットワークですが、フローおよび輻輳制御やサービス品質 (QoS) などの利点があります。しかし、FC とは異なり、InfiniBand にはファブリックにノードを自動的に追加する検出サービスがありません。 RDMA の詳細については、「RDMA テクノロジの原理の分析、主流の実装の比較と分析」の記事を参照してください。

***、NVMe/TCP プロトコル オプション (一時的に NVMe over TCP と呼ばれます) について説明します。数年前、NVMe Express 組織は、伝送制御プロトコル (TCP) 伝送オプション (TCP ベースの iWARP とは異なる) をサポートすることを計画していました。最近、NVM Express Inc. は 16 か月ぶりに NVMe over TCP の最初のバージョンをリリースしました。このファブリック標準の出現により、NVMe プロトコル標準に準拠したファブリックを NVMe over Fabric として使用できるかどうかという疑問が解消されました。

ただし、TCP プロトコルはローカル PCIe アクセスよりもはるかに高いネットワーク遅延をもたらし、NVMe プロトコルの低遅延目標を損ないます。 RDMA テクノロジーを使用せずに、NVMe/TCP はどのようなテクノロジーを使用して RDMA テクノロジーと同様の伝送効果を実現しますか?以下は、Intel ストレージ ソフトウェア エンジニアの Yang Ziye 氏の言葉を引用し、NVMe/TCP の誕生につながったいくつかの技術的な理由について説明しています。

1. NVMe 仮想化の出現: NVMe 仮想化を前提としているため、NVMe-oF ターゲットには必ずしも実際の NVMe デバイスは必要ありません。これは分散システムから抽象化された仮想 NVMe デバイスである可能性があり、物理 NVMe デバイスの高性能特性を継承しない可能性があります。この前提の下では、低速 TCP プロトコルを使用することは悪い考えではありません。

2. 下位互換性: NVMe-oF プロトコルは、ある程度 iSCSI プロトコルを置き換えることを目指しています (元の iSCSI プロトコルは RFC3720 であり、多くの拡張機能があります)。 iSCSI プロトコルはイーサネット上でのみ実行できます。ネットワーク カードに対する要件はそれほど多くなく、ネットワーク カードが RDMA をサポートする必要もありません。もちろん、RDMA がサポートされている場合は、iSER プロトコルを使用してデータ転送用の CPU リソースをオフロードできます。ただし、NVMe-oF プロトコルは当初 TCP をサポートしていませんでした。そのため、ユーザーが iSCSI から NVMe-oF に移行すると、多くの既存のネットワーク デバイスが使用できなくなります。これにより、NVMe-oF プロトコルの受け入れが減少します。ユーザーがパフォーマンスを第一に考慮していないという前提の下では、既存の NVMe-oF プロトコルのハードウェア要件が顧客の変革に障害となり、ユーザーのデータセンターのスムーズなアップグレードを妨げることは明らかです。

3. TCP オフロード: TCP プロトコルはパフォーマンスを大幅に低下させますが、TCP でもオフロードを使用したり、スマート NIC や FPGA を使用したりすることができます。そうすれば、潜在的なパフォーマンス損失をある程度補うことができます。一般的に、短期的にはパフォーマンスが低下しますが、長期的にはプロトコルのハードウェア要件が削減され、パフォーマンスが向上します。その結果、全体的な受容性が向上します。

4. ソフトウェア RoCE との比較: TCP トランスポートが存在せず、ユーザーが RDMA ネットワーク カード デバイスを持っていない場合。 NVMe-oF をテストする場合は、ソフトウェア RoCE を使用してネットワーク デバイスを RDMA 機能を備えたデバイスにシミュレートし、対応するテストを実行する必要があります。実際の実装では、カーネルの対応するモジュールを使用して実際の UDP パケットをカプセル化し、RDMA プロトコルをシミュレートします。 TCP トランスポート プロトコルでは、それほど複雑ではありません。ユーザーは、より信頼性の高い TCP プロトコルを使用して、NVMe-oF の関連テストを実行できます。テスト展開の点では、よりシンプルで効果的です。

NVMe/TCP (NVMe over TCP) プロトコルは、iSCSI データの読み取りと書き込みの伝送プロトコルなど、ある程度 iSCSI プロトコルを借用しています。これは驚くべきことではありません。なぜなら、プロトコルの指定された参加者の中には、iSCSI プロトコルの指定された参加者もいるからです。また、iSCSI プロトコルの一部は非常によく記述されています。しかし、NVMe/TCP は iSCSI プロトコルよりもシンプルで、両者の本質を併せ持つとも言えます。

<<:  予想外に、分散キャッシュによって登録センターがこのようにダウンしてしまいました。

>>:  2019 年のクラウド コンピューティング市場の競争は企業にとって何を意味するのでしょうか?

推薦する

デジタル変革における人材の道を議論する、テンセントクラウド「人材プログラム」企業新技術実践クラウドサロン北京駅が開催されました

サロンイベントでは、中国ソフトウェア産業協会企業製品クラウドサービス支部秘書長、中国ソフトウェアネッ...

Dangdang.com はなぜ成長できなかったのでしょうか?

はじめに:なぜ当当は大きく成長できないのか?それは上場のタイミングの問題であり、事業レイアウトの問題...

Spring Cloud はマイクロサービス アーキテクチャを構築します: 分散サービス追跡 (サンプリング収集)

分散システムでのリクエスト追跡は、Trace ID と Span ID を通じて実現され、記録された...

より柔軟なハイブリッドクラウド環境を構築する方法

クラウド コンピューティング市場セグメントで事業を展開する多くのベンダーは、クラウド コンピューティ...

インターネットマーケティングにおける社会心理学:コミットメントと一貫性

人は、自分の発言と行動に一貫性を持たせることを好みます。これは人間の本性です。意図的であろうとなかろ...

お茶のパッケージ業界でコンテンツ ページを最適化する方法を簡単に分析します。

コンテンツ ページの最適化に関しては、ほとんどのウェブマスターの友人がその重要性を理解していると思い...

スパイダー SEO: キーワード選択のヒントと戦略

スパイダーSEO:キーワードの選び方とは?キーワード選びのスキルと戦略に関する雑談SEO(検索エンジ...

ザックはSEOの混乱した未来への明確な道筋を指摘する

SEO 業界で働く人なら誰でも Zac という名前を知っているでしょう。彼は素晴らしい人物でもありま...

古いグループはブロックされたので、新しいQQグループに変更しました。ぜひご参加ください!

たった1日の午後、私は注意を払っていませんでした。子供の世話をしていたのですが、私のQQグループがブ...

エッジ分析からビジネス価値を引き出す方法

データが指数関数的に増加し、それを一元的に保存および管理する能力を超えている中で、エッジ分析が組織が...

Linux の仮想ファイルシステム (「すべてがファイルである」ということを本当に理解する)

[[268044]] 1. はじめにLinux では、ext2、ext3、vfat など、さまざまな...

レンレンダイの数千万の資産運用資金を調査:関連会社に流入した可能性

「現場認証ラベル」の真偽疑惑、連立政権の「財務運営資金」数千万の行方を調査記者の曽宋が深圳からレポー...

ua-hosting: 超高構成の VPS + サーバー、絶対的に低価格、オランダ + 米国

当社は 2006 年からホスティング サービスに携わっており、実際の商業運営は 2009 年に開始し...

5Gとエッジコンピューティングがオンライン小売業者のゲームをどう変えるのか

今日の絶えず進化する小売業界では、常に時代の先頭に立つことが重要です。国際的に取引を行う企業は、より...

ウェブサイトは21日前にKから復旧されました

百度6月28日の事件以来、多くのウェブサイトがブロックされている。私のウェブサイトもその一つで、完全...