Container中使用RDMA网络技术的性能优化文献综述

 2022-09-21 10:02:17

文献综述(或调研报告):

容器[1,2,3]正在成为打包和部署数据中心应用程序的普遍选择[4]。容器使用诸如chroot[5]之类的机制将应用程序的可执行文件和依赖项捆绑在独立的命名空间中,从而提供轻量级隔离和便携的解决方案。

大多数容器化应用程序使用微服务架构,并由多个容器组成。例如,Spark[6]中的每个mapper和reducer节点都是一个单独的容器; TensorFlow[7]中的每个参数服务器节点或工作节点也是一个单独的容器。容器通过网络解决方案交换数据。网络解决方案的设计会影响隔离度和可移植性。

容器化的许多应用程序使用虚拟网络。在这种情况下,容器的网络命名空间完全隔离,容器通过主机上的软件虚拟交换机组成的虚拟网络进行通信。考虑到可以在软件虚拟交换机中控制到虚拟IP的路由,容器中的虚拟IP是高度可移植的。由于所有数据流都必须通过虚拟交换机,因此它们可以访问流量,从而为容器内网络提供可控性。这种隔离和可移植性使协调器在容器部署和迁移方面具有完全的灵活性,并且这种可控性使云提供商能够在控制和数据平面上实施策略。

RDMA的核心理念是通过硬件不经过操作系统直接进行数据的传输,从而加快数据传输的性能。RDMA允许用户空间应用程序直接读取或写入远程内存,而无需内核干涉或内存复制。RDMA支持单边和双边通信。单边RDMA操作直接访问远程节点上的内存,而不涉及远程节点的CPU。双边RDMA操作向远程节点通知传递的消息。

许多现代应用程序(例如,深度学习和数据分析框架)已采用RDMA网络[8]来获得比传统TCP/IP堆栈更高的吞吐量和更低的延迟。RDMA通过将大多数网络功能卸载到网卡上来提供这些收益,从而有效地绕过OS内核。

LITE[14]是一个通过内核级间接层来为数据中心RDMA应用虚拟化RDMA的一个方案,它采用的内核级间接层在内核中以较小的开销来实现其较好的扩展性能。同时也提供了一个应用于数据中心程序的高阶抽象。它对于扩展性的主要想法是使用一个内存区域及和有限的队列对来提升应用可接受的链接数量,并且通过该方法可以节省RNIC上所需的内存大小。

我们可以看到RDMA使用的许多现代应用程序(如Spark、TensorFlow等)也在传统网络下容器化。容器可以将应用隔离、移植、可控,而RDMA给很多应用程序带来了明显的性能提升。现如今并没有一个非常成熟的将RDMA容器化的技术出现。如果能够将RDMA技术实现容器化,则可以让RDMA在大规模数据中心中的应用成为可能。

剩余内容已隐藏,您需要先支付 10元 才能查看该篇文章全部内容!立即支付

以上是毕业论文文献综述,课题毕业论文、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。