Re: όταν οι δίσκοι κάνουν σιωπηλά λάθη τι μας σώζει?

Nick Demou ndemou at gmail.com
Tue Sep 14 23:53:40 EEST 2010


2010/9/14 Pavlos Parissis <pavlos.parissis at gmail.com>:
> 2010/9/13 Nick Demou <ndemou at gmail.com>
> [...snip...]
>>
>> Το ερώτημα φυσικά είναι τι μπορώ να κάνω για να μην το ξαναπάθω? Π.χ. μήπως υπάρχει τρόπος να έχω 3εις φθηνούς SATA δίσκους στους οποίους ΚΑΙ να γράφω τα πάντα εις τριπλούν ΚΑΙ να τα διαβάζω εις τριπλούν για να έχω error detection και error correction[1]? Κάποιος άλλος τρόπος? Υπάρχει  filesystem για linux που τουλάχιστον κάνει online checksum ελέγχο στα δεδομένα που γράφει / διαβάζει?
>>
>
> Μπορείς να χρησιμοποιήσεις DRBD το οποίο κάνει έλεγχους με διάφορους
> checksum αλγόριθμους και σε διαφορετικά στάδια.[1]
> Έτσι θα έχεις προστασία απέναντι σε πλήρη καταστροφή του ενός μέσο
> αποθήκευσης(RAID-n, central storage, etc)  αλλά και ελέγχους για την
> ακεραιότητα των δεδομένων. Όμως θα σου κοστίσει ένα επιπλέον μηχάνημα,
> ίσως λιγότερες επιδόσεις σε εγγραφές, διπλάσιο αριθμό δίσκων και λίγο
> χρόνο για εξοικειώσει και δημιουργία του DRBD. Αλλά τα πάντα έχουν ένα
> κόστος.

(να σημειώσω εξ αρχής πως ότι γράφω παρακάτω το γράφω με την επιφύλαξη
πως δεν έχω μελετήσει καθόλου σε βάθος το DRBD)

Από αυτά που διάβασα στις παραπομπές σου Παύλο αλλά και γενικά για το
DRBD δείχνει να κάνει μερικά θαυμαστά πράγματα αλλά δεν μοιάζει να
είναι η καλύτερη λύση για το συγκεκριμένο πρόβλημα (silent data
corruption σε σκληρό δίσκο) τουλάχιστον συγκρινόμενο με το BTRFS. Π.χ.
παρόλο που κάνει έλεγχο για data corruption με βάση checksums απαιτεί
από τον admin να επιλέξει ένα PC ως "αυθεντία" και με βάση αυτό να
ελεγχθούν οι υπόλοιποι[1]. Δυστυχώς δεν είναι εκ των προτέρων γνωστό
σε ποιον δίσκο θα εμφανιστεί το corruption. Επιπλέον το documentation
αφήνει να εννοηθεί πως αυτούς τους ελέγχους τους κάνει on-demand και
όχι αυτόματα κάθε φορά που διαβάζεις ένα αρχείο[2].

Για να πω την αλήθεια περίμενα πως θα υπήρχε κάποιο SW RAID level το
οποίο θα έγραφε και θα διάβαζε τα ίδια δεδομένα σε τρεις δίσκους ώστε
να μπορεί να κάνει και error detection και error correction. Μου
φαίνεται και πολύ στιβαρό και δραματικά πιο απλό στην υλοποίηση από
ότι άλλο έχω διαβάσει. Με τις τιμές δε των SATA δίσκων να έχουν φτάσει
σε γελοία επίπεδα η λύση αυτή δεν είναι και πολύ ακριβή και η μοναδική
σου θυσία είναι η μείωση στη διαμεταγωγή δεδομένων και στα reads και
στα writes.


______________
[1] http://www.drbd.org/users-guide/s-online-verify.html
It works by one node (the verification source) sequentially
calculating a cryptographic digest of every block stored on the
lower-level storage device of a particular resource. DRBD then
transmits that digest to the peer node (the verification target),
where it is checked against a digest of the local copy of the affected
block. If the digests do not match, the block is marked out-of-sync
and may later be synchronized.
[2] (στο ίδιο link με παραπάνω) It is a common use case to have
on-line verification managed by the local cron daemon, running it, for
example, once a week or once a month.

-- 
"The software is licensed, not sold" -- MICROSOFT LICENSE TERMS


More information about the Linux-greek-users mailing list