Comparison of distributed file systems

Source: Wikipedia, the free encyclopedia.

In computing, a

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

FOSS

Client Written in License Access API High availability Shards Efficient Redundancy Redundancy Granularity Initial release year Memory requirements (GB)
Alluxio (Virtual Distributed File System) Java Apache License 2.0
FUSE, HTTP/REST, S3
hot standby No Replication[1] File[2] 2013
Ceph
C++ LGPL librados (C, C++, Python, Ruby), S3, Swift, FUSE Yes Yes Pluggable erasure codes[3] Pool[4] 2010 1 per TB of storage
Coda C GPL C Yes Yes Replication Volume[5] 1987
GlusterFS
C GPLv3 libglusterfs, FUSE, NFS, SMB, Swift, libgfapi mirror Yes Reed-Solomon[6] Volume[7] 2005
HDFS
Java Apache License 2.0 Java and C client, HTTP, FUSE[8] transparent master failover No Reed-Solomon[9] File[10] 2005
IPFS
Go Apache 2.0 or MIT HTTP gateway, FUSE, Go client, Javascript client, command line tool Yes with IPFS Cluster Replication[11] Block[12] 2015[13]
JuiceFS Go Apache License 2.0
HDFS, S3
Yes Yes Reed-Solomon Object 2021
Kertish-DFS Go GPLv3 HTTP(REST), CLI, C# Client, Go Client Yes Replication 2020
LizardFS C++ GPLv3 master No Reed-Solomon[14] File[15] 2013
Lustre C GPLv2 Yes Yes No redundancy[16][17] No redundancy[18][19] 2003
MinIO Go AGPL3.0 AWS S3 API, FTP, SFTP Yes Yes Reed-Solomon[20] Object[21] 2014
MooseFS C GPLv2
POSIX, FUSE
master No Replication[22] File[23] 2008
OpenAFS C IBM Public License Virtual file system, Installable File System Replication Volume[24] 2000[25]
OpenIO[26] C AGPLv3 / LGPLv3 Native (
Swift, FUSE (POSIX, NFS, SMB, FTP
)
Yes Pluggable erasure codes[27] Object[28] 2015 0.5
Ori[29] C, C++ MIT libori, FUSE Replication Filesystem[30] 2012
Quantcast File System C Apache License 2.0 C++ client, FUSE (C++ server: MetaServer and ChunkServer are both in C++) master No Reed-Solomon[31] File[32] 2012
RozoFS C, Python GPLv2 FUSE, SMB, NFS, key/value Yes Mojette[33] Volume[34] 2011[35]
SeaweedFS Go, Java Apache License 2.0 HTTP (
HDFS
requires CockroachDB, undocumented config Reed-Solomon[36] Volume[37] 2015
Storj Go Apache License 2.0,
Affero General Public License
v3
HTTP (REST), S3, Native (Go, C, Python, Java) Yes Reed-Solomon[38] Object[38] 2018
Tahoe-LAFS Python
GNU GPL[39]
HTTP (browser or CLI), SFTP, FTP, FUSE via SSHFS, pyfilesystem Reed-Solomon[40] File[41] 2007
XtreemFS Java, C++ BSD License libxtreemfs (Java, C++), FUSE Replication[42] File[43] 2009

Proprietary

Client Written in License Access API
BeeGFS C / C++ FRAUNHOFER FS (FhGFS) EULA,[44]

GPLv2 client

POSIX
ObjectiveFS[45] C Proprietary
POSIX, FUSE
Spectrum Scale (GPFS) C, C++ Proprietary
HDFS
MapR-FS C, C++ Proprietary
POSIX, NFS, FUSE, S3, HDFS
, CLI
PanFS C, C++ Proprietary
HTTP, CLI
Infinit[46] C++ Proprietary (to be open sourced)[47]
SDK
(libinfinit)
Isilon OneFS C/C++ Proprietary
FTP, SWIFT Object, CLI
, Rest API
Qumulo C/C++ Proprietary
SMB/CIFS, CLI, S3
, Rest API
Scality C Proprietary
AWS S3
Quobyte Java, C++ Proprietary , Rest API

Remote access

Name Run by Access API
Amazon S3
Amazon.com
HTTP (REST/SOAP)
Google Cloud Storage Google HTTP (REST)
SWIFT (part of OpenStack)
Rackspace, Hewlett-Packard
, others
HTTP (REST)
Microsoft Azure Microsoft HTTP (REST)
IBM Cloud Object Storage
Cleversafe)[48]
HTTP (REST)

Comparison

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 from 2013 and a lot of information are outdated (e.g. MooseFS had no HA for Metadata Server at that time).[49]

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

See also

References

  1. ^ "Caching: Managing Data Replication in Alluxio".
  2. ^ "Caching: Managing Data Replication in Alluxio".
  3. ^ "Erasure Code Profiles".
  4. ^ "Pools".
  5. ^ Satyanarayanan, Mahadev; Kistler, James J.; Kumar, Puneet; Okasaki, Maria E.; Siegel, Ellen H.; Steere, David C. "Coda: A Highly Available File System for a Distributed Workstation Environment" (PDF). {{cite journal}}: Cite journal requires |journal= (help)
  6. ^ "Erasure coding implementation". GitHub. 2 November 2021.
  7. ^ "Setting up GlusterFS Volumes".
  8. ^ "MountableHDFS".
  9. ^ "HDFS-7285 Erasure Coding Support inside HDFS".
  10. ^ "Apache Hadoop: setrep".
  11. ^ Erasure coding plan: "Reed-Solomon layer over IPFS #196". GitHub., "Erasure Coding Layer #6". GitHub.
  12. ^ "CLI Commands: ipfs bitswap wantlist".
  13. ^ "Why The Internet Needs IPFS Before It's Too Late". 4 October 2015.
  14. ^ "Configuring Replication Modes".
  15. ^ "Configuring Replication Modes: Set and show the goal of a file/directory".
  16. ^ "Lustre Operations Manual: What a Lustre File System Is (and What It Isn't)".
  17. ^ Reed-Solomon in progress: "LU-10911 FLR2: Erasure coding".
  18. ^ "Lustre Operations Manual: Lustre Features".
  19. ^ File-level redundancy plan: "File Level Redundancy Solution Architecture".
  20. ^ "MinIO Erasure Code Quickstart Guide".
  21. ^ "MinIO Storage Class Quickstart Guide". GitHub.
  22. ^ Only available in the proprietary version 4.x "[feature] erasure-coding #8". GitHub.
  23. ^ "mfsgoal(1)".
  24. ^ "Replicating Volumes (Creating Read-only Volumes)".
  25. ^ "OpenAFS".
  26. ^ "OpenIO SDS Documentation". docs.openio.io.
  27. ^ "Erasure Coding".
  28. ^ "Declare Storage Policies".
  29. ^ "Ori: A Secure Distributed File System".
  30. ^ Mashtizadeh, Ali Jose; Bittau, Andrea; Huang, Yifeng Frank; Mazières, David. "Replication, History, and Grafting in the Ori File System" (PDF). {{cite journal}}: Cite journal requires |journal= (help)
  31. ^ "The Quantcast File System" (PDF).
  32. ^ "qfs/src/cc/tools/cptoqfs_main.cc". GitHub. 8 December 2021.
  33. ^ "About RozoFS: Mojette Transform".
  34. ^ "Setting up RozoFS: Exportd Configuration File".
  35. ^ "Initial commit". GitHub.
  36. ^ "Erasure Coding for warm storage". GitHub.
  37. ^ "Replication". GitHub.
  38. ^ a b "Storj: A Decentralized Cloud Storage Network Framework v3.0" (PDF). 30 October 2018.
  39. ^ "About Tahoe-LAFS". GitHub. 24 February 2022.
  40. ^ "zfec -- a fast C implementation of Reed-Solomon erasure coding". GitHub. 24 February 2022.
  41. ^ "Tahoe-LAFS Architecture: File Encoding".
  42. ^ "Under the Hood: File Replication".
  43. ^ "Quickstart: Replicate A File".
  44. ^ "FRAUNHOFER FS (FhGFS) END USER LICENSE AGREEMENT". Fraunhofer Society. 2012-02-22.
  45. ^ "ObjectiveFS official website".
  46. ^ "The Infinit Storage Platform".
  47. ^ "Infinit's Open Source Projects". 13 August 2019.
  48. ^ "IBM Plans to Acquire Cleversafe for Object Storage in Cloud". www-03.ibm.com. 2015-10-05. Retrieved 2019-05-06.
  49. ^ Séguin, Cyril; Depardon, Benjamin; Le Mahec, Gaël. "Analysis of Six Distributed File Systems" (PDF). HAL.
  50. ^ "Data Consistency Models of Public Cloud Storage Services: Amazon S3, Google Cloud Storage and Windows Azure Storage". SysTutorials. 4 February 2014. Retrieved 19 June 2017.