drx - Fotolia

了解文件系统结构如何降低NVMe性能

了解在文件系统设计中什么是重要的,以及如何防止文件系统成为实现基于nvme的存储系统的最佳性能的瓶颈。

NVMe通过改进物理接口、增加命令计数和队列深度,使存储基础设施能够充分利用基于闪存的存储。但NVMe也带来了一个挑战:NVMe的延迟效率太高,暴露了存储基础设施的其他组件的弱点。基础架构中的任何薄弱链接都会增加延迟并降低NVMe的值。

存储基础设施中问题较多的链接之一是文件系统。现在是供应商重新考虑文件系统结构的时候了。特别是,它们必须修改文件系统与支持nvme的存储交互的方式,以避免成为主要的瓶颈。

为什么文件系统很重要?

服务于AI和高速工作负载的文件系统通常是向外扩展的。扩展文件系统由多个存储服务器或节点组成。文件系统聚合每个节点中的内部存储,将其表示为用户和应用程序可以访问的单个存储池。传统的文件系统也可以向外扩展,但它们是串行的,这意味着所有的I/O都要经过一个主节点,AI和高速工作负载很容易将其压倒,从而造成瓶颈。这些工作负载依赖于并行文件系统结构,该结构允许集群中的任何节点为用户或应用程序提供I/O服务,从而使网络效率变得更加重要。

大多数NVMe存储系统都是为块存储而设计的。因此,它们规避了文件系统结构的性能开销。然而,在大多数情况下,a添加文件系统块存储系统,这样这些人工智能和高速工作负载就可以使用它。大多数现代应用——尤其是人工智能、机器学习和大数据分析处理——都依赖于文件系统。

块存储与文件存储

一个设计良好的基于块的NVMe存储系统加上一个文件系统,仍然可能比基于块的SAS存储系统更快,但是原始块存储和文件系统控制的存储之间的性能下降是显著的。组织需要针对NVMe进行优化的文件系统。

在基准测试中要寻找什么

有几个文件系统基准测试供应商用来演示他们的能力。大多数测试使用带有并行文件系统的NVMe块存储,比如IBM的文件系统规模.供应商可以自由地使用各种配置来爬到图表的顶端。这可能会误导人。

现在是供应商重新考虑他们的文件系统如何与支持nvme的存储交互的时候了,这样才不会成为主要的瓶颈。

例如,在当前的Standard Performance Evaluation Corp. SFS 2014基准中,顶级供应商在测试环境中的驱动器数量、驱动器类型和存储节点数量上存在显著差异。在大多数情况下,硬件供应商试图通过使用比应该使用的更多的硬件来减少文件系统结构的开销,并将价格推高到对大多数组织来说都不合理的水平。

真正重要的是硬件和文件系统在组织的工作负载类型和预算下的性能如何。大多数公司并没有无限的资金来创建完美的nvme文件系统组合。IT专业人员应该寻找能够达到他们需要的结果的最简单的配置。

在文件系统中查找什么

主要有三个限制因素文件系统的性能

  • 文件系统与存储节点通信的效率;
  • 文件系统管理连接不同存储节点的网络的效率,以及与客户端通信的效率;和
  • 文件系统管理元数据访问的效率。

在大多数现代应用程序环境中,元数据占所有I/O的80%以上。

文件系统通常通过操作系统I/O堆栈与存储媒体进行通信。大多数高级文件系统基于Linux,并通过该堆栈进行通信。但是Linux堆栈增加了开销。另一种方法是文件系统创建自己的到基于nvme的文件系统的I/O通道。在文件系统开发过程中,直接与驱动器通信比较困难,但它为文件系统用户提供了获得最大性能的最佳机会,而不必过度使用昂贵的硬件进行补偿。

文件系统通常使用标准的NFS协议与客户机通信。但NVMe有一个网络变体,(NVMe-oF).现代文件系统应该提供能够在客户机上运行的并行、本机NVMe-oF访问的软件。NVMe-oF还可以用来互连各种存储节点。对于文件系统客户来说,其结果是文件系统在直接附加存储延迟的情况下提供了方便的访问。

在全NVMe文件系统结构中,元数据访问本质上非常快,但是元数据的布局方式必须是高效的,这样才能从NVMe的低延迟中获益。优化元数据性能意味着将元数据在文件系统集群中的所有节点上进行条带化,这样就不会出现单个节点的性能瓶颈。

如何最大限度地利用NVMe

与其他工作负载类型相比,AI和高速用例可以充分利用NVMe。这些工作负载的挑战是应用程序通常通过文件系统访问存储。传统的文件系统并不优化基于nvme的驱动器的I/O。更快的节点硬件和NVMe驱动器提供了更好的性能,但文件系统结构不允许硬件发挥其全部潜力。

为了避免这个问题,寻找直接写入NVMe驱动器而不是通过操作系统的I/O堆栈的文件系统。还要寻找允许客户机跨NVMe-oF通信并以一种不会成为性能瓶颈的方式管理元数据的文件系统。

深入了解并行文件系统

搜索灾难复苏
搜索数据备份
搜索聚合基础设施
关闭
Baidu