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]

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 +
Repositorygithub.com/waltligon/orangefs
Written inC
Operating systemLinux
LicenseLGPL
Websitewww.orangefs.org

Versions and features

edit

2.8.5

  • Server-to-server communication infrastructure
  • SSD option for storage of distributed metadata
  • Full native Windows client support
  • Replication for immutable files

2.8.6

  • Direct interface for applications
  • Client caching for the direct interface with multi-process single-system coherence
  • Initial release of the webpack supporting WebDAV and S3 via Apache modules[5]

2.8.7

  • Updates, fixes and performance improvements

2.8.8

  • Updates, fixes and performance improvements, native Hadoop support via JNI shim, support for newer Linux kernels

2.9

  • Distributed Metadata for Directory Entries[6]
  • Capability-based security in 3 modes
    • Standard security
    • Key-based security
    • Certificate-based security with LDAP interface support
  • Extended documentation

2.10

  • Bug fixes and build changes to support recent distributions.
  • The Linux upstream kernel client is the primary access method for Linux, the out-of-tree kernel module is deprecated.
  • The OrangeFS Windows client has been refreshed

History

edit

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:

  • Many were satisfied with the design goals of PVFS2 and needed it to remain relatively unchanged for future stability
  • Others envisioned PVFS2 as a foundation on which to build an entirely new set of design objectives for more advanced applications of the future.

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.

References

edit
  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".
edit