了解Infiniband和RDMA技术

了解Infiniband和RDMA技术

InfiniBand涉及两个不同的事物。 第一个是用于InfiniBand网络的物理链路层协议。 第二个是称为InfiniBand Verbs API的高级编程API。 InfiniBand动词API是远程直接内存访问(RDMA)技术的实现。

RDMA可以从一台计算机的内存直接访问另一台计算机的内存,而无需涉及任何一台计算机的操作系统。 该技术可实现高吞吐量,低延迟的网络,并具有较低的CPU使用率,这在大规模并行计算机群集中特别有用。

在典型的IP数据传输中,机器A上的应用程序X向机器B上的应用程序Y发送一些数据。作为传输的一部分,机器B上的内核必须首先接收数据,对数据包头进行解码,确定数据属于应用程序Y,唤醒应用程序Y,等待应用程序Y对内核执行读syscall,然后它必须将数据从内核自己的内部内存空间手动复制到应用程序Y提供的缓冲区中。此过程意味着大多数网络流量必须至少两次跨系统主内存总线复制一次(一次是在主机适配器使用DMA将数据放入内核提供的内存缓冲区中,一次是在内核将数据移至应用程序的内存缓冲区中时),这也意味着计算机必须执行许多上下文切换,才能在内核上下文和应用程序Y上下文之间进行切换。当网络流量以很高的速率流动时,这两种情况都会给系统带来非常高的CPU负载,并且可能会使其他任务变慢。

RDMA通信与常规IP通信不同,因为RDMA通信绕过了内核在通信过程中的干预,并且在该过程中大大减少了处理网络通信通常所需的CPU开销。 RDMA协议允许计算机中的主机适配器知道何时有数据包从网络传入,哪个应用程序应接收该数据包,以及它应位于应用程序的内存空间中。 无需将数据包发送到内核进行处理,然后再复制到用户应用程序的内存中,而是将数据包的内容直接放置在应用程序的缓冲区中,而无需任何进一步的干预。 但是,使用大多数IP网络应用程序所基于的标准Berkeley Sockets API无法完成此任务,因此它必须提供自己的API(InfiniBand Verbs API),并且必须先将应用程序移植到此API,然后才能直接使用RDMA技术。

红帽企业版Linux 7支持InfiniBand硬件和InfiniBand Verbs API。 此外,还有两种支持的其他技术,这些技术允许在非InfiniBand硬件上使用InfiniBand Verbs API。

  • The Internet Wide Area RDMA Protocol (iWARP)

iWARP是一种计算机网络协议,可实现远程直接内存访问(RDMA),以通过Internet协议(IP)网络进行有效的数据传输。

  • The RDMA over Converged Ethernet (RoCE) protocol, which later renamed to InfiniBand over Ethernet (IBoE).

RoCE是一种网络协议,允许通过以太网进行远程直接内存访问(RDMA)。

Prerequisites

iWARP和RoCE技术都具有普通IP网络链路层作为其基础技术,因此,第3章“配置IP网络”实际上涵盖了它们的大部分配置。 在大多数情况下,只要正确配置了它们的IP网络功能,它们的RDMA功能就会全部自动完成,并且只要安装了正确的硬件驱动程序,它们就会显示出来。 Red Hat提供的每个内核始终包含内核驱动程序,但是,如果在计算机安装时未选择InfiniBand软件包组,则必须手动安装用户空间驱动程序。

从Red Hat Enterprise Linux 7.4开始,所有RDMA用户空间驱动程序都合并到rdma-core软件包中。 要安装所有受支持的iWARP,RoCE或InfiniBand用户空间驱动程序,请以root用户身份输入:

~]# yum install libibverbs

如果使用优先级流控制(PFC)和基于mlx4的卡,则编辑/etc/modprobe.d/mlx4.conf以指示驱动程序为以太网交换机上的“无丢包”服务配置了哪个数据包优先级。 卡被插入并重建initramfs以包括修改后的文件。 较新的基于mlx5的卡可通过交换机自动协商PFC设置,不需要任何模块选项即可将其告知“无掉线”优先级。

要将Mellanox卡设置为在以太网模式下使用一个或两个端口,请参见第13.5.4节“配置Mellanox卡以进行以太网操作”。

安装了这些驱动程序包(除了通常为所有InfiniBand安装安装的普通RDMA包之外),用户应该能够使用大多数普通RDMA应用程序来测试并查看适配器上发生的RDMA协议通信。 但是,并非Red Hat Enterprise Linux 7中包含的所有程序都正确支持iWARP或RoCE / IBoE设备。 这是因为,特别是在iWARP上的连接建立协议不同于在实际InfiniBand链路层连接上的连接建立协议。 如果有问题的程序使用librdmacm连接管理库,则它将以静默方式处理iWARP和InfiniBand之间的差异,并且该程序应该可以运行。 如果应用程序尝试执行自己的连接管理,则它必须专门支持iWARP,否则它将无法正常工作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值