// Deep Dive Β· HPC Storage

Lustre Parallel Filesystem

πŸ“… Updated: June 2026⏱ 8 min read🏷 Storage Β· I/O Β· Parallel Filesystem
MDTOSTStripingPOSIXlfsHSMDNE

What is Lustre?

Lustre is the world's most widely deployed parallel distributed filesystem for HPC. It powers the storage systems of the majority of TOP10 supercomputers β€” including Frontier, Perlmutter, and Summit β€” delivering aggregate I/O throughput in the terabytes per second range to hundreds of thousands of simultaneous clients.

Originally developed by Cluster File Systems and now maintained by the Lustre community (with major contributions from DDN, HPE, and Intel), Lustre is open-source (GPL) and POSIX-compliant, meaning existing applications work without modification.

// Scale in production

Frontier at ORNL runs a Lustre filesystem providing 700 PB of storage and over 5 TB/s of aggregate I/O bandwidth β€” feeding 9,408 compute nodes simultaneously. This is what "parallel filesystem" means at scale.

Architecture: MDT, OST, and Clients

Lustre separates metadata from data β€” a fundamental design decision enabling independent scaling of both:

ComponentFull nameStoresTypical count
MGSManagement ServerFilesystem configuration1 (often co-located with MDT)
MDS / MDTMetadata Server / TargetFilenames, directories, permissions, layout info1–hundreds (DNE)
OSS / OSTObject Storage Server / TargetActual file data in fixed-size objectsTens to thousands
ClientLustre client (kernel module)Nothing β€” mounts the filesystemThousands of compute nodes

When a client writes a file, Lustre stores the file's data stripes across multiple OSTs in parallel. The MDT only stores the layout (which OSTs hold which stripes) β€” the actual data transfer goes directly between client and OSTs over the high-speed interconnect.

Striping β€” The Key to Performance

Striping distributes a file's data across multiple OSTs, allowing parallel I/O from all nodes accessing that file simultaneously. The two critical parameters are:

# View stripe settings of a file or directory lfs getstripe /scratch/myproject/bigfile.dat # Set striping before writing a large file (32 OSTs, 4MB chunks) lfs setstripe -c 32 -S 4M /scratch/myproject/bigfile.dat # Set default striping for all new files in a directory lfs setstripe -c 16 -S 2M /scratch/myproject/ # Check filesystem status: OST usage and availability lfs df -h /scratch # Find files on a specific OST (useful for rebalancing) lfs find /scratch/myproject --ost 0003
// Striping rules of thumb

For files smaller than 1 GB: stripe_count=1 (default). For files 1–100 GB: stripe_count=4–8. For files over 100 GB or frequently accessed by many nodes: stripe_count=16–64. Never stripe small files widely β€” metadata overhead dominates.

Distributed Namespace (DNE)

Early Lustre had a single MDS β€” a metadata bottleneck for workloads creating millions of files. DNE (Distributed Namespace Extension) introduced in Lustre 2.4 allows multiple MDTs, with directories spread across them. This dramatically increases metadata throughput for workloads like ML training that create massive numbers of small image files.

HSM β€” Hierarchical Storage Management

Lustre HSM enables automatic tiering between fast disk and slow tape. Frequently accessed data stays on the parallel filesystem; infrequently accessed data is transparently migrated to tape archives. When needed, it is recalled automatically on access β€” transparent to the application.

Parallel Filesystem Comparison

FilesystemVendorStrengthsCommon deployment
LustreOpen-source / DDNHighest throughput, TOP500 dominance, open-sourceNational labs, universities, most HPC centers
GPFS / Spectrum ScaleIBMPOSIX, strong consistency, multi-protocolIBM-heavy enterprises, some national labs
DAOSIntel / open-sourceObject store, NVMe-native, low latencyFrontier (alongside Lustre), next-gen systems
BeeGFSThinkParQEasy deployment, good for mid-scaleUniversity clusters, AI labs
WekaFSWEKAFlash-optimized, cloud-nativeAI/ML clusters, hybrid cloud HPC

Best Practices for Users

Key Takeaways