为了降低使用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介绍。