File Striping in Lustre

How It Works


File striping distributes file data across multiple OSTs in a RAID-0-like manner, configurable per file or directory. A stripe layout specifies count (number of OSTs), size (object size, e.g., 1 MB), and index (starting OST). Clients read/write in parallel, balancing load and maximizing bandwidth (up to 20 TB/s aggregate). Metadata defines the layout; I/O is handled via lockless DLM (Distributed Lock Manager) for concurrency.

History


Core feature since Lustre 1.0 (2003), with defaults evolving: stripe count up to 2000 in Lustre 2.13 (2017). Enhanced in 2.15 (2023) for AI workloads with dynamic balancing. As of 2025 (2.16), integrates with PFL for adaptive striping in cloud services like Azure Managed Lustre.

Examples


Set Striping on Directory


Create a directory striped across 4 OSTs with 4 MB objects:

lfs setstripe -c 4 -S 4m /lustre/dir
mkdir /lustre/dir/data

Files in `/lustre/dir` inherit this layout.

Query Stripe Info


Check a file's layout:

lfs getstripe /path/to/largefile.dat

Output: `lfs: stripe_count: 16 stripe_size: 1048576 stripe_offset: -1`

Useful for HPC simulations writing petabyte datasets.