GlusterFS

GlusterFS aggregates storage from multiple servers into one namespace. Its distinguishing choice is that it has no separate metadata server — file location is derived algorithmically from a hash of the pathname, so any node can determine where a file lives without asking anything.

The other notable property is that files are stored whole, on ordinary filesystems. A file in a Gluster volume is a real file on some brick’s XFS or ext4, readable directly.

Why storing files whole matters

This is the property that made Gluster easy to trust. If the cluster fails catastrophically, the data is still there as files on normal filesystems, recoverable with cp. There is no proprietary chunk format to reassemble and no metadata database whose loss makes the data unreadable.

Compare Ceph or Lustre, where a file is chunks distributed across object servers and recovery without a functioning cluster is not a realistic proposition. For anyone who has had to recover data from a broken storage system, this is worth a great deal.

The cost is the flip side: no striping means single-file throughput is bounded by one server. A large file read by many clients does not benefit from the cluster’s aggregate bandwidth, which rules it out for the parallel I/O that HPC workloads need.

Where it stands

Gluster suits many-medium-files workloads — shared application storage, home directories, container volumes — where simplicity and recoverability matter more than peak throughput.

Its position has weakened considerably. Red Hat’s investment moved to Ceph, development has slowed, and for most cases where Gluster would have been chosen the answer is now Ceph or a cloud object store. I would not start with it for something new.

Two operational notes if it is already in place. Small files perform poorly, because every operation involves hashing and possibly contacting multiple nodes, and the per-file overhead dominates. And split-brain in replicated volumes — two copies diverging after a partition — requires manual resolution; the tooling helps and it is not automatic, and it is the failure mode that generates real work.

See also: Ceph, BeeGFS, Lustre, and HPC.