Problems simulating gvinum raid5 rebuild
Ulf Lilleengen
lulf at pvv.ntnu.no
Fri Mar 9 01:41:40 UTC 2007
On tor, mar 08, 2007 at 02:58:12am +0100, Ulf Lilleengen wrote:
> On ons, mar 07, 2007 at 08:55:47pm +0100, Lukas Ertl wrote:
> > Clayton F wrote:
> >
> > >Any suggestions? Is using 7 drives exceeding the number that gvinum
> > >raid5 will allow? Should I be labeling the drives differently? Is my
> > >method for simulating a drive failure/replacement flawed? Any help would
> > >be most appreciated!
> >
> > It's apparently a bug. I'm currently working on some improvements to
> > geom_vinum, and this will be addressed, too.
>
> This mess is because when reading the gvinum configuration on boot-time, none of
> the objects is actually bound together and registered within another when the
> drive_taste is run (The parser just creates the object. It does not bind
> anything together). The states is also not updated. I've already done some work
> on this, but I discovered more issues that need to be fixed. I'll try have a
> patch ready by tomorrow night.
Ok, apparently it does bind objects together, but a subdisk that is not
registered with a drive (if the drive is not there) doesn't get tasted.
I'm having problems to find a nice way of adding the subdisk without a drive to
a plex, so that the plex can get into it's correct state.
One way i tried it in gv_plex_taste was to loop through all subdisks, and find
subdisks that didn't have any drive, _and_ was to be registered with this plex.
Then i registered it with the plex. Something like this:
LIST_FOREACH(s, &sc->subdisks, sd) {
if s->plex equals plexname
if s has no drive
add the subdisk to this plex
}
However, I don't think i have a good enough overview of the locking yet to see
why this crashes.
--
Ulf Lilleengen
More information about the freebsd-geom
mailing list