為了降低使用eRDMA的門檻,使更多用戶和應用場景能夠更方便地利用eRDMA的能力。本文介紹了內核態適配方案SMC-R和用戶態適配方案NetACC兩種適配方案。通過這些適配方案,可以幫助您更容易地將eRDMA集成到各種應用中。
應用場景
支持的應用場景包括數據庫Redis、大數據應用Spark、AI訓練、HPC應用、Kafka等,對于不同的應用場景我們有不同的適配方案。對于橙色箭頭的適配方案,我們通過無感的方式進行適配,不需要修改代碼,只需重新編譯即可實現eRDMA能力的支持,黑色箭頭是需要有感支持,需要做相應的代碼改動。
Redis應用
我們推薦采用SMC-R內核態方式進行無感適配。具體應用,請參見基于eRDMA增強型實例部署Redis。
HPC應用
由于HPC系列應用本身就是支持傳統的RDMA環境,因此可以無縫適配eRDMA的能力,可以通過MPI和LibFabric的調用實現對eRDMA的支持。具體應用,請參見基于eRDMA增強型實例部署HPC應用。
Spark應用
可以選擇通過JVERBS的方式,需要一定的代碼改造工作量。具體應用,請參見基于eRDMA增強型實例部署Spark集群。
AI訓練場景
由于AI系列應用本身就支持傳統的RDMA環境,因此可以無縫適配eRDMA的能力,可以通過NCCL的調用實現對eRDMA的支持。具體應用,請參見基于eRDMA增強型實例部署AI訓練集群。
Kafka應用
基于支持eRDMA能力的ECS實例部署Kafka集群,可以充分利用eRDMA提供的低延遲、高吞吐以及低CPU占用等特性,以優化Kafka集群內部節點間的數據傳輸效率,適用于對消息吞吐量和時延要求較高的應用場景。具體應用,請參見基于eRDMA部署高網絡性能的Kafka集群。
適配方案
內核態適配方案:SMC-R
SMC-R由IBM于2017年開源至Linux 4.11并持續維護至今,其協議標準可參考RFC 7609。Alibaba Cloud Linux 3操作系統基于阿里云彈性RDMA技術首次將SMC-R帶上云上場景,實現對TCP應用透明無損的替換,提供高性能、普惠的硬件卸載網絡。
更多信息,請參見共享內存通信(SMC)使用說明。
用戶態適配方案:NetACC
NetACC(Network Accelerator)是一個用戶態網絡加速庫,可以通過LD_PRELOAD的方式加載使用,無需修改應用代碼。NetACC利用eRDMA的低時延、高吞吐、內核旁路、協議棧卸載等優勢,通過兼容socket接口,實現對現有TCP應用的加速效果。
更多信息,請參見NetACC介紹。