為了降低使用eRDMA的門檻,使更多使用者和應用情境能夠更方便地利用eRDMA的能力。本文介紹了核心態適配方案SMC-R和使用者態適配方案NetACC兩種適配方案。通過這些適配方案,可以協助您更容易地將eRDMA整合到各種應用中。
應用情境
支援的應用情境包括資料庫Redis、巨量資料應用Spark、HPC應用、Kafka等,對於不同的應用情境我們有不同的適配方案。對於橙色箭頭的適配方案,我們通過無感的方式進行適配,不需要修改代碼,只需重新編譯即可實現eRDMA能力的支援,黑色箭頭是需要有感支援,需要做相應的代碼改動。
Redis應用
我們推薦採用SMC-R核心態方式進行無感適配。具體應用,請參見基於eRDMA增強型執行個體部署Redis。
HPC應用
由於HPC系列應用本身就是支援傳統的RDMA環境,因此可以無縫適配eRDMA的能力,可以通過MPI和LibFabric的調用實現對eRDMA的支援。具體應用,請參見基於eRDMA增強型執行個體部署HPC應用。
Spark應用
可以選擇通過JVERBS的方式,需要一定的代碼改造工作量。具體應用,請參見基於eRDMA增強型執行個體部署Spark叢集。
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介紹。