# Veritas File System

The VERITAS File System (or VxFS; called JFS and OnlineJFS in HP-UX) is an extent-based file system. It was originally developed by VERITAS Software. Through an OEM agreement, VxFS is used as the primary filesystem of the HP-UX operating system. With on-line defragmentation and resize support turned on via license, it is known as OnlineJFS. It is also supported on AIX, Linux, Solaris, OpenSolaris, SINIX/Reliant UNIX, UnixWare and SCO OpenServer. VxFS was originally developed for AT&T's Unix System Laboratories. VxFS is packaged as a part of the Veritas Storage Foundation (which also includes Veritas Volume Manager).

## History

According to the vendor, it was the first commercial journaling file system. That claim can be taken in two ways, i.e., the first implementation of a journaling file system in a commercial context, or the first file system available as an unbundled product.
Dan Koren is cited as one of the original developers of VxFS. He notes in a mailing list that they "finished release 1.0 one year or so later" after starting development of VxFS under a contract with AT&T Corporation in 1990. Other sources agree that the product was first released in 1991.
As the internet was not widely available in the early 1990s, getting a new file system deployed for Unix-like operating systems was more difficult, so the one- to two-year delay in the release and commercialization of this file system was not unusual.

## Version history

The on-disk layout of VxFS is versioned and upgradeable while the file system is mounted. This file system has gone through ten versions.
* Version 2 added support for filesets, dynamic inode allocation and ACLs. Layouts 1-3 stopped being supported in VxFS 4.0.
* Version 4 added support for storage checkpoints and for Veritas Cluster File System. Version 4 was released in VxFS 3.2.1. Layout version 4 is no longer supported under VxFS 5.1.
* Version 5 started support for file systems up to 32 terabytes (2$^{45}$ bytes) in size. Individual files can be up to 2 terabytes in size. Version 5 was introduced in VxFS 3.5 and is no longer supported under VxFS 5.1.
* Version 6 added support for file systems and files up to 8 exabytes (2$^{63}$ bytes) in size. Version 6 also introduced support for named streams/resource forks, for multiple underlying volumes, and for file change logs. Version 6 was introduced in VxFS 4.0.
* Version 7 extends support for multiple volumes to permit Dynamic Storage Tiering. Dynamic Storage Tiering allows root users to move files among different volumes, allocate files to different volumes at file creation time based on policy, and independently recover volumes, without altering the namespace of the file system. Version 7 was introduced in VxFS 5.0.
* Version 8 enables support for file-level snapshots and shared extents. Version 8 was introduced in VxFS 5.1.
* Version 9 enables support for file compression, deduplication, and partition directories. Version 9 was introduced in VxFS 6.0.
* Version 10 enables support for maxlink, which permits a directory to contain more than 64K subdirectories. Version 10 was introduced in VxFS 6.1.

## Parallel access mode

VxFS file system can run in single instance mode or in a parallel access / cluster mode. The parallel mode allows for multiple servers (also known as cluster nodes) to simultaneously access the same file system. When run in this mode, VxFS is referred to as Veritas Cluster File System.
The Cluster File System provides cache coherency and POSIX compliance across nodes, so that data changes are atomically seen by all cluster nodes simultaneously. Because Cluster File System shares the same binaries and same on-disk layout as single instance VxFS, moving between cluster and single instance mode is straightforward.