Questo è il secondo articolo di una serie dedicata al recupero dei dati (qui il primo articolo introduttivo). In questa seconda parte inizierò a descrivere in dettaglio i diversi dispositivi che possono essere interessati da un problema di perdita di dati

Il disco rigido

Il disco rigido è uno dei pochissimi componenti meccanici che fanno parte di un computer, sia esso un PC o un server (le ventole e i lettori DVD sono gli altri). Come tutti i meccanismi complessi che hanno parti in movimento, anche il disco rigido è soggetto a guasti che ne possono facilmente compromettere l’utilizzo. Infatti, con l’evoluzione tecnologica, si sta tentando una graduale diminuzione dei diversi dispositivi meccanici all’interno dei computer.
Purtroppo, ancora oggi, il disco rigido rimane il dispositivo con il miglior rapporto spazio/costo e quindi passerà ancora molto tempo prima che verrà sostituito.

  • Un disco rigido è composto da diversi elementi:
  • lo spindle motor
  • uno o più piatti
  • il braccio porta testine e le testine
  • l’attuatore per il posizionamento e il braccio di ritegno
  • l’elettronica

Tutti questi componenti possono subire un guasto. Proprio per questo, le principali cause che compromettono l’uso di un hard disk si trovano nella mancanza di alimentazione, rotture meccaniche, un errato utilizzo, scariche elettrostatiche o problemi elettronici. Alcuni di questi sono problemi solo su hard disk di vecchia concezione mentre altri rimangono rischi concreti anche sui prodotti più moderni.
Un ulteriore difficoltà è anche la continua crescita della capacità (oggi esistono HD con capienza di 3TB e presto saranno disponibili HD da 4 e 5 TB!) ma, dall’altro lato, la tecnologia è consolidata e non ha visto particolari evoluzioni negli ultimi anni. Un esempio: la velocità di rotazione di un HD può essere al massimo 15000 RPM (giri per minuto), questo valore è rimasto identico negli ultimi 10 anni. L’industria ha comunque lavorato molto per aumentare la densità con cui i dati vengono scritti sul media. La maggiore densità di dati che possono risiedere in un piatto, e la ridotta dimensione dei dischi di ultima generazione (2.5”, 1.8” e 1”), ha come conseguenza diretta una componentistica ancora più miniaturizzata. La miniaturizzazione ha diversi vantaggi (minor consumo elettrico, più velocità, minori inerzie) ma ha necessità di una attenzione e di una professionalità ancora maggiore quando il device deve essere aperto per un eventuale ripristino temporaneo.
Per iniziare l’intervento tecnico su di un disco rigido è molto importante eseguire un’analisi accurata per capire la natura del problema. Una volta individuato il problema si hanno le informazioni necessarie a capire se è possibile ripristinare le funzionalità del disco in modo da poter prelevare un’immagine completa del disco stesso (un’immagine del disco è un file che può essere visto dal computer come un disco virtuale). L’obiettivo infatti non è mai quello di riparare il disco per poterlo usare nuovamente ma è quello di riattivarlo per il tempo necessario a prelevarne il contenuto, un disco rigido moderno ha comunque delle tolleranze minime e una volta aperto, riparato e richiuso potrebbe non rispondere più agli standard per i quali è stato progettato.
Contrariamente a quanto molte persone credono i dischi rigidi non sono sigillati sottovuoto ne, tanto meno, sono stagni ma, una volta aperti, anche un granello di polvere può risultare devastante. Questo significa che per aprirli e operare l’eventuale pulizia (come nel caso di un allagamento) o sostituzione di parti sono necessari speciali ambienti (camera bianca) dove l’aria viene filtrata dalle impurità.
In funzione del tipo di guasto si opera in modo molto diverso per effettuare le operazioni di recupero. Nella maggior parte dei casi è necessario smontare il dispositivo e sostituire le parti danneggiate, ricalibrare al microscopio le testine, effettuare un’ispezione della superficie dei piatti. Altre volte si effettuano interventi di microelettronica o di riprogrammazione. Ogni azione intrapresa richiede l’uso di hardware e software ad hoc.
Altre volte è possibile recuperare i dati anche da dischi rigidi che sono stati sottoposti a stress particolarmente forti, come può succedere in caso di alluvioni o di incendi. Esistono però casi in cui il disco rigido non è recuperabile, o il recupero è possibile solo parzialmente. Ad esempio, se la testina tocca il piatto (head crash) può creare un solco con conseguente distruzione dei dati. Infatti le grandezze a cui operano i dischi sono infinitesimali, basti pensare che la testina sorvola il piatto ad una distanza di 12 nm (12 milionesimi di millimetro!).

Array di dischi

Se recuperare dati da un singolo disco rigido è complicato, ma tutto sommato un’attività concettualmente semplice, non si può dire la stessa cosa per i sistemi RAID. Le complessità introdotte dai meccanismi di protezione RAID e dalla loro specifica implementazione sono molteplici: le informazioni nel singolo disco rigido sono utili solo se correttamente allineate e ricostruite con tutte le altre facenti parte dello stesso set di dischi. Inoltre, proprio per natura dei sistemi RAID, i dati possono essere organizzati in modo diverso in funzione del tipo di protezione scelta, della versione del firmware dei controller, ma anche di particolari configurazioni che sono state fatte sul sistema.
Gli array dell’ultima generazione hanno anche introdotto meccanismi di virtualizzazione dei dischi rigidi interni. In questo modo non esistono più RAID group tradizionali ma i singoli dischi vengono suddivisi in chunk (pagine o blocchi) di piccole dimensioni che poi concorrono a comporre dei raid group molto ampi (wide striping). In altri casi, come ad esempio nel caso dei NAS, l’array ha anche un suo filesystem interno che deve gestire i file da condividere. In ogni caso si ha sempre più spesso a che fare con array molto sofisticati che gestiscono dati e metadati, ed è necessario recuperare entrambi per ripristinare i dati dell’utente.
Non ultimo c’è anche da considerare che molti produttori stanno introducendo nuove tecnologie per migliorare l’efficienza di immagazzinamento dei dati, come ad es.: thin provisioning, zeroing, deduplication e compressione. In questi casi si ha un ulteriore complessità del layout ma anche un rischio maggiore dovuto al fatto che, soprattuto in caso di sistemi di deduplicazione, anche la perdita di una piccolissima parte di dati può seriamente compromettere l’integrità di tutto il sistema.
Un doppio guasto in un array moderno è un rischio che cresce continuamente, soprattutto perchè i tempi di ricostruzione aumentano sensibilmente in funzione dell’aumentare della capacità dei dischi rigidi. Per questa ragione, molti costruttori hanno implementato meccanismi di protezione RAID più sofisticati che in passato (come ad esempio il RAID 6). Purtroppo però la probabilità che un guasto critico possa compromettere il RAID e i dati al suo interno non è ineluttabile.
Il ripristino dei dati su un array è più complicato rispetto alla ricostruzione di un disco rigido singolo perchè, come scritto in precedenza, i dati sono divisi su più dispositivi e ogni operazione di IO viene gestita da uno o più controller. In alcuni casi, gli array utilizzano un vero e proprio file system per organizzare i dati al proprio interno. La conseguenza di tutto questo è che per poter procedere con un ripristino dei dati sul lato utente è obbligatorio seguire una serie di passi per ripristinare tutti i livelli intermedi e verificarne la loro consistenza. L’eventuale operazione di recupero va quindi divisa in diverse parti e, in funzione del tipo di guasto, il processo può richiedere da pochi giorni a tempi molto lunghi nei casi più catastrofici. Nei casi più gravi, Il processo di ripristino di un Array può essere molto complesso: in casi estremi è necessario estrarre i dischi dal sistema originario e recuperarli ad uno ad uno per poi simulare il comportamento dell’array attraverso software disegnati appositamente. Queste operazioni sono decisamente delicate e possono richiedere di spostare l’array in un laboratorio per ripristinare l’accesso ai dati.

Disclaimer: L’azienda Kroll Ontrak ha sponsorizzato la realizzazione di un report sulla problematica del recupero dei dati. Il documento è diviso in due parti, nella prima viene presentata la problematica nei suoi aspetti più generali: introduzione, problematiche specifiche legate a diversi tipi di dispositivi, sistemi più complessi e virtualizzazione. La seconda parte di questa pubblicazione è dedicata alla presentazione di Kroll Ontrack. Il report sarà presto scaricabile dal sito dell’azienda e dall’area dei download del sito di Juku. In questo blog abbiamo deciso di pubblicare una serie di articoli che ripropongono la sezione indipendente del documento.