5. Progettazione della soluzione e dettagli dell'architettura di storage
Karthikeyan Nagalingam, NetApp
[[5-1-design-principles]]
== 5.1 Principi di progettazione
Configurazione al posto delle modifiche al codice; confini di fase espliciti con contratti tipizzati; instradamento coerente degli artefatti; convalida fail-fast con errori utilizzabili; neutralità del livello di storage.
[[5-2-stage-design-summary]]
== 5.2 Riepilogo della progettazione della fase
| Fase | Riepilogo della progettazione |
|---|---|
Ingestione |
|
Preparazione dei dati |
Rileva/accetta chiavi tabulari raw di StorageGRID; normalizza Airbyte/CSV semplice; produce suddivisioni di training/validazione/inferenza deterministiche; scrive un prefisso di dati preparati con timestamp di esecuzione e un manifest nel bucket NAS ONTAP |
Mobilità dei dati (XCP) |
Copia i dati preparati dall'esportazione NFS NAS di ONTAP; |
Formazione del modello |
Esegue il training in locale o dalla destinazione XCP (S3/LustreFS); rilevamento multi-formato (CSV/Parquet/JSON) |
Ottimizzazione |
Materializza il modello base dalla destinazione |
Inferenza |
Materializza artefatti ottimizzati dalla stessa destinazione XCP; ambito di suddivisione/testo configurabile |
Checkpoint/Resume |
|
Archiviazione |
|
[[5-3-configuration-driven-philosophy]]
== 5.3 Filosofia basata sulla configurazione
Tutte le selezioni relative a storage non segreto, motore e comportamento sono dag_run.conf parametri: il passaggio tra S3 e LustreFS, o tra Python e Spark, non richiede alcuna modifica al codice, mentre lo storage segreto gestito da Airflow risolve le credenziali necessarie.
[[5-4-storage-architecture-detail]]
== 5.4 Dettagli dell'architettura dello storage
L'architettura dello storage separa il ciclo di vita dell'AI in livelli costruiti ad hoc: StorageGRID contiene oggetti raw e di archivio, il bucket NAS ONTAP contiene set di dati preparati e contrassegnati con l'esecuzione, e ONTAP S3 o LustreFS fornisce il livello di addestramento attivo selezionato. Questa separazione mantiene i dati di origine, i dati preparati, gli artefatti del modello e le evidenze archiviate gestibili in modo indipendente, preservando al contempo la tracciabilità condivisa run_stamp.
[[5-4-1-storage-layout-diagrams]]
=== 5.4.1 Diagrammi del layout dello storage
| Livello | Percorso di storage logico | Contenuti / Artefatti memorizzati |
|---|---|---|
StorageGRID Raw Tier |
|
Parti CSV tabulari ( |
Tier Prepared ONTAP NAS |
|
Divisioni formattate ( |
Livello di addestramento attivo (XCP Dest) |
|
Suddivisioni dei dati copiati, binari del modello addestrato ( |
Tier di archiviazione StorageGRID |
|
Artefatti del modello di base o del modello completo a livello di fase, evidenze di previsione ( |
Lineage e flusso tra livelli |
Raw → Preparato → Active Tier → Archival |
Spostamento dei dati end-to-end e tracciabilità degli artefatti collegati in tutti i tier di storage tramite la condivisione |
Questo diagramma illustra la struttura logica dei bucket e dei prefissi per una singola esecuzione della pipeline in tutti i livelli di storage:
[[5-4-2-storage-sizing-guidance]]
=== 5.4.2 Guida al dimensionamento dello storage
Dimensiona ciascun livello in modo indipendente in base al suo ruolo e alla policy di conservazione. L'ONTAP NAS e la destinazione XCP selezionata devono supportare esecuzioni attive simultanee, mentre la capacità di StorageGRID è determinata principalmente dalla conservazione dei dati raw e di archiviazione. Includi la capacità di lavoro temporanea e il margine di crescita quando pianifichi la concorrenza di picco della pipeline.
| Livello | Base di dimensionamento |
|---|---|
Bucket raw di StorageGRID |
Volume di ingestione × periodo di conservazione |
bucket di dati preparati ONTAP NAS |
Dimensione del dataset preparato × numero di esecuzioni mantenute |
Destinazione XCP (S3 o Lustre) |
Dimensione massima del set di dati di addestramento simultaneo + overhead dell'artefatto del modello |
Bucket di archiviazione |
Politica di conservazione × selezione della fase di archiviazione (model_training = più piccolo; inferencing = più grande) |
[[5-4-3-storage-performance-considerations]]
=== 5.4.3 Considerazioni sulle performance dello storage
La destinazione XCP viene selezionata per ogni esecuzione con xcp_copy_destination, consentendo alle performance dello storage di adattarsi al carico di lavoro anziché forzare ogni carico di lavoro su un singolo livello. Seleziona LustreFS per set di dati con un elevato numero di righe, molti lettori simultanei o training a uso intensivo di I/O. Seleziona ONTAP S3 per carichi di lavoro con accesso elastico e attenti ai costi, i cui requisiti di performance non richiedono un file system parallelo. In entrambi i casi, XCP mantiene i dati e gli artefatti del modello allineati con il livello di training selezionato.