|Developer(s)||Red Hat, Inc.|
|Stable release||3.3.1 / 16 October 2012|
|Preview release||3.4 alpha / 13 February 2012|
|Operating system||Linux, Mac OS X, NetBSD, FreeBSD, OpenSolaris|
|Type||Distributed file system|
|License||GNU General Public License v3|
GlusterFS is a scale-out NAS file system. It is free software, with some parts licensed under the GNU GPL v3 while others are dual licensed under either GPL v2 or the LGPL v3. It aggregates various storage servers over Ethernet or Infiniband RDMA interconnect into one large parallel network file system. GlusterFS is based on a stackable user space design. It has found a variety of applications including cloud computing, streaming media services, and content delivery networks. GlusterFS was developed originally by Gluster, Inc., then by Red Hat, Inc., after their purchase of Gluster in 2011.
GlusterFS has a client and server component. Servers are typically deployed as storage bricks, with each server running a glusterfsd daemon to export a local file system as a volume. The glusterfs client process, which connects to servers with a custom protocol over TCP/IP, InfiniBand or SDP, creates composite virtual volumes from multiple remote servers using stackable translators. By default, files are stored whole, but striping of files across multiple remote volumes is also supported. The final volume may then be mounted by the client host using its own native protocol via the FUSE mechanism, using NFS v3 protocol using a built-in server translator, or accessed via gfapi client library. Native-protocol mounts may then be re-exported e.g. via the kernel NFSv4 server, SAMBA, or the object-based OpenStack Storage (Swift) protocol using the "UFO" (Unified File and Object) translator.
Most of the functionality of GlusterFS is implemented as translators, including:
- File-based mirroring and replication
- File-based striping
- File-based load balancing
- Volume failover
- Scheduling and disk caching
- Storage quotas
The GlusterFS server is intentionally kept simple: it exports an existing directory as-is, leaving it up to client-side translators to structure the store. The clients themselves are stateless, do not communicate with each other, and are expected to have translator configurations consistent with each other. GlusterFS relies on an elastic hashing algorithm, rather than using either a centralized or distributed metadata model. With version 3.1 and later of GlusterFS, volumes can be added, deleted, or migrated dynamically, helping to avoid configuration coherency problems, and allowing GlusterFS to scale up to several petabytes on commodity hardware by avoiding bottlenecks that normally affect more tightly-coupled distributed file systems.
Academic references 
See also 
- Distributed file system
- List of file systems, the distributed parallel fault-tolerant file system section
- Comparison of distributed file systems
- Fraunhofer Parallel File System (FhGFS)
- Noronha, Ranjit; Panda, Dhabaleswar K (9–12 September 2008). ""IMCa: A High Performance Caching Front-End for GlusterFS on InfiniBand". 37th International Conference on Parallel Processing, 2008. ICPP '08.. IEEE. doi:10.1109/ICPP.2008.84. http://nowlab.cse.ohio-state.edu/publications/conf-papers/2008/noronha-icpp08.pdf. Retrieved 14 June 2011.
- Kwidama, Sevickson (2007-2008), Streaming and storing CineGrid data: A study on optimization methods (PDF), University of Amsterdam System and Network Engineering, retrieved 10 June 2011
- Klaver, Jeroen; van der Jagt, Roel (14 July 2010), Distributed file system on the SURFnet network Report (PDF), University of Amsterdam System and Network Engineering, retrieved 9 June 2012