さまざまなシナリオでさまざまなユーザーがElastic Remote Direct Memory Access (eRDMA) を使用しやすくするには、eRDMAとアプリケーションを相互に適合させます。 このトピックでは、カーネルモード適応ソリューションであるRDMAによる共有メモリ通信 (SMC-R) と、ユーザーモード適応ソリューションであるネットワークアクセラレータ (NetACC) について説明します。 上記のソリューションを使用して、eRDMAとアプリケーションを簡単に適応できます。
シナリオ
Redisアプリケーションシナリオ、Sparkアプリケーションシナリオなど、さまざまなシナリオでeRDMAを使用できます。
高コンピューティングパフォーマンス (HPC) アプリケーションシナリオ、およびKafkaクラスターシナリオ。 オレンジ色の矢印で表示されたソリューションを使用すると、コードを変更することなく、eRDMAとアプリケーションを透過的に相互に適合させることができます。 eRDMAをサポートするには、アプリケーションを再コンパイルするだけです。 黒い矢印で表示されたソリューションを使用して、コードを変更することでeRDMAとアプリケーションを非透過的に適応させることができます。
Redisアプリケーション
SMC-Rを使用して透過適応を実行することを推奨します。 詳細については、「eRDMA拡張インスタンスへのRedisのデプロイ」をご参照ください。
HPCアプリケーション
HPCアプリケーションは従来のRDMA環境をサポートし、eRDMAにシームレスに適応できます。 Message Passing Interface (MPI) およびlibfabricライブラリを使用して、HPCアプリケーションがeRDMAをサポートできるようにすることができます。 詳細については、「eRDMA拡張インスタンスへのHPCアプリケーションのデプロイ」をご参照ください。
Sparkアプリケーション
jVerbsを使用して、Sparkアプリケーションの通信コードを変更できます。 詳細については、「eRDMA拡張インスタンスへのSparkクラスターのデプロイ」をご参照ください。
Kafkaクラスター
eRDMA対応のECSインスタンスにKafkaクラスターをデプロイして、低レイテンシ、高スループット、低CPU使用率などのeRDMAの利点を活用し、低メッセージレイテンシと高メッセージスループットを必要とするシナリオでKafkaクラスター内のノード間のデータ転送を高速化できます。 詳細については、「eRDMA拡張インスタンスへの高ネットワークパフォーマンスKafkaクラスターのデプロイ」をご参照ください。
適応ソリューション
カーネルモード適応ソリューション: SMC-R
IBMオープンソースのLinux用SMC-Rは2017年に4.11し、現在SMC-Rを維持しています。 SMC-Rの詳細については、「RFC 7609」をご参照ください。 Alibaba Cloud Linux 3は、Alibaba Cloud eRDMAを活用して、クラウドでのSMC-Rの使用を許可します。 SMC-Rは、機能を失うことなくアプリケーションのTCPを透過的に置き換えることができ、すべてのユーザーがアクセスできる高性能のハードウェアオフロードネットワークを提供します。
SMC-Rの詳細については、「SMCの使用」をご参照ください。
ユーザーモード適応ソリューション: NetACC
NetACCは、ユーザーモードのネットワークアクセラレーションデータベースです。 LD_PRELOAD環境変数を設定することで、アプリケーションコードを変更せずにNetACCをロードして使用できます。 NetACCは、低レイテンシ、高スループット、カーネルバイパス、プロトコルスタックオフロードなどのeRDMAの利点を活用し、互換性のあるソケットインターフェイスを使用して既存のTCPアプリケーションの接続を確立するプロセスを高速化します。
詳細については、「NetACCの概要」をご参照ください。