Google e l’affidabilità della tecnologia SSD

SLC_MLCCome promesso, il secondo tema affrontato da Google al FAST in questo documento: l’affidabilità degli SSD nei data-center. Anche questa volta riporteremo solo le cose che ci hanno colpito di più, talvolta semplificando.

Gli SSD sono composti da serie di chip, a loro volta composti da blocchi di memoria. Tutte le memorie usate  soffrono di un problema tecnologico, al momento non eludibile: dopo un certo numero di cancellazioni complete un blocco diventa inutile. I produttori usano tecniche per evitare di usare sempre gli stessi blocchi (anzi, cercando di disperdere le operazioni su più blocchi possibile), e forniscono le specifiche del numero stimato massimo di programmi di cancellazione (PE – Program Erease) sostenibile. In commercio ci sono due tipi di memoria: SLC (Single Level Cell) e MLC (Multi Level Cell): le prime sono tecnologicamente più vecchie, e più costose, ma ritenute più affidabili proprio perché sopportano un numero di cancellazioni più alto (nel documento di Google si segnala 100 mila contro 3 mila).

In questi anni Google ha messo in campo una vera e propria flotta di device SSD di entrambi i tipi nei suoi data-center, con entrambi i tipi di memoria prodotte da aziende differenti, con dispositivi progettati e realizzati apposta. Le analisi svolte quindi non riguardano modelli in commercio, ma la tecnologia di memoria utilizzata (che poi è la stessa usata negli SSD che possiamo comprare). E ci sono conferme e sorprese.

Tra i risultati aspettati c’è l’affidabilità delle memorie SLC: sopportano effettivamente molti PE in più delle memorie MLC (le quali comunque sopportano 3 volte più cicli di quelli dichiarati dal produttore). Sorprende però (ed è la notizia maggiore) che questo non si traduce in dischi più affidabili: quelli basati su memorie SLC e quelli su MLC si rompono in egual misura, con tipologie di errori simili, in tempi simili. Si deduce quindi un’altra cosa notevole: l’affidabilità del singolo chip non influisce sull’affidabilità complessiva del device SSD.

Le analisi procedono facendo un approfondimento dei tipi di errore, e si rileva che la maggior parte erano in lettura. Cosa abbastanza inaspettata: comunemente si ritiene più critica l’operazione di scrittura. Inoltre questi dispositivi hanno algoritmi di controllo dell’errore (ECC) specifici proprio per riparare eventuali piccole corruzioni, ma la maggior parte degli errori erano del tipo final read error, ovvero quello nel quale il dato in questione non è proprio più leggibile, è andato perso. I data-center hanno ridondanza dei dati e quindi possono sopportare la perdita del dato da un singolo dispositivo, ma rimane una notizia non proprio buona.

L’analisi alla ricerca delle cause è stata abbastanza inconcludente: nessuna delle cause comunemente indicate è risultata preponderante, e nemmeno indicativa di possibili problemi futuri. Altra cosa inaspettata è che il l’uso non influisce sul numero di errori: ha più valore da quanto tempo usi il disco di quanto usi il disco. Non solo: la misura comunemente accettata per l’affidabilità a posteriori dei device di memoria, RBER (Raw Bit Error Ratio – tasso di errore di bit memorizzati), è risultata per nulla indicativa della possibilità che un disco si rompa: non serve a nulla, almeno con gli SSD…

Si è osservato che l’unico indicatore in qualche modo affidabile è il numero di blocchi di memoria difettosi: quando un paio (su milioni) diventano inutilizzabili, la probabilità di avere errori non correggibili (e perdita di funzionalità del disco, se non del disco stesso) aumenta. Si evidenzia anche che tutte le memorie prodotte hanno blocchi difettati fin dalla fabbrica (dell’ordine delle centinaia), ma anche questo non ha importanza: rimane importante solo il numero di blocchi diventati inutilizzabili dopo aver messo in opera il disco.

Tutto questo mi porta ad alcune conclusioni:

  • è dimostrato che l’affidabilità dei dischi non dipende dalla tecnologia usata (SLC o MLC);
  • serve un modo nuovo di misurare l’affidabilità degli SSD, in quanto gli indici attuali (PE e RBER) non sono affidabili;
  • usare un disco SSD non vuol dire usurarlo.

Piccola aggiunta: un confronto con gli HDD è naturale, e si conferma che i primi richiedono molto più spesso la sostituzione rispetto agli SSD; allo stesso tempo però il pericolo di perdita definitiva dei dati è più alta con gli SSD. Curioso, non trovate?

Ho coltivato la mia passione per l'informatica fin da bambino, coi primi programmi BASIC. In età adulta mi sono avvicinato a Linux ed alla programmazione C, per poi interessarmi di reti. Infine, il mio hobby è diventato anche il mio lavoro.
Per me il modo migliore di imparare è fare, e per questo devo utilizzare le tecnologie che ritengo interessanti; a questo scopo, il mondo opensource offre gli strumenti perfetti.

Tags: , ,