In questo articolo spieghiamo da cosa è causata la perdita di dati quando un SSD rimane senza corrente per un periodo...
Blog Search
Blog tags
Perdita dati negli SSD non alimentati
SSD e perdita dei dati ad unità non alimentata
Negli ultimi tempi anche tra utentu comsumer sta aumentando la paura di questo fenomeno (perdita dei dati), anche se nel mondo enterprise si conosceva già, poichè erano ignari del reale limitie di conservazione dei dati nelle memorie flash, sopratutto in quelle QLC e TLC.
La causa
Una memoria NAND flash è un tipo di memoria non volatile a stato solido. Ogni cella quindi conserva i bit immagazzinando elettroni, dette floating gate oppure charge trap. Pertanto essendo una carica elettrica essa non è stabile nel tempo: si dissipa gradualmente a temperatura ambiente aumentando di velocità all'umentare dell'incremento termico.
Quindi all'umentare delle densità di memorizzazione per cella aumenta la probabilità di perdita dei dati in caso di mancata alimentazione.
Le più comuni tipologie di memoria NAND flash vengono differenziate in base al numero di bit logici che è possibile memorizzare per singola unità fisica.
Tra queste figurano le sigle:
SLC (Single-Level Cell, 1 bit/cella), queste celle hanno un ampio margine di tensione e di conseguenza hanno una conservazione dei dati molto elevata! Sono le memorie con le migliori performance in termini di endurance, con un funzionamento garantito fino ai 100'000 cicli di programmazione/cancellazione
MLC (Multi-Level Cell, 2 bit/cella), queste celle hanno un margine ridotto di tensione pertanto hanno una conservazione dei dati più ridotta! Essi sono caratterizzati da un buon compromesso tra le performance di endurance (tipicamente sono garantiti fino a 10'000 cicli di programmazione/cancellazione)
TLC (Triple-Level Cell, 3 bit/cella), queste celle hanno un margine minimo di tensione per cui hanno una conservazione dei dati critica! Ciò ha effetti negativi sulle prestazioni e sulla durata, la quale si riduce a solo 3.000 cicli di programmazione/cancellazione garantiti
QLC (Quad-Level Cell, 4 bit/cella), queste celle hanno un margine veramente limitato di tensione quindi la conservazione dei dati risulta molto ridotta in mancanza di alimentazione! Ciò ha effetti negativi sulle prestazioni e sulla durata, la quale si riduce a solo 300 cicli di programmazione/cancellazione garantiti
PLC (Five-Level Cell, 5 bit/cella), i dispositivi sono in fase di studio.
SSD "invecchiano" anche se non usati?
Per determinare il mantenimento dello stato logico (i dati) senza alimentazione elettrica per un determinato intervallo di tempo si usa il termine "retention". Questo valore (retention) diminuisce con il trascorrere del tempo se la carica decade oltre una certa soglia (circa il 50% della carica) e di conseguenza la cella restituisce valori errati.
Come abbiamo detto in precedenza la temperatura influisce in modo significativo: infatti l'unità SSD decade molto velocemente a temperature elevate. Ecco perchè è molto importante mantenere una temperatura non elevata!
Quindi in fase di progettazione si usano gli standard minimi JEDEC che separano "client" ed "enteprise".
* SSD Client: 1 anno di "retention" in condizioni di power-off (spento)
* SSD Enterprise: solo 3 mesi in condizioni di power-off (spento) perchè sono progettati per rimanere sempre alimentati.
Basta accendere l'SSD?? NO, bisogna leggere tutti i dati!
C'è da dire che alimentare l'SSD non risulta sufficiente per risolvere il problema della mancata alimentazione da un po di tempo. Per mantenere l'SSD in modo efficiente bisogna leggere tutti i bit periodicamente in modo tale che il controller riscriva i "bit deboli". Questo è molto importante, anche se ancora poco conosciuto come concetto.
Alcuni controller di ultima generazione eseguono un "background refresh" se rilevano un errore di letture sul bit, ma ci sono altri controller che limitano questa funziona a causa di un risparmio energetico.
Pertanto connettere un SSD ogni tanto e copiarvi magari qualche file NON è sufficiente per verificare i dati esistenti e metterli in sicurezza. Bisogna leggere completamente l'unità SSD tramite ad esempio il comando dd if=/dev/sdX of=dev/null su Linux (tipo una live leggera) dove X è la lettera che contraddistingue l'SSD su linux. Si comprende che non tutti sono in grado di fare questi tipi di operazioni ed è consigliabile farlo fare a qualche tecnico specializzato.
SSD che si auto-distruggono!
Ultimamente moltissimi esperti del settore security fanno notare che se il controller di un SSD interpreta alcuni settori di memoria come danneggiati può decidere di NON leggere qualsiasi settore e rendere l'unità inaccessibile ("FAILED").
Se il firmware dell'SSD stabilisce che un blocco è troppo corrotto, può decidere di smettere di restituire tutto il contenuto rendendolo inutilizzabile. Pertanto il solo modo di tentare di recuperare i dati sarebbe quello di dissaldare le memorie NAND e leggerle con hardware specifico ricostruendo la logica di mapping. Ovviamente queste sono operazioni costose e possibili solo in alcuni centri specializzati.
C'è da chiarire un aspetto non trascurabile: SSD SLC e MLC degli anni 2008-2013 funzionano perfettamente ancora oggi, mentre SSD dal 2014 in poi falliscono molto più facilmente. Questo è dovuto alla densità delle celle: hanno celle più piccole, di conseguenza più bit per cella e un firmware più complesso. Questo comporta un impiego massiccio di LDPC (Low Density Parity Check) e ricalibrazioni continue per correggere problemi fisici.
Archiviazione e uso quotidiano
Bisogna distinguere due aspetti:
- SSD come disco per il sistema operativo. Qui gli SSD mantengono la carica e e riscrivono i bit costantemente.
- SSD come archivio di "backup". Qui il rischio di perdita dei dati è molto forte poichè l'SSD rimane per troppo tempo senza alimentazione (tempistiche molto variabili).
Possiamo dedurre che la maggior parte degli utenti non spegne il PC per parecchio tempo, di conseguenza il rischio non c'è (salvo altri fattori!).
Gli ambiti in cui si potrebbero manifestare questi problemi sono:
- Liberi professionisti (architetti, ingegneri, avvocati ect ect) che effettuano backup off-line per prevenire attacchi cryptolocker.
- Fotografi e videomaker perchè usano archiviare progetti complessi per lungo periodo.
- Chiunque di noi conservi lavori nel cassetto ritenendo che "un SSD dura per sempre".
Conclusione
Possiamo concludere affermando che il sistema 3-2-1 è nato proprio per prevenire questi problemi. Nessun supporto singolo garantisce la conservazione dei dati nel lungo tempo. Questo vale per qualsiasi supporto ma sopratutto per gli SSD che possono corrompere i dati quando sono spenti per l'usura delle celle NAND, i meccanismi di retention e i limiti del firmware.
Questo modello 3-2-1 prevede tre copie dei dati su supporti differenti proprio per evitare il cosiddetto "single point of failure" Si consiglia sempre di usare sempre Hard Disk meccanici e supporti cloud. Per dati molto importanti è bene conservare una copia in ambienti diversi onde evitare danni provocati da incendio, furto , alluvione ect ect.


Lascia un commento
Log in to post comments