# OrangeFS

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.

## Versions and features

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
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
* 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

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

### October 2017

    2.9.6 Released

### January 2018

    2.9.7 Released, OrangeFS rpm will now be included in Fedora distribution

### 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

### 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.

### July 2021

    df results bug - df on OrangeFS was reporting way too small vs. reality and causing canned installer (and confused human) issues. This has been backported to several previous kernels in addition to pulled into the latest.

### 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.