文件存储作为存储三个接口形态中占比最高的一个(块、文件、对象),也有进一步的细分,不少用户困惑于并行文件系统和传统分布式 NFS 文件存储之间的区别,今天我们来分析一下二者有何不同。
在大多数情况下,用户在使用计算机时,不管是游戏、视频、文档编辑的普通应用程序,还是 AI、渲染、高性能计算的应用,这些应用使用的都是操作系统的“文件系统”。操作系统的“文件系统”模块提供了一个直观的界面(不光指我们肉眼所看到的可视化的用户界面,同时也指从应用程序角度的 SDK 访问接口)来访问数据,而不会让您或应用程序记住数据在硬盘上的物理或逻辑位置(磁道,扇区号等)。
任何文件系统中都存在三个关键的抽象:
-
文件:文件的真实数据可能不会在硬盘中的连续位置,但最终用户可以将文件以一长串连续字节的形式进行访问(这是因为文件系统对硬盘的数据分布进行了抽象和管理)。 -
文件名:用户或应用程序可以通过诸如 doc01.txt 这类直观的文件名称访问文件,而无需记住任何物理的存储信息。 -
目录树:文件系统(不管是本地的 ext4、xfs 文件系统,还是远程的共享文件系统)以目录树的形式管理所有文件。

NFS

并行文件系统

并行文件系统 vs 分布式文件系统
并行文件系统是分布式文件系统的一种。分布式文件系统和并行文件系统都可以将数据分布在多个存储服务器上,可横向扩展从而容纳PB级数据,并支持高带宽。
-
分布式文件系统通常使用标准的网络文件访问协议(例如 NFS 或 SMB )来访问存储服务器。并行文件系统通常需要安装基于客户端的软件驱动程序(甚至推出基于 Windows 的客户端程序,例如 YRCloudFile、Panasas 等),通过以太网或 InfiniBand 等高速网络访问共享存储,因为只有基于这些客户端程序,才能实现区别于 NFS 的多 IO 路径访问。 -
部分分布式文件系统将单个文件存储在单个存储节点上,而并行文件系统通常将文件分解并跨多个存储节点对数据块进行条带化。 -
分布式文件系统倾向于带宽型或归档型应用程序。并行文件系统专注于高并发、高IOPS、海量数据的高性能工作负载。 -
分布式文件系统通常使用诸如三副本或纠删码等技术来提供数据可靠性,而许多并行文件系统还支持后端挂载磁盘阵列(例如 Lustre、Spectrum Scale、YRCloudFile 等)。