svn commit: r216984 - projects/graid/head/sys/geom/raid

Pawel Jakub Dawidek pjd at FreeBSD.org
Wed Jan 5 08:39:19 UTC 2011


On Wed, Jan 05, 2011 at 12:19:40AM +0000, Warner Losh wrote:
> Author: imp
> Date: Wed Jan  5 00:19:40 2011
> New Revision: 216984
> URL: http://svn.freebsd.org/changeset/base/216984
> 
> Log:
>   First pass at error recovery: if the first disk that we get errors on
>   has a problem, try from the second one.  Note info about possible bad
>   sector remap attempt through write, and some ideas on when to eject
>   the subdisk from the disk.

My ideas what to do on I/O error mostly matches yours:
- On read error, read from the other disk, write the data back to the
  first disk.  Before you return the data up, you must wait for write to
  complete.  If you won't wait, you can lose race with new write request
  going into the same area and you will overwrite new data with the old
  one.
- Count read errors and mark disk as broken after some number of errors.
  If you get I/O errors because your requests time out you really want
  to disconnect the misbehaving disk or your entire array would suffer
  (read from the first disk, wait for timeout, read from the second
  disk).
- On write error you want to mark disk as broken immediately, as from
  now on it has stale data and can't be trusted.

How do you plan to detect if there was unclean shutdown and you need to
synchronize the disks?

Do you plan to support some kind of dirty bitmap to be able to optimize
synchronization time after unclean shutdown? If you do, you might want
to look at HAST. I implemented dirty bitmap handling based on DRBD
ideas, which gives the lowest overhead I can think of.

-- 
Pawel Jakub Dawidek                       http://www.wheelsystems.com
pjd at FreeBSD.org                           http://www.FreeBSD.org
FreeBSD committer                         Am I Evil? Yes, I Am!
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 196 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/svn-src-projects/attachments/20110105/b4691fb8/attachment.pgp


More information about the svn-src-projects mailing list