A new beta test version of the Linux soft RAID-1/4/5 driver is available at:
http://luthien.nuclecu.unam.mx/~miguel/raid
This is the first BETA test release which includes support for RAID-4
and RAID-5 configurations. In addition, it also updates the RAID-1 read
balancing and error recovery code.
The driver is released as a kernel patch against Linux 2.0.30.
raidtools-0.3 can be used to create and repair a RAID-1/4/5 set.
The RAID-4/RAID-5 implementation introduces a "stripe head" ("sh") data
structure, which manages the read/write operations on a single row.
A sh can accept new bh's from the buffer cache for reading/writing, can
cache old versions of those buffers and of the parity buffers, we can
sleep on a locked stripe head, etc.
A pool of active and cached sh's are present on a hash table, hashed using
the row sector number. A private "free buffers pool" is also maintained.
The code attempts to minimize the number of I/O operations which are
required to complete a stripe. We are also actively trying to write full
rows to the raid set by waiting a bit for buffers to accumulate on the
stripes, and by searching for the missing buffers in the buffer cache.
The implementation also features a RAID-5 kernel thread, which assists
the low level device driver interrupt handler in forwarding a batch
of sh's to different phases of the RAID-5 handling. Each phase attempts
to just queue I/O operations, rather than waiting for their completion.
Questions, reports, patches, comments/suggestions welcome: they can be sent
either to the authors (Gadi Oxman <gadio@netvision.net.il>, Miguel de Icaza
<miguel@nuclecu.unam.mx>, Ingo Molnar <mingo@pc7537.hil.siemens.at>),
or to the following mailing lists:
raiddev@nuclecu.unam.mx
linux-raid@vger.rutgers.edu
Enjoy the driver,
Miguel de Icaza <miguel@nuclecu.unam.mx>
Ingo Molnar <mingo@pc7537.hil.siemens.at>
Gadi Oxman <gadio@netvision.net.il>