Object-Based Architecture in Lustre

How It Works


Lustre's object-based architecture treats files as logical objects distributed across Object Storage Targets (OSTs), rather than traditional blocks. Each file is divided into fixed-size objects (typically 1 MB), identified by a unique File ID (FID) and Object ID (OID). Metadata Servers (MDS/MDTs) manage file namespaces and layouts, while Object Storage Servers (OSS/OSTs) handle data I/O. This isolates clients from physical storage details, enabling seamless upgrades, parallel access from thousands of clients, and scalability to exabytes. Clients request objects via the Lustre client module, which communicates over LNet for RDMA-optimized transfers.

History


Introduced in Lustre 1.0 (2003) as part of the original design from Carnegie Mellon University, evolving from the Object-Based Disk Filesystem (OBDFS) prototype. Enhanced in Lustre 2.x series (2010 onward) with improved ldiskfs (performance-enhanced ext4) and ZFS backends for better integrity and larger scales (up to 8 EiB per file in ZFS). By 2025 (Lustre 2.16), it supports hybrid NVMe/HDD tiers in exascale deployments like Frontier's Orion filesystem (700 PB capacity).

Examples


Basic Object Verification


To inspect an object's FID on a client:

Output: `#0x2000004000000001:0x1:0x0` (MDS OID:SEQ:objid).

Scaling Storage Upgrade


In a cluster, add OSTs without downtime:
1. On OSS: `mkfs.lustre --ost --backfstype=ldiskfs /dev/sdX /mnt/ost`
2. On MGS: `lfs addost myfs /mnt/ost`
3. Clients auto-detect via configuration replay.

This enables non-disruptive expansion, as seen in AWS FSx for Lustre upgrades.