OrangeFS

Last updated
Original author(s) Clemson University, Argonne National Laboratory and others in the Community.
Developer(s) Omnibond, Clemson University, Argonne National Laboratory and Community Members
Initial release2011
Stable release
OrangeFS 2.10.0 / April 4, 2023 (2023-04-04)
Linux kernel 5.13 +
Repository github.com/waltligon/orangefs
Written in C
Operating system Linux
License LGPL
Website www.orangefs.org

OrangeFS is an open-source parallel file system, the next generation of Parallel Virtual File System (PVFS). A parallel file system is a type of distributed file system that distributes file data across multiple servers and provides for concurrent access by multiple tasks of a parallel application. OrangeFS was designed for use in large-scale cluster computing and is used by companies, universities, national laboratories and similar sites worldwide. [1] [2] [3] [4]

Contents

Versions and features

2.8.5

2.8.6

2.8.7

2.8.8

2.9

2.10

History

OrangeFS emerged as a development branch of PVFS2, so much of its history is shared with the history of PVFS. Spanning twenty years, the extensive history behind OrangeFS is summarized in the time line below.

A development branch is a new direction in development. The OrangeFS branch was begun in 2007, when leaders in the PVFS2 user community determined that:

This is why OrangeFS is often described as the next generation of PVFS2.

1993
Parallel Virtual File System (PVFS) was developed by Walt Ligon and Eric Blumer under a NASA grant to study I/O patterns of parallel programs. PVFS version 0 was based on the Vesta parallel file system developed at IBM's Thomas J. Watson Research Center, and its name was derived from its development to work on Parallel Virtual Machine (PVM).
1994
Rob Ross rewrote PVFS to use TCP/IP, departing significantly from the original Vesta design. PVFS version 1 was targeted to a cluster of DEC Alpha workstations on FDDI, a predecessor to Fast Ethernet networking. PVFS made significant gains over Vesta in the area of scheduling disk I/O while multiple clients access a common file.
Late 1994
The Goddard Space Flight Center chose PVFS as the file system for the first Beowulf (early implementations of Linux-based commodity computers running in parallel). Ligon and Ross worked with key GSFC developers, including Thomas Sterling, Donald Becker, Dan Ridge, and Eric Hendricks over the next several years.
1997
PVFS released as an open-source package
1999
Ligon proposed the development of a new PVFS version. Initially developed at Clemson University, the design was completed in a joint effort among contributors from Clemson, Argonne National Laboratory and the Ohio Supercomputer Center, including major contributions by Phil Carns, a PhD student at Clemson.
2003
PVFS2 released, featuring object servers, distributed metadata, accommodation of multiple metadata servers, file views based on MPI (Message Passing Interface, a protocol optimized for high performance computing) for multiple network types, and a flexible architecture for easy experimentation and extensibility. PVFS2 becomes an "Open Community" project, with contributions from many universities and companies around the world.
2005
PVFS version 1 was retired. PVFS2 is still supported by Clemson and Argonne. In recent years, various contributors (many of them charter designers and developers) continued to improve PVFS performance.
2007
Argonne National Laboratories chose PVFS2 for its IBM Blue Gene/P, a super computer sponsored by the U.S. Department of Energy.
2008
Ligon and others at Clemson began exploring possibilities for the next generation of PVFS in a roadmap that included the growing needs of mainstream cluster computing in the business sector. As they began developing extensions for supporting large directories of small files, security enhancements, and redundancy capabilities, many of these goals conflicted with development for Blue Gene. With diverging priorities, the PVFS source code was divided into two branches. The branch for the new roadmap became "Orange" in honor of Clemson school colors, and the branch for legacy systems was dubbed "Blue" for its pioneering customer installation at Argonne. OrangeFS became the new open systems brand to represent this next-generation virtual file system, with an emphasis on security, redundancy and a broader range of applications.
Fall 2010
OrangeFS became the main branch of PVFS, and Omnibond began offering commercial support for OrangeFS/PVFS, with new feature requests from paid support customers receiving highest development priority. First production release of OrangeFS introduced.
Spring 2011
OrangeFS 2.8.4 released
September 2011
OrangeFS adds Windows client
February 2012
OrangeFS 2.8.5 released
June 2012
OrangeFS 2.8.6 released, offering improved performance, web clients and direct-interface libraries. The new OrangeFS Web pack provides integrated support for WebDAV and S3.
January 2013
OrangeFS 2.8.7 released
May 2013
OrangeFS available on Amazon Web Services marketplace. OrangeFS 2.9 Beta Version available, adding two new security modes and allowing distribution of directory entries among multiple data servers.
April 2014
OrangeFS 2.8.8 released adding shared mmap support, JNI support for Hadoop Ecosystem Applications supporting direct replacement of HDFS
November 2014
OrangeFS 2.9.0 released adding support for distributed metadata for directory entries using an extensible hashing algorithm modeled after giga+, POSIX backward compatible capability base security supporting multiple modes.
January 2015
OrangeFS 2.9.1 released
March 2015
OrangeFS 2.9.2 released
June 2015
OrangeFS 2.9.3 released
November 2015
OrangeFS included in CloudyCluster 1.0 release on AWS
May 2016
OrangeFS supported in Linux Kernel 4.6 [7] [8] [9] [10]
October 2017
2.9.6 Released
January 2018
2.9.7 Released, OrangeFS rpm will now be included in Fedora distribution [11]
February 2019
CloudyCluster v2 released on AWS marketplace featuring OrangeFS
June 2019
CloudyCluster v2 released on GCP featuring OrangeFS
July 2019
OreangeFS is integrated with the Linux page cache in Linux kernel 5.2 [12]
January 2020
OrangeFS interim fix for write after open issues, merged into the Linux kernel 5.5
August 2020
kernel patch back to 5.4lts that fixes issues with nonstandard block sizes.
September 2020
2.9.8 Released
June 2021
Linux 5.13 kernel: OrangeFS readahead in the Linux kernel has been reworked to take advantage of the new xarray and readahead_expand logic. This significantly improved read performance. [13]
July 2021
df results bug - df on OrangeFS was reporting way too small vs. reality and causing canned installer (and confused human) issues. [14] This has been backported to several previous kernels in addition to pulled into the latest. [15]
October 2022
(Kernel) change .iterate to .iterate_shared in orangefs_dir_operations. Since iterate is a deprecated call-out.
November 2022
(Kernel) ACLs were reworked in the core kernel with OrangeFS mode handling updated to reflect the change.
December 2022
(Kernel) fixed a memory leaks on exit in OrangeFS sysfs and debufs code.
February 2023
(Kernel) Use the bvec_set_page and bvec_set_folio helpers to initialize bvecs. Additionally updated to use folios in OrangeFS page cache code. A "folio page" is a new core kernel type of page cache page related to compound pages. Numerous folio-related patches were sent in by the core developers.
April 2023
OrangeFS 2.10.0 was released providing many bug fixes and updates to support the latest distributions and also a refreshed Windows Client.

Related Research Articles

InterMezzo was a distributed file system written for the Linux kernel, distributed under the GNU General Public License. It was included in the standard Linux kernel from version 2.4.15 but was dropped from version 2.6. InterMezzo is designed to work on top of an existing journaling file system such as ext3, JFS, ReiserFS or XFS. It was developed around 1999.

Journaled File System (JFS) is a 64-bit journaling file system created by IBM. There are versions for AIX, OS/2, eComStation, ArcaOS and Linux operating systems. The latter is available as free software under the terms of the GNU General Public License (GPL). HP-UX has another, different filesystem named JFS that is actually an OEM version of Veritas Software's VxFS.

9P is a network protocol developed for the Plan 9 from Bell Labs distributed operating system as the means of connecting the components of a Plan 9 system. Files are key objects in Plan 9. They represent windows, network connections, processes, and almost anything else available in the operating system.

In computing, the Global File System 2 or GFS2 is a shared-disk file system for Linux computer clusters. GFS2 allows all members of a cluster to have direct concurrent access to the same shared block storage, in contrast to distributed file systems which distribute data throughout the cluster. GFS2 can also be used as a local file system on a single computer.

<span class="mw-page-title-main">Linux-VServer</span> OS-level virtualisation

Linux-VServer is a virtual private server implementation that was created by adding operating system-level virtualization capabilities to the Linux kernel. It is developed and distributed as open-source software.

Filesystem in Userspace (FUSE) is a software interface for Unix and Unix-like computer operating systems that lets non-privileged users create their own file systems without editing kernel code. This is achieved by running file system code in user space while the FUSE module provides only a bridge to the actual kernel interfaces.

Google File System is a proprietary distributed file system developed by Google to provide efficient, reliable access to data using large clusters of commodity hardware. Google file system was replaced by Colossus in 2010.

Lustre is a type of parallel distributed file system, generally used for large-scale cluster computing. The name Lustre is a portmanteau word derived from Linux and cluster. Lustre file system software is available under the GNU General Public License and provides high performance file systems for computer clusters ranging in size from small workgroup clusters to large-scale, multi-site systems. Since June 2005, Lustre has consistently been used by at least half of the top ten, and more than 60 of the top 100 fastest supercomputers in the world, including the world's No. 1 ranked TOP500 supercomputer in November 2022, Frontier, as well as previous top supercomputers such as Fugaku, Titan and Sequoia.

The following tables compare general and technical information for a number of file systems.

The Parallel Virtual File System (PVFS) is an open-source parallel file system. A parallel file system is a type of distributed file system that distributes file data across multiple servers and provides for concurrent access by multiple tasks of a parallel application. PVFS was designed for use in large scale cluster computing. PVFS focuses on high performance access to large data sets. It consists of a server process and a client library, both of which are written entirely of user-level code. A Linux kernel module and pvfs-client process allow the file system to be mounted and used with standard utilities. The client library provides for high performance access via the message passing interface (MPI). PVFS is being jointly developed between The Parallel Architecture Research Laboratory at Clemson University and the Mathematics and Computer Science Division at Argonne National Laboratory, and the Ohio Supercomputer Center. PVFS development has been funded by NASA Goddard Space Flight Center, The DOE Office of Science Advanced Scientific Computing Research program, NSF PACI and HECURA programs, and other government and private agencies. PVFS is now known as OrangeFS in its newest development branch.

Gluster Inc. was a software company that provided an open source platform for scale-out public and private cloud storage. The company was privately funded and headquartered in Sunnyvale, California, with an engineering center in Bangalore, India. Gluster was funded by Nexus Venture Partners and Index Ventures. Gluster was acquired by Red Hat on October 7, 2011.

A clustered file system (CFS) is a file system which is shared by being simultaneously mounted on multiple servers. There are several approaches to clustering, most of which do not employ a clustered file system. Clustered file systems can provide features like location-independent addressing and redundancy which improve reliability or reduce the complexity of the other parts of the cluster. Parallel file systems are a type of clustered file system that spread data across multiple storage nodes, usually for redundancy or performance.

Ceph is a free and open-source software-defined storage platform that provides object storage, block storage, and file storage built on a common distributed cluster foundation. Ceph provides completely distributed operation without a single point of failure and scalability to the exabyte level, and is freely available. Since version 12 (Luminous), Ceph does not rely on any other conventional filesystem and directly manages HDDs and SSDs with its own storage backend BlueStore and can expose a POSIX filesystem.

Moose File System (MooseFS) is an open-source, POSIX-compliant distributed file system developed by Core Technology. MooseFS aims to be fault-tolerant, highly available, highly performing, scalable general-purpose network distributed file system for data centers. Initially proprietary software, it was released to the public as open source on May 30, 2008.

XtreemFS is an object-based, distributed file system for wide area networks. XtreemFS' outstanding feature is full and real fault tolerance, while maintaining POSIX file system semantics. Fault-tolerance is achieved by using Paxos-based lease negotiation algorithms and is used to replicate files and metadata. SSL and X.509 certificates support make XtreemFS usable over public networks.

BeeGFS is a parallel file system, developed and optimized for high-performance computing. BeeGFS includes a distributed metadata architecture for scalability and flexibility reasons. Its most used and widely known aspect is data throughput.

A distributed file system for cloud is a file system that allows many clients to have access to data and supports operations on that data. Each data file may be partitioned into several parts called chunks. Each chunk may be stored on different remote machines, facilitating the parallel execution of applications. Typically, data is stored in files in a hierarchical tree, where the nodes represent directories. There are several ways to share files in a distributed architecture: each solution must be suitable for a certain type of application, depending on how complex the application is. Meanwhile, the security of the system must be ensured. Confidentiality, availability and integrity are the main keys for a secure system.

Elliptics is a distributed key–value data storage with open source code. By default it is a classic distributed hash table (DHT) with multiple replicas put in different groups. Elliptics was created to meet requirements of multi-datacenter and physically distributed storage locations when storing huge amount of medium and large files.

LizardFS is an open source distributed file system that is POSIX-compliant and licensed under GPLv3. It was released in 2013 as fork of MooseFS. LizardFS is also offering a paid Technical Support with possibility of configurating and setting up the cluster and active cluster monitoring.

References

  1. Andrew Savchenhk (February 16, 2013). "Introduction to distributed file systems, OrangeFS experience" (PDF).
  2. Jeff Darcy (February 24, 2011). "Checking out the competition". Archived from the original on September 30, 2012.
  3. "Parallel File System OrangeFS Starts to Build a Following". HPCwire. November 18, 2011.
  4. Erick Slack (June 29, 2012). "Open Source High Performance File System Alternative". Archived from the original on May 21, 2017. Retrieved September 10, 2013.
  5. Michael Moore; David Bonnie; Walt Ligon; Nicholas Mills; Shuangyang Yang; Becky Ligon; Mike Marshall; Elaine Quarles; Sam Sampson; Boyd Wilson (2011). OrangeFS: Advancing PVFS (PDF). FAST 2011.
  6. Shuangyang Yang. Walter B. Ligon III. Elaine C. Quarles Clemson University (2011), "Scalable Distributed Directory Implementation on Orange File System", SNAPI 2011.
  7. "Linux-Kernel Archive: Linux 4.6-rc1".
  8. "Linux Kernel 4.6 Officially Released, Introduces OrangeFS, USB 3.1 SSP Support". 15 May 2016.
  9. Becky Ligon (October 27, 2016). "Announcing the release of OrangeFS 2.9.6".
  10. Mike Marshall (September 18, 2016). "OrangeFS Kernel Readme".
  11. "Fedora Package Announce — Fedora 27 Update: Orangefs-2.9.7-1.fc27".
  12. Mike Marshall (May 10, 2019). "OrangeFS Kernel 5.2 Commit".
  13. "Kernel/Git/Torvalds/Linux.git - Linux kernel source tree".
  14. "[PATCH 5.12 153/292] orangefs: Fix orangefs df output. - Greg Kroah-Hartman".
  15. "Patch "orangefs: Fix OrangeFS df output." has been added to the 4.19-stable tree — Linux Stable Commits".