In che modo la larghezza RAIDZ influisce sulla latenza delle letture casuali per i carichi di lavoro dell'IA?

Eva Wong è la Technical Writer e smanettatrice residente di ZimaSpace. Una geek da sempre con una passione per homelab e software open-source, si specializza nel tradurre concetti tecnici complessi in guide accessibili e pratiche. Eva crede che l'auto-ospitare debba essere divertente, non intimidatorio. Attraverso i suoi tutorial, dà potere alla comunità di demistificare le configurazioni hardware, dalla costruzione del loro primo NAS al dominio dei container Docker.

Un RAIDZ più ampio può migliorare l'efficienza della capacità e la larghezza di banda sequenziale, ma la latenza delle piccole letture casuali è solitamente limitata dal comportamento del vdev, dal layout dei blocchi e dalla gestione delle code.

Un carico di lavoro AI domestico spesso combina file di modello di grandi dimensioni con piccoli metadati, pagine di indici vettoriali, miniature e letture di database. Aggiungere dischi a un singolo vdev RAIDZ offre a ogni stripe più colonne di dati possibili, ma un singolo blocco piccolo potrebbe non utilizzarle tutte e un solo vdev continua a rappresentare un unico dominio di scheduling. I layout più ampi possono inoltre aumentare il lavoro in modalità degradata e la latenza di coda quando diversi servizi effettuano contemporaneamente richieste casuali.

La larghezza modifica le colonne dei dati, ma non il numero di vdev

RAIDZ distribuisce dati e parità tra i dischi all'interno di un dispositivo virtuale. Un vdev più ampio aumenta la capacità utilizzabile per disco di parità e può fornire una maggiore larghezza di banda aggregata per i record di grandi dimensioni, ma il pool continua a bilanciare l'I/O di livello superiore tra i vdev, invece di trattare ogni disco come una destinazione indipendente per le letture casuali.

La disposizione RAIDZ di OpenZFS documenta i concetti di layout RAIDZ e dRAID, comprese le raccomandazioni per i carichi di lavoro con blocchi piccoli. Il modello spiega perché aggiungere un vdev speciale mirror può essere più importante per i metadati che ampliare semplicemente il gruppo RAIDZ dei dati.

La dimensione dei blocchi, la compressione, il recordsize e l'allineamento determinano quante colonne vengono interessate da una lettura. Un blocco compresso piccolo può occupare meno settori e dischi rispetto alla lettura di un file di modello di grandi dimensioni, quindi una determinata larghezza non produce un unico risultato in termini di latenza.

Le letture casuali dipendono dagli IOPS e dalla distribuzione delle code

Le richieste sequenziali di grandi dimensioni possono essere servite in parallelo da diversi dischi, mentre le letture casuali indipendenti sono limitate dal modo in cui il vdev pianifica e completa ogni richiesta. Più vdev stretti creano più destinazioni I/O di livello superiore, ma consumano più dischi di parità e modificano i domini di guasto.

Un'analisi del comportamento delle letture casuali misura il comportamento delle letture casuali tra i layout RAIDZ e mostra perché larghezze di stripe inferiori possono produrre più IOPS del pool quando gli stessi dischi sono suddivisi in più vdev. Si tratta di un effetto della topologia, non di una regola universale sulla velocità dei dischi.

I riscontri nella cache ARC bypassano i dischi e un vdev per metadati o speciale può spostare blocchi piccoli selezionati su supporti più veloci. I benchmark che rientrano interamente nella RAM non possono rivelare la differenza di latenza su disco attribuita alla larghezza RAIDZ.

I gruppi più ampi aumentano il rischio di accoppiamento tra ripristino e latenza di coda

Durante uno scrub, un resilver o in caso di disco mancante, le letture possono richiedere la ricostruzione a partire dalle colonne superstiti. Un gruppo più ampio espone più dischi al carico di lavoro degradato di ogni vdev e può prolungare il periodo in cui le query AI competono con l'I/O di ripristino.

Una panoramica tecnica sulla topologia dei vdev di ZFS confronta le proprietà dei vdev mirror e RAIDZ e spiega che le prestazioni del pool seguono la topologia dei vdev. Fornisce la distinzione architetturale necessaria prima di interpretare i benchmark basati sul numero di dischi. Questo effetto dovrebbe rimanere misurabile con il carico di lavoro previsto sul server domestico.

Il limite nell'interpretazione consiste nell'estrapolare un test di throughput sequenziale alla ricerca vettoriale o ai metadati delle foto. Le letture dalla cache, i blocchi piccoli, la profondità della coda, il recordsize e lo stato degradato possono ribaltare il vantaggio apparente di un gruppo più ampio. La distinzione è importante quando diverse fasi della pipeline condividono lo stesso budget di storage e memoria.

-15% OFF

Domande frequenti sulla larghezza RAIDZ per l'AI locale

Un vdev RAIDZ più ampio è sempre più lento nelle letture casuali?

No. I risultati dipendono dalla dimensione dei blocchi, dai riscontri nella cache, dalla compressione, dai dischi, dalla profondità della coda e dalla topologia del pool. La preoccupazione comune è che un singolo vdev più ampio non aggiunga IOPS indipendenti di livello superiore nello stesso modo in cui lo fa l'aggiunta di un altro vdev.

I mirror sono sempre migliori per i database vettoriali?

I mirror offrono spesso IOPS casuali di piccole dimensioni più elevati e un comportamento di ripristino più semplice, ma utilizzano una quantità maggiore di capacità grezza. La decisione dovrebbe includere durabilità, spazio utilizzabile, progettazione dei backup e carico di lavoro del database misurato, anziché basarsi soltanto sulla latenza. Questo limite deve essere verificato con dati domestici rappresentativi, non dato per scontato.

Un vdev speciale può risolvere la latenza dei metadati RAIDZ?

Un vdev speciale ridondante può contenere metadati e, facoltativamente, blocchi piccoli, riducendo la pressione sul RAIDZ dei dati. Diventa un'infrastruttura critica del pool, quindi la sua perdita può causare la perdita del pool e la sua ridondanza deve essere adeguata al rischio.

Valuta la larghezza con letture a cache fredda e in stato degradato

Riproduci letture rappresentative di pagine vettoriali, SQLite o metadati, miniature e file di modello con dimensioni dei blocchi e profondità delle code controllate. Misura la latenza p50, p95 e p99, gli IOPS, il rapporto di riscontri nella cache ARC, l'utilizzo dei dischi e l'interferenza di scrub o resilver tra le topologie candidate.

Metti in relazione l'accesso remoto ai modelli con i vincoli di rete descritti nell'accesso remoto ai modelli. Mantieni costanti il numero totale di dischi, i modelli delle unità, il recordsize, la compressione, il dataset, lo stato della cache e lo spazio libero, e verifica condizioni di cache fredda invece di limitarti a letture ripetute dalla cache calda.

Scegli la topologia considerando insieme l'obiettivo di latenza, la capacità utilizzabile, la ridondanza e il comportamento di ripristino. Se l'I/O casuale dell'AI è fondamentale, confronta più vdev o un tier speciale ridondante con un singolo RAIDZ più ampio, invece di presumere che l'aggiunta di colonne fornisca IOPS equivalenti.

Hub Tecnologico e AI

Altro da leggere

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.