Title Sofeware RAID
Student Wu Bingzheng
Mentor Jorrit N. Herder
Abstract
(This is just an abstract. I have a more detailed proposal in pdf form with
charts, which is also too long to be pasted here. I have sent it to AST and up
loaded it to an online storage :
site http://www.mediamax.com/
username wubingzheng
password summercode
)

1. Goal

I think it's impossible to correct intentional damage. The simplest example,
attacker overwrite all the disk by 0. So the goal is to detect all modification
and correct just accidental modification.

2. Ideas

Some abbreviations:
    A-block : authentication block
    C-block : checksum block
    D-block : data block

(1) Detection

If there is only one checksum set for each D-block, it's not able to correct
the modification. Because when the checksum checking fails, we donot know
where the error occurs, the requested D-block, or other D-blocks in this
checksum group, or the A-block itself. In order to correct modification, more
than 1 checksum for each block is needed for correction.

So the first checksum, named authentication and AUTH for short, can be
generated just for detection but not correction, which means it takes just
128 bits or 256 bits, but not 1KB or 1 block. So one A-block can contain n
AUTHs(n = SIZE_BLOCK / SIZE_CHECKSUM). But we just use (n-1), and keep the
remained one for the AUTH of this A-block itself, which can avoid multipul
level checking.

According to the principle of locality in space, it's useful to read numbers
of blocks around the requested one for each request. Regard these blocks as
a group and generate AUTH from them.

(2) Correction

A real checksum(CHS for short) is needed for correction. Since the blocks
neighboring likely belong to the same file, they are likely to be modified
accidentally at the same time. In order to correct one block, which requires
the correctness of other blocks in the same group, it's better to distribute
the blocks over the disk. Although this will lose efficiency, it dose not
lose much, since they are just read when the AUTH checking fails.