Comparison of distributed file systems

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

In computing, a distributed file system (DFS) or network file system is any file system that allows access to files from multiple hosts sharing via a computer network. This makes it possible for multiple users on multiple machines to share files and storage resources.

Distributed file systems differ in their performance, mutability of content, handling of concurrent writes, handling of permanent or temporary loss of nodes or storage, and their policy of storing content.

Locally managed[edit]

Client Written in License Access API
Alluxio (Virtual Distributed File System) Java Apache License 2.0 HDFS, FUSE, HTTP/REST, S3

GPLv2 client

Ceph C++ LGPL librados (C, C++, Python, Ruby), S3, Swift, FUSE
GlusterFS C GPLv3 libglusterfs, FUSE, NFS, SMB, Swift, libgfapi
Infinit[2] C++ Proprietary (to be open sourced)[3] FUSE, Installable File System, NFS/SMB, POSIX, CLI, SDK (libinfinit)
Isilon OneFS C/C++ Proprietary POSIX, NFS, SMB/CIFS, HDFS, HTTP, FTP, SWIFT Object, CLI, Rest API
ObjectiveFS[4] C Proprietary POSIX, FUSE
Quantcast File System C Apache License 2.0 C++ client, FUSE (C++ server: MetaServer and ChunkServer are both in C++)
Spectrum Scale (GPFS) C, C++ Proprietary POSIX, NFS, SMB, Swift
LizardFS C++ GPLv3 POSIX, FUSE, NFS-Ganesha, Ceph FSAL (via libcephfs)
Lustre C GPLv2 POSIX, liblustre, FUSE
MapR-FS C, C++ Proprietary POSIX, NFS, FUSE, S3
OpenAFS C IBM Public License Virtual file system, Installable File System
OpenIO[5] C AGPLv3 / LGPLv3 Native (Python, C, Java), HTTP/REST, S3, Swift, FUSE (POSIX, NFS, SMB, FTP)
PanFS C, C++ Proprietary DirectFlow, POSIX, NFS, SMB/CIFS, HTTP, CLI
SeaweedFS Go, Java Apache License 2.0 HTTP (REST), POSIX, FUSE, S3
scality C Proprietary fuse, NFS file system, rest, AWS S3
Tahoe-LAFS Python GNU GPL 2+ and other[6] HTTP (browser or CLI), SFTP, FTP, FUSE via SSHFS, pyfilesystem
HDFS Java Apache License 2.0 Java and C client, HTTP
XtreemFS Java, C++ BSD License libxtreemfs (Java, C++), FUSE
Ori[7] C, C++ MIT libori, FUSE

Remote access[edit]

Name Run by Access API
Google Cloud Storage Google HTTP (REST)
SWIFT (part of OpenStack) Rackspace, Hewlett-Packard, others HTTP (REST)
Microsoft Azure Microsoft HTTP (REST)
Cleversafe Cleversafe HTTP (REST)


Some researchers have made a functional and experimental analysis of several distributed file systems including HDFS, Ceph, Gluster, Lustre and old (1.6.x) version of MooseFS, although this document is over 4 years old and a lot of information may be outdated (e.g. MooseFS has at the time of writing this stable 2.0 and beta 3.0 version and HA for Metadata Server - since 2.0 and it is not mentioned in this document).[8]

The cloud based remote distributed storage from major vendors have different APIs and different consistency models.[9]

See also[edit]


  1. ^ "FRAUNHOFER FS (FhGFS) END USER LICENSE AGREEMENT". Fraunhofer Society. 2012-02-22.
  2. ^ "The Infinit Storage Platform".
  3. ^ "Infinit's Open Source Projects".
  4. ^ "ObjectiveFS official website".
  5. ^ "OpenIO SDS Documentation".
  6. ^ "About Tahoe-LAFS".
  7. ^ "Ori: A Secure Distributed File System".
  8. ^ Séguin, Cyril; Depardon, Benjamin; Le Mahec, Gaël. "Analysis of Six Distributed File Systems" (PDF). HAL.
  9. ^ "Data Consistency Models of Public Cloud Storage Services: Amazon S3, Google Cloud Storage and Windows Azure Storage". SysTutorials. Retrieved 19 June 2017.