查看原文
其他

探寻文件系统的本质:技术突破与市场变革

常华Andy Andy730 2024-03-16

Source: Philippe Nicolas, To Clarify Few Things on File Systems, June 26, 2023

最近一些厂商的信息发布、市场宣传和营销软文在怪异的角度上推广并行和网络文件系统,因此,这篇文章要澄清一下文件系统的情况。换句话说,重要的是要理解大家的发言背景,了解他们的利益和观点,以及他们所提供的内容及其相关的限制或特性。

我们意识到很多人并不知道并行文件系统是什么,以及为什么行业创建了这种模型。从历史角度上来说,为了简短起见,一些用户,特别是在数据的容量和文件大小方面都很大的情况下,遇到了一个问题。如何提升文件的读写操作?一些研究机构和技术环境比其它人更早地遇到了这个问题,并试图解决这个限制。基于相同的“分而治之”模型,他们的想法是将文件的部分存储在不同的存储实体上,但不像磁盘之间的RAID那样,在文件服务器之间进行分割,我们可以称之为“RAIN zero”,以保持某种类比。当然,在后台,一个文件可以被分割成多个子部分,但这不是我在这里讨论的重点。通过在客户端上安装特殊的软件组件,用户和应用程序现在可以并行读写文件,因为客户端进行了条带化,它知道文件的布局以及文件服务器环境,通过一些清单文件或附带的元数据服务器进行控制。这是起源,然后一些人将其商业化,多年来,我们知道了像Lustre这样的模型,它是并行文件系统中的开源参考架构,之后出现了几个商业化产品或类似的理念。

这个模型出现在Sun Microsystems在80年代中期引入NFS之后,几乎40年前,但那是一个单一文件服务器模型,整个文件通过一台唯一的机器传输。换句话说,在那个时候,名为客户端-服务器的模型允许一个文件服务器连接多个客户端,并且相信我:它改变了人们几十年的工作方式。好处是,NFS是一个行业标准,无需在客户端甚至服务器上安装任何东西。你仍可以查阅RFC 1813以获取有关信息。

在2000年左右,一些人试图将这两种方法混合起来,简而言之,认为并行NFS应该是一个好主意,因为它是一种标准,并能做到真正的性能提升。然而,这种想法从未流行起来,一些公司如Isilon或Spinnaker Networks尝试基于NFS标准发明一种新模型。

对于Isilon来说,他们的想法是构建一个可扩展的访问层,其中每个服务器都有内部磁盘,并且每个服务器都以相同的外部文件系统视图进行公开。访问文件时,仅涉及一个服务器,也就是说当客户端写入文件时,只有一个服务器参与其中,所有数据都通过它传输,然后该服务器通过其节点之间的私有网络对数据块进行条带化和发送到其它服务器。这就是我们所称的“后置条带化”方法。现在,为了读取文件,客户端可以选择任何服务器,同样,整个文件将从该入口群集点提供服务,该服务器负责从该私有网络中的其它服务器收集数据。这是一个简单的NFS,基于早期的纠删码实现了容量扩展和多个访问点的吞吐量。尽管它并不是并行的,但这是一项巨大的进步。

Spinnaker Networks与众不同,因为一个文件只属于一台服务器,但可以由多个前端服务器提供服务,并且利用这些系统之间的私有网络进行活动。这两种模型都被视为Shared-nothing的扩展模型。我们知道这些故事的结局,Spinnaker Networks于2004年以3亿美元被NetApp收购,而Isilon于2010年11月以22.5亿美元被EMC收购。这些技术和产品肯定对各自公司的文件服务器开发起到了关键作用。

并行文件系统在不断发展和改进。我们见过各种实现,包括一些开源、私有或商业化产品。对于pNFS也是同样的情况,它是Linux内核中的标准,并得到了各种文件服务器厂商的支持。它是一个官方标准,具有各种布局能力和不同的数据服务器类型。

在pNFS或其它并行文件系统中,客户端的作用是拆分、条带化或分块数据,然后将其发送到多个数据服务器。客户端可以使用像pNFS这样的标准组件,也可以安装一个负责这些操作的特殊驱动程序或代理程序。当然,并行文件系统模型依赖于元数据和数据服务器,它们可以部署在同一系统或不同系统上。这两个实体都是可扩展的,当然也会引入它们自己的限制和特性。

其中一个关键点是这些实现如何管理缓存、写入延迟、更改传播、锁定,以及它们如何在任何给定时间点呈现来自任何节点的单个文件系统映像?这是一个严重的问题,特别是由于数据量的爆炸式增长和无法接受的数据分歧,配置持续增长。换句话说,当配置很小时,它们是可管理的,但由于流量和数量的原因,它迟早会变得艰难,并且触及不可能的事情。

与NFS的斗争已经结束,对于具有高要求的I/O需求的研究机构或组织来说,并行文件系统成为了他们的选择。从历史上看,人们认为问题源于NFS本身。

但是一些事件和新技术改变了这个观念,如闪存、持久化内存、NVMe及及其相关的网络技术的出现,即使它们也可以用于并行文件系统,但它们引发了一些工程师对基于NFS的文件服务的思考,这是一个新的、根本不同的物种,应该将NFS带回市场的前沿。

事实上,NFS和SMB之所以美妙,是因为它们是标准化的,不需要在客户端机器上部署任何具有侵入性的代理程序。有时根本不可能,必须使用常规堆栈。更改堆栈不会破坏应用程序,因为它们通常支持先前的NFS程序。我们开始看到一些在体系结构本身进行更改的新系统,从Shared-nothing的模型(基本上是将独立的服务器通过共同的软件层连接在一起)到Shared-everything的模型,其中访问节点可以实时看到和使用任何闪存介质,而无需缓存,并且在中间可能有一个潜在的持久层。这个想法是,提供一个非常可扩展的基于标准的文件服务器,支持NFS和SMB。我们在市场上看到了一些这样的新产品,对于高要求的应用程序来说,拥有诸如NFS和SMB这样的行业标准文件共享协议是非常好的。

当然,如果不使用pNFS,NFS仍然是NFS,也就是说,一个文件仍然只由一个服务器提供服务。但是让我详细介绍一些行业已经添加到NFS中以提高其性能能力的改进,特别是在扩展环境中。

从历史上看,我们发现了UDP实现,即非连接模式,但在一些年份内,TCP,即连接模式,显然是首选的选择。在TCP实现方面,NFS默认使用一个端口上的1个会话。NFS在TCP上使用了相当长时间的会话,用户可以在客户端使用nConnect挂载选项定义多达16个会话,最佳结果似乎是8个。它支持NFS v3和v4,运行Linux内核5.3,并且也被向后移植。

这种多连接功能即使只有一个文件服务器,也增加了吞吐量,但IO/s不会改变,因为仍然只使用一个服务器。

值得注意的一件有趣的事情是,nConnect与Kerberos不兼容,这可能在某些关键环境中引入一些问题。

现在我们可以使用nConnect将连接乘以一个单独的服务器,我们可能需要将连接扩展到多个服务器,以获得连接的组合效果。这就是NFS在v3和v4.1中引入的多路径性。当您将nConnect和多路径性相结合时,效果非常令人印象深刻,可以轻松通过网络实现每秒100GB的吞吐量,当然这基于网络的能力。

另一个关键要素是将NFS与RDMA相结合,以替代TCP,从而显着降低延迟并改善对一些高要求的I/O需求的整体吞吐量。当然,这需要具有特定网卡、网络、驱动程序和配置的特定硬件才能启用这个环境。NFSoRDMA是特定的,需要在客户端上安装特殊模块。

当然,一些供应商已经成功地将RDMA和Multipath与特定的客户端软件集结合在一起。

最后一种可能的NFS配置与GPU相关,即使用Nvidia GPUDirect Storage(GDS)与RDMA一起工作。像Nvidia SuperPOD这样的配置可以与并行文件系统和NFS一起使用。一些文件存储供应商已经通过Nvidia认证验证了这些配置。

我们总是惊讶地看到,曾经为并行文件系统供应商工作、试图摧毁NFS的人现在却在NFS供应商那里进行反向战斗。这是一个有趣的情况,但并不严肃,却给人一种缺乏一致性和机会主义的形象。换句话说,即使我们都可以改变自己的观点,这些人已经失去了所有的信誉。

一些厂商推出了自己的NFS堆栈,需要在客户端进行安装,因此产生了与并行文件系统驱动程序相同的侵入性影响。我们理解为什么这个论点没有被提倡。但是它提供了一组在默认安装的文件服务层中不可用的功能。

并行文件系统模型依赖于客户端将文件分布在后端数据服务器上而无需特定网络。文件块分布在由客户端控制的所有这些服务器上。使用NFS nConnect + Multipathing,文件在客户端不受影响,文件的物理分配依赖于NFS下方的服务器平面,该服务器可以在磁盘和/或参与者之间进行分段。换句话说,存储软件层对此负责,它完全独立于客户端和访问协议。

并行文件系统涉及文件组织,在访问模式上增加一些并行性并不意味着NFS变得并行。再次强调,如果将NFS视为并行,那就是当人们提到pNFS时。

另一种解释是引入我们所谓的外部和内部文件系统。

外部文件系统是通过软件客户端代理/驱动程序/软件(如我们之前提到的用于并行文件系统的Posix客户端)直接由客户端机器使用和可见的文件系统。由于客户端通过其与元数据服务器的链接理解文件系统布局,它们在某种意义上属于它。

另一方面,内部文件系统仅限于服务器-在这种情况下,通常被视为磁盘文件系统或设备上的文件组织-或服务器集之间,并且在基于扩展式NAS的情况下不会本机暴露,除非通过类似NFS或SMB的新添加的文件网络层。因此,此网络层不会改变文件的组织方式,它只是一种访问方法或机制。

文件存储市场再次证明了其价值,通过在访问层保持简单和标准,利用闪存、持久性内存、NVMe及其相关网络技术等最新技术。

我们发现有一家厂商在推广一种并行全局文件系统,这种定位给市场增添了一些混乱,不确定行业是否需要这种类型的传播信息重复。

总之,让我们在每个类别中提及一些产品,以使我们所说的与市场现实保持一致,当然我们不提及磁盘文件系统或云文件存储解决方案,以避免任何额外的混淆:

  • ThinkParQ的BeeGFS,开源的Lustre,基于Lustre的DDN的ExaScaler,IBM的Storage Scale,Weka,Panasas,Quobyte,HPE的Cray ClusterStor或PVFS项目都属于并行文件系统。富士通、NEC或华为也添加了一些并行文件系统的变种。其中一些产品添加了NFS和SMB配置文件,但在原理上,它们本质上是并行的系统。

  • 所有支持NFS和SMB且包含统一存储的产品属于文件服务器和NAS类别。例如,Dell的PowerScale,NetApp,Pure Storage的FlashBlade和FlashArray,Quantum的Myriad,Qumulo,Vast Data,Tintri,Nexenta,iXsystems的TrueNAS,Veritas的InfoScale或Microsoft的Scale-Out File Server等都是如此。当然,只需选择一个Linux发行版并通过NFS公开本地文件系统,即可赋予系统文件服务器行为。

继续滑动看下一个
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存