Navigation
πŸ’Ύ Data & StorageΒ· 10 min read

Parallel File Systems

Lustre, GPFS/Spectrum Scale β€” metadata performance, striping, and tuning for training data reads vs checkpoint writes.

lustregpfsparallel-filesystemstripingmetadatastorage

Parallel file systems (Lustre, GPFS) are the backbone of on-prem AI clusters β€” providing high-bandwidth shared storage for training data and checkpoints. Understanding their architecture is essential for avoiding I/O bottlenecks.


1. Why Parallel File Systems

Storage Tiers

Standard NFS can’t handle AI workloads:

RequirementNFSParallel FS (Lustre/GPFS)
Aggregate bandwidth1-10 GB/s100+ GB/s
Concurrent clientsTensThousands
File stripingNoYes (data across many servers)
Metadata scalabilitySingle serverDistributed metadata

2. Lustre Architecture

Clients (compute nodes with GPUs)
  ↕
Network (InfiniBand / Ethernet)
  ↕
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  MDS (Metadata Servers)                 β”‚
β”‚  File names, directories, permissions   β”‚
β”‚  Stripe layout (which OSTs hold data)   β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚  OSS/OST (Object Storage Servers/Targets)β”‚
β”‚  OST 0: [data blocks]                  β”‚
β”‚  OST 1: [data blocks]                  β”‚
β”‚  ...                                    β”‚
β”‚  OST N: [data blocks]                  β”‚
β”‚  (each OST is a RAID group or NVMe pool)β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Striping

A single file is split across multiple OSTs β€” enabling parallel reads:

File: training_data_shard_042.bin (256 MB)
  Stripe size: 1 MB
  Stripe count: 4 OSTs

  OST 0: MB 0, 4, 8, 12, ...
  OST 1: MB 1, 5, 9, 13, ...
  OST 2: MB 2, 6, 10, 14, ...
  OST 3: MB 3, 7, 11, 15, ...

  Read bandwidth: 4Γ— single OST bandwidth

Tuning for AI Workloads

WorkloadAccess patternOptimal tuning
Training data readLarge sequential readsWide striping (stripe_count=8-16), large stripe_size (4 MB)
Checkpoint writeBurst parallel writesWide striping, dedicated OSTs for checkpoints
Small file accessRandom reads (configs, scripts)Narrow striping (stripe_count=1), small stripe_size
# Set striping for training data directory
lfs setstripe -c 8 -S 4M /lustre/training_data/

# Set striping for checkpoints
lfs setstripe -c 16 -S 1M /lustre/checkpoints/

# Check current striping
lfs getstripe /lustre/training_data/shard_042.bin

3. GPFS/Spectrum Scale

IBM’s parallel file system β€” similar concepts, different implementation:

FeatureLustreGPFS
MetadataSeparate MDS serversDistributed across all nodes
StripingOST-basedDisk-based (NSDRAID)
Small filesWeak (MDS bottleneck)Better (distributed metadata)
SnapshotsLimitedBuilt-in
Best forLarge sequential I/OMixed workloads

4. Common Problems and Fixes

ProblemSymptomFix
MDS overloadls is slow, file create stallsReduce small file count, use fewer directories
OST imbalanceSome OSTs full, others emptyRebalance with lfs migrate, check stripe policy
Checkpoint stormAll GPUs write simultaneously β†’ saturateStage to local NVMe, async flush to Lustre
Metadata stormThousands of workers open() simultaneouslyPre-compute file lists, use streaming datasets

For cloud-based alternatives, see Cloud Object Storage. For checkpoint-specific design, see Checkpoint Storage Design.


Self-Check

  • Draw Lustre architecture (MDS + OSS/OST + clients)
  • Explain striping and calculate read bandwidth for a given stripe count
  • Choose striping parameters for training data vs checkpoints
  • Diagnose MDS overload and propose fixes
  • Compare Lustre vs GPFS for mixed AI workloads

References