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

Apollon Koutlidis apollon at planewalk.net
Fri Sep 17 17:40:04 EEST 2010


  On 16/09/10 22:04, Nick Demou wrote:
> 2010/9/16 Apollon Koutlidis<apollon at planewalk.net>:
>> [...]
>>> περιγράφεις linux software RAID? Γιατί από όσα είχα διαβάσει το linux
>>> SW RAID δεν προστατεύει σε καμία περίπτωση από data corruption
>> Ναι, περιγράφω Linux software RAID. Και ναι, κάποια configurations του Linux
>> software RAID (ειδικότερα η περίπτωση του 3-way mirror) μπορούν να σε
>> προστατεύσουν από *κάποιες* περιπτώσεις data corruption, συγκεκριμένα
>> εκείνες τις περιπτώσεις που η εγγραφή στο μαγνητικό μέσο αστόχησε και τα
>> δεδομένα που γράφτηκαν δεν ήταν αυτά που η κλήση "παρήγγειλε".
> Δεν μπόρεσα να βρω περισσότερες πληροφορίες για αυτό που περιγράφεις.
Αναμενόμενον, ότι ακών μερικώς εψεύσθην. Το σενάριο του "voting" είναι 
παλιό και εγκατελειμένο προς χάριν του εκκολαπτόμενου b(u)t(te)rfs το 
οποίο κάνει per-block checksumming και auto-healing. Ενδιαφέρον report 
"από το μέτωπο": 
http://ptspts.blogspot.com/2010/06/does-btrfs-survive-silent-disk-data.html

> Μπορείς να μου δώσεις κάποιο link?
Το "αρμόδιο" kerneltrap thread στο οποίο συζητείται ως σενάριο (και 
αποσαφηνίζεται ότι δεν πρόκειται να συμβεί) είναι εδώ: 
http://kerneltrap.org/mailarchive/linux-raid/2009/11/9/6560703/thread

> Το μόνο που (ξανα)βρήκα ήταν αυτό το εντελώς αποθαρρυντικό section στο
> Software RAID Howto:
>
> RAID cannot and is not supposed to guard against data corruption on
> the media[...]  It is most likely [...] that the RAID layer will never
> find out about the corruption,
> [...]
> RAID (be it hardware- or software-), assumes that if a write to a disk
> doesn't return an error, then the write was successful. Therefore, if
> your disk corrupts data without returning an error, your data will
> become corrupted. This is of course very unlikely to happen, but it is
> possible, and it would result in a corrupt filesystem.

Το οποίο και πάλι δεν είναι απολύτως ακριβές. Στην περίπτωση που έχεις 
silent corruption, το mismatch_cnt θα σου δείξει ότι υπάρχει ασυμφωνία 
μεταξύ των δίσκων σου (αν και οι ασυμφωνίες αυτού του τύπου μπορεί να 
προκύπτουν και από time-dependent σφάλματα όταν έχεις mirrored cache ή 
από aborted writes). Η τυχαιότητα με την οποία θα γίνει η επισκευή μέσω 
του "repair" σημαίνει ότι έχεις κόψει τουλάχιστον κατά το ήμισυ  (ή για 
ακρίβεια 1/number_of_disks) τις απώλειές σου.

Στην περίπτωση που το silent corruption έχει προκύψει από μερική αστοχία 
ενός δίσκου μόνον (και μπορείς τη σήμερον να το υποθέσεις και 
εξακριβώσςεις μέχρι ενός βαθμού χάρη στο SMART), απλά τον "πετάς" από το 
array και καθαρίζεις. Σε κάθε περίπτωση, αυτό που περιέγραφα νωρίτερα 
("voting" repair on n-way mirrors) δεν υφίσταται :(

Κόκκαλα έχει ο btrfs?

Α.



More information about the Linux-greek-users mailing list