Are there any good strategies for proactively detecting data corruption in a Greyhole pool.
Suppose the following chain of events happens.
c:\> copy swiss_bank_account.txt \\greyhole\safe_documents Greyhole does its thing and replaces: safe_documents/swiss_bank_account.txt with -> /mnt/pool1/safe_documents/swiss_bank_account.txt and creates a backup file: /mnt/pool2/safe_documents/swiss_bank_account.txt /mnt/pool2 suffers a random failure, corrupting swiss_bank_account.txt - It goes un-noticed because it's the secondary. /mnt/pool1 suffers a random failure - Crap... now both my redundant copies are corrupt.
What are good strategies for proactively detecting corruption in a JBOD-style duplication array like Greyhole?
Unless I'm mistaken, even 3-way replication isn't fool-proof. In the event of a catastrophically failed drive, you could only detect, not resolve discrepancies between the 2 surviving copies.
The viable systems I can think of are:
- 3-way replication across a checksummed file system, like btrfs.
- 3-way replication and hope all your failures are uncorrelated.
- Chron-job application of parity tools.
- Hooking Greyhole to run parity tools on write.
- Chron-job scans for data agreement.
Other than option 1, and 2, all of these options seem like more work than I'd like to put into my home server. Does anyone have any suggestions?