Thread (18 messages) 18 messages, 8 authors, 2004-07-01

Re: raid and sleeping bad sectors

From: Mike Tran <hidden>
Date: 2004-06-29 23:45:26

On Tue, 2004-06-29 at 15:56, Dieter Stueken wrote:
Mike Tran wrote:
quoted
(Please note that I don't mean to advertise EVMS here :) just want to
mention that the functionality is available)

EVMS, (http://evms.sourceforge.net) provides a solution to this "bad
sectors" issue by having Bad Block Relocation (BBR) layer on the I/O
stack.
Before proposing any solutions, i think it is very important to
distinguish carefully between different kinds of errors:

a) read errors: some alert bell should ring (syslog/mail..)
    but the system should not careless disable any disk to avoid
    making the problem even worse.

b) write errors: if some blocks are written partly, but can not
    be written to all disks, it may help, to write the data
    (may be temporary) somewhere else.

when we got a read error, due to an unreadable sector, we may
first try to rewrite it. In most cases, bad sector replacement
of the HD-firmware takes action and the problem is solved so far.
For raid1 mirroring, I think the code for "rewrite" does not look too
bad.  For raid5/raid5, it's going be harder.  I'm not saying that it's
not doable :)

In fact, there is a cnt_corrected_read field in the MD ver 1
superblock.  So, I hope this feature is coming soon.

Only after this failed, we should turn over to plan b)

case b) may also help, if some disk gets temporary unavailable
(i.E. cabling problem). After manual intervention, that brings
the disk back on line again, the redirected data may even be
copied back.
Plan b) needs that "somewhere else."  This can also be achieved with the
MD ver 1 superblock.  Where we can reserve some sectors by correcly
setting the usable data_offset and data_size.

Now, we need user-space tool to create MD arrays with ver 1 superblock. 
In addition, of course, we will also need to enhance MD kernel code.


Cheers,
Mike T.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help