List of file systems

From Wikipedia, the free encyclopedia

The following lists identify, characterize and link to more thorough information on computer file systems.

Many older operating systems support only their one "native" file system, which does not bear any name apart from the name of the operating system itself. Examples of such include the CP/M file system and the Apple DOS file system. These unnamed file systems don't appear in the following list.

Contents

[edit] Disk file systems

Disk file systems are usually stream-oriented. Files in a stream-oriented file system are sequences of bytes, often featuring fully random-access read, write, and modify operations.

[edit] Flash memory / solid state media file systems

Solid state media like Flash memory are similar to disks in their interfaces, but have different problems. While eliminating seek times, they require special handling such as Wear leveling and Error detection and correction algorithms.

  • FAT – Originally a disk file system, it is now commonly used on memory cards because of its simplicity and ubiquity. FAT32 file size limit is 232-1 null bytes (4 Gigabytes)
  • FFS2 (presumably preceded by FFS1), one of the earliest flash file systems. Developed and patented by Microsoft in the early 1990s.[2]
  • exFAT - Microsoft proprietary system intended for flash drives but often called FAT64 - limit of 264 bytes (16 Exabytes)
  • TFAT – A transactional version of the FAT filesystem.
  • JFFS – Original log structured Linux file system for NOR flash media
  • JFFS2 – Successor of JFFS, for NAND and NOR flash
  • LogFS – Intended to replace JFFS2, better scalability. In early development.
  • Non-Volatile File System -- the "non-volatile file system" for flash memory introduced by Palm, Inc..
  • YAFFS – A Log structured file system designed for NAND flash, but also used with NOR flash.

[edit] Record-oriented file systems

In Record-oriented file systems files are stored as a collection of records. They are associated with older mainframe and minicomputer operating systems. Programs read and write whole records, rather than bytes or arbitrary byte ranges, and can seek to a record boundary but not within records.

  • Files-11 – early versions were record-oriented; support for "streams" was added later
  • Virtual storage access method (VSAM) – Used on System/370 and MVS
  • Structured File Server (SFS) — A record-oriented file system from IBM, originally part of the Encina[3] system, now integrated into CICS.[4]
  • RSD (record sequential delimited) - A record-oriented file system from IBM [5]

[edit] Shared disk file systems

Shared disk file systems (also called shared storage file systems, SAN file system or even cluster file systems) are primarily used in a storage area network where all nodes directly access the block storage where the file system is located. This makes it possible for nodes to fail without affecting access to the file system from the other nodes. Shared disk file systems are normally used in a high-availability cluster together with storage on hardware RAID. Shared disk file systems normally do not scale over 64 or 128 nodes.

Shared disk file systems may be symmetric where metadata is distributed among the nodes or asymmetric with centralized metadata servers.

The current world record in file system performance (January 2006) is held by GPFS from IBM with 134 GB/s sustained read/write to a single file on the ASC Purple at Lawrence Livermore National Laboratory, the current third fastest supercomputer.

[edit] Distributed file systems

Distributed file systems are also called network file systems. Many implementations have been made, they are location dependent and they have access control lists (ACLs), unless otherwise stated below.

[edit] Distributed fault tolerant file systems

Distributed fault tolerant replication of data between nodes (between servers or servers/clients) for high availability and offline (disconnected) operation.

[edit] Distributed parallel file systems

Distributed parallel file systems stripe data over multiple servers for high performance. They are normally used in high-performance computing (HPC).

Some of the distributed parallel file systems use object storage device (OSD) (In Lustre called OST) for chunks of data together with centralized metadata servers.

  • Ceph from University of California, Santa Cruz. (Fault-tolerance in their roadmap.) Available for Linux under LGPL from Sourceforge.
  • Fraunhofer Parallel File System (FhGFS) from the Fraunhofer Society Competence Center for High Performance Computing. Available as a free beta version for Linux. (Fault tolerance is on the roadmap.)
  • Lustre originally from Cluster File Systems, which was acquired by Sun Microsystems in 2007. (Lustre has failover, but multi-server RAID1 or RAID5 is still in their roadmap for future versions.) Available for Linux under GPL, and for Microsoft Windows under a proprietary license. A version for Solaris is also under development.
  • Parallel Virtual File System (PVFS, PVFS2). Available for Linux under GPL.
  • Starfish is a POSIX-compatible, N-way redundant file system created by Digital Bazaar Inc. and published under a pseudo-open source license. Available for Linux and Mac OS. Windows support is available via Samba.

[edit] Distributed parallel fault tolerant file systems

Distributed file systems, which also are parallel and fault tolerant, stripe and replicate data over multiple servers for high performance and to maintain data integrity. Even if a server fails no data is lost. The file systems are used in both high-performance computing (HPC) and high-availability clusters.

All file systems listed here focus on high availability, scalability and high performance unless otherwise stated below.

In development:

[edit] Peer-to-peer file systems

  • CFS is a read-only file system based on the Chord DHT
  • Cleversafe uses Cauchy Reed-Solomon Information Dispersal Algorithms (IDAs) to separate data into unrecognizable slices and distribute them, via secure Internet connections, to multiple storage locations.
  • Infinit is a large-scale peer-to-peer file system developed in C++ which enables users to both reliably and securely store their files in a location-independent and replicated way; and to share files with a controlled set of users, friends etc.
  • Ivy is a read/write file system based on log, hence does not scale with the number of users
  • Pastis is a French peer-to-peer file system developed in Java

[edit] Special purpose file systems

  • archfs (archive)
  • Barracuda WebDAV plugin. Secure Network File Server for embedded devices.
  • Callback File System a virtual file system for Windows
  • cdfs (reading and writing of CDs)
  • cfs (caching)
  • compFUSEd (overlay transparent read-write compression, FUSE based )
  • Cramfs (small footprint compressed read-only)
  • Cromfs is a user-space (FUSE based) read-only filesystem using an efficient LZMA compression algorithm.
  • Davfs2 (WebDAV)
  • Freenet – Decentralized, censorship-resistant
  • ftpfs (ftp access)
  • FUSE (file system in userspace, like LUFS but better maintained)
  • FuseCompress (based on FUSE, provides transparent compression)
  • GmailFS (Google Mail File System)
  • lnfs (long names)
  • LUFS (Linux userland file system - seem to be abandoned in favour of FUSE)
  • MVFS – MultiVersion File System, proprietary, used by Rational ClearCase.
  • nntpfs (netnews)
  • ParFiSys (Experimental parallel file system for massively parallel processing)
  • plumber (Plan 9) (interprocess communication – pipes)
  • pramfs - Protected and Persistent RAM Filesystem
  • romfs
  • SODA: a Lease-based Consistent Distributed File System - (early 1990s)
  • SquashFS (compressed read-only)
  • SysmanFS (based on FUSE, a virtual file system for cluster system management)
  • tmpfs
  • UMSDOS – FAT file system extended to store permissions and metadata, used for Linux.
  • UnionFS – stackable unification file system, which can appear to merge the contents of several directories (branches), while keeping their physical content separate
  • mini_fo (The mini fanout overlay file system) – Redirects modifying operations to a writeable location called "storage directory", and leaving the original data in the "base directory" untouched. When reading, the file system merges the modifed and original data so that only the newest versions will appear.
  • wikifs (Plan 9) (wiki wiki)
  • WDK.VFS - SiteAdmin CMS Virtual File System introduced by Evgenios Skitsanos
  • Datalight Reliance - transactional file system for 32 bit embedded systems from Datalight, Inc.
  • ERTFS ProPlus64 - it comes with integrated Failsafe operation it contains a default journaling mode.

[edit] Pseudo- and virtual file systems

  • devfs
  • procfs – pseudo-file system, used to access kernel information about processes
  • specfs (Special File System for device files )
  • sysfs (Linux)

[edit] Encrypted file systems

[edit] Fault tolerant file systems

These are file systems with built in redundancy. Ordinary file systems for embedded systems using transactions or journals does not belong here.

[edit] See also

[edit] External links