为了降低使用eRDMA的门槛,使更多用户和应用场景能够更方便地利用eRDMA的能力,本文介绍了内核态适配方案SMC-R和用户态适配方案NetACC,通过这些适配方案,可以帮助您更容易地将eRDMA集成到各种应用中。
应用场景
支持的应用场景包括Redis、Spark、HPC、Kafka等,并提供不同的适配方案。无感适配无需修改代码,只需重新编译即可实现eRDMA支持。有感适配则需要代码改动。
Redis应用
推荐采用SMC-R内核态方式进行无感适配,详细信息,请参见基于eRDMA部署SMC-R和Redis。
HPC应用
HPC系列应用支持传统的RDMA环境,可无缝适配eRDMA,详细信息,请参见基于eRDMA增强型实例部署HPC应用。
Spark应用
可以选择通过JVERBS的方式,需要一定的代码改造工作量,详细信息,请参见基于eRDMA部署高网络性能的Spark集群。
Kafka应用
基于支持eRDMA的ECS实例部署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介绍。