L’Over-provisioning (OP) delle unità SSD

Percentuale per over-provisioning =

Capacità fisica - Capacità utente


Capacità utente

Formula per il calcolo della percentuale per over-provisioning.

Sebbene i drive a stato solido (SSD) siano spesso simili agli hard disk (HDD) di tipo meccanico in termini di dimensioni fisiche (ossia altezza, larghezza e lunghezza) e di interfacce esterne (SATA o SAS), il funzionamento a un livello più profondo, così come i componenti interni di un SSD differiscono notevolmente dalla tecnologia a piatti magnetici rotanti che contraddistingue le unità HDD.

Terminato l’assemblaggio di un SSD, il produttore può riservare una percentuale aggiuntiva della capacità totale alle funzioni di over-provisioning (OP). Tale operazione viene eseguita durante la fase di programmazione del firmware. L’over-provisioning migliora le prestazioni e spesso incrementa la resistenza dei drive SSD, che possono durare più a lungo proprio grazie alla maggiore quantità di storage NAND Flash a disposizione del controller SSD, così da ridurre l’usura a carico della memoria NAND Flash durante tutto il ciclo di vita operativa.

Capacità fisicaCapacità utente% capacità per over-provisioningClasse applicazione
64GB 60GB 7% Prevalenza di lettura
96GB 90GB 7% Prevalenza di lettura
128GB 120GB 7% Prevalenza di lettura
128GB 100GB 28% Prevalenza di scrittura
256GB 240GB 7% Prevalenza di lettura
256GB 200GB 28% Prevalenza di scrittura
512GB 480GB 7% Prevalenza di lettura
512GB 400GB 28% Prevalenza di scrittura
1.024GB 960GB 7% Prevalenza di lettura
1.024GB 800GB 28% Prevalenza di scrittura
2.048GB 1.800GB 14% Prevalenza di lettura
2.048GB 1.600GB 28% Prevalenza di scrittura
over-provisioning in base alla capacità e alla classe di applicazione

Le applicazioni possono caratterizzarsi per la prevalenza delle operazioni di lettura, come avviene nel caso dei carichi di lavoro in ambito Client in cui mediamente si registra il 20% di scritture a fronte dell’80% di letture. Le applicazioni in ambito Enterprise che utilizzano un dispositivo di storage per la cache di lettura si considerano a prevalenza di lettura; se invece queste applicazioni scrivono più dati nel dispositivo di storage, saranno considerate a prevalenza di scrittura.

La capacità di OP impostata dal produttore dell'SSD può variare in termini di dimensioni, in base alla classe di applicazione dell'SSD e alla capacità totale di memoria NAND Flash disponibile.

Drive di capacità maggiore, e con classi di applicazione differenti, sono normalmente configurati con capacità di over-provisioning superiori, in ragione dei maggiori requisiti di risorse richiesti per la gestione di quantità superiori di memoria NAND Flash, associata all'uso delle funzioni di garbage collection, blocchi di riserva (spare block) e funzionalità ottimizzate per la protezione dei dati.

Questa capacità di over-provisioning non è accessibile all'utente ed è invisibile per il sistema operativo host. Si tratta di uno spazio esclusivamente riservato all’utilizzo da parte del controller SSD.

Vantaggi dell'Over-Provisioning (OP)

Vantaggi apportati dall’OP alle prestazioni dei drive SSD

Ogni matrice di memoria NAND Flash è costituita da blocchi multipli, che a loro volta contengono molteplici pagine.

La memoria NAND Flash può essere letta e scritta a livello di singole pagine, ma può essere cancellata solo a livello di intero blocco.

Se una singola pagina deve essere modificata o cancellata da una pagina precedentemente programmata all'interno di un blocco, l'intero blocco composto da pagine multiple dovrà prima essere letto mediante una memoria temporanea e successivamente cancellato, prima di poter programmare i nuovi contenuti nel medesimo indirizzo di allocazione di tale blocco.

L'unico scenario in cui una pagina può essere scritta direttamente all'interno di un blocco di memoria NAND Flash, senza dover ricorrere a questa tediosa procedura di lettura-modifica-scrittura, si verifica quando la pagina è già vuota.

Mantenere grandi quantità di blocchi vuoti e riservati mediante l'over-provisioning contribuisce a garantire la continuità delle prestazioni, specialmente in scenari caratterizzati dalla presenza di scritture casuali che richiedono la massima amplificazione in scrittura (WAF).{{Footnote.N52105}}

Vantaggi apportati dall’OP alla resistenza dei drive SSD

Per comprendere le ragioni per cui gli SSD richiedono l'over-provisioning, e quali sono i vantaggi per il controller di un drive SSD, è necessario approfondire la conoscenza dei principi di funzionamento tipici degli SSD e dei limiti che caratterizzano le memorie NAND Flash non volatili.

Ogni cella di memoria NAND Flash ha un ciclo di vita limitato, basato sul numero di cicli di programmazione e cancellazione (P/E) definito durante il processo di produzione dal produttore della memoria NAND Flash, in quanto ogni funzione di programmazione o cancellazione eseguita su una cella NAND Flash, riduce la capacità della cella di preservare una carica elettrica, con conseguenti rischi per l'integrità dei dati.

Tuttavia, a seguito della progressiva migrazione della geometria NAND dal 2D al 3D, si registrerà un aumento della resistenza della memoria NAND e un incremento delle densità della matrice a fronte di una riduzione dei costi di produzione, il che renderà i drive SSD molto più accessibili.

Riassumendo, i tre principali fattori che influenzano la durata di un disco SSD sono:
  • Durata in termini di cicli di programmazione/cancellazione della memoria NAND Flash e complessità di geometria in termini di lettura/programmazione/cancellazione (per geometria in questo caso deve intendersi tecnologia di produzione bi-dimensionale o tri-dimensionale).
  • Capacità unità SSD
  • Capacità ed efficienza dell'FSP (garbage collection, fattore di amplificazione in scrittura, gestione dei blocchi, livellamento dell'usura, codice di correzione degli errori)

Mantenimento di prestazioni e durata mediante l’Over-Provisioning (OP)

Per prevenire gli scenari in cui la capacità del drive SSD viene saturata con pagine non valide, la partizione di over-provisioning viene utilizzata dalla funzione di garbage collection del controller SSD come area di lavoro temporanea per la gestione dei merge pianificati delle pagine valide e per il recupero dei blocchi riempiti con pagine non valide (o eliminate).

Le pagine/blocchi recuperati vengono successivamente aggiunti alla capacità di over-provisioning, per consentire l'esecuzione delle operazioni in scrittura generate dal controller SSD e massimizzare le prestazioni durante l'esecuzione di operazioni che prevedono picchi di carico massimo elevati, in quanto l'impatto sulle prestazioni determinato dall'esecuzione di letture, cancellazioni, modifiche e scritture di tutte le pagine valide su un blocco già parzialmente pieno di pagine non valide può essere notevole.

La funzione di garbage collection opera in modo indipendente rispetto al sistema operativo e viene automaticamente attivata durante i periodi di ridotta attività, su base periodica, oppure inviando l'apposito comando TRIM di gestione del set di dati ATA per programmare un’attività di garbage collection.

La disponibilità permanente di un certo numero di blocchi vuoti, grazie alla capacità di over-provisioning, contribuisce a garantire l'efficacia dei processi di livellamento dell'usura della memoria NAND Flash, in quanto il controller SSD redistribuisce le operazioni in modo intelligente e uniforme su tutte le celle della memoria NAND Flash, senza influenzare le prestazioni complessive del drive SSD in condizioni di carico massimo.

Inoltre, il comando TRIM di gestione del set di dati ATA può contribuire allo spazio disponibile sul drive SSD, liberando lo spazio occupato da pagine non valide e la capacità di storage utente inutilizzata.

Capacità del drive formattatoDimensioni dell’over-provisioningi banda per letture/scritture sequenzialiIOPS casuali in lettura/scrittura Steady-State 4kTBW (JEDEC Enterprise{{Footnote.N52105}})DWPD{{Footnote.N37134}}
480GB (DC500R) 7% 550/500MB/s 98,000/12,000 IOPS 438 0.5
480GB (DC500M) 32% 555/520MB/s 98,000/58,000 IOPS 1139 1.3
960GB (DC500R) 7% 555/520MB/s 98,000/20,000 IOPS 876 0.5
960GB (DC500M) 32% 555/520MB/s 98,000/70,000 IOPS 2278 1.3
1920GB (DC500R) 7% 555/520MB/s 98,000/24,000 IOPS 1752 0.5
1920GB (DC500M) 32% 555/520MB/s 98,000/75,000 IOPS 4555 1.3
3840GB (DC500R) 7% 555/520MB/s  98,000/28,000 IOPS  3504  0.5
3840GB (DC500M)  32% 555/520MB/s  98,000/75,000 IOPS 9110  1.3
over-provisioning in base alla capacità e alla classe di applicazione

Per comprendere gli effetti dell’over-provisioning, prenderemo ad esempio un drive SSD di Kingston della gamma Enterprise, il drive DC500R. La capacità di questi drive può arrivare fino a 3,84TB ed è possibile gestire l’over-provisioning tramite l’applicazione Kingston SSD Manager (KSM). Intervenendo sulla dimensione dell’OP, possiamo notare gli effetti che si ottengono sulle prestazioni e sulla resistenza, quando si imposta un valore uguale o superiore al 7% di OP.

Dal confronto delle diverse coppie di capacità possiamo notare che:
  1. I drive con maggiore capacità (minor OP) in ciascuna coppia riescono a mantenere le velocità di trasferimento invariate (ampiezza di banda), ma i valori IOPS di scritture casuali risultano significativamente ridotti. Da ciò si evince che i drive con ridotto OP mantengono ottime prestazioni nelle applicazioni caratterizzate da intensa attività di lettura, ma potrebbero risultare meno performanti nelle applicazioni caratterizzate da intensa attività di scrittura se confrontati con drive aventi un valore di OP del 32%.
  2. Un valore di over-provisioning ridotto comporta inoltre che i Byte totali scritti (TBW) in Terabyte su ciascun drive risulteranno minori. A una maggiore percentuale di OP corrisponderà una maggiore durata della vita operativa del drive SSD. Un drive DC500R da 960GB può ospitare fino a 876TB di dati scritti, laddove un drive DC500R da 800GB può raggiungere gli 860TBW. I valori di TBW sono ricavati da Kingston usando come riferimento i carichi di lavoro JEDEC{{Footnote.N52105}}.
  3. Rapportando i valori TBW alle scritture su drive per giorno (DWPD) lungo tutto l’arco di durata della garanzia, possiamo notare che i drive che adottano il 32% di OP raggiungono quasi il doppio della quantità di scritture al giorno. Ecco perché si consiglia di adottare il 32% come valore di OP per le applicazioni caratterizzate da un intenso carico di scrittura.