This chapter covers Amazon FSx for Lustre, a fully managed high-performance file system optimized for high-performance computing (HPC) workloads. For the SAA-C03 exam, FSx for Lustre appears in questions about HPC, big data, and machine learning scenarios, typically representing 5-10% of the questions in the High Performance domain (Objective 3.5). You will need to understand its architecture, performance characteristics, integration with S3, and how to choose between its deployment options (Scratch vs. Persistent). This chapter provides the deep technical knowledge required to answer exam questions correctly and avoid common pitfalls.
Jump to a section
Imagine a massive automobile assembly plant that needs to process thousands of custom orders per hour. The plant has a central warehouse (Amazon S3) storing raw materials like engines, tires, and chassis. However, the warehouse is miles away, and retrieving each part takes too long for the assembly line to run efficiently. To solve this, the plant installs a super-fast conveyor belt system (FSx for Lustre) that can fetch parts from the warehouse at blazing speed and deliver them directly to the assembly stations (compute instances). The conveyor belt uses a parallel track system: instead of one slow belt, it uses dozens of belts working simultaneously, each carrying a portion of the load. This is analogous to Lustre's distributed file system, where data is striped across multiple storage servers (Object Storage Targets, OSTs) and accessed via multiple metadata servers (MDSs). When a worker (compute node) needs a file, the conveyor belt's control system (Lustre client) sends a request to the metadata server, which quickly locates the file's location on the belts and directs the worker to the exact track (OST) where the data resides. The worker then reads the file directly from that track, bypassing any central bottleneck. This allows thousands of workers to access different parts of the same file simultaneously, just as Lustre supports concurrent reads/writes from multiple clients. The conveyor belt can also be linked directly to the central warehouse via a high-speed tunnel (S3 data repository integration), enabling automatic data import/export. If the plant needs to process a new set of orders, it can simply pull fresh materials from the warehouse via the tunnel, process them on the assembly line, and ship the finished products back. This mirrors Lustre's ability to lazily import data from S3 on first access and export results back asynchronously. The result is a high-throughput, low-latency data pipeline that can handle the most demanding manufacturing (HPC) workloads.
What is Amazon FSx for Lustre?
Amazon FSx for Lustre is a fully managed, high-performance file system that provides sub-millisecond latencies, millions of IOPS, and hundreds of gigabytes per second of throughput. It is built on the open-source Lustre file system, which is widely used in HPC environments. FSx for Lustre is designed for workloads that require fast access to data, such as genomics, financial modeling, autonomous vehicle simulations, and media processing. It integrates natively with Amazon S3, allowing you to process data stored in S3 with the performance of a parallel file system.
How It Works Internally
FSx for Lustre uses a distributed architecture based on the Lustre parallel file system. The key components are:
Metadata Servers (MDS): Manage the file system namespace, including file and directory metadata. They handle operations like file open, close, and attribute lookups. The MDS is a single point of coordination but is highly available in persistent deployments.
Object Storage Targets (OSTs): Store the actual file data. Each file is striped across multiple OSTs for parallel access. The number of OSTs determines the aggregate throughput and IOPS.
Lustre Clients: Run on compute instances (EC2) and mount the file system. The client communicates with the MDS for metadata and directly with OSTs for data I/O, bypassing the MDS for data transfers.
When a client wants to read a file, it first contacts the MDS to get the layout of the file (which OSTs hold which stripes). The client then reads the data directly from the OSTs in parallel. This design eliminates bottlenecks and scales linearly with the number of clients and OSTs.
Key Components, Values, Defaults, and Timers
- Deployment Types: - Scratch File System: Designed for temporary, bursty workloads. It is highly optimized for short-term processing and provides up to 200 MB/s per TiB of storage throughput. Scratch file systems are not replicated and are vulnerable to hardware failures. They are ideal for temporary HPC jobs. - Persistent File System: Designed for long-term, production workloads. It provides higher durability (data is replicated within the same AZ) and supports maintenance windows. Persistent file systems offer consistent performance with up to 200 MB/s per TiB for the 200 MB/s/TiB tier, or up to 1000 MB/s per TiB for the 1000 MB/s/TiB tier. - Throughput: The baseline throughput is 200 MB/s per TiB for both Scratch and Persistent (200 MB/s/TiB tier). Persistent also offers a 1000 MB/s/TiB tier. Throughput scales linearly with storage capacity. - IOPS: Up to 1,000,000 IOPS for larger file systems. - Latency: Sub-millisecond for metadata operations and low single-digit milliseconds for data I/O. - Storage Capacity: Ranges from 1.2 TiB to 10s of PiB. - Network: Uses Elastic Fabric Adapter (EFA) or TCP for client communication. EFA provides lower latency and higher throughput for tightly coupled HPC workloads. - S3 Integration: FSx for Lustre can be linked to an S3 bucket. Data is lazily imported from S3 on first access (i.e., when a file is read, it is fetched from S3 and stored on the file system). Exports can be configured to automatically write data back to S3 at a configurable interval (default 1 hour, but can be set to 0 for no automatic export). - Data Compression: Lustre supports lzfse compression to reduce storage usage, but this is not directly managed by FSx for Lustre.
Configuration and Verification Commands
To create an FSx for Lustre file system using the AWS CLI:
aws fsx create-file-system \
--file-system-type LUSTRE \
--storage-capacity 1200 \
--subnet-ids subnet-12345678 \
--lustre-configuration DeploymentType=PERSISTENT_1,PerUnitStorageThroughput=200To mount the file system on an EC2 instance (Lustre client must be installed):
sudo mount -t lustre -o noatime,flock fs-0123456789abcdef0.fsx.us-east-1.amazonaws.com@tcp:/mountname /mnt/fsxTo verify the mount:
df -h /mnt/fsxTo check Lustre client statistics:
lctl get_param *.*.statsInteraction with Related Technologies
Amazon S3: FSx for Lustre can import data from S3 and export results back. This is a key differentiator: you can keep your raw data in S3 and use FSx as a high-performance cache for processing.
AWS Batch and ParallelCluster: FSx for Lustre is commonly used with AWS Batch and AWS ParallelCluster for HPC jobs. It can be created and mounted automatically by these services.
EC2: Compute instances mount the file system using the Lustre client. For optimal performance, use instances with EFA support and place them in the same Availability Zone as the file system.
VPC: FSx for Lustre is deployed within a VPC and uses Elastic Network Interfaces (ENIs) in the subnet. It is accessible only from within the VPC (or via VPN/Direct Connect).
AWS KMS: Encryption at rest is supported using AWS KMS. Encryption in transit is enabled by default.
Performance Scaling
FSx for Lustre performance scales linearly with storage capacity. For example, a 10 TiB Persistent file system with the 200 MB/s/TiB tier provides 2,000 MB/s of throughput. With the 1000 MB/s/TiB tier, it provides 10,000 MB/s. IOPS also scale: a 5 TiB file system can achieve up to 500,000 IOPS. The Lustre client can stripe files across multiple OSTs to maximize parallelism. The number of OSTs is automatically determined based on storage capacity (roughly one OST per 2.4 TiB).
Durability and Availability
Scratch: No replication. If a hardware failure occurs, data is lost. Not recommended for production.
Persistent: Data is replicated within the same Availability Zone (AZ). The file system is designed for 99.9% availability. If the MDS fails, it automatically fails over to a standby in the same AZ.
Limitations
FSx for Lustre is only available in certain AWS Regions.
The file system must be in the same VPC as the clients, or accessible via VPC peering, VPN, or Direct Connect.
Maximum file size is limited by the file system capacity.
Lustre clients must be Linux-based (no Windows support).
The file system does not support S3 event notifications or S3 Object Lambda.
Exam-Relevant Details
Default export interval: 1 hour (configurable).
Minimum storage capacity: 1.2 TiB.
Maximum storage capacity: Up to 100s of PiB.
Throughput tiers: 200 MB/s/TiB (both Scratch and Persistent) and 1000 MB/s/TiB (Persistent only).
Deployment types: SCRATCH_1, SCRATCH_2 (higher burst throughput), PERSISTENT_1, PERSISTENT_2 (higher performance).
S3 import policy: Lazy load. Files are only imported when accessed.
S3 export policy: Automatic export at configurable intervals (default 1 hour) or manual via hsm_control.
Encryption: At rest with KMS, in transit automatically.
Network protocol: TCP or EFA (for Lustre clients using EFA).
Create the FSx for Lustre file system
You create the file system using the AWS Management Console, CLI, or SDK. Specify the deployment type (Scratch or Persistent), storage capacity (minimum 1.2 TiB), and throughput tier (200 or 1000 MB/s/TiB). Optionally, link it to an S3 bucket for data import/export. The file system is provisioned in a specific subnet within a VPC. AWS automatically creates the necessary ENIs and configures the Lustre servers (MDS and OSTs). The creation process takes several minutes (typically 5-15 minutes for small file systems, longer for large ones).
Install Lustre client on compute instances
On each EC2 instance that will access the file system, install the Lustre client. For Amazon Linux 2, use `sudo yum install -y lustre-client`. For Ubuntu, use `sudo apt-get install -y lustre-client-modules-aws`. The client includes the Lustre kernel module and utilities. Ensure the instance has network connectivity to the FSx for Lustre ENIs (same VPC, subnet, or via routing). Also, the security group must allow inbound/outbound traffic on ports 988 and 1018-1023 (Lustre NID ports).
Mount the file system
Use the `mount` command with the Lustre filesystem type. The mount command syntax is: `sudo mount -t lustre -o noatime,flock <dns-name>@tcp:/<mountname> <mount-point>`. The DNS name and mount name are provided in the FSx console or CLI output. The `noatime` option reduces metadata updates by not updating access times. The `flock` option enables file locking. After mounting, you can verify with `df -h` or `mount | grep lustre`. The file system is now accessible to all processes on the instance.
Import data from S3 (if linked)
If the file system is linked to an S3 bucket, data is imported lazily. When a client accesses a file path that corresponds to an S3 object, the Lustre client fetches the object from S3 and stores it on the file system. This happens transparently. For bulk import, you can use the `hsm_control` command or AWS DataSync. The import process is asynchronous; the client may block briefly on first access. To preload data, you can run a script that touches all files. Exported data is written back to S3 based on the export policy (default every hour).
Run HPC workloads
Compute instances run their HPC applications, reading/writing files on the FSx for Lustre file system. The Lustre client stripes I/O across multiple OSTs, achieving high throughput. For tightly coupled MPI jobs, use EFA-enabled instances for lower latency. The file system scales automatically as you add more clients. Monitor performance using CloudWatch metrics (DataReadBytes, DataWriteBytes, FreeStorageCapacity). If the file system runs out of space, you can increase storage capacity (but not decrease) by updating the file system configuration. After the job completes, you can optionally delete the file system (Scratch) or keep it for future use (Persistent).
Scenario 1: Financial Risk Simulation
A large investment bank runs Monte Carlo simulations for risk analysis. They have petabytes of historical market data stored in Amazon S3. The simulations require random access to thousands of files, with each simulation job needing high IOPS. The bank deploys an FSx for Lustre Persistent file system with 10 TiB storage and the 1000 MB/s/TiB tier, linked to their S3 data lake. They launch a cluster of EC2 instances (c5n.18xlarge) with EFA, each mounting the file system. The Lustre client caches metadata locally, reducing MDS load. The simulations complete in hours instead of days. Common issues: misconfigured security groups blocking Lustre ports, or not using EFA for network-intensive jobs, leading to lower throughput.
Scenario 2: Autonomous Vehicle Simulation
An autonomous vehicle company runs simulation pipelines that process sensor data (LiDAR, camera) and train ML models. Data is stored in S3 and processed in parallel across hundreds of GPU instances. They use FSx for Lustre Scratch file systems because simulations are ephemeral. Each simulation run creates a new Scratch file system, imports the relevant data from S3, runs the simulation, exports results back to S3, and then deletes the file system. This minimizes cost and leverages the high burst throughput of Scratch. Pitfall: forgetting to export data before deleting the file system, resulting in data loss. They mitigate this by setting a short export interval (e.g., 5 minutes) and using lifecycle hooks.
Scenario 3: Genomics Sequencing Analysis
A genomics research lab uses AWS Batch to run analysis workflows (e.g., BWA, GATK) on whole-genome sequencing data. Each workflow processes 100-200 GB files. They use a Persistent FSx for Lustre file system with 200 MB/s/TiB tier, sized at 50 TiB. The file system is mounted by hundreds of spot instances. The lab configures automatic export to S3 every 30 minutes to persist intermediate results. A common misconfiguration is not setting the export policy, causing results to be lost if instances are terminated. Another issue is exceeding the file system's throughput limits by running too many concurrent jobs; they solve this by increasing storage capacity or using the higher throughput tier.
SAA-C03 Objective Coverage
FSx for Lustre is tested under Objective 3.5: 'Determine high-performance computing (HPC) solutions.' The exam expects you to:
Choose between FSx for Lustre and other storage options (EFS, EBS, S3) for HPC workloads.
Understand the difference between Scratch and Persistent deployment types and when to use each.
Know the S3 integration, especially lazy import and automatic export.
Recognize performance characteristics (throughput per TiB, IOPS, latency).
Identify appropriate use cases: genomics, financial modeling, media processing, ML training.
Common Wrong Answers and Why
Wrong: 'Use EFS for HPC workloads' – EFS provides shared file storage but with much lower throughput (up to 10 GB/s aggregate) and higher latency. FSx for Lustre is designed for HPC with hundreds of GB/s throughput and sub-millisecond latency. Candidates choose EFS because it is a managed NFS file system, but they miss the performance requirements.
Wrong: 'Scratch file systems are more durable than Persistent' – Scratch has no replication, while Persistent replicates data within the AZ. The exam may present a scenario requiring data durability; Persistent is the correct choice. Candidates often think 'Scratch' is for production because it has higher burst performance, but durability is lower.
Wrong: 'FSx for Lustre automatically exports data to S3 in real time' – The default export interval is 1 hour, not real time. Candidates may assume it is instantaneous. The exam tests this with scenarios where data must be exported quickly.
Wrong: 'FSx for Lustre can be mounted on Windows instances' – Lustre clients are Linux-only. Windows workloads require FSx for Windows File Server. Candidates may confuse the two FSx services.
Specific Numbers and Terms
Minimum storage: 1.2 TiB
Throughput tiers: 200 MB/s/TiB, 1000 MB/s/TiB
Deployment types: SCRATCH_1, SCRATCH_2, PERSISTENT_1, PERSISTENT_2
Export interval: default 1 hour (configurable)
Latency: sub-millisecond metadata, low ms data
Edge Cases
Cross-AZ access: FSx for Lustre is deployed in a single AZ. Clients in other AZs will incur cross-AZ data transfer costs and higher latency. The exam may ask about this cost implication.
Mixing with S3: If the S3 bucket is in a different region, import/export may incur cross-region data transfer costs.
Scratch file system failure: If a hardware failure occurs, the entire file system becomes unavailable. The exam may present a scenario where data must be recovered; the answer is to use Persistent.
How to Eliminate Wrong Answers
If the question mentions 'temporary processing' or 'burst throughput', lean toward Scratch.
If durability is critical, choose Persistent.
If the question involves 'sub-millisecond latency' or 'millions of IOPS', FSx for Lustre is the answer.
If Windows clients are involved, eliminate FSx for Lustre (use FSx for Windows File Server).
If the scenario involves 'shared storage for hundreds of compute nodes', FSx for Lustre is appropriate.
FSx for Lustre is a managed Lustre file system for HPC workloads, providing sub-millisecond latency and millions of IOPS.
Two deployment types: Scratch (ephemeral, no replication) and Persistent (replicated within AZ, production-grade).
Throughput scales linearly with storage: 200 MB/s/TiB (all types) or 1000 MB/s/TiB (Persistent only).
Integrates with S3: lazy import on first access, automatic export every hour (configurable).
Minimum storage capacity is 1.2 TiB; maximum is hundreds of PiB.
Lustre client must be installed on Linux EC2 instances; Windows not supported.
Use EFA for lower latency and higher throughput in tightly coupled HPC jobs.
Cross-AZ access incurs data transfer costs; deploy file system and compute in same AZ when possible.
Scratch file systems are not durable; do not use for production or critical data.
FSx for Lustre is a key service for HPC scenarios on the SAA-C03 exam.
These come up on the exam all the time. Here's how to tell them apart.
FSx for Lustre
Parallel file system (Lustre) with sub-millisecond latency and millions of IOPS.
Designed for HPC, ML, and big data workloads.
Integrates with S3 for data import/export.
Linux-only clients; requires Lustre client installation.
Throughput scales up to hundreds of GB/s.
EFS
NFS file system with low latency (single-digit ms) but lower throughput (up to 10 GB/s).
General-purpose shared storage for web servers, content management, etc.
No native S3 integration (but can use EFS-to-S3 sync via DataSync or third-party tools).
Supports Linux and Windows clients via NFS v4.1.
Throughput scales with burst credits; provisioned throughput available.
FSx for Lustre Scratch
No data replication; data lost on hardware failure.
Higher burst throughput (up to 200 MB/s per TiB).
Lower cost per GB.
No maintenance windows; not designed for production.
Ideal for temporary HPC jobs, checkpoint data.
FSx for Lustre Persistent
Data replicated within the same AZ; higher durability.
Consistent throughput (200 or 1000 MB/s per TiB).
Higher cost per GB.
Supports maintenance windows; designed for production.
Ideal for long-running workloads, databases, persistent storage.
Mistake
FSx for Lustre provides the same durability as EFS.
Correct
EFS is regionally durable (11 nines) by replicating across multiple AZs. FSx for Lustre Persistent replicates within a single AZ, providing lower durability. Scratch has no replication. Durability is not a strong point of FSx for Lustre.
Mistake
FSx for Lustre automatically synchronizes data to S3 in real time.
Correct
The default export interval is 1 hour. You can configure it to as low as 1 minute, but it is not real time. Exports are asynchronous and can be triggered manually using `hsm_control`.
Mistake
You can mount FSx for Lustre on any EC2 instance without additional software.
Correct
The Lustre client must be installed. The client is available for Linux distributions (Amazon Linux, Ubuntu, RHEL). Windows is not supported.
Mistake
Scratch file systems are suitable for production workloads.
Correct
Scratch file systems are not replicated and can fail due to hardware issues. They are designed for temporary, ephemeral workloads. For production, use Persistent.
Mistake
FSx for Lustre performance is fixed regardless of storage size.
Correct
Throughput and IOPS scale linearly with storage capacity. Larger file systems provide higher performance. You can increase storage capacity to improve performance.
Reveal each answer, then mark whether you got it right. Score 60%+ to unlock the next chapter.
Scratch file systems are designed for temporary, bursty workloads. They provide high burst throughput but have no data replication—if a hardware failure occurs, data is lost. Persistent file systems replicate data within the same Availability Zone, offering higher durability and consistent performance. Persistent is suitable for production and long-running workloads. On the exam, choose Scratch for ephemeral HPC jobs and Persistent for durable, long-term storage.
FSx for Lustre can be linked to an S3 bucket. Data is imported lazily: when a client accesses a file, it is fetched from S3 and stored on the file system. Exports are asynchronous and occur at a configurable interval (default 1 hour). You can also manually trigger exports using `hsm_control`. This integration allows you to keep raw data in S3 and use FSx as a high-performance cache.
No. FSx for Lustre uses the Lustre client, which is only available for Linux-based operating systems (e.g., Amazon Linux, Ubuntu, RHEL). For Windows, use FSx for Windows File Server. On the exam, if the scenario involves Windows clients, eliminate FSx for Lustre.
The minimum storage capacity is 1.2 TiB. This is a common exam detail. You cannot create a smaller file system. If you need less storage, consider other services like EFS or EBS.
To maximize performance: (1) Use Persistent with the 1000 MB/s/TiB tier. (2) Launch compute instances in the same Availability Zone as the file system to avoid cross-AZ latency. (3) Use EFA-enabled instances for lower latency and higher throughput. (4) Use the `noatime` mount option to reduce metadata operations. (5) Ensure security groups allow Lustre ports (988, 1018-1023).
If a hardware failure occurs, the entire Scratch file system becomes unavailable and data is lost. There is no replication or automatic recovery. This is why Scratch is only recommended for temporary, non-critical workloads. For critical data, use Persistent.
Yes, you can increase storage capacity. However, you cannot decrease it. The file system must be in the `AVAILABLE` state. Increasing capacity also increases throughput and IOPS linearly. This operation does not require downtime.
You've just covered FSx for Lustre for HPC — now see how well it sticks with free SAA-C03 practice questions. Full explanations included, no account needed.
Done with this chapter?