在当今数据爆炸的时代,传统的文件系统已经难以满足高性能计算环境下的数据存储和访问需求。而并行文件系统作为一种特殊的分布式文件系统,通过将文件数据分布在多个服务器上并支持并行应用的多任务并发访问,为这一挑战提供了有效解决方案。今天,我要给大家介绍的就是这样一个强大的开源并行文件系统——OrangeFS!

什么是OrangeFS?

OrangeFS(Orange File System)是一个开源的、面向高端计算系统的可扩展网络文件系统,它是PVFS(Parallel Virtual File System)的下一代版本。OrangeFS提供了对基于多服务器的磁盘存储的高性能并行访问能力,非常适合用于大规模集群计算环境!

作为一个并行文件系统,OrangeFS的核心特点是将文件数据分散存储到多个服务器上,并允许并行应用程序的多个任务同时访问这些数据。这种设计使得OrangeFS能够处理大规模数据集,并在高性能计算环境中提供出色的I/O性能。

最棒的是,OrangeFS的服务器和客户端都是用户级代码实现的,这让它非常容易安装和管理。不需要复杂的配置,几步就能搞定!(这点真的超赞!)

OrangeFS的历史与发展

要了解OrangeFS,就得先了解它的前身PVFS。PVFS最初是在1993年由克莱姆森大学(Clemson University)的Walt Ligon和Eric Blumer开发的,作为NASA项目的一部分,用于研究并行程序的I/O模式。

PVFS经历了几个发展阶段:

  • PVFS第0版基于IBM T.J. Watson研究中心开发的Vesta并行文件系统
  • 1994年,Rob Ross重写了PVFS,使其使用TCP/IP,并从原始Vesta设计中有了很大的改进
  • PVFS第1版针对的是FDDI(快速以太网的前身)上的DEC Alpha工作站集群

2007年,Argonne实验室开始为IBM Blue Gene/P移植PVFS。2008年,克莱姆森大学开始开发支持大型小文件目录、安全增强和冗余功能的扩展。由于许多这些目标与Blue Gene的开发相冲突,于是源代码被分成了两个分支:一个分支被称为"Orange"(以克莱姆森学校颜色命名),另一个分支被称为"Blue"。

这就是OrangeFS名称的由来!它代表了这一新一代虚拟文件系统,重点关注安全性、冗余性和更广泛的应用范围。后来,OrangeFS成为PVFS的主要分支,并获得了商业支持。

OrangeFS的关键特性

OrangeFS拥有许多强大的特性,这些特性使它成为高性能计算环境中的理想选择:

1. 基于对象的架构

OrangeFS使用独特的基于对象的文件数据传输,允许客户端处理对象而无需处理底层存储细节(如数据块)。这种面向对象的基础设施是OrangeFS高效工作的关键。每个文件和目录都由两个或更多对象组成——一个包含文件数据,另一个包含文件元数据。

2. 出色的可扩展性

OrangeFS专为扩展到非常大量的客户端和服务器而设计。它可以轻松扩展到数千个节点,并管理PB甚至EB级的数据。这种可扩展性使其成为大规模HPC环境的理想选择。

3. 统一命名空间

OrangeFS提供统一的命名空间,使所有文件都可以从单个挂载点访问。用户看到的是一个用户友好的、传统的、逻辑文件视图,而不需要关心数据实际存储在哪里。

4. 多样化的客户端访问方法

OrangeFS支持多种客户端访问方法,包括:

  • POSIX接口
  • MPI-IO(针对并行和分布式应用优化)
  • Linux VFS(从Linux 4.6版本开始成为内核的一部分)
  • FUSE
  • 原生Windows客户端
  • WebDAV
  • HCFS兼容的JNI接口(用于Hadoop生态系统)
  • S3接口
  • REST接口

5. 模块化架构

OrangeFS的架构非常模块化,允许轻松添加新的硬件支持和新的算法。这使得OrangeFS成为完美的研究测试平台,同时也适用于生产环境。

6. 配置灵活性

OrangeFS允许按目录或文件配置存储参数,包括条带大小、服务器数量、复制、安全性等。这种灵活性使用户可以根据特定需求优化文件系统性能。

7. 虚拟化存储

OrangeFS可以在每个连接的服务器上的任何Linux文件系统之上进行虚拟化存储,这增加了部署的灵活性。

OrangeFS vs 其他并行文件系统

你可能会问:"为什么选择OrangeFS而不是其他并行文件系统(如Lustre或GPFS)?"答案在于OrangeFS的几个独特优势:

  1. 完全开源:OrangeFS是100%开源的,由政府、学术界和工业界组成的多元化社区开发。没有商业版本或"专业版",每一项新开发都会回馈给社区。

  2. 统一服务器设计:OrangeFS设计了一个统一的服务器,支持分布式元数据和分布式文件数据。(当然,如果需要,它们也可以分开;默认是统一的。)

  3. 易于安装和使用:OrangeFS非常容易构建、安装和运行——它已被证明是一个高度可用的文件系统。只需访问OrangeFS网站下载页面下载tarball或从OrangeFS存储库获取最新更改即可。

  4. 丰富的协议支持:PVFS协议提供了一套丰富的操作,支持分布式操作,并且易于扩展。

  5. 性能优化:OrangeFS通过跨多个服务器存储文件作为对象并并行访问这些对象来提高I/O性能。

OrangeFS的实际应用场景

OrangeFS在各种高性能计算环境中都有广泛应用:

学术和研究机构

在克莱姆森大学,OrangeFS拥有来自生物信息学、数字制作、天体物理学、人文科学和云计算等多个领域的广泛用户。其他大学和研究实验室也在迁移到OrangeFS。

例如,在约翰霍普金斯大学,OrangeFS帮助提供了比学校现有的HPC集群性能高出一个数量级的性能,以及比其存储阵列高出两个数量级的速度提升。

企业和工业应用

OrangeFS也被用于各种HPC行业以及广泛的科学和工程公司。一个大型企业客户专门使用OrangeFS进行数据挖掘。

大数据应用

通过MapReduce扩展和JNI替换Hadoop DFS——不需要修改MapReduce代码!这使得OrangeFS成为大数据处理的理想选择。

流媒体视频

OrangeFS的并行访问能力使其非常适合存储和提供流媒体视频内容。

基因组学和生物信息学

OrangeFS能够处理生物信息学和基因组学中产生的大规模数据集。

如何开始使用OrangeFS?

想要开始使用OrangeFS?以下是简单的步骤:

  1. 下载OrangeFS:访问OrangeFS官方网站(http://www.orangefs.org/)下载页面获取最新版本或从源代码构建。

  2. 安装服务器:OrangeFS服务器可以安装在运行Linux的多个节点上。每个服务器节点都需要一些本地存储空间来存储文件数据。

  3. 配置客户端:根据你的需求选择适当的客户端接口(Linux内核客户端、FUSE、Windows客户端等)并进行配置。

  4. 创建存储卷:使用OrangeFS工具创建存储卷,并配置如何在服务器节点之间分布数据。

  5. 挂载文件系统:在客户端节点上挂载OrangeFS文件系统,然后就可以像使用任何其他文件系统一样使用它了!

OrangeFS的最新进展

OrangeFS正在不断发展和改进。一些最新的进展包括:

  • Linux内核集成:OrangeFS从Linux 4.6版本开始成为内核的一部分,这简化了Linux应用程序通过OrangeFS使用并行存储的方式。

  • 内核优化:在Linux 5.13内核中,OrangeFS的预读已经重新设计,利用了新的xarray和readahead_expand逻辑,这显著提高了读取性能。

  • 文件大小截断修复:修复了文件大小截断错误,防止数据丢失。

  • folio预读支持:提议将OrangeFS预读转换为使用folios,替换传统的基于页面的处理,以提高读取性能并与现代内核页面缓存趋势保持一致。

  • 提交到Linux 6.15和6.16的补丁:包括文件大小截断修复、folio回写增强和代码简化。

结语

作为PVFS的下一代,OrangeFS已经发展成为一个成熟、强大且易于使用的开源并行文件系统。它的设计专注于高性能、可扩展性和灵活性,使其成为各种高性能计算环境的理想选择。

无论你是在学术研究中需要处理大规模数据集,还是在企业环境中需要高性能存储解决方案,OrangeFS都能满足你的需求。最重要的是,作为一个完全开源的项目,OrangeFS由一个活跃的社区支持,确保它将继续发展和改进。

如果你正在寻找一个强大、灵活且易于使用的并行文件系统,不妨试试OrangeFS!它可能正是你一直在寻找的解决方案。

(如果你有兴趣了解更多关于并行文件系统的内容,别忘了关注我的博客,我会继续分享更多有关高性能计算和存储技术的内容!)

Logo

鲲鹏昇腾开发者社区是面向全社会开放的“联接全球计算开发者,聚合华为+生态”的社区,内容涵盖鲲鹏、昇腾资源,帮助开发者快速获取所需的知识、经验、软件、工具、算力,支撑开发者易学、好用、成功,成为核心开发者。

更多推荐