在 FreeBSD 上通过 Infiniband 共享文件

Mik*_* T. 7 freebsd zfs nfs infiniband

我有一对服务器,我想将它们直接相互连接——而不是通过网络其余部分共享的交换机。我希望从直接连接(包括更大的 MTU)提供的更低延迟和更高带宽中受益。

两台机器目前都运行 FreeBSD-11.2,每台机器都有自己的 ZFS 池和多个文件系统。快速交叉访问这些文件系统是主要目标之一。

为此我买了一对二手卡(Mellanox IBM 46M2201 Dual Port ConnectX 4X),有以下问题:

  1. 我有哪些连接选项?主要目的是共享数据——NFS 是我唯一的选择,还是 FreeBSD 有特定于 Infiniband 的东西?
  2. 如果是 NFS,它是否必须通过 IP,或者是否有一些“更亲密”的 Infiniband 特定协议?
  3. 如果是基于 IP 的 NFS,我应该选择 UDP 还是 TCP?任何其他调整参数可以从直接连接中获得最大收益?
  4. 我需要什么类型的电缆来直接连接这些?令我惊讶的是,搜索“infiniband cable”会返回各种带有不同连接器的产品。在此处输入图片说明

非常感谢您提供任何见解。如果有在线文档回答了(其中一些)这些问题,我很乐意提供链接——我能找到的一切似乎都是特定于供应商的......

(为什么这个关于连接服务器的问题在Serverfault被认为是“题外话” ?)

Pau*_*aul 5

我没有 1-3 的答案,只有一些有关 Infiniband(IB) 应用程序的附加信息可以帮助您找到答案。不过我可以回答4。

1) 我的连接选项有哪些?主要目的是共享数据——NFS 是我唯一的选择,还是 FreeBSD 有 Infiniband 特定的东西?

2)如果是NFS,是否必须通过IP,或者是否有一些“更亲密”的Infiniband特定协议?

要查找的关键词可能是 NFS over RDMA,但快速搜索表明对于 FreeBSD 来说它可能还不完整。您还可以查看 SRP 或 iSER,但我没有发现任何使用这些 IB 协议的应用程序的引用。

3)如果是NFS over IP,我应该选择UDP还是TCP?还有其他调整参数可以从直接连接中获得最大收益吗?

TCP。根据FreeBSD IB Wiki,作为 IB 配置的一部分,您要设置连接模式,这类似于使用 TCP。至少在 Linux 世界中,当使用连接模式时,您应该只使用基于 TCP 的 NFS,而不是 UDP。仅当使用数据报模式时才应使用基于 UDP 的 NFS,并且不建议这样做。

4) 我需要什么类型的电缆来直接连接这些?令我惊讶的是,搜索“infiniband 电缆”返回了具有不同连接器的各种产品。

您需要一根“QDR”电缆,它是“Quad Data Rate”或 40Gbps 的缩写。ConnectX-3 卡支持 FDR,它是“十四数据速率”的缩写,即 56Gbps(14Gbps*4 通道)。任何一条电缆都应该适合您的卡。

您可以购买 Mellanox 品牌的电缆,在这种情况下您知道它会起作用,或者您也可以购买非品牌的电缆。我喜欢 3M 品牌的电缆。它们是扁平电缆,支持非常尖锐的弯曲半径,并允许您在非常小的空间内堆叠一堆电缆而不会产生任何串扰。二手 Mellanox QDR 电缆在 eBay 上应该非常便宜。我从来没有买过二手的,但如果你这样做,你必须得到一条经过测试的电缆——如果你没有一个可以比较的工作系统,那么排除故障是一件很难的事情。

有两种类型的电缆 - 无源(铜)电缆或有源(光纤)电缆。光纤电缆永久连接到 QSFP 连接器,因此您必须将它们设置为特定长度。铜缆的最大长度为 3 米,甚至可能长达 5 米 - 如果更长,则必须使用光缆。在铜缆上的一切都 100% 正常工作之前,不要使用光缆。我见过铜缆工作正常,但光纤却不能工作的情况,这是由于硬件中出现奇怪的故障模式。消除这种可能性,直到您拥有经验和库存的零件来排除故障。

现在,还有一些您没有要求的其他提示,但可能会有所帮助。首先,确保您在其中一个系统上运行 opensm。把它想象成一个 dhcp 服务器;如果没有它,两个系统将物理链接,但不会传递任何数据。

其次,一些Mellanox 卡将在 IB 模式或以太网模式下运行。这些通常是 VPI 系列卡。我不确定 ConnectX-2 上是否有此选项,或者您的卡是否支持它。但如果他们这样做,那么让这些卡以 40GBE 而不是 QDR IB 运行并具有良好的 NFS 性能可能会更容易。根据我在 Linux 上的经验,我们发现 IPoIB 的性能大约是线速的 20-30%。您将通过 RDMA 等 IB 协议或切换到以太网模式来获得线速。