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.