Degraded raid handling

Heinz Mauelshagen mauelshagen at redhat.com
Fri May 18 15:00:20 UTC 2007


On Wed, May 16, 2007 at 11:50:15AM -0400, Phillip Susi wrote:
> Heinz Mauelshagen wrote:
> >Those are defined to cover states for a 'broken' set (i.e. 
> >non-recoverable),
> >'inconsistent' (i.e. recoverable), 'nosync' (i.e. set has to be resolvered,
> >'ok' (i.e. set is fully synced and devices accessible) and 'setup', which 
> >is
> >an interim state during metadata setup, hence transition will go from 
> >'setup'
> >to any of the others when the sets metadata got fully discovered and 
> >grouped.
> 
> Specifically what is the difference between nosync and inconsistent?  Is 
> it that with the former both disks in the mirror are online and working, 
> but have not been resynced yet, and with the latter only one disk is 
> online so you need to replace the failed one?

For e.g., yes.

> 
> 
> >No, if the RAID set is out of sync it needs to be synced, which is what
> >the 'sync' parameter means.
> >
> >Those are handled by the dirty log (dm-log.c), not by any dm target 
> >directly.
> 
> I see.. so it is telling dm that it should begin copying all data from 
> the primary mirror to the other(s), yes?

Yes, unless you've got more information which part of the set
needs resynchronization, which ATARAIDs typically don't provide.

> 
> >>Further, I can not see anywhere the s_inconsistent or 
> >>s_nosync flags ever can be set on the raid set.  What gives?
> >
> >The fact, that a dmeventd DSO still needs implementing in order to make
> >use of those. Such DSO will handle device evvent based state changes
> >and reated ondisk metadata updates (e.g. replacement of a broken drive
> >by a spare one).
> 
> Don't they also need to be used at boot?  If you go to assemble a mirror 
> and one disk is missing, shouldn't the state of the set be 
> s_inconsistent?  I can't see that the current code does this.

Sure. The current code tries activating degraded mirrors with a
linear mapping. If that needs enhancement, please send patches.

> 
> Also is there some documentation I can read somewhere on this dmeventd 
> design?  I don't understand it.

Look at the code and inline doc in libdevmapper.
The idea is, that applications can register devices with dmeventd
and dmeventd calls into an application specific DSO, when a device
event occurs (i.e. device IO error). The DSO code can react on such events
by e.g. reconfiguring a mirror.

> 
> >Use "dmraid -r -c... device-path".
> 
> I don't think this will do what I need it to.  This will just read the 
> metadata of the disk and report if that metadata says the set is ok or 
> inconsistent.  Presumably it will say it is ok because up until now it 
> has been, but now we can't find the second disk to build the set so the 
> state of the set needs changed to inconsistent.

Well, you gotta find 2 drives for the mirror; if you only
discover one you can react on it.

> 
> What I need is a way ask dmraid to try and build the set, but fail ( and 
> indicate so ) if it would have to activate the set as inconsistent. 
> That way the system can wait a while and try again, in the hope that the 
> missing disk will show up.

dmraid -tay ?

> 
> If the mirror IS activated by dmraid with one disk missing, does dmraid 
> update the metadata to indicate that the set is inconsistent?

Not yet. You'ld need to use the BIOS management util to do that for now.

> And will 
> that not require manual intervention to restore the second disk?

Yes, see last point.

-- 

Regards,
Heinz    -- The LVM Guy --

*** Software bugs are stupid.
    Nevertheless it needs not so stupid people to solve them ***

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

Heinz Mauelshagen                                 Red Hat GmbH
Consulting Development Engineer                   Am Sonnenhang 11
Storage Development                               56242 Marienrachdorf
                                                  Germany
Mauelshagen at RedHat.com                            PHONE +49  171 7803392
                                                  FAX   +49 2626 924446
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-




More information about the Ataraid-list mailing list