Μπορούν τα δεδομένα σε σκληρούς δίσκους να υποβαθμιστούν χωρίς μια προειδοποίηση για τη ζημιά;
Όλοι ανησυχούμε ότι διατηρούμε τα δεδομένα και τα αρχεία μας ασφαλή και άθικτα, αλλά είναι δυνατόν τα δεδομένα να καταστραφούν και να έχουν πρόσβαση σε έναν χρήστη χωρίς καμία ειδοποίηση ή προειδοποίηση οποιασδήποτε φύσης σχετικά με το πρόβλημα; Η σημερινή θέση Q & A της SuperUser έχει την απάντηση στην ερώτηση ανησυχούμενου αναγνώστη.
Η σημερινή συνάντηση ερωτήσεων και απαντήσεων έρχεται σε επαφή με το SuperUser - μια υποδιαίρεση του Stack Exchange, μια κοινότητα που κατευθύνεται από τους ιστότοπους ερωτήσεων & απαντήσεων.
Φωτογραφία ευγενική προσφορά γενικευμένων (Flickr).
Το ερώτημα
Ο αναγνώστης SuperUser topo morto θέλει να μάθει εάν τα δεδομένα σε σκληρούς δίσκους μπορούν να υποβαθμιστούν και να έχουν πρόσβαση χωρίς προειδοποίηση για τη ζημιά:
Είναι πιθανό ότι η φυσική υποβάθμιση ενός σκληρού δίσκου θα μπορούσε να προκαλέσει την "αναστροφή" των δυαδικών ψηφίων στα περιεχόμενα ενός αρχείου χωρίς το λειτουργικό σύστημα να παρατηρήσει την αλλαγή και να ειδοποιήσει τον χρήστη για αυτό κατά την ανάγνωση του αρχείου; Για παράδειγμα, θα μπορούσε να αλλάξει ένα p (binary 01110000) σε ένα αρχείο κειμένου ASCII σε ένα "q" (δυαδικό 01110001), τότε όταν ένας χρήστης ανοίγει το αρχείο, βλέπει το "q" χωρίς να έχει συνειδητοποιήσει ότι έχει σημειωθεί αποτυχία?
Ενδιαφέρομαι για απαντήσεις σχετικά με το FAT, το NTFS ή το ReFS (αν κάνει τη διαφορά). Θέλω να μάθω αν τα λειτουργικά συστήματα προστατεύουν τους χρήστες από αυτό, ή αν πρέπει να ελέγξουμε τα δεδομένα μας για τις διαφορές μεταξύ των αντιγράφων με την πάροδο του χρόνου.
Μπορούν τα δεδομένα σε σκληρούς δίσκους να υποβαθμιστούν και να έχουν πρόσβαση χωρίς προειδοποίηση για τις ζημιές?
Η απάντηση
Ο συνεργάτης του SuperUser Guntram Blohm έχει την απάντηση για εμάς:
Ναι, υπάρχει ένα πράγμα που ονομάζεται λίγο σήψη. Αλλά όχι, δεν θα επηρεάσει έναν χρήστη απαρατήρητο.
Όταν ένας σκληρός δίσκος γράφει έναν τομέα στις πιατέλες, δεν γράφει μόνο τα bits με τον ίδιο τρόπο που είναι αποθηκευμένα στη μνήμη RAM, χρησιμοποιεί μια κωδικοποίηση για να βεβαιωθεί ότι δεν υπάρχουν αλληλουχίες του ίδιου bit που είναι πολύ μεγάλες. Προσθέτει επίσης κωδικούς ECC που του επιτρέπουν να επισκευάσει σφάλματα που επηρεάζουν μερικά bit και εντοπίζουν σφάλματα που επηρεάζουν περισσότερα από μερικά bit.
Όταν ο σκληρός δίσκος διαβάζει τον τομέα, ελέγχει αυτούς τους κωδικούς ECC και επισκευάζει τα δεδομένα εάν είναι απαραίτητο (και αν είναι δυνατόν). Αυτό που συμβαίνει στη συνέχεια εξαρτάται από τις συνθήκες και το υλικολογισμικό του σκληρού δίσκου, το οποίο επηρεάζεται από τον χαρακτηρισμό του δίσκου.
- Εάν ένας τομέας μπορεί να διαβαστεί και δεν έχει προβλήματα με τον κωδικό ECC, τότε μεταβιβάζεται στο λειτουργικό σύστημα.
- Εάν ένας τομέας μπορεί να επιδιορθωθεί εύκολα, η επισκευασμένη έκδοση μπορεί να εγγραφεί στο δίσκο, να διαβαστεί και στη συνέχεια να επαληθευτεί εάν το σφάλμα ήταν τυχαίο (δηλαδή κοσμικές ακτίνες κ.λπ.) ή εάν υπάρχει συστηματικό σφάλμα με τα μέσα.
- Εάν ο σκληρός δίσκος διαπιστώσει ότι υπάρχει κάποιο σφάλμα με τα μέσα, ανακατανέμει τον τομέα.
- Εάν ένας τομέας δεν μπορεί να διαβαστεί ούτε να διορθωθεί μετά από λίγες προσπάθειες ανάγνωσης (σε σκληρό δίσκο που έχει οριστεί ως σκληρός δίσκος RAID), τότε ο σκληρός δίσκος θα εγκαταλείψει, θα ανακατανείμει τον τομέα και θα πει στον υπεύθυνο επεξεργασίας ότι υπήρχε πρόβλημα . Στηρίζεται στον ελεγκτή RAID για την ανασυγκρότηση του τομέα από τα άλλα μέλη RAID και την επιστρέφει στον αποτυχημένο σκληρό δίσκο, ο οποίος στη συνέχεια το αποθηκεύει στον ανακατασκευασμένο τομέα (ο οποίος ελπίζουμε ότι δεν έχει πρόβλημα).
- Εάν ένας τομέας δεν μπορεί να διαβαστεί ή να διορθωθεί σε έναν σκληρό δίσκο της επιφάνειας εργασίας, τότε ο σκληρός δίσκος θα κάνει περισσότερες προσπάθειες να το διαβάσει. Ανάλογα με την ποιότητα του σκληρού δίσκου, αυτό μπορεί να περιλαμβάνει την επανατοποθέτηση του κεφαλιού, τον έλεγχο για να δείτε αν υπάρχουν κάποια κομμάτια που αναστρέφονται όταν διαβάζονται επανειλημμένα, ελέγχοντας ποια κομμάτια είναι τα πιο αδύναμα και μερικά άλλα πράγματα. Εάν κάποια από αυτές τις προσπάθειες επιτύχει, ο σκληρός δίσκος θα ανακατανείμει τον τομέα και θα γράψει πίσω τα επισκευασμένα δεδομένα.
Αυτή είναι μια από τις κύριες διαφορές μεταξύ σκληρών δίσκων που πωλούνται ως σκληροί δίσκοι "desktop", "NAS / RAID" ή "video surveillance". Ένας σκληρός δίσκος RAID μπορεί να εγκαταλείψει γρήγορα και να κάνει τον ελεγκτή να επισκευάσει τον τομέα για να αποφύγει την λανθάνουσα κατάσταση από την πλευρά του χρήστη. Ένας σκληρός δίσκος επιφάνειας εργασίας θα συνεχίσει να προσπαθεί ξανά και ξανά επειδή ο χρήστης περιμένει μερικά δευτερόλεπτα είναι μάλλον καλύτερο από το να λέει ότι τα δεδομένα χάνουν. Και ένας σκληρός δίσκος βίντεο υπολογίζει σταθερά τα ποσοστά δεδομένων περισσότερο από την ανάκτηση σφαλμάτων, καθώς το κατεστραμμένο πλαίσιο τυπικά δεν θα παρατηρηθεί καν.
Εν πάση περιπτώσει, ο σκληρός δίσκος θα ξέρει αν έχει υπάρξει λίγη σήψη, συνήθως θα ανακάμψει από αυτό, και αν δεν μπορεί, θα πει στον ελεγκτή ο οποίος με τη σειρά του θα πει στον οδηγό που θα πει στη συνέχεια το λειτουργικό σύστημα. Στη συνέχεια, εναπόκειται στο λειτουργικό σύστημα να παρουσιάσει το σφάλμα στο χρήστη και να ενεργήσει πάνω του. Αυτός είναι ο λόγος που ο cybernard λέει:
- Δεν έχω δει ποτέ ένα μοναδικό σφάλμα λίγο, αλλά έχω δει πολλούς σκληρούς δίσκους όπου αποτυγχάνουν ολόκληροι τομείς.
Ο σκληρός δίσκος θα ξέρει αν υπάρχει κάποιο πρόβλημα με έναν τομέα, αλλά δεν θα ξέρει ποια bits έχουν αποτύχει. Ένα ενιαίο κομμάτι που έχει αποτύχει θα είναι πάντοτε καλυμμένο από το ECC.
Λάβετε υπόψη ότι τα chkdsk και τα συστήματα αρχείων που αυτομάτως επισκευάζονται δεν αντιμετωπίζουν την επισκευή δεδομένων μέσα στα αρχεία. Αυτές αφορούν τη διαφθορά μέσα στη δομή του ίδιου του συστήματος αρχείων, όπως μια διαφορά στο μέγεθος του αρχείου μεταξύ της καταχώρησης καταλόγου και του αριθμού των κατανεμημένων μπλοκ. Η λειτουργία αυτοθεραπείας του NTFS θα ανιχνεύσει τις δομικές βλάβες και θα αποτρέψει την περαιτέρω επίδραση των δεδομένων σας, αλλά δεν θα επιδιορθώσει οποιαδήποτε δεδομένα έχουν ήδη καταστραφεί.
Υπάρχουν φυσικά και άλλοι λόγοι για τους οποίους τα δεδομένα ενδέχεται να καταστραφούν. Για παράδειγμα, η κακή μνήμη RAM σε έναν ελεγκτή μπορεί να αλλάξει δεδομένα προτού ακόμη αποσταλεί στον σκληρό δίσκο. Σε αυτή την περίπτωση, κανένας μηχανισμός στον σκληρό δίσκο δεν θα ανιχνεύσει ή θα επιδιορθώσει τα δεδομένα και αυτό μπορεί να είναι ένας λόγος για τον οποίο η δομή ενός συστήματος αρχείων έχει καταστραφεί. Άλλοι λόγοι περιλαμβάνουν τα σφάλματα λογισμικού, τα σκουπίδια κατά το γράψιμο στον σκληρό δίσκο (αν και αυτό αντιμετωπίζεται από την αρχειοθέτηση του συστήματος αρχείων) ή τα κακά προγράμματα οδήγησης αρχείων (ο οδηγός NTFS στο Linux είναι απενεργοποιημένος μόνο για ανάγνωση για μεγάλο χρονικό διάστημα, δεν τεκμηριώθηκε, και οι προγραμματιστές δεν εμπιστεύονται τον δικό τους κώδικα).
- Είχα αυτό το σενάριο από τη στιγμή που μια εφαρμογή θα έσωζε όλα τα αρχεία της σε δύο διαφορετικούς διακομιστές σε δύο διαφορετικά κέντρα δεδομένων, προκειμένου να διατηρηθεί ένα αντίγραφο εργασίας των διαθέσιμων δεδομένων υπό οποιεσδήποτε συνθήκες. Μετά από μερικούς μήνες, παρατηρήσαμε ότι περίπου το 0,1 τοις εκατό όλων των αντιγραμμένων αρχείων δεν ταιριάζουν με το άθροισμα ελέγχου MD5 ότι η εφαρμογή είναι αποθηκευμένη στη βάση δεδομένων της. Αποδείχθηκε ότι είναι ένα ελαττωματικό καλώδιο ινών μεταξύ του διακομιστή και του SAN.
Αυτοί οι άλλοι λόγοι είναι ο λόγος για τον οποίο ορισμένα συστήματα αρχείων, όπως το ZFS, διατηρούν πρόσθετες πληροφορίες αθροίσματος ελέγχου για την ανίχνευση σφαλμάτων. Έχουν σχεδιαστεί για να σας προστατεύουν από πολλά άλλα πράγματα που μπορούν να πάνε στραβά από απλά κάψιμο λίγο.
Έχετε κάτι να προσθέσετε στην εξήγηση; Απενεργοποιήστε τα σχόλια. Θέλετε να διαβάσετε περισσότερες απαντήσεις από άλλους τεχνολογικούς χρήστες Stack Exchange; Δείτε το πλήρες νήμα συζήτησης εδώ.