Free — no signup required

Parallel Filesystems: Lustre & GPFS

2 min read

Speed Through Striping

A standard filesystem is like a single-lane road: all traffic flows through one server, one disk controller, one set of spindles. No matter how wide your GPU cluster is, data arrives through that single lane. Parallel filesystems solve this by turning one road into a hundred-lane highway — every lane carries a piece of your data simultaneously.

Lustre and IBM GPFS (now called Spectrum Scale) are the two dominant parallel filesystems in HPC and AI supercomputing environments. They are the storage backbone of most national labs, university clusters, and large-scale AI training facilities.

How Striping Works

When you save a 100 GB file on Lustre, the filesystem doesn't write it to one disk. It breaks the file into fixed-size chunks (called stripe units, typically 1–4 MB each) and distributes those chunks across many Object Storage Targets (OSTs) — each OST is a separate physical disk or RAID group.

File: dataset.tar (100 GB)
Stripe size: 1 MB
Stripe count: 100 OSTs

Chunk 1  → OST-001
Chunk 2  → OST-002
Chunk 3  → OST-003
...
Chunk 100 → OST-100
Chunk 101 → OST-001  (wraps around)

When a training job reads dataset.tar, Lustre issues parallel read requests to all 100 OSTs simultaneously. If each OST delivers 500 MB/s, the aggregate throughput is 50 GB/s for a single file read. This is why Lustre is used in GPU supercomputers.

The Metadata Server (MDS) is a separate component that tracks where every chunk lives. It handles open(), stat(), readdir() — the bookkeeping operations. This is also Lustre's Achilles heel: the MDS is a single point of coordination. Under heavy small-file workloads, the MDS becomes the bottleneck, and under failure, the entire filesystem stalls.

Stripe count and size are configured per-directory before writing with lfs setstripe, and lfs getstripe reports the current settings (stripe count, stripe size, and offset) for any file or directory.

Trade-offs at a glance:

Property Lustre/GPFS Standard NFS
Throughput 10–100+ GB/s 1–5 GB/s
POSIX compliance Yes Yes
Cost High (hardware + ops) Low
Operational complexity High Low
Failure blast radius High (MDS failure = cluster down) Medium

Senior engineers know that Lustre's stripe count should be tuned per workload. A large sequential read (video frames) benefits from high stripe counts. A workload with many small random reads (metadata-heavy) can actually perform worse with high stripe counts because the coordination overhead exceeds the parallelism benefit.

This is one of 18 chapters

Every chapter is free — Kubernetes, Terraform, SRE, distributed systems, and more — with fast daily review built in.

Sign up free