GlusterFS is a distributed file system, the memory elements are presented as a single file system from a plurality of servers or nodes. The various servers even nodes, form a client-server architecture over TCP / IP. A distinctive feature from NAS systems is that, a redundant connection of storage devices over TCP / IP is possible. The data on all the cluster nodes can be read and written at the same time, all changes will be implemented immediately to the files on all servers.
Basics of GlusterFS
The file system is a FUSE kernel module and is integrated by POSIX support-enabled operating systems; such as Linux, FreeBSD, OpenSolaris and OS X. To start a server with GlusterFS, a kernel module is not required. A server can be both client and server at the same time.
The development of GlusterFS began in mid-2005 by the GlusterOS Development Team, a first release of the file system was released in July 2006. GlusterFS is available under the GPL license version 3. The developers are offered paid support. At the end of 2011 GlusterFS was acquired by Red Hat for USD 136 million. In June 2012, Red Hat Storage Server was announced as a commercially-supported integration of GlusterFS with Red Hat Enterprise Linux.
Design of GlusterFS
GlusterFS is simply a scale-out network-attached storage file system. It has found applications in cloud computing, streaming media services and content delivery networks. GlusterFS has a modular design and supports multiple modes of operation:
- Standalone Storage (like NFS ) : a single server, which provides the file system over the network
- Distributed Storage : multiple servers that store the data distributed among themselves and provide these clients
- Replicated Storage : multiple servers that store the data mirrored to each other and provide these clients
- Distributed Replicated Storage : multiple servers that store the data among themselves distributed and mirrored
- Striped Storage : multiple servers, in which the data is striped to provide higher performance and disk IO bandwidth
- Cloud / HPC Storage : Distributed Replicated Storage
- NFS-like standalone storage server 2 : similar standalone storage, it is more than just a file system provided
- Aggregating Storage Servers : three servers that provide a unified file system using Unify, without redundancy
GlusterFS uses a modular design, so that all the described functions can be mapped with few components. The components are data partitions (volumes), transport groups and translators. The translators provide the opportunity to expand the file system functions, in particular whether it should communicate via Infiniband, TCP or a mixture of both, which physical partitions or directories to be included and which RAID level to use. To illustrate the modular concept, a ROT13 translators exists to “encrypt” the file system.
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
Under GNU/Linux OS, we can start GlusterFS through the
/etc/rc.local script. If we have installed from RPM or DEB like package, we can start through
init.d scripts as well.