OrangeFS


OrangeFS is an open-source parallel file system, the next generation of Parallel Virtual 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. 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
;1994
;Late 1994
;1997
;1999
;2003
;2005
;2007
;2008
;Fall 2010
;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 issues. This has been backported to several previous kernels in addition to pulled into the latest.
;October 2022: change.iterate to.iterate_shared in orangefs_dir_operations. Since iterate is a deprecated call-out.
;November 2022: ACLs were reworked in the core kernel with OrangeFS mode handling updated to reflect the change.
;December 2022: fixed a memory leaks on exit in OrangeFS sysfs and debufs code.
Q1 2023 Changes:
  • * Proposed conversion of OrangeFS readahead to use folios, replacing traditional page-based handling, to improve read performance and align with modern kernel page cache trends.
  • * Initial discussions and patches to simplify argument passing in OrangeFS's readdir functions, enhancing code clarity
Q2 2023 Changes:
  • * Merged folio-based readahead for OrangeFS into the mm-unstable branch, improving read efficiency.
  • * Fixed an incorrect error code in orangefs_sysfs_init, enhancing sysfs initialization reliability.
  • * Introduced a splice-read stub for OrangeFS, enabling more efficient I/O operations via splice.
  • * Converted OrangeFS to new ctime accessor functions, aligning with VFS timestamp handling improvements
Q3 2023 Changes:
  • * Continued refinement of multigrain timestamp support, with OrangeFS adopting new atime/mtime accessors.
  • * Moved orangefs_xattr_handlers to.rodata, improving security and efficiency by making it read-only.
  • * Proposed replacing strncpy with strscpy in OrangeFS, addressing string truncation risks.
Q4 2023 Changes:
  • * Finalized conversion to new timestamp accessors for atime, mtime, and ctime, ensuring VFS compatibility.
  • * Simplified readdir argument passing, improving directory operation efficiency.
  • * Removed unused ORANGEFS_CACHE_CREATE_FLAGS, streamlining code.
Q1 2024 Changes:
  • * Fixed a NULL dereference in orangefs_mount, reported by Julia Lawall and kernel test robot, preventing mount crashes.
  • * Addressed a superblock reference count leak, improving resource management.
  • * Moved debug code to orangefs-debugfs.c, enhancing code organization.
  • * Replaced strncpy with strscpy across OrangeFS, resolving truncation warnings and improving string safety.
  • * Submitted updates for Linux 6.9, including string handling and debug code improvements.
Q2 2024 Changes:
  • * Removed PG_error flag usage in OrangeFS, simplifying error handling as part of a kernel-wide cleanup.
  • * Converted read/write operations to use iterators, replacing deprecated ->read/->write methods.
  • * Finalized out-of-bounds fsid access fix, backported to multiple stable kernels.
Q3 2024 Changes:
  • * Converted orangefs_write_begin and orangefs_write_end to use folios, enhancing write performance.
  • * Rejected a duplicate fsid access issue, confirming prior fix sufficiency.
  • * Submitted OrangeFS changes for Linux 6.12, likely including folio and stability fixes.
Q4 2024 Changes:
  • * Reported and fixed a slab-out-of-bounds read in orangefs_debug_write, triggered by syzbot, preventing crashes or corruption.
  • * Replaced strcpy with strscpy in orangefs_inode_getxattr, further improving string safety.
  • * Reviewed folio memory management enhancements, supporting OrangeFS’s folio integration.
Q1 2025 Changes:
  • * Fixed out-of-bounds debug_write issue, backported to 4.19–6.13, with multiple pull requests.
  • * Improved orangefs_d_revalidate with stable VFS parent inode and name handling, and ensured debugfs safety.
  • * Submitted a 9-patch series for Linux 6.15, including file size truncation fix, folio writeback enhancements, and code simplifications.
  • * Fixed file size truncation bug, backported to 5.4–6.14, preventing data loss.
  • * Addressed a 6.14 writeback regression, improving performance.
  • * Fixed counting code bugs and resolved VFS integration issues.
Q2 2025 Changes:
  • * Continued addressing the 6.14 writeback regression, ensuring data integrity.
  • * Submitted OrangeFS pull requests for Linux 6.16, including ongoing fixes and enhancements.
  • * Resolved duplicate patch issues in linux-next, improving integration.
September 2025 OrangeFS v2.10.1 is the latest release in the OrangeFS line, it includes updates to support the latest Linux OS releases, bug fixes and the Windows client.
general updates
  • documentation updates.
  • removed c-shell dependency.
  • change default build linkage from static to shared
  • change from bdb to lmdb for default database
  • updated configure script for usrint.
  • some code refactored to adhere to coding standards.
trove
  • truncate bstream before set size attr in case former fails.
  • lock local lock for truncate as well as set size attr.
general fixes
  • adjust some functions in state machines to match their prototypes.
  • add some gossip statements, and improve some others.
  • restored ability to invoke "make dist".
  • fixed db_display string processing.
  • fixed bstream-resize truncation failure error handling.