Provisioning eccessivo di un SSD: è ancora valido?


14

Fonti multiple (ma non molto recenti) suggeriscono che ~ 7% dello spazio SSD dovrebbe essere lasciato non allocato per ridurre l'usura dell'unità. È ancora valido per ora o la situazione è cambiata?


È importante a causa del problema di abilitazione TRIM, come ho detto. Sospetto che SU sia adatto a questa domanda, ma ora ha bisogno di essere modificato per menzionare Linux!
sourcejedi

lo spazio libero consente prestazioni migliori. Drive wear & tear è sopravvalutato e probabilmente un mito ora. Un SSD di buona qualità può durare oltre 10 anni scrivendoci 24 ore su 24, 7 giorni su 7. questo potrebbe essere un buon articolo da rivedere: howtogeek.com/165472/… - scrivere su un blocco vuoto è abbastanza veloce, ma scrivere su un blocco parzialmente riempito implica leggere il blocco parzialmente riempito, modificarne il valore e quindi scriverlo indietro. Ripeti molte, molte volte per ogni file che scrivi sull'unità poiché il file consumerà probabilmente molti blocchi. ---
Dom

Risposte:


15

Windows utilizzerà generalmente TRIM. Ciò significa che se si dispone di spazio libero X% sul file system, l'unità visualizzerà X% come non allocato. [*] Over-provisioning non richiesto.

Eccezione: storicamente, gli SSD con controller / firmware Sandforce non hanno ripristinato le prestazioni complete dopo TRIM :(.

La perdita di prestazioni sull'intera unità può essere significativa e molto più di alcune altre unità. Ciò sarà associato con un'elevata amplificazione in scrittura e quindi aumenterà l'usura. Fonte: recensioni Anandtech.

Quindi è necessario se e solo se

  • non sei sicuro che verrà utilizzato TRIM. AFAIK non è ancora abilitato per impostazione predefinita su Linux, a causa di problemi di prestazioni con alcune unità vecchie e mal funzionanti.
  • O sei preoccupato di riempire un'unità Sandforce (e che il contenuto non sarà suscettibile di compressione dal controller intelligente).

Abilitare TRIM su Linux non è troppo difficile e difficilmente noterai alcun problema.

Fortunatamente, molti dei marchi più famosi creano il proprio controller. I controller Sandforce non sono così popolari come una volta. I problemi di Sandforce mi rendono scettico su quello specifico design "intelligente" del controller, che era molto aggressivo ai suoi tempi. Mi scuso con Sandforce ma non ho un riferimento per i modelli esatti di controller interessati.


[*] Ai filesystem piace avere anche molto spazio libero, per ridurre la frammentazione. Quindi TRIM è fantastico, poiché non è necessario aggiungere due margini di sicurezza insieme, lo stesso spazio libero aiuta entrambi :) L'unità può sfruttare lo spazio non allocato per migliorare le prestazioni, oltre a evitare un'usura elevata come dici tu.


È possibile rilevare un controller Sandforce dopo aver installato un SSD?
Marmistrz,

Non sono a conoscenza di una lettura standard o di un test. Devi sapere qual è l'unità e provare a cercarla. Tutto quello che posso vedere è un "numero di modello", ad esempio nei dischi GNOME come "M4-CT128M4SSD2", che potrebbe essere scomodo da abbinare. Ancora una volta mi dispiace. Credo che Samsung utilizzi i propri controller e Crucial / Micron utilizzi Marvell. OCZ / Toshiba hanno utilizzato vari controller tra cui Sandforce.
sourcejedi

Ciò presuppone che tu abbia effettivamente spazio libero sul filesystem, giusto? : D
endolith,

Sii specifico su quale parte stai rispondendo per favore, questo è successo più di un anno fa. Penso che intendi "[ipotetico] Non ho disciplina, ho bisogno del mio sistema per respingere gli abusi continui e non ho software per impostare un allarme di alta marea". Che è una critica perfettamente valida, sebbene interessante da parte di qualcuno che considererebbe in primo luogo l'eccessivo provisioning.
sourcejedi,

7

I moderni controller SSD sono abbastanza intelligenti che l'overprovisioning non è in genere necessario per l'uso quotidiano. Tuttavia, ci sono ancora situazioni, principalmente negli ambienti di data center, in cui si consiglia l'overprovisioning. Per capire perché l'overprovisioning può essere utile, è necessario capire come funzionano gli SSD.

Gli SSD devono far fronte alle limitazioni della memoria flash durante la scrittura dei dati

Gli SSD utilizzano un tipo di memoria chiamata memoria flash NAND . A differenza dei dischi rigidi, le celle NAND contenenti dati non possono essere sovrascritte direttamente; l'unità deve cancellare i dati esistenti prima di poter scrivere nuovi dati. Inoltre, mentre gli SSD scrivono dati in pagine di dimensioni generalmente comprese tra 4 KB e 16 KB, possono solo cancellare i dati in grandi gruppi di pagine chiamati blocchi , in genere da diverse centinaia di KB a diversi MB in SSD moderni.

NAND ha anche una quantità limitata di resistenza in scrittura . Per evitare di riscrivere inutilmente i dati al fine di cancellare i blocchi e per garantire che nessun blocco riceva un numero sproporzionato di scritture , l'unità tenta di distribuire scritture, in particolare piccole scritture casuali, su blocchi diversi. Se le scritture sostituiscono i vecchi dati, le vecchie pagine vengono contrassegnate come non valide. Una volta che tutte le pagine di un blocco sono contrassegnate come non valide, l'unità è libera di cancellarla senza dover riscrivere dati validi.

Gli SSD hanno bisogno di spazio libero per funzionare in modo ottimale, ma non tutti i carichi di lavoro sono utili per mantenere lo spazio libero

Se l'unità ha poco o nessun spazio libero rimanente, non sarà in grado di distribuire le scritture. Invece, l'unità dovrà cancellare immediatamente i blocchi mentre le scritture vengono inviate all'unità, riscrivendo in altri blocchi tutti i dati validi all'interno di quei blocchi. Ciò comporta la scrittura nella NAND di più dati di quanti ne vengano inviati all'unità, un fenomeno noto come amplificazione della scrittura . L'amplificazione della scrittura è particolarmente pronunciata con carichi di lavoro casuali ad alta intensità di scrittura, come l' elaborazione di transazioni online (OLTP) , e deve essere ridotta al minimo perché comporta prestazioni e resistenza ridotte.

Per ridurre l'amplificazione in scrittura, la maggior parte dei sistemi moderni supporta un comando chiamato TRIM , che indica all'unità quali blocchi non contengono più dati validi, quindi possono essere cancellati. Ciò è necessario perché altrimenti l'unità dovrebbe supporre che i dati eliminati logicamente dal sistema operativo siano ancora validi, il che ostacola la capacità dell'unità di mantenere uno spazio libero adeguato.

Tuttavia, a volte TRIM non è possibile, ad esempio quando l'unità si trova in un contenitore esterno (la maggior parte dei contenitori non supporta TRIM) o quando l'unità viene utilizzata con un sistema operativo precedente. Inoltre, in presenza di carichi di lavoro a scrittura casuale altamente intensivi, le scritture saranno distribuite su ampie aree della NAND sottostante, il che significa che la riscrittura forzata dei dati e l'amplificazione della scrittura degli operatori possono verificarsi anche se l'unità non è quasi piena.

I moderni SSD hanno un'amplificazione della scrittura significativamente inferiore rispetto alle unità più vecchie, ma alcuni carichi di lavoro possono comunque beneficiare di un overprovisioning

I primi SSD avevano un firmware molto meno maturo che tendeva a riscrivere i dati molto più spesso del necessario. All'inizio Indilinx e JMicron controllori ( la JMF602 era famoso per la balbuzie e abissale prestazioni di scrittura casuale ) hanno sofferto di altissima write amplification sotto intensi carichi di lavoro casuali-scrittura, a volte superiore a 100x. (Immagina di scrivere oltre 100 MB di dati nella NAND quando stai solo cercando di scrivere 1 MB!). I controller più recenti, con il vantaggio di una maggiore potenza di elaborazione, algoritmi di gestione flash migliorati e supporto TRIM, sono molto più in grado di gestire queste situazioni, sebbene carichi di lavoro con scrittura casuale elevata possano comunque causare un'amplificazione della scrittura superiore a 10 volte nei moderni SSD .

L'overprovisioning fornisce all'unità un'area più ampia di spazio libero per gestire scritture casuali ed evitare la riscrittura forzata dei dati. Tutti gli SSD sono sottoposti a overprovisioning almeno a un livello minimo; alcuni usano solo la differenza tra GB e GiB per fornire circa il 7% di spazio libero per il funzionamento dell'unità, mentre altri hanno un overprovisioning per ottimizzare le prestazioni per le esigenze di applicazioni specifiche. Ad esempio, un SSD aziendale per carichi di lavoro OLTP o di database pesanti in scrittura può avere 512 GiB di NAND fisica ma avere una capacità pubblicizzata di 400 GB, anziché i 480-512 GB tipici degli SSD consumer con quantità simili di NAND.

Se il carico di lavoro è particolarmente impegnativo o se si sta utilizzando l'unità in un ambiente in cui TRIM non è supportato, è possibile effettuare l'overprovisioning manuale dello spazio partizionando l'unità in modo che parte dello spazio sia inutilizzato. Ad esempio, è possibile partizionare un SSD da 512 GB a 400 GB e lasciare lo spazio rimanente non allocato e l'unità utilizzerà lo spazio non allocato come spazio di riserva. Si noti, tuttavia, che questo spazio non allocato deve essere tagliato se è stato scritto in precedenza; in caso contrario, non avrà alcun vantaggio in quanto l'unità vedrà quello spazio occupato. (Le utility di partizionamento dovrebbero essere abbastanza intelligenti da farlo, ma non ne sono sicuro al 100%; vedi "Windows taglia lo spazio non partizionato (non formattato) su un SSD?" )

Se sei solo un consumatore normale, in genere non è necessario eseguire l'overprovisioning

In ambienti di consumo tipici in cui è supportato TRIM, l'SSD è pieno per meno del 70-80% e non viene continuamente sbattuto con scritture casuali, l'amplificazione in scrittura non è in genere un problema e il sovraprovisioning non è generalmente necessario.

Alla fine, la maggior parte dei consumatori non scriverà quasi abbastanza dati su disco per logorare la NAND entro la vita utile prevista della maggior parte degli SSD, anche con un'elevata amplificazione della scrittura, quindi non è qualcosa su cui perdere sonno.


1

La dimensione dello spazio aggiuntivo varia notevolmente tra i modelli di unità SSD, ma in generale è ancora vero.


Hai qualche riferimento per questo?
Léo Lam,

Intendi riferimento per un'unità specifica? Molte unità (non solo SSD) hanno riferimenti tecnici pubblici, ma mi dispiace, non ho tempo per cercare. Tuttavia, se sei interessato a riferimenti generali, controlla questo: samsung.com/global/business/semiconductor/minisite/SSD/…
Tomasz Klim,

1
Sì, mi chiedevo se ciò fosse ancora vero per tutte le unità, o solo per modelli o marchi specifici, poiché l'altra risposta suggerisce che l'over-provisioning non è più necessario su unità recenti.
Léo Lam,

L'altra risposta non è esattamente corretta. In effetti, le unità con controller Sandforce avevano molto spazio aggiuntivo. È assolutamente vero. Ma anche qualsiasi altro controller SSD utilizza spazio aggiuntivo, non tanto. Poiché questo probabilmente non cambierà.
Tomasz Klim,

1
Dal documento per Samsung SSD: "c'è sempre la possibilità di riservare manualmente spazio aggiuntivo per prestazioni ancora migliori (ad es. Sotto carichi di lavoro impegnativi)", cioè suggeriscono che non è necessario iniziare a considerare questo a meno che non si abbia un " carico di lavoro impegnativo ".
sourcejedi,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.