GEOM + RAID5 help
Lukas Ertl
le at FreeBSD.org
Sat Feb 21 07:41:10 PST 2004
Hi,
I'm currently implementing the RAID5 bit of geom_vinum, and I could use a
little help. One problem I'm faced is that if the subdisk where the
original request should go to is down, I need to read all the other
stripes, recalculate the parity with the original data, and then write the
parity stripe (in the BIO_WRITE case), or read all other stripes plus the
parity to recalculate the desired data (in the BIO_READ case).
If I'm not mistaken then I'm not allowed to use g_read_data in the IO
path, so how can I correctly get at the data of the other stripes? Should
I create my own bio (how?) with the appropriate bio_cmd and send it down
the path using g_io_request (where should I issue it? In my bio_done
routine?)?
Thanks for all pointers and suggestions.
--
Lukas Ertl http://mailbox.univie.ac.at/~le/
le at FreeBSD.org http://people.freebsd.org/~le/
More information about the freebsd-geom
mailing list