Converting LBAs to byte offsets through the GEOM stack

Pokala, Ravi rpokala at panasas.com
Fri Dec 19 02:47:17 UTC 2014


> I've only done this manually...  It isn't too hard, as all the
>partitioning schemes are simple offsets, and the stripe should be
>regular...

The *partitioning schemes*, yes. But once you start building up more
layers, it gets complicated.

> The issue w/ manually mapping, is that you might loose a race w/ the
>mirror when writing out new data...


Yeah, I described it the way I did because I'm trying to avoid discussing
some proprietary details. :-P It was "close enough" for you to get the
idea what I was talking about.

> I was thinking it would be good for gmirror to grow a mode that when it
>detects a pending sector or offline sector, to figure out via some
>mapping, what data needed to be fixed, and attempt to read/write the data
>back...

What you're talking about would be called "sector resilvering", or perhaps
"on-the-fly resilvering" - rebuilding the mirror for just sectors that we
know are bad, without having to re-mirror the entire device. Panasas
actually implemented that in gmirror on our old 7.2-RELEASE-based system,
and we are planning on porting it forward to a 10.1-RELEASE-based (or
better still -CURRENT-based) system in the near future; when we do that,
we'll submit it.

> Even having a simple mode that upon read error, would read from the
>other drive and write back would be good...

Yes, that's exactly what we (Panasas) implemented.

-Ravi



More information about the freebsd-geom mailing list