LWN.net Logo

The 2006 Linux Filesystems Workshop (Part II)

The 2006 Linux Filesystems Workshop (Part II)

Posted Jul 6, 2006 12:29 UTC (Thu) by sveinrn (subscriber, #2827)
Parent article: The 2006 Linux Filesystems Workshop (Part II)

Where I work, we are collecting really expensive data that has to be stored on online disks for the eternity. And thinking through how to protect the data from long term corruption has been a really interesting excersice. We ended up with a separate database storing md5 chekcsums of every file and then scanning the files regularly restoring files from backup that do not match the checksum.

But the most interesting suggestion that came up, was creating a raid system based on the Hamming code. So that first we would have a number of data disks. Then a number of disks storing the parity bits of the Hamming code. And on top of that, two parity disks for RAID6. As far as I can see, a scheme like this will protect against most of the error scenarios described in this article. It will of course require a great number of parity disks, and writing data will be extremely slow. Also, a battery backed write cache will be essential. But for archive-systems with only a few daily write operations I think it could work. Does anybody know if a system like this has ever been tried?


(Log in to post comments)

The 2006 Linux Filesystems Workshop (Part II)

Posted Jul 6, 2006 23:18 UTC (Thu) by valhenson (subscriber, #38407) [Link]

You might find NetApp's latest and greatest RAID stuff interesting:

"Row-Diagonal Parity for Double Disk Failure Correction"

Peter Corbett, Bob English, Atul Goel, Tomislav Grcanac, Steven Kleiman, James Leong, and Sunitha Sankar, Network Appliance, Inc.

http://www.usenix.org/events/fast04/tech/corbett.html

Awarded best paper at FAST '04... trying to remember if I've read it myself though, since I saw the talk.

The 2006 Linux Filesystems Workshop (Part II)

Posted Jul 7, 2006 9:10 UTC (Fri) by sveinrn (subscriber, #2827) [Link]

I have looked at it. But as far as I can see, this scheme does not protect proberly against '"high-flying writes" and "over-powered seeks", "phantom writes" and "misdirected reads and writes."'

The parity schemes used in RAID are good for recreating data that is known to be missing. Error correcting codes (including the Hamming code) are good for correcting data that is readable but corrupt. So my first thought was that with RAID6 on top of the Hamming code we would be protected from 2 failed disks in combination with 1 corrupt disk. But that is clearly wrong. So a better idea could be one of the more modern codes, for example the Reed-Solomon code. That also removes the need for RAID6 parity on top. (The Reed-Solomon code is also especially effective when one knows where the error is, i.e. a missing disk.)

Copyright © 2008, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds