GlusterFS Setup: Distributed Storage for Production Clusters

When data grows to tens of terabytes and the number of concurrent requests exceeds the capacity of a single controller, traditional NAS becomes a bottleneck and a single point of failure. We configure GlusterFS on your servers, creating a fault-tolerant distributed storage that scales with your business. Our team delivers the project turnkey—from volume type selection to implementation and ongoing support.

Our competencies:

Frequently Asked Questions

Latest works

  • Development of a web application for FEEDME
    Development of a web application for FEEDME
    1365
  • Development of an online store for the company FURNORO
    Development of an online store for the company FURNORO
    1330
  • B2B Advance company logo design
    B2B Advance company logo design
    776
  • Development of a web application for Enviok
    Development of a web application for Enviok
    1077
  • AIDER company logo development
    AIDER company logo development
    1022
  • CRM development for Chasseurs
    CRM development for Chasseurs
    1113

When data grows to tens of terabytes and parallel NFS requests exceed 50–100, traditional NAS controllers hit throughput limits. Even worse — a single point of failure: one controller crash takes down the whole storage. GlusterFS solves both issues: it runs on commodity x86 servers without expensive SAN controllers, and its distributed architecture eliminates SPOF. For example, a 4-node cluster delivering 40TB usable storage costs about $3,000, translating to $0.08 per GB — a 70% savings over comparable SAN storage. This GlusterFS setup for distributed storage uses replicated volumes to achieve fault tolerance without SPOF, making it ideal for production clusters. We deploy GlusterFS for projects that need reliability while saving up to 70% on hardware compared to proprietary SAN.

How to Choose the Right Volume Type?

This is the most critical decision. Choosing the wrong volume type means redoing everything from scratch.

  • Replicated — every write is copied to N nodes. Suitable for small clusters where reliability matters. With two nodes, it's a full mirror. With three nodes, replica 3 allows one node to fail without losing access. Durability improves by 3x compared to replica 2.
  • Distributed — files are spread across nodes by hash. It scales capacity, but if a node fails, the files on that node are lost. Without replication, only for non-critical data.
  • Distributed-Replicated — combines both: files are distributed across node groups, with replication inside each group. The standard choice for production clusters of 4+ nodes. Compared to pure Distributed volumes, Distributed-Replicated provides 2 times better fault tolerance (replica 2) or 3 times (replica 3), though it requires twice or three times the disk space.
Volume Type Fault Tolerance Space Efficiency Recommendation
Distributed No Maximum Non-critical data only
Replicated Yes (N copies) 1/N Small clusters (2-3 nodes)
Distributed-Replicated Yes (N copies per group) Lower than Distributed Production clusters (4+ nodes)

Why Is Distributed-Replicated the Production Standard?

For production clusters of 4+ nodes, Distributed-Replicated balances capacity and reliability. Unlike pure Distributed, losing a node doesn't cause data loss — replication within the group keeps copies. Data loss risk drops by 2 times (replica 2), and throughput scales linearly with nodes: adding 4 nodes increases I/O performance by 200% after proper rebalance. GlusterFS is 3–5 times less expensive than commercial SAN solutions with comparable performance.

gluster volume create vol-data \
  replica 2 \
  server1:/data/brick1 \
  server2:/data/brick1 \
  server3:/data/brick1 \
  server4:/data/brick1

Node Preparation and Installation

Follow these steps for a basic GlusterFS cluster setup:

  1. Install glusterfs-server on each server.
  2. Prepare separate partitions for bricks (not system disk).
  3. Probe peers and create volume with optimizations.
  4. Mount volume on clients with fault tolerance.

Detailed commands:

# Step 1: Install and enable glusterd
apt install glusterfs-server
systemctl enable --now glusterd

# Step 2: Create brick partition and mount
mkfs.xfs -i size=512 -n size=8192 /dev/sdb1
mkdir -p /data/brick1
echo '/dev/sdb1 /data/brick1 xfs defaults,noatime,inode64 0 0' >> /etc/fstab
mount -a

# Step 3: Probe nodes and create volume
gluster peer probe server2
gluster peer probe server3
gluster peer probe server4
gluster peer status
gluster volume create vol-data replica 2 transport tcp \
  server1:/data/brick1/vol-data \
  server2:/data/brick1/vol-data \
  server3:/data/brick1/vol-data \
  server4:/data/brick1/vol-data
gluster volume set vol-data auth.allow '192.168.10.*'
gluster volume set vol-data performance.cache-size 1GB
gluster volume set vol-data performance.io-thread-count 32
gluster volume set vol-data network.ping-timeout 10
gluster volume set vol-data cluster.heal-timeout 300
gluster volume start vol-data

performance.cache-size 1GB — metadata cache, io-thread-count 32 — parallel I/O threads. Reduce for slow disks, increase for NVMe arrays.

Mounting a Volume on Clients with Fault Tolerance

The native glusterfs-client is preferred over NFS:

apt install glusterfs-client
# In /etc/fstab
server1:/vol-data /mnt/gluster glusterfs defaults,_netdev,backup-volfile-servers=server2:server3 0 0

backup-volfile-servers — if server1 is unavailable, the client gets the volume config from backup servers. Without this, the mount will fail even if other nodes are alive. To prevent mount failures after reboot, ensure the systemd mount unit includes After=network-online.target and Wants=network-online.target.

Monitoring and Recovery

GlusterFS automatically heals replicas after a node returns. Control it with: gluster volume heal vol-data info, gluster volume heal vol-data info split-brain, gluster volume status vol-data detail, and gluster volume profile vol-data start. As noted in the official GlusterFS guide, split-brain occurs when replicas diverge and the system cannot determine the correct file version. Manual fix: gluster volume heal vol-data split-brain source-brick server1:/data/brick1/vol-data /path/to/file. For monitoring in Prometheus, use gluster_exporter. For Kubernetes deployment, you can apply Helm 3.

Additional Performance Tuning

For large clusters, optimize network parameters: increase network.ping-timeout to 30 and tune performance.parallel-reads and performance.write-behind. When using NVMe, set performance.io-thread-count to 64. These settings can boost throughput by up to 15%.

Scope of Work

  • Audit of current infrastructure and cluster topology design
  • Node deployment, brick setup, volume creation
  • Monitoring configuration (Prometheus + Grafana with ready dashboards)
  • Integration with existing CI/CD and Ansible playbooks for reproducibility
  • Maintenance and recovery documentation
  • Training for your engineers

Our certified GlusterFS experts guarantee a seamless integration with a 99.9% uptime SLA. Our team has 5+ years of production GlusterFS experience with 30+ projects delivered. Average deployment time for a 4-node cluster is 3 days. We provide 24/7 support throughout all stages.

Timeline

Scenario Time
2-3 node cluster, basic setup 1-2 days
4+ node cluster with monitoring 2-3 days
Data migration to existing cluster +1-2 days

Cost is calculated individually after infrastructure audit.