5. Solution Design and Storage Architecture Detail
Karthikeyan Nagalingam, NetApp
5.1 Design Principles
Configuration over code changes; explicit stage boundaries with typed contracts; consistent artifact routing; fail-fast validation with actionable errors; storage-tier neutrality.
5.2 Stage Design Summary
| Stage | Design Summary |
|---|---|
Ingestion |
|
Data Preparation |
Discovers/accepts raw StorageGRID tabular keys; normalizes Airbyte/plain CSV; produces deterministic train/val/infer splits; writes a run-stamped prepared-data prefix and manifest to the ONTAP NAS bucket |
Data Mobility (XCP) |
Copies prepared data from the ONTAP NAS NFS export; |
Model Training |
Trains locally or from XCP destination (S3/LustreFS); multi-format (CSV/Parquet/JSON) discovery |
Fine-Tuning |
Materializes base model from XCP destination; |
Inference |
Materializes tuned artifacts from same XCP destination; configurable split/text scope |
Checkpoint/Resume |
|
Archival |
|
5.3 Configuration-Driven Philosophy
All non-secret storage, engine, and behavioral selections are dag_run.conf parameters — switching between S3 and LustreFS, or Python and Spark, requires no code modification, while Airflow-managed secret storage resolves the required credentials.
5.4 Storage Architecture Detail
The storage architecture separates the AI lifecycle into purpose-built tiers: StorageGRID holds raw and archival objects, the ONTAP NAS bucket holds prepared and run-stamped datasets, and ONTAP S3 or LustreFS provides the selected active training tier. This separation keeps source data, prepared data, model artifacts, and archived evidence independently manageable while preserving lineage through the shared run_stamp.
5.4.1 Storage Layout Diagrams
| Tier | Logical Storage Path | Contents / Artifacts Stored |
|---|---|---|
StorageGRID Raw Tier |
|
Tabular CSV parts ( |
ONTAP NAS Prepared Tier |
|
Formatted splits ( |
Active Training Tier (XCP Dest) |
|
Copied data splits, trained model binaries ( |
StorageGRID Archival Tier |
|
Stage-scoped baseline or full model artifacts, prediction evidence ( |
Inter-Tier Lineage & Flow |
Raw → Prepared → Active Tier → Archival |
End-to-end data movement and artifact lineage linked across all storage tiers via the shared |
This diagram maps the logical bucket and prefix layout for a single pipeline run across all storage tiers:
5.4.2 Storage Sizing Guidance
Size each tier independently according to its role and retention policy. The ONTAP NAS and selected XCP destination must accommodate concurrent active runs, whereas StorageGRID capacity is driven primarily by raw-data and archival retention. Include temporary working capacity and growth headroom when planning peak pipeline concurrency.
| Tier | Sizing Basis |
|---|---|
StorageGRID raw bucket |
Ingestion volume × retention window |
ONTAP NAS prepared-data bucket |
Prepared dataset size × number of retained runs |
XCP destination (S3 or Lustre) |
Peak concurrent training dataset size + model artifact overhead |
Archival bucket |
Retention policy × archive stage selection (model_training = smaller; inferencing = larger) |
5.4.3 Storage Performance Considerations
The XCP destination is selected per run with xcp_copy_destination, allowing storage performance to match the workload instead of forcing every workload onto one tier. Select LustreFS for high-row-count datasets, many concurrent readers, or I/O-intensive training. Select ONTAP S3 for cost-conscious, elastic-access workloads whose performance requirements do not demand a parallel filesystem. In either case, XCP keeps data and model artifacts aligned with the selected training tier.