提升NAS客户端的性能
水滴呼叫地球  2024-08-05 15:49  发布于中国

文章转载自:Andy730 公众号

 

NAS无疑是任何企业用户的网络中用于共享资源的文件级核心组件。在Windows环境中,常使用SMB,而在Linux平台上,NFS则是主流。当然,非Windows环境中也有如Samba这样的SMB实现,Windows环境中也存在NFS实现。

随着这两个网络文件共享协议版本的迭代更新,当前版本的客户端SMB v3.x和NFS v4.x(在支持的Linux内核版本上为NFS v3)都取得了显著的进步。它们现在均具备增强的稳定性和性能提升功能。

本文将深入探讨这两种实现的客户端架构。

单个TCP连接

NAS采用客户端/服务器架构。在网络中,NAS客户端(SMB或NFS)通过TCP/IP网络访问相应的NAS服务器(SMB或NFS服务器)。

641.png

NAS客户端/服务器架构

一个值得注意的关键点是,每个NAS客户端与NAS服务器之间仅使用一个TCP连接。无论是SMB还是NFS,即使客户端上有多个SMB映射共享或NFS挂载点,也仅有一条TCP连接连接客户端和服务器。

过去,这一TCP连接对于NAS流量来说是足够的。但随着网络文件访问量的增加,这一连接逐渐成为了单点故障和性能瓶颈。

多个TCP连接

两种协议的开发者已经意识到了这个问题。早在Linux内核5.3(2019年发布)和Windows 2012 R2/Windows 8的SMB 3.0中,就已经引入了多TCP连接功能。这使得一个SMB会话或一个NFS会话能够跨多个TCP连接运行。

这一功能分别被称为SMB多通道(针对SMB)和NFS nconnect(针对NFS)。以下是展示SMB多通道和NFS nconnect架构的示意图。

 

641.png

SMB多通道和RSS(接收方扩展,resident side scaling)网卡

641.png

NFS nconnect 对比

SMB和NFS会话的流量在NAS客户端和NAS服务器之间的多个TCP连接上进行多路复用。这种多路复用效果使得NAS客户端能够在所有可用的TCP连接上负载均衡NAS数据包,从而分别为SMB和NFS提供更高的性能。如果某个TCP连接不可用,NAS会话仍然可以正常运行,从而提高了文件共享的网络稳定性。

注意事项

到目前为止,我们基于SMB和NFS的基础客户端实现进行了简要解释。相似之处在于它们都使用多个TCP连接来处理一个或多个SMB和NFS会话。但还有一些额外的注意事项需要关注:

SMB多通道支持具备RSS功能的网卡,这使得TCP会话能够分配到客户端处理器(以及服务器端)的多个核心中。这无疑消除了CPU级别的瓶颈,进一步提升了SMB多通道的性能。但请注意,RSS网卡需要相应的网络驱动程序支持。更多关于Windows RSS的详细信息,请查阅相关文档。

每个客户端/服务器关系所允许的TCP会话数量是有限的。SMB多通道最多允许32个会话,而NFS nconnect的限制是16个。

此外,根据客户端的操作系统和NAS服务器的代码,也可能存在一些独特的要求。以下表格示例中,Azure NetApp Files就具有这些特定要求。

641.png

使用Azure NetApp Files的nconnect客户端要求

因此,在部署时,验证SMB多通道和NFS nconnect的要求对于客户端和服务器来说都至关重要。实际情况可能会有所不同。

性能表现

当然,我们会非常关注这两个功能在性能方面的提升。NetApp TR-4740 SMB多通道3.0技术报告中的图表明确展示了开启与未开启SMB多通道时,SMB会话之间的显著性能差异。

641.png

开启与未开启SMB多通道的SMB性能对比

类似地,Pure Storage早期博客发布的一份性能对比表也显示了NFS nconnect功能的强大作用。从原本约1GB/s的吞吐量,在启用nconnect后飙升至近7GB/s,这一巨大的性能提升令人瞩目。

641.png

开启与未开启NFS nconnect的性能对比

未来展望

本文旨在为这些NAS功能在客户端的基础知识方面提供一些基本的认知。SMB和NFS客户端的性能和稳定性正在不断得到优化和改进。

在NAS服务器端,虽然本文未详细讨论,但Parallel NFS (pNFS)提供了分布式高性能NFS服务,是一个值得进一步探索的领域。此外,NFS Ganesha作为高性能的用户模式NFS服务器实现也备受关注。华为在其OpenEuler项目下发布的名为NFS+的高性能NFS客户端和服务器技术。而在SMB领域,自从Windows Server 2012以来,微软已经推出了扩展的SMB集群功能。

NAS的性能和稳定性功能远不止这些。我无法全面列举所有功能,以及所有在服务器端和客户端提供高性能NAS解决方案的供应商。但值得肯定的是,这两种NAS协议正在不断进步,其稳定性和性能也在同步提升。

-----

Source:cfheoh; Enhancing NAS client resiliency and performance with SMB Multichannel and NFS nconnect; May 13, 2024

 

--【本文完】---

 

 

 

全部回复(
回复
回复