NVMeという言葉を何度も使っていますが、私が考えている意味と同じ意味ですか?

Table of Contents

NVMeという言葉を何度も使っていますが、私が考えている意味と同じ意味ですか?

技術解説NVMeファブリックテクノロジーは、ブロックアクセスストレージネットワークの一種で、ネットワーク遅延を解消し、外付けフラッシュアレイを内蔵の直接接続NVMeフラッシュドライブと同等の速度に魔法のように高速化します。一体どのようにしてこの仕組みを実現しているのでしょうか?

EMC DSSD ソフトウェア エンジニアリング担当 VP の Mike Shapiro 氏は、NVMe ファブリックを次のように定義しています。「RDMA 対応ファブリックで次世代フラッシュ ストレージを共有するための新しい NVM Express 標準」

まず最初に、NVMe と RDMA という 2 つの頭字語を定義しましょう。

NVMe

NVMeはNon-Volatile Memory Expressの略で、サーバーの高速メモリバスに低速のPCIe(Peripheral Component Interconnect Express)バスで接続されたフラッシュカードやドライブにアクセスするための標準的な方法として誕生しました。PCIeバスを使用すると、SATAやSASプロトコルでドライブを接続するよりもはるかに高速になります。

このNVMeプロトコルは、NANDストレージデバイスの内部並列性を活用するために構築された論理デバイスインターフェースです。その結果、NVM​​eはI/Oオーバーヘッドを削減し、複数の長いコマンドキューと低レイテンシによってデータアクセス性能を向上させます。NVMeが登場する前は、すべてのオペレーティングシステムは使用するPCIeカードごとに固有のドライバを用意する必要がありました。NVMeの登場以降、すべてのオペレーティングシステムは単一のNVMeドライバを使用するようになりました。

SNIA_NVMeF_スキーム

NVMeFの基本概念(SNIAスライド)

このドライバーは、iSCSIやファイバーチャネルなどのネットワークアクセスプロトコルや、SASやSATAなどのディスクベースのプロトコルスタックを必要とせずに、ストレージメディアへの直接ブロックアクセスを提供します。これらのプロトコルスタックで使用されるすべてのレベルのコードはNVMeによってバイパスされるため、NVMeは軽量かつ高速なプロトコルとなっています。

たとえば、NVMe のレイテンシは、ワークロードに応じて、12Gbps SAS ドライブの 1,000μs 以上のレイテンシよりも 200μs 以上低くなります。

NVMe を使用するストレージ デバイスは次のとおりです。

  • PCIeフラッシュカード、U2コネクタを介した4レーンPCIeインターフェースを備えた2.5インチSSD、
  • SATA Expressデバイス(PCIe Gen 2または3レーン×2)
  • 4 つの PCIe Gen 3.0 レーンをサポートする M.2 内部マウント拡張カード。

PCIe バスはサーバーの外部に拡張することができ、例えばサーバー同士をリンクしたり、周辺機器を追加したりしてファブリックを形成できます。NVMeF (NVME for Fabric) は、NVMeF プロトコル メッセージを伝送するために使用される実際のケーブルが Ethernet、InfiniBand、またはその他のコンピュータ ネットワーク ケーブル標準を使用して実装されている場合、サーバー OS が PCIe バス速度で外部接続のフラッシュ デバイスにアクセスするために使用できるスキームになりました。

これにより、iSER、iWARP、ROCE などが実現します。これらについては、RDMA に話を移した後に説明します。

RDMA

RDMAはRemote Direct Memory Access(リモート・ダイレクト・メモリ・アクセス)の略で、あるコンピュータが別のコンピュータの内部メモリに直接アクセスすることを可能にします。接続先コンピュータのネットワークアダプタは、OS自身のデータバッファやネットワークI/Oスタックを介さずに、ネットワークからアプリケーションメモリ領域にデータを直接転送します。そのため、転送は非常に高速になります。ただし、転送が成功したことを知らせる確認応答(ACK)が送信元コンピュータに返されないという欠点があります。

RDMAには一般的な標準規格がないため、実装は特定のサーバー、ネットワークアダプター、オペレーティングシステム、アプリケーションに特化しています。LinuxおよびWindows Server 2012にはRDMA実装があり、転送の伝送層としてiWARP、RoCE、InfiniBandが使用される場合があります。

したがって、現在では、iWARP、RoCE、および InfiniBand を使用する NVMeF を使用すると、通常はフラッシュである外部ストレージ メディアとの間で、ローカルの直接接続速度と共有モードで RDMA アクセスを提供でき、SAN を DAS に変えることができると理解しています。

NoEとNVMeoFという2つの略語を目にすることがあるかもしれません。前者はNVMe over Ethernet、後者はNVMe over Fabricsです。私たちは中間的なNVMeFの略語を使用しており、NVMe/Fと表記されることもあります。どちらも同じ意味です。

iWARP - インターネット広域 RDMA プロトコル

iWARP(インターネット広域RDMAプロトコル)は、インターネットプロトコルネットワーク上でRDMAを実装します。TCPやSCTPなどのIETF標準の輻輳対応プロトコルを基盤とし、DDP(直接データ配置)、MPA(マーカーPDUアラインメントフレーミング)、そして独立したRDMAプロトコル(RDMAP)を含む複数のレイヤーを組み合わせてTCP/IP上でRDMAサービスを提供します。そのため、iWARPはRoCEよりもスループットが低く、レイテンシが高く、CPUとメモリの使用率が高くなると言われています。

たとえば、「レイテンシは RoCE よりも高くなります (少なくとも Chelsio と Intel/NetEffect の両方の実装の場合) が、それでも 10 μs をはるかに下回ります。」

Mellanox社によると、25、50、100Gbit/sのイーサネット速度ではiWARPはサポートされていないとのことです。Chelsio氏によると、RDMAのIETF標準はiWARPです。iWARPはInfiniBandと同じホストインターフェースを提供し、同じOpenFabrics Enterprise Distribution (OFED)で利用可能です。

iWARPをInfiniBandの代替として位置付けるChelsio社は、iWARPはRDMA over Ethernetの業界標準であると述べています。高性能なiWARP実装は既に利用可能であり、アプリケーションベンチマークにおいてInfiniBandと直接競合します。

メラノックス_iWArp_vs_RoCE

iWARP と RoCE を比較した Mellanox のチャート

RoCE - RDMA オーバー コンバージド イーサネット

RoCE(RDMA over Converged Ethernet)は、イーサネットネットワーク上でリモート ダイレクト メモリ アクセス(RDMA)を可能にします。これは、レイヤー2およびレイヤー3のDCB(データセンター ブリッジング)対応スイッチ上で動作します。これらのスイッチは、IEEE 802.1データセンター ブリッジング規格に準拠しています。これは、従来のイーサネットの拡張セットであり、ロスレスなデータセンター トランスポート層を提供することを目的としており、シスコによると、LANとSANを単一の統合ファブリックに統合することを可能にします。DCBスイッチは、Fibre Channel over Ethernet(FCoE)ネットワーク プロトコルをサポートしています。

2つのバージョンがあります:

  • RoCE v1はリンク層プロトコルとしてイーサネットプロトコルを使用するため、同じイーサネットブロードキャストドメイン内の任意の2つのホスト間の通信が可能になります。
  • RoCE v2 は、UDP/IP 上で実行される RDMA であり、ルーティング可能です。

RoCE は、Infiniband over Ethernet として説明されています。IB ヘッダーから GUID (グローバル一意識別子) を削除し、それを Ethernet MAC アドレスに置き換えて、回線経由で送信します。

RoCEはパケットドロップの影響を受けやすく、トラフィック専用のチャネルが必要であることは承知しています。Chelsio氏によると、RoCEネットワークではすべてのスイッチとエンドステーションでPAUSEを有効にする必要があり、これによりRoCEの導入規模が実質的にシングルホップに制限されるとのことです。RoCEはサブネットを超えて動作することはなく、その動作範囲は数百メートルに限られますが、検討対象の環境(データセンター内の外部ストレージに接続されたサーバー)では制約にはなりません。

RoCE は標準の IP ヘッダーを使用しないため、標準の IP ルーターではルーティングできません。

iSER - RDMA 用の iSCSI 拡張機能

ここでご紹介できる3つ目のプロトコルがiSERです。これは、RDMAのiSCSI拡張機能です。iSCSIはInternet Small Computer System Interface(Small Computer System Interface)の略です。RDMA部分はiWARP、RoCE、またはInfiniBandによって提供されます。

iSER方式により、中間データのコピーを介さずに、SCSIコンピュータメモリバッファからデータを直接読み書きできます。SCSIバッファは、ホストコンピュータをSCSIストレージデバイスに接続するために使用されます。

しかし、リモートSSDはSCSIベースのプロトコルを使用してファブリック経由で接続されるため、プロトコル変換が必要となり、データ転送に遅延が生じます。SCSIをバイパスし、NVMeファブリック経由でホストとリモートSSDリソースを直接接続し、プロトコル変換なしで接続することを目指しています。

SNIA_NVMEF_紹介スライド

SNIA NVMeF 紹介スライド

NVMeF標準化

SNIA (ストレージ ネットワーキング インダストリー組織) は、当初は RDMA (RoCE、iWARP、InfiniBand)、ファイバー チャネル、さらに FCoE など、さまざまなファブリック タイプにわたる NVMe の標準化に取り組んでいます。

BrocadeとQLogicは既に、ファイバーチャネルサブシステムへのNVMeFリンクを実証しています。これは概念実証であり、16Gbit/sファイバーチャネルレベルのパフォーマンスを実現しました。Brocadeは、トランスポートレイテンシを30~40%削減することを目指していると述べており、これは好ましい成果ですが、純粋なNVMeFのレイテンシレベルには達しません。

NVMeFに関する教育資料の提供にも積極的に取り組んでおり、例えば2015年12月15日にNetApp、Cisco、Intelのスタッフが作成した素晴らしいプレゼンテーション「Under the Hood with NVMe over Fabrics」などが挙げられます。このプレゼンテーションを読んで学習すれば、NVMeFのコントローラ構造、キューイング、トランスポートについて理解を深めることができます。

NVM ExpressもNVMeFの標準化に関わっています。NVM Expressのご厚意により、DSSDのMike Shapiro氏によるNVMeFに関するプレゼンテーションはこちらです。

SNIAで発表されたもう一つの優れたプレゼンテーション「イーサネットRDMAプロトコル、iWARP、およびRoCEによるNVMe over Fabricsのサポート」(PDF)は、IntelとMellanoxのスタッフによるものです。このプレゼンテーションのウェブキャストから書き起こされた質疑応答は、こちらからご覧いただけます。

NVMeF製品

アレイ レベルとコンポーネント レベルで、いくつかの新しい NVMeF 製品が登場しています。

  • 配列:
    • EMC DSSD D5
    • マングスター
    • Zstor - ヨーロッパのMangstorを考える
    • Apeiron - 目もくらむほど高速なアレイを備えたスタートアップ
    • E8 - 同上
    • X-IO TechnologiesのAxellioシステムは、OEM、ODM、システムインテグレーターを通じて販売される予定
  • アダプター
    • Mellanox TechnologiesのConnectX-3 ProおよびConnectX-4製品ファミリーはRoCEを実装しています
    • ChelsioはiWARPをサポートしています
    • QLogic は RoCE と iWARP をサポートします

QLogic_45000

QLogic FastLinQ 45000 イーサネット コントローラーは、NVMeF (RoCE および iWARP) をサポートします。

InfinidatとPure Storageは、いずれも将来的なNVMeF導入の可能性について前向きな声明を出しています。利用可能なNVMeF製品の範囲は着実に拡大していくと認識しています。

NVMeFのユースケース

NVMeFの導入には、オールフラッシュアレイ、アダプタ、そしてそれを複数のサーバーに接続するためのケーブルが含まれます。各サーバーにはそれぞれ独自のアダプタとNVMeFドライバが搭載されています。これらのサーバーで実行されるアプリケーションは、20~30マイクロ秒のデータアクセスを必要とし、サーバーのDRAM容量をはるかに超えるデータ量にまで対応する必要があります。

これらの特性は、大規模な OLTP、Web コマース向けの低レイテンシのデータベース アクセス、リアルタイムのデータ ウェアハウスと分析、および複数のサーバーが IO バウンド状態にあり、メモリに格納するには大きすぎる (コストがかかりすぎる) ストアからのデータを待機しているその他のアプリケーションに適していますが、企業にとっての価値が十分に高い場合はフラッシュに格納することもできます。

しかし、NVMeFを使用するアプリケーションでは、RDMAアクセスされたフラッシュに書き込まれた(転送された)データは永続的であり、特定のIO書き込み(ディスクやSATA/SAS SSDへの書き込みなど)は不要になるという点について、特別な配慮が必要になる可能性が高くなります。この点については、慎重かつ徹底的な検討が必要です。

推奨事項 アプリケーションが NVMeF 共有フラッシュ ストアを「コストに見合った」方法で使用でき、そのように修正/記述できると思われる場合は、DSSD、Mangstor、または Zstor を使用したパイロット実装のアイデアを検討してください。®

Discover More