SSD: effetti della Garbage Collection e del comando TRIM

giovedì 13 dicembre 2018 di Michael Nuncic

Tutti i dispositivi di storage basati su tecnologia flash, SSD inclusi, sono unici per il modo in cui gestiscono i dati precedentemente cancellati. Quando si cancella un file in Windows o in un qualsiasi Sistema Operativo (SO), tale file continua ad esistere sul dispositivo di storage, che sia un HDD o un SSD.

I dati cancellati dal Sistema Operativo, ma ancora presenti sul dispositivo di storage, saranno chiamati "Garbage Data".

In caso di cancellazione di un file, il SO presuppone che l'indirizzo in cui risiedeva quel file ora sia vuoto e possa essere sovrascritto se necessario. Quando il SO emette un comando per scrivere i dati in una posizione che in precedenza conteneva dei dati, il disco HDD scrive sopra i garbage data senza problemi.

Con i dispositivi di storage basati su NAND Flash (drive USB Flash, schede SD, SSD ecc.) ciò non è possibile. Gli SSD hanno bisogno di cancellare i contenuti della cella di memoria prima di procedere con la scrittura.

Questo processo di riciclo dei dati precedentemente cancellati dalle celle è noto come garbage collection. Il processo di garbage collection e le relative strategie vengono programmati nel firmware del controller SSD e si differenziano in base ai produttori dei dischi.

I dischi che utilizzano un processo di garbage collection efficiente mostrano buone performance fin da subito e anche per i mesi successivi, mentre le prestazioni degli altri dischi tendono a rallentare nel tempo. Questo rallentamento ha origine dal controller sul disco SSD che deve gestire il riciclo di tutti i blocchi con i garbage data.

Quando Windows® 7 è stato rilasciato da Microsoft, veniva promosso come il primo "SSD–aware OS".
Quando riconosce un SSD installato nel Sistema, il SO disabilita alcune funzionalità correlate al miglioramento delle performance dell'HDD che non sono necessarie per il disco SSD. Abilita inoltre un'ottimizzazione specifica del disco SSD chiamata comando TRIM.

Per dirla in maniera semplice, il comando TRIM consente al sistema operativo e al disco SSD di comunicare dove sono i garbage data e di contrassegnarli per la cancellazione.

Quando TRIM è abilitato e un file viene cancellato, il SO comunica che l'indirizzo in cui risiedeva il file può essere pulito. Per abilitare questa funzionalità, il disco SSD deve supportare il comando TRIM. Si noti che tutti gli SSD Kingston supportano il comando TRIM.

Il comando TRIM è una funzionalità efficace che abilita performance omogenee per gli SSD nel tempo, ma presenta delle limitazioni. Esso è dipendente dalla capacità di comunicare con il disco tramite interfaccia SATA. Se gli SSD sono configurati in un array RAID, connesso a un controller HBA o collocato in una configurazione NAS/SAN al di fuori del PC host, il comando TRIM non raggiunge gli SSD.

Su questo punto, i dati recenti ricavati dai nostri clienti enterprise mostrano che Windows XP è ancora il SO dominante nei loro ambienti. Tenendo a mente questa considerazione, abbiamo provveduto a testare l'efficacia della Garbage Collection vs. TRIM e l'effetto che hanno sulle performance degli SSD.

Per testare questo scenario, abbiamo scritto un'utility che riempie completamente il disco SSD di dati, lo svuota e quindi lo riempie di nuovo, misurando il delta nel tempo compreso tra il primo riempimento e il secondo. Riempiendo completamente il disco, cancellando ogni cosa e poi riempiendolo di nuovo immediatamente, obblighiamo il controller sul disco SSD a effettuare una garbage collection sull'intero disco, scrivendo simultaneamente nuovi dati sull'unità.

Abbiamo configurato il SSD come unità D: collegata a una porta SATA 2 in un sistema Windows 7 ed eseguito questo test "riempi – svuota – riempi" con il comando TRIM attivato e poi disattivato, per simulare tutti i sistemi operativi privi di TRIM come XP, Vista, Mac OS X.
Inoltre, abbiamo eseguito un altro test con gli SSD configurati in modo che il comando TRIM non possa raggiungere le unità (RAID, SAN).

Infine, abbiamo eseguito i benchmark PCMark Storage per testare le performance generali del disco. Nel corso di tutti i test abbiamo incluso un HDD da 5400RPM da utilizzare per il confronto.

I risultati del test Garbage Collection vs. TRIM

Si noti che le prime prove su ciascun disco sono state le più veloci nel momento del riempimento, dato che per prima cosa abbiamo svuotato il disco per simulare le performance dello stato di fabbrica.

In questi test, i dischi KC100 e V+100 hanno mostrato performance regolari e consistenti nelle fasi 1-3 con il comando TRIM attivato e nelle fasi R4-R6 con TRIM disattivato continuano a mostrare le stesse performance. SSD1, SSD2 e SSD3 mostrano tutti performance consistenti con TRIM attivato, ma all'inizio della fase 4, gli SSD 1 e 2 impiegano più tempo per completare i nostri test "riempi – svuota – riempi".

Il disco SSD3 per ragioni sconosciute mostra performance molto inconsistenti. Ricordiamo che abbiamo disattivato il comando TRIM alla fine della fase R3 e quindi i dischi non hanno più il comando TRIM che segnala dove sono i garbage data. La “garbage collection implementation” dei dischi viene rigidamente testata nelle fasi dalla 4 alla 6 (R4-R6). Le fasi R4–R6 mostrano le performance dei dischi in SO senza TRIM come Windows XP, Vista e MAC OS X.

La PCMark Storage Suite è stata eseguita immediatamente dopo la cancellazione sicura per ottenere il miglior risultato possibile, dopo la fase 3 con TRIM ancora attivo e quindi dopo la fase 6 con TRIM disattivato.

Come potete osservare nel grafico, entrambi i dischi Kingston continuano ad avere buone prestazioni con o senza il comando TRIM abilitato.
Si registra un leggero calo nel risultato generale in confronto al risultato R1 ma si è verificato dopo una cancellazione sicura quando il disco era completamente vuoto, senza garbage data. SSD1, 2 e 3 mostrano tutti un significativo calo del risultato dalla R3 alla R6.

Un feedback che abbiamo riscontrato non riguarda la velocità delle performance degli SSD quando questi sono nuovi, ma piuttosto come rallentino dopo un uso consistente. Questo test mostra che, in una certa misura, una volta che tutte le NAND in un SSD sono state scritte, il controller è obbligato a riciclare i garbage data per eseguire qualsiasi nuova operazione di scrittura.
I dischi migliori mantengono performance regolari, senza rallentamenti.

Conclusione

Per tutti i dispositivi basati su NAND Flash è necessario gestire i dati precedentemente cancellati eliminando i contenuti di una cella di memoria prima di scrivere nuovi dati.

La garbage collection e il comando TRIM sono modi efficaci per un SSD di riciclare i "garbage data". Il comando TRIM presenta alcune limitazioni menzionate in precedenza, in particolare non è in grado di comunicare con gli SSD in un array RAID e manca la sua implementazione nei sistemi operativi più vecchi. Invece, un SSD con un processo di garbage collection efficace riciclerà i garbage data senza sacrificare le performance in qualsiasi ambiente operativo.

I dischi Kingston KC100 e V+100 utilizzano strategie di garbage collection molto efficienti. Non è così per tutti gli SSD. Nei nostri test abbiamo osservato alcuni SSD hanno rallentato una volta che il comando TRIM è stato disattivato.

Quando prendono in considerazione un passaggio alla tecnologia SSD, gli specialisti IT e gli acquirenti dovrebbero ricordarsi di tener conto di quale sarà il SO host e quale configurazione verrà utilizzata.

Servizi di recupero dati

Hai perso i tuoi dati? Contattaci subito per recuperarli.


Cosa pensano i clienti dei nostri servizi: