volume is composed by nodes (servers). Each node contains several local
filesystems, called storage bricks. Bricks are usually identified by
Types of volume
the requirement of the user, GlusterFS supports different types of volumes:
is the default volume option. The files are distributed across the bricks of
the volume. A single file is stored entirely on a brick. This option ensures
the volume to be easily scaled but doesn’t support data redundancy. A failure will
lead to the loss of data.
this option ensures data redundancy and reliability, thus if one brick fails
data can be still accessed. The copies of files are maintained on all bricks.
The user decides the number of replicas, for example to create a volume with 2
replicas we need at least two bricks.
and replicated: it’s a combination of the previous options. The data are
distributed across the bricks of the volume and for each brick there is at least
one replicated brick of it. This option ensures data redundancy and
large files are divided in chunks and spread in different bricks. This
technique reduces the high amount of work for a single brick. In case of
failure of a brick, the chunk will be lost and the file cannot be recovered.
and striped: the files are spread across the bricks and are divided into
turn user commands into storage commands understandable by the system. It can
modify, intercept, clock or spawn new requests.
Types of Translators
loads and stores data from local file system
provides interfaces and statistics for errors and debugging
handles distribution and replication of data
provides encryption/decryption of stored data
handles client/server communication protocols
provides tuning options to adjust for workload and I/O profiles
provides tools to add extensibility
provides interfaces with file system access control
provides schedulers for I/O operation
adds additional features such as quotas, filters, locks
translators can be divided into categories:
Translators: include DHT (Distributed Hash Table) and AFR (Automatic File
Translators: include io-cache, io-threads, md-cache, O-B (open behind), QR
(quick read), r-a (read-ahead), w-b (write-behind)
Translators: include changelog, locks, marker, quota
Translators: include trace, io-stat.
Distributed Hash Table
capacity and performance across nodes in a volume through the implementation of
DHT. DHT is a routing function, it precisely places a file in a brick, unlike
either replication (which places copies on all its brick) or striping (which
places chunks onto all its bricks).
provides Geo-replication, that ensures replication of data across
geographically distinct locations. It usually works across WAN and is used to
replicate asynchronously an entire volume, using a master-slave model. Replication
occurs between master (GlusterFS volume) and slave (either a GlusterFS volume
or a local directory).This is useful for backup of data in case of failures.