RDMA over Converged Ethernet（RoCE）ガイド

<a href="https://community.fs.com/jp/article/roce-rdma-over-converged-ethernet.html">FSコミュニティで原文を読む</a>

</a>データの時代において、より高速で、より効率的で、スケーラブルなネットワークへの要求は決して低下していません。従来のTCP/IPイーサネット接続はCPUに負荷がかかり、データの余分な処理とコピーが必要なため、現在のネットワークニーズに対応できなくなっています。そんな中、RDMA over Converged Ethernet（RoCE）が登場しました。RoCEとは何かを理解するために、まずRDMAについて見ておきましょう。</p>
<p class="tit_one"> </p>
<div data-page-id="MSBEdnzNsoIbRgxb9xfcJgOXnPh" data-docx-has-block-data="false">
<p class="ace-line ace-line old-record-id-VCUSdACfOolvcRxiXiuc7Qvfnhu"><span style="color: #000000;">RDMA（リモート・ダイレクト・メモリー・アクセス）は、ネットワーク上のデバイス間で直接データ転送を可能にするもので、RoCE（RDMA over Converged Ethernet）はこの技術の代表的な実装です。RoCEは高速かつ低レイテンシーでデータ転送を改善し、ハイパフォーマンス・コンピューティングやクラウド環境に最適です。この記事では、RDMAの基礎と、RoCEがイーサネット・ネットワーク上でのデータ転送をどのように向上させるかについて説明します。</span></p>
</div>
<h2 class="tit_one">RDMAとは?</h2>
<p class="blog_p padding_top_none">リモート・ダイレクト・メモリー・アクセス（RDMA）とは、CPUを介さずに、あるホストやサーバーのメモリから別のホストやサーバーのメモリに直接メモリ・アクセスを可能にする技術です。そのため、CPUはアプリケーションの実行や大量のデータ処理など、本来の作業に専念することができます。そして、より低いレイテンシ、より低いCPU負荷、より高い帯域幅を持つネットワークとホストのパフォーマンスをコスト効率よく実現することができます。<img title="RDMA Technology" src="https://media.fs.com/images/community/upload/kindEditor/202205/24/roce1-1653378123-ekrwaQ8IWy.jpeg" alt="RDMA Technology" /></p>
<p class="blog_p padding_top_none community_blog_detail_p community_blog_detail_p1" style="text-align: center;">図1: RDMAテクノロジー</p>
<div class="new_community_blog_detail_underline"> </div>
<h2 class="tit_one community_blog_detail_tit_one">RoCEとは?</h2>
<p class="blog_p padding_top_none community_blog_detail_p community_blog_detail_p1">RDMAの一種として、RoCEはInfiniBand Trade Association (IBTA)標準に定義されたネットワーク・プロトコルであり、コンバージド・イーサネット・ネットワーク上でRDMAを可能にします。簡単に言えば、ハイパーコンバージド・データセンター、クラウド、ストレージ、仮想化環境におけるRDMA技術の応用とみなすことができます。RDMA技術のすべての利点とイーサネットの使いやすさをすべて備えています。RoCEとInfinibandの違いを理解するには、この記事「<a href="https://community.fs.com/jp/article/roce-vs-infiniband-vs-tcp-ip.html">RoCE vs Infiniband vs TCP/IP</a>」をお読みください。 <span style="color: #000000;">また、IBとRoCEのカプセル化は次のように比較されます：</span></p>
<p class="blog_p padding_top_none community_blog_detail_p community_blog_detail_p1"><img title="标题" src="https://media.fs.com/images/community/erp/y2jjz_808-1pzG54.jpg" alt="标签" /></p>
<p class="blog_p padding_top_none community_blog_detail_p community_blog_detail_p1" style="text-align: center;"><span style="text-align: center;">図2: </span><span style="color: #000000;">InfiniBand Vs. RoCEv2</span></p>
<p> </p>
<h3 class="new_community_detaile_section_h3 new_community_detaile_section_h3_1">RoCEの種類</h3>
<p class="blog_p padding_top_none community_blog_detail_p community_blog_detail_p1">一般に、RDMA over Converged Ethernetには、RoCE v1とRoCE v2の2つのバージョンがあります。使用する<a href="https://www.fs.com/jp/c/network-adapters-4253">ネットワークアダプタ</a>またはカードによって異なります。</p>
<ul class="new_community_blog_detail_ul">
<li><span class="new_community_blog_detail_ul_circle"></span>
<p><strong>RoCE v1: </strong>RoCE v1プロトコルは、同じイーサネット・ブロードキャスト・ドメイン（VLAN）内の2つのホストが通信できるようにするイーサネットリンク層プロトコルです。これはEthertype 0x8915を使用し、フレーム長は標準イーサネットフレームで1500バイト、イーサネットジャンボフレームで9000バイトに制限されます。</p>
</li>
<li><span class="new_community_blog_detail_ul_circle"></span>
<p><strong>RoCE v2:</strong> RoCE v2プロトコルは、単一のブロードキャスト・ドメイン（VLAN）に制限されているバージョン1の制限を克服します。パケットのカプセル化をIPとUDPヘッダを含むように変更することで、RoCE v2はL2とL3の両方のネットワークで使用できるようになりました。これにより、レイヤ3ルーティングが可能になり、複数のサブネットを持つネットワークにRDMAを導入し、優れたスケーラビリティを実現します。そのため、RoCE v2はRoutable RoCE（RRoCE）とも呼ばれています。RoCE v2の登場により、IPマルチキャストも可能になりました。<img src="https://media.fs.com/images/community/upload/kindEditor/202205/24/roce2-1653378086-30eUA3eif4.jpeg" alt="" /></p>
</li>
</ul>
<p class="blog_p padding_top_none community_blog_detail_p community_blog_detail_p1" style="text-align: center;">図3: RoCE v1 Vs. RoCE v2 パケットフォーマット</p>
<h3 class="new_community_detaile_section_h3 new_community_detaile_section_h3_1">RoCEの利点</h3>
<p class="blog_p padding_top_none community_blog_detail_p community_blog_detail_p1">RDMA over Converged Ethernetは、カーネル経由ではなくネットワーク・インターフェイス経由でメモリ・データに直接アクセスするため、低レイテンシーで高性能な伝送が可能になります。</p>
<ul class="new_community_blog_detail_ul">
<li><span class="new_community_blog_detail_ul_circle"></span>
<p style="text-align: left;"><strong>CPUの関与が低い: </strong>リモートサーバーのCPUサイクルを消費せずにリモートスイッチまたはサーバーのメモリにアクセスできるため、利用可能な帯域幅を最大限に活用し、拡張性を高めることができます。</p>
</li>
<li><span class="new_community_blog_detail_ul_circle"></span>
<p><strong>ゼロコピー: </strong>リモートバッファとの間でデータを送受信します。</p>
</li>
<li><span class="new_community_blog_detail_ul_circle"></span>
<p><strong>高生産性: </strong>RoCEによって遅延とスループットが改善されたため、ネットワークパフォーマンスが大幅に向上しました。</p>
</li>
<li><span class="new_community_blog_detail_ul_circle"></span>
<p><strong>コスト削減: </strong>RoCEでは、大量のデータを処理するために新しい機器を購入したり、イーサネット・インフラを交換したりする必要がないため、企業の設備投資を大幅に節約できます。<img src="https://media.fs.com/images/community/upload/kindEditor/202205/24/roce4-1653380126-B00ceFbCDa.jpeg" alt="" /></p>
</li>
</ul>
<p class="blog_p padding_top_none community_blog_detail_p community_blog_detail_p1" style="text-align: center;">図4: RoCE導入前 Vs. 導入後</p>
<div class="new_community_blog_detail_underline"> </div>
<h2 class="tit_one community_blog_detail_tit_one">RoCEの実現方法とは？</h2>
<p class="blog_p padding_top_none community_blog_detail_p community_blog_detail_p1">一般に、データセンターでコンバージドイーサネット上のRDMAを実現するには、RoCEをサポートするネットワークアダプタやカードドライバをインストールします。すべてのイーサネットNICにはRoCEネットワークアダプタカードが必要です。RoCEドライバは、Red Hat、Linux、Microsoft Windows、その他の一般的なオペレーティングシステム（OS）で利用可能です。コンバージド・イーサネット上のRDMAは2つの方法で利用できます。ネットワークスイッチの場合、PFC（優先フロー制御）をサポートするオペレーティングシステム（OS）でスイッチを使用することができます。ラックサーバーやホストの場合は、ConnectX-3 proやConnectX-4以上のネットワークアダプタカードを使用する必要があります。</p>
<p class="blog_p padding_top_none community_blog_detail_p community_blog_detail_p1">「こちらもチェック- <a href="https://www.fs.com/jp/c/servers-4082">ネットワークサーバー</a> &amp; <a href="https://www.fs.com/jp/c/data-center-switches-3404">ネットワークスイッチ</a>」</p>
<h2 class="tit_one community_blog_detail_tit_one">RoCEに関するよくある質問</h2>
<p class="blog_p padding_top_none community_blog_detail_p community_blog_detail_p1">ここでは、RDMA over converged Ethernet（RoCE）についてよりよく理解しているために、よくある質問を挙げています。</p>
<p class="blog_p padding_top_none community_blog_detail_p community_blog_detail_p1"><strong>1. RoCEをサポートしているFSスイッチやネットワークカード/アダプタは？</strong></p>
<p class="blog_p padding_top_none community_blog_detail_p community_blog_detail_p1">これまで、<a href="https://www.fs.com/jp/search_result?keyword=S5860">S5860シリーズ</a>と<a href="https://www.fs.com/jp/products/122280.html">S5850-24S2Q</a>、S5850-24S2Q-DCを除き、<a href="https://www.fs.com/jp/c/10g-data-center-switches-3500">FS Nシリーズスイッチ</a> とS58/80シリーズはRoCE v1とv2をサポートしています。お客様はRDMAスイッチを購入した後、PFC機能を有効にする必要があります。<span style="color: #000000;">さらに、FSはRoCEをサポートする<a href="https://www.fs.com/jp/c/nvidiar-ethernet-adapters-4014">NVIDIAイーサネットアダプタ</a>も提供できます。</span></p>
<p class="blog_p padding_top_none community_blog_detail_p community_blog_detail_p1"><strong>2. RoCEアダプタは、iWARPのような他のタイプのアダプタと通信できますか？</strong></p>
<p class="blog_p padding_top_none community_blog_detail_p community_blog_detail_p1">RoCEアダプタは他のRDMA over converged Ethernetアダプタとしか通信できません。RoCEアダプタと<a href="https://www.fs.com/jp/c/nvidiar-ethernet-adapters-4014">iWARPアダプタ</a>を組み合わせるなど、アダプタの種類を混ぜようとする構成は、おそらく従来のTCP/IP接続に戻るでしょう。</p>
<p class="blog_p padding_top_none community_blog_detail_p community_blog_detail_p1"><strong>3. RoCEとiWARPの違いは何ですか?</strong></p>
<p class="blog_p padding_top_none community_blog_detail_p community_blog_detail_p1">RoCEネットワークプロトコルとして、iWARP（インターネット広域RDMAプロトコル）も、より低レイテンシーでRDMA機能をサポートしているが、両者にはいくつかの違いがあります。</p>
<p class="blog_p padding_top_none community_blog_detail_p community_blog_detail_p1">一方では、RoCEは業界標準のイーサネットベースのRDMAソリューションであり、マルチベンダーのエコシステムがネットワークアダプタを提供し、標準的なレイヤー2およびレイヤー3イーサネットスイッチ上で動作する唯一のソリューションです。そして、iWARPは最小限のサポートしか受けていません。</p>
<p class="blog_p padding_top_none community_blog_detail_p community_blog_detail_p1">もう一方、iWARPは、TCP/IP上でRDMAサービスを提供するために、DDP（Direct Data Placement）、MPA（Marker PDU Aligned framing）として知られる微調整、および個別のRDMAプロトコル（RDMAP）を含む、複雑なレイヤーの組み合わせを使用しています。このような複雑なアーキテクチャでは、iWARPプロトコルが既存のソフトウェア・トランスポート・フレームワークにRDMAを適用するのは難しいです。このような妥協が行われると、iWARPのスループット、遅延、CPU使用率が低下します。<img src="https://media.fs.com/images/community/upload/kindEditor/202205/24/roce5-1653377937-Zn8ychKTBt.jpeg" alt="" /></p>
<p class="blog_p padding_top_none community_blog_detail_p community_blog_detail_p1" style="text-align: center;">図5: iWARPの複雑なネットワーク層 Vs. RoCEのよりシンプルなモデル</p>
<div class="new_community_blog_detail_underline"> </div>
<h2 class="tit_one community_blog_detail_tit_one">結論</h2>
<p class="blog_p padding_top_none community_blog_detail_p community_blog_detail_p1">データセンターでRDMAを実行することで、データ移動のオフロードとアプリケーションへのCPUリソースの高い可用性を実現できます。RoCEの採用者は、ネットワークインフラを変更することなく、RDMAの機能の恩恵を受けることができます。RoCEは、イーサネットネットワークのレイテンシーを短縮し、CPUオーバーヘッドをオフロードすることで、検索、ストレージ、データベース、金融、高トランザクションレートのアプリケーションのパフォーマンスを向上させます。CPUの効率を高め、アプリケーションのパフォーマンスを向上させることで、RoCEは必要なサーバーの台数を減らし、省エネを実現し、イーサネットベースのデータセンターのフットプリントを削減します。</p>
<p class="blog_p padding_top_none"><a href="https://www.fs.com/jp/specials/data-center-switches-introduction-135.html" target="_blank" rel="noopener"><img src="https://media.fs.com/images/community/upload/kindEditor/202205/24/switch-banner-1653381879-YLjj4aKcf7.jpg" alt="" />