Chameleon SSD Optimizer, TRIM facile per Mac OS X

Chameleon SSD Optimizer, TRIM facile per Mac OS X

Il comando TRIM permette di ottimizzare le prestazioni di un SSD, ma affinché sia possibile apprezzarne i benefici è necessario che sia supportato dal disco e dal sistema operativo. Mac OS X lo supporta dalla versione 10.6.8, ma solo per gli SSD marchiati Apple: una piccola utility permette di aggirare la limitazione

di pubblicato il nel canale Programmi
Apple
 

TRIM, perché è utile

Il panorama relativamente statico delle tecnologie di storage ha visto una piccola rivoluzione con la comparsa delle prime unità a stato solido, o SSD (Solid State Drive), anche sul mercato consumer. L'ingresso sul mercato è avvenuto timidamente, inizialmente con soluzioni dalla capienza piuttosto ridotta ma che facevano della velocità delle operazioni e dell'affidabilità (data l'assenza di parti in movimento) i propri punti di forza.

E proprio sul tema delle prestazioni si è verificato, poco dopo il debutto degli SSD, un piccolo incidente di percorso: le prestazioni di questi dispositivi andavano a degradare man mano che le unità venivano utilizzate nell'ordinario. In particolare la cancellazione e la scrittura di informazioni su disco andava a causare il problema, per via di una serie di meccanismi di funzionamento propri degli SSD, a cui i sistemi operativi "non erano abituati" dopo anni di utilizzo di unità di storage magnetiche-meccaniche.

Ricordiamo infatti che un'operazione di cancellazione su un disco (generico, sia esso un SSD o una tradizionale unità magnetica-meccanica) si limita semplicemente a contrassegnare il settore come "non in uso" nel filesystem. Ciò significa che nel momento in cui è necessario scrivere dati su uno di questi settori, l'unità andrà a compiere un'operazione di sovrascrittura.

Se per quanto concerne gli hard disk tradizionali non vi è, di fatto, alcuna differenza tra un'operazione di scrittura ed una di sovrascrittura, molto differente è il caso delle unità a stato solido dove l'operazione di riscrittura comporta una più intensa attività a basso livello aumentando il carico di lavoro del controller e, in ultima istanza, andando a compromettere le prestazioni.

I dati negli SSD sono stoccati nelle celle della memoria flash, che sono raggruppate in pagine da 4kB ciascuna. Le pagine sono a loro volta raggruppate, in numero di 128, in blocchi per un totale di 512kB. I dati possono essere scritti direttamente nella cella di memoria solamente quando essa è vuota. Se la memoria invece contiene dati (o il controller considera che essa contenga dati), il contenuto deve essere cancellato prima che un'operazione di scrittura possa essere eseguita in maniera affidabile. Negli SSD, sebbene un'operazione di scrittura possa essere compuita a livello di pagina, così non è per le operazioni di cancellazione che possono essere effettuate solamente a livello di blocchi.

Nel momento in cui è necessario effettuare un'operazione di riscrittura, l'SSD ed il suo controller si occuperanno di copiare il contenuto di un blocco nella cache, modificare nella cache le pagine necessarie, eliminare il contenuto del blocco e quindi trasferire l'intero blocco, con i contenuti di pagina aggiornati, dalla cache alle celle di memoria. Da ciò si evince che le operazioni di scrittura possono essere condotte sulle unità SSD in maniera estremamente rapida solamente quando le celle di memoria sono vuote, ma esse rallentano considerevolmente nel momento in cui vi sono pagine che devono essere sovrascritte. Ciò avviene perché l'unità di storage non è in grado di conoscere quali siano i blocchi effettivamente disponibili dal momento che non è in grado di conoscere il contenuto del filesystem.

Il comando TRIM fa sì che il sistema operativo possa comunicare all'unità SSD quali pagine sono effettivamente disponibili per via dell'operazione di cancellazione da parte del sistema operativo. Durante un'operazione di cancellazione, il sistema operativo non solo contrassegna il settore come disponibile per nuovi dati, ma invia un comando TRIM all'SSD in maniera tale che esso possa conoscere quali siano i settori effettivamente disponibili e per i quali non è necessaria una rilocazione dei dati. Questo porta a ridurre il numero di cicli di scrittura, incrementando le prestazioni e la durata nel tempo dell'unità (ricordiamo infatti che le celle di memoria hanno una vita finita, determinata dal numero di cicli di scrittura).

Il comando TRIM funziona solamente se è supportato dal controller dell'SSD (ma praticamente ormai tutti i produttori realizzano SSD con supporto a TRIM o hanno aggiornato i firmware di prodotti precedenti) e se è supportato dal sistema operativo. Dopo la diffusione delle unità di storage a stato solido sul mercato, e le prime prese d'atto del progressivo decadimento prestazionale con il normale uso dell'unità, tutti i principali sistemi operativi hanno introdotto il supporto al comando TRIM.

L'ultimo, in ordine cronologico, è stato Mac OS X Snow Leopard con il rilascio dell'aggiornamento 10.6.8. Supporto a TRIM introdotto però con una pesante limitazione: il comando è automaticamente attivo solamente con le unità SSD marchiate Apple e montate di default al momento della produzione della macchina. Ciò significa che qualora si acquistasse un SSD di terze parti il comando TRIM non verrà attivato automaticamente, ma sarà necessario procedere in maniera manuale andando a modificare alcuni file di sistema tramite Terminale.

 
^