如何实现到同一台服务器的多个NFS / TCP连接?

我试图通过一个10Gbps链路来最大化Linux客户端和单个NFS服务器之间的NFS / TCP带宽。 尽pipe每个NFS挂载都有自己的设备(主要/次要),但是一切都归结为单个TCP连接,这是一个瓶颈。

使用iperf和多个TCP连接,我可以达到〜8Gbps,但NFS卡在一个单一的TCPstream,并限制在〜2Gbps(没有TCP调整呢)。

在Solaris上,有系统设置rpcmod:clnt_max_conns ,它允许设置系统可以使用多less并发的TCP连接到单个NFS服务器。

有没有一个相当于Linux的方法呢?

作为一种解决方法,我知道我可以在NFS服务器上设置多个IP,然后在它们上对这些挂载点进行负载平衡,但这不是最佳的。

您可以切换回UDP并使用巨型数据包(例如4k数据报)。 让您的整个networking支持巨型帧可能会有很大帮助,这样您就不必在每一边重新组装IP数据包。

如果您使用的是NFS v4.1或更高版本,则可以使用pNFS(并行NFS)。 根据以下来自Red Hat的发布信息,它在RHEL 6.4中可用,但是我还没有看到任何更新,说明它在其他Linux发行版中的可用性。

https://www.redhat.com/about/news/press-archive/2013/2/red-hat-announces-general-availability-of-next-minor-release-of-red-hat-enterprise-linux- 6

在2010年的RFC5661中定义了pNFS。您可能需要调查您的存储设备是否完全支持pNFS。