Τετάρτη, 9 Νοεμβρίου 2016

Βλάβες SSD και προοπτικές ανάκτησης

Βλάβες & Ανάκτηση Δεδομένων

από δίσκους SSD

NORTHWIND DATA RECOVERY WHITE PAPER(c) 2017




Ναι, οι δίσκοι SSD “χτυπάνε”

Η ανάπτυξη και εξέλιξη των Solid State Drives (SSD) έχουν ομολογουμένως αλλάξει τη βιομηχανία (και τη φιλοσοφία!) των αποθηκευτικών μέσων και έχουν επιφέρει σημαντικά εφόδια σε αυτόν τον τομέα, τόσο σε εταιρικούς καταναλωτές όσο και στους ιδιώτες.
Οι αυξημένες επιδόσεις (ταχύτητες εγγραφής/ανάγνωσης), σε συνδυασμό με την απουσία μηχανικών μερών όπως τα platter των κλασικών δίσκων (άρα και απουσία βλαβών που σχετίζονται με αυτά) και επιπρόσθετα η διαρκής μείωση του κόστους αγοράς τους, τους έχουν καθιερώσει ως πολύ σημαντικό ανταγωνιστή των κλασικών σκληρών δίσκων. Πλέον δεν είναι “εκείνη η καινούργια τεχνολογία που απευθύνεται σε λίγους” καθώς είναι εύκολα προσβάσιμη σε όλους, από απλά laptop για το σπίτι μέχρι Enterprise συστήματα SAN.

Οι SSD θεωρούνται πιο ανθεκτικοί

Γενικά μιλώντας, οι Solid State δίσκοι είναι όντως πιο ανθεκτικοί από τους συμβατικούς. Οι μηχανικοί σκληροί δίσκοι έχουν περιστρεφόμενα μηχανικά μέρη τα οποία είναι ρυθμισμένα με τεράστια ακρίβεια. Αν αυτή η ρύθμιση για κάποιον λόγο χαθεί, υπάρχει πρόβλημα λειτουργίας του δίσκου. Για παράδειγμα, οι μηχανικοί δίσκοι είναι εξαιρετικά ευαίσθητοι στο σοκ (πχ. κρούση) και πολλές φορές σταματούν να λειτουργούν μετά από ένα τέτοιο σοκ. Ένα τέτοιο παράδειγμα είναι η πτώση ενός σκληρού δίσκου από ύψος.
Ομοίως, οι συμβατικοί σκληροί δίσκοι είναι εξαιρετικά ευαίσθητοι στην υπερθέρμανση, η οποία μπορεί να προκύψει αν για παράδειγμα κάποιος ανεμιστήρας ενός συστήματος δεν λειτουργεί για μεγάλο χρονικό διάστημα και δεν αντικατασταθεί, ή αν γενικά ο σκληρός δίσκος εκτεθεί σε ακραίες θερμοκρασιακές συνθήκες.
Οι
SSD δίσκοι είναι γενικά πιο ανθεκτικοί σε τέτοιες συνθήκες και για αυτό το λόγο θεωρούνται ανθεκτικότεροι.
Παρόλα αυτά, η ανθεκτικότητα αυτού του είδους δεν ισοδυναμεί πάντα με αξιοπιστία. Σε πρόσφατη έρευνα από το Πανεπιστήμιο του Τορόντο (και σε συνεργασία με τη
Google), η οποία και παρουσιάστηκε στο συνέδριο FAST το 2016, φαίνεται ότι παρόλο που οι SSD δίσκοι παρουσιάζουν ελαφρώς μικρότερο ρυθμό αντικατάστασης, ένα ποσοστό μεταξύ 45-65% των SSD δίσκων παρουσιάζουν τουλάχιστον ένα σοβαρό σφάλμα στην πρώτη 4ετία λειτουργίας τους.
Επομένως, αν και η μετάβαση από τους μηχανικούς δίσκους στους SSD δείχνει να έχει συγκεκριμένα οφέλη, στην πραγματικότητα θα ήταν λάθος να θεωρήσουμε ότι η μετάβαση αυτή θα σημαίνει και μειωμένες πιθανότητες σφαλμάτων υλικού ή μειωμένη πιθανότητα απώλειας δεδομένων.




Οι δίσκοι Solid State, σε αντίθεση με τους συμβατικούς δίσκους, δεν αντιμετωπίζουν βλάβες που ισοδυναμούν με απώλεια δεδομένων όπως η καταστροφή των platter. Η φωτογραφία από πάνω πάρθηκε στο Clean Room της Northwind και προέρχεται από σκληρό δίσκο με βλάβη στις επιφάνειες. Όπως φαίνεται καθαρά, ένα μεγάλο μέρος του μαγνητικού υλικού (άρα και των δεδομένων) έχει “ξυθεί” από τις κατεστραμμένες κεφαλές και έχει απορροφηθεί από το φίλτρο.









Χαρτογράφηση των εξαρτημάτων ενός SSD

Όταν αφαιρέσουμε το εξωτερικό περίβλημα ενός δίσκου SSD, θα βρούμε στο εσωτερικό του μία πλακέτα (PCB) η οποία έχει επάνω της διάφορα εξαρτήματα. Διακρίνονται εύκολα το interface (συχνότερα είναι SATA), ο Controller και τα NAND chip στα οποία γράφονται τα δεδομένα.


ΤΑ NAND CHIPS:

Τα NAND chips αποτελούνται από πολλά κελιά ενωμένα σε σειρά μεταξύ τους.

Πολύ συχνά οι δίσκοι SSD χρησιμοποιούν μνήμες ΝΑΝD τύπου MLC (Multi-Level Cell), οι οποίες είναι ένας τύπος σταθερών μνημών που διατηρούν τα δεδομένα σε περιπτώσεις απώλειας ενέργειας (τροφοδοσίας ρεύματος κλπ). Πρόσφατα έχουν αρχίσει και χρησιμοποιούνται όλο και περισσότερο οι μνήμες τύπου TLC (Triple Level Cell) για τις οποίες ισχύει επίσης το ίδιο, αλλά έχουν μειονεκτήματα που θα αναλύσουμε παρακάτω.

Υπάρχουν διάφοροι κατασκευαστές μνημών NAND οι οποίοι κατασκευάζουν με τη σειρά τους διάφορα μοντέλα, τα οποία διαφέρουν σε ταχύτητα, διαχείριση ενέργειας και φυσικά σε κόστος.

Τα δεδομένα που αποθηκεύονται σε ένα NAND chip γράφονται σε αυτό που αποκαλούμε “σελίδα” (Page). Αυτή είναι η μικρότερη μονάδα δεδομένων που μπορεί να διαβαστεί από ένα NAND Chip. To μέγεθος ενός Page μπορεί να διαφοροποιείται και μπορεί να παρομοιαστεί με το SECTOR των συμβατικών σκληρών δίσκων. Το κάθε block αποτελείται από πολλά pages. Τα pages είναι συνήθως 512, 2048 ή 4096 bytes το κάθε ένα. Συνήθως το 1/32 του μεγέθους ενός Page χρησιμοποιείται για να αποθηκευτεί στο δίσκο ένα checksum το οποίο ονομάζεται ECC (Error Correcting Checksum) και χρησιμοποιείται για την εύρυθμη λειτουργία του δίσκου.

Ο FLASH CONTROLLER:

Ο Flash Controller είναι ο εγκέφαλος των SSD. Η λειτουργία του περιλαμβάνει την εκτέλεση των εντολών εγγραφής και ανάγνωσης, την βελτιστοποίηση της διαχείρισης των βλαβών, των φθορών και των απωλειών και την μετατροπή των δεδομένων των NAND chip σε “Pages” (και επομένως και σε πραγματικά δεδομένα). Η αρχιτεκτονική των Controller περιλαμβάνει:

Επεξεργαστής: Συνήθως βασίζεται σε ARM

αρχιτεκτονική. Στους σύγχρονους SSD ο επεξεργαστής είναι συνήθως με πολλούς πυρήνες.
DRAM Cache: Αυτή είναι ένα είδος buffer που χρησιμοποιείται για την βελτιστοποίηση της ταχύτητας και της μεταφοράς των δεδομένων.

Κανάλια Flash: Συχνά αναφέρονται και ως Flash Interface modules, αποτελούν τα κυκλώματα που χρησιμοποιούνται για την επικοινωνία των NAND μνημών μεταξύ τους.

Firmware: Tο firmware του Controller τρέχει ένα εξαιρετικά πολύπλοκο σύστημα αρχείων με πολλαπλά modules τα οποία διαχειρίζονται διάφορες εργασίες όπως η εξισορρόπηση των φθορών, η συλλογή των “αχρήστων”, η διαχείριση των απωλειών και ο διαχωρισμός των block πχ σε κατειλημμένα, ελεύθερα και κατεστραμμένα. Ο τρόπος της διαχείρισης αυτής και του τρόπου που λειτουργεί το firmware είναι μοναδικά (proprietary) για κάθε κατασκευάστρια εταιρία.



Τύποι βλαβών των SSD:

Υπάρχουν πολλών ειδών βλάβες που επηρεάζουν τους δίσκους SSD. Παρακάτω θα καλύψουμε τους συχνότερους τύπους βλαβών, μαζί με τις προκλήσεις που αντιμετωπίζουμε προκειμένου να ανακτήσουμε δεδομένα από αυτές τις βλάβες.

Κατεστραμμένα τμήματα κυκλώματος:

Μια καμμένη ασφάλεια, αντίσταση ή πυκνωτής είναι το πιο συχνό σενάριο βλάβης επάνω σε ένα ολοκληρωμένο κύκλωμα. Η λύση κάποιες φορές μπορεί να είναι απλή, αντικαθιστώντας το προβληματικό εξάρτημα. Μιας και μιλάμε για SMD και BGA μικροκυκλώματα, απαιτείται γνώση, σταθερό χέρι και ο σωστός εξοπλισμός για το reflow. Μια εναλλακτική, που όμως προτείνεται μόνο σε έμπειρο μηχανικό ανάκτησης με την αντίστοιχη εμπειρία στις κολλήσεις και στο reflow, είναι η μεταφορά των NAND chips μαζί με τον Controller σε ένα άλλο, πανομοιότυπο PCB. Όμως, αν υπερθερμανθεί έστω και ένα από τα NAND Chips, καταστρέφεται πολύ εύκολα, και τα δεδομένα θα είναι οριστικά μη-ανακτήσιμα. Ομοίως, αν σπάσει ή αποκολληθεί ένα από τα ποδαράκια των NAND ή αν το pad pool των ΒGA δεν ξεκολληθεί σωστά τότε η ανάκτηση θα είναι το λιγότερο εξαιρετικά δύσκολη, αν όχι αδύνατη.



Κατεστραμμένος Controller:

Οι Controller, οι οποίοι όπως είπαμε ευθύνονται για την επικοινωνία του δίσκου με τον Η/Υ και τη διαχείριση των δεδομένων που αποθηκεύονται επάνω στις μνήμες, μπορεί να “χτυπήσουν” χωρίς προειδοποίηση. Συνήθως αυτό οφείλεται σε κακή ποιότητα κατασκευής των chip, σε υπερθέρμανση/υγρασία κλπ, σε βραχυκύκλωμα κ.α. Μια τέτοια βλάβη έχει ως αποτέλεσμα ο δίσκος να μην ανταποκρίνεται (συνήθως μένει σε κατάσταση BUSY). Αυτή θα είναι και ίσως η χειρότερη βλάβη, καθώς περιορίζει κατά πολύ τις προοπτικές και τις δυνατότητες ανάκτησης, αποκλείοντας τις πιο συνηθισμένες τεχνικές.



Καταστροφή των κελιών Flash:

Αυτός ο τύπος των βλαβών εμφανίζεται συχνά ως αποτέλεσμα της υποβάθμισης των μνημών λόγω χρήσης. Οι μνήμες Flash έχουν πεπερασμένο αριθμό εγγράψιμων κύκλων. Ο ρυθμός με τον οποίο εμφανίζεται αυτή η βλάβη εξαρτάται από ποια τεχνολογία εφαρμόζεται στις μνήμες (TLC, MLC, EMLC, SLC) από την κατασκευάστρια του δίσκου. Για παράδειγμα, οι TLC (Triple Level Cell) NAND είναι σχετικά φθηνότερες, μιας και αποθηκεύουν τρία bits ανά κελί και ως εκ τούτου μπορεί να γράψει μεγαλύτερο αριθμό δεδομένων σε κάθε NAND chip. Όπως γίνεται όμως συνήθως, το πιο οικονομικό έχει και τον αντίστοιχο αντίκτυπο, καθώς οι TLC μνήμες έχουν σημαντικά μικρό αριθμό εγγράψιμων κύκλων κάτι που μειώνει πολύ τη συνολική ζωή του δίσκου σε σχέση με τις MLC (Multi Level Cell) ή τις SLC (Single Level Cell). Οι βλάβες τέτοιου τύπου είναι συνήθως ανακτήσιμες με τη χρήση σύγχρονου εξοπλισμού ανάκτησης.



Άλλες βλάβες:

Υπάρχουν πολλοί άλλοι λόγοι για τους οποίους μπορεί να “χτυπήσει” ένας δίσκος SSD. Αυτές οι βλάβες μπορεί να οφείλονται σε κακής ποιότητας υλικά που χρησιμοποιήθηκαν από την κατασκευάστρια στο εργοστάσιο, σε κακούς ελέγχους ποιότητας στο εργοστάσιο, φυσικές καταστροφές (πυρκαγιές, πλημμύρες κλπ), ανθρώπινα λάθη (ατυχήματα με υγρά κλπ), αστάθμητοι παράγοντες... Η ανάκτηση των δεδομένων από αυτές τις περιπτώσεις είναι συχνά δυνατή. Ο βαθμός επιτυχίας και η πολυπλοκότητα της διαδικασίας, πάντως, εξαρτώνται σε μεγάλο βαθμό από το συγκεκριμένο μοντέλο του δίσκου και τα συνακόλουθα αυτού (controller, τύπους μνήμης κλπ).



Βλάβη στο Firmware:

Σπανίως, το firmware μπορεί να έχει bugs τα οποία προκαλούν την αδυναμία πρόσβασης στον SSD και στα περιεχόμενα δεδομένα.

Πιο συχνά βλέπουμε το
firmware να παρουσιάζει πρόβλημα λόγω bad blocks ή bad pages τα οποία επηρεάζουν την περιοχή στην οποία γράφεται το firmware. Προφανώς, το (υγιές) firmware είναι απαραίτητο τόσο για τη λειτουργία τους ίδιου του δίσκου όσο και για την πρόσβαση στα δεδομένα του δίσκου. Το firmware μπορεί να φλασαριστεί από πάνω, όμως σε αυτήν την περίπτωση η συσκευή θα επιστρέψει στις εργοστασιακές ρυθμίσεις και τα δεδομένα θα έχουν χαθεί οριστικά. Επομένως, αν σκοπός μας είναι η ανάκτηση δεδομένων, το φλασάρισμα του firmware απορρίπτεται και θα πρέπει να βρούμε τρόπο να επισκευάσουμε το firmware προκειμένου να αποκτήσουμε και πάλι πρόσβαση στα δεδομένα.



Παρακάτω φαίνεται μία απεικόνιση των pages που αποθηκεύονται σε ένα NAND chip. Βλέπουμε την γραφική αναπαράσταση καθενός bit (8 bits = 1 byte), όπως επίσης και την “μετάφραση” σε δεκαεξαδική μορφή στο δεξί μέρος. Το page έχει σπάσει στο μπλε τμήμα που αντιπροσωπεύει τα δεδομένα, στο κόκκινο τμήμα που περιέχει το Service Area (metadata) και το πορτοκαλί τμήμα που είναι το ECC που αναφέραμε προηγουμένως.





Το Firmware των δίσκων SSD κατά βάση αποθηκεύεται με ιδιαίτερο τρόπο. Τα δεδομένα του χρήστη δεν αποθηκεύονται συνεχόμενα, αλλά κάθε block περιέχει πολλά pages. Κάθε page περιέχει: Τα δεδομένα του χρήστη, ένα τμήμα το οποίο καταλαμβάνεται από το Service Area και ένα τμήμα το οποίο καταλαμβάνεται από το ECC. Το κακό είναι ότι κάθε κατασκευαστής έχει όχι μόνο δικό του μοναδικό και “κρυφό” firmware, αλλά επιπροσθέτως για κάθε μοντέλο έχει διαφορετικά configuration για το firmware, συν τα revisions που κάθε τόσο γίνονται, περιπλέκουν ακόμα περισσότερο τα πράγματα.



Η πρόκληση της ανάκτησης δεδομένων:

Όταν ένας SSD σταματήσει να λειτουργεί και απαιτείται ανάκτηση δεδομένων, υπάρχουν πολλές προκλήσεις που δυσκολεύουν ή αποτρέπουν την επιτυχημένη ανάκτηση. Παρόλο που οι SSD είναι διαθέσιμοι στην αγορά εδώ και αρκετό καιρό, ο βαθμός της έρευνας και της ανάπτυξης στους κόλπους της ανάκτησης δεδομένων είναι περιορισμένος. Ένας από τους λόγους για τους οποίους συμβαίνει αυτό είναι η έλλειψη συνεργασίας με τις κατασκευάστριες εταιρίες, οι οποίες διατηρούν μυστικούς τους αλγόριθμους των controller που χρησιμοποιούν. Αν συνδυάσουμε τον τεράστιο, πλέον, αριθμό κατασκευάστριων εταιριών, τις άπειρες εταιρίες που προμηθεύουν με chips της κατασκευάστριες (συνήθως από την Κίνα ή την Ταϊβάν), την συνεχόμενη παραγωγή νέων μοντέλων τα οποία χρησιμοποιούν κρυπτογραφημένους αλγορίθμους, καταλαβαίνουμε ότι οι προκλήσεις είναι πολλές.


Η πρόκληση του XOR:

Οι περισσότεροι SSD δεν αποθηκεύουν τα δεδομένα με τον παραδοσιακό τρόπο των συμβατικών δίσκων, αλλά χρησιμοποιούν ένα κλειδί XOR. Αν και αυτή ήταν μια σπουδαία ιδέα για να μειωθεί η κατάχρηση συγκεκριμένων blocks και άρα να μειωθεί και η πιθανότητα πρόωρης βλάβης, αυτό προσθέτει επιπλέον πολυπλοκότητα στη διαδικασία ανάκτησης, ιδίως όταν το κλειδί XOR δεν είναι γνωστό. Και για να γίνει ακόμα πιο πολύπλοκο, κάποιοι κατασκευαστές χρησιμοποιούν δυναμικό XOR (αλλάζει κάθε φορά που ανοιγοκλείνει το ρεύμα στο δίσκο!) με αποτέλεσμα η δυσκολία της ανάκτησης να πολλαπλασιάζεται. Και έχει και χειρότερα: Κάποιοι κατασκευαστές κρυπτογραφούν αυτόματα τα δεδομένα που αποθηκεύονται στα NAND chips, με αποτέλεσμα η ανάκτηση να είναι αδύνατη αν δεν είναι γνωστό το κλειδί της κρυπτογράφησης.



Η Λύση:

Προκειμένου να επιτευχθεί το καλύτερο δυνατό αποτέλεσμα στην ανάκτηση δεδομένων, είναι
απαραίτητο να συνδυαστεί εξειδικευμένος εξοπλισμός πολλών χιλιάδων ευρώ, μαζί με τεχνικές που αναπτύσσονται εσωτερικά στην εταιρία. Πολλές φορές απαιτείται η επισκευή του firmware ενός δίσκου προκειμένου να αποκτηθεί πρόσβαση στα δεδομένα, άλλες φορές απαιτούνται πιο επεμβατικές μέθοδοι.

Για παράδειγμα, μπορεί να απαιτηθεί κάθε NAND chip να αφαιρεθεί από το PCB του SSD και να διαβαστεί μέσω ειδικής συσκευής δημιουργώντας ένα raw dump αρχείο. Στη συνέχεια αυτά τα αρχεία θα πρέπει να “συμπλεχθούν”, αναλύοντας το configuration του controller έτσι ώστε να μετατραπούν σε χρήσιμα δεδομένα.

Αυτή η διαδικασία, η οποία ονομάζεται chip-off, δεν είναι ποτέ εύκολη υπόθεση, καθώς πάντα απαιτεί επιπλέον γνώση των δομών των δεδομένων και επίσης απαιτεί την ικανότητα να αναγνωριστούν αυτές μέσα από τον δεκαεξαδικό κώδικα. Λειτουργίες όπως το bitwise inversion, η ένωση (joining) και η διάσπαση (splitting) των bytes και των blocks καθώς και οι ρουτίνες XOR είναι πολύ συχνές στους σύγχρονους SSD και θα πρέπει να είναι κανείς απολύτως εξοικειωμένος με αυτές για να ανακτήσει δεδομένα μέσω του chip off.


Συμπέρασμα:

Αν και οι SSD δίσκοι παρουσιάζουν μικρότερο ρυθμό βλαβών σε σχέση με τους κλασικούς, η κατάρρευσή τους είναι επίσης συχνή και -κυρίως- απολύτως απροειδοποίητη. Η επιλογή ενός SSD βάσει του κόστους και των επιδόσεών του είναι θεμιτή, θα πρέπει όμως να γίνεται επιλογή και με κριτήριο τις πιθανότητες ανάκτησης σε περίπτωση που ο δίσκος καταρρεύσει και δεν υπάρχουν αντίγραφα.

Σε περίπτωση τέτοιας απώλειας δεδομένων, προτείνεται η χρήση εταιρίας ανάκτησης δεδομένων η οποία αποδεδειγμένα διαθέτει τεχνολογία αιχμής, καθώς και εκπαιδευμένους μηχανικούς οι οποίοι θα εκτιμήσουν τη βλάβη και θα προτείνουν την καλύτερη λύση για την κάθε περίπτωση, χωρίς να βάζουν σε κίνδυνο τα δεδομένα του πελάτη.


Σχετικά με τη Northwind Data Recovery:

Η Northwind Data Recovery είναι μια εξειδικευμένη εταιρία στην ανάκτηση δεδομένων, που δραστηριοποιείται στον τομέα αυτό από το 2003. Έχει λύσει πολύπλοκες υποθέσεις ανάκτησης δεδομένων τόσο για εταιρικούς πελάτες και μεγάλους οργανισμούς, όσο και για ιδιώτες.

Είναι η μοναδική εταιρία στην Ελλάδα που αποτελεί πιστοποιημένο συνεργάτη της Western Digital για την ανάκτηση δεδομένων,
η μοναδική εταιρία ανάκτησης στα Βαλκάνια με ιδιόκτητο Clean Room μεγάλων διαστάσεων κλάσης 100, εξασφαλίζοντας τις απαραίτητες συνθήκες για την επέμβαση στο εσωτερικό των σκληρών δίσκων
και η μοναδική στην Ελλάδα εταιρία μέλος της GDRA (Global Data Recovery Alliance), μιας κλειστής ελίτ με τους καλύτερους μηχανικούς ανάκτησης δεδομένων στον κόσμο, μέσω της οποίας γίνεται ανταλλαγή τεχνογνωσίας.

Οι τεχνικοί μας αποτελούνται από μηχανικούς, ηλεκτρονικούς και reverse engineers με τεράστια εμπειρία στην ανάκτηση δεδομένων.

Χρήσιμοι σύνδεσμοι:
Ανάκτηση δεδομένων σκληρών δίσκων https://www.northwind.gr/gr/anaktisi-dedomenwn/data-recovery
Ανάκτηση δεδομένων δίσκων SSD https://www.northwind.gr/gr/anaktisi-dedomenwn/ssd

Επικοινωνία: https://www.northwind.gr/gr/contact





Δημήτρης Άντερσον
Senior Data Recovery Engineer
Northwind Data Recovery
www.northwind.gr