finds.dev← search

// the find

amanchadha/software-RAID

★ 19 · C · updated Nov 2019

Software RAID Manager | C | Supports RAID 0, 1, 4, 5 and 10 | Capable of normal mode operation (no failures), working with one failed disk and restoring normal mode with a new disk

A university course project (UW-Madison CS531) implementing a software RAID simulator in C. It supports RAID 0, 1, 4, 5, and 10 using file-backed virtual disks with trace-driven I/O, including single-disk failure and recovery. Purely educational — not a library, not installable, not production anything.

Covers all the interesting RAID modes including RAID 10 and floating parity (RAID 5), not just the easy ones. The trace-file-driven approach is clean for testing — you can replay exact I/O sequences and compare outputs deterministically. Failure and recovery paths are implemented, not just the happy path. The test suite with expected .out/.err/.status files is a good structure for a C project.

This is a 2019 homework submission with 19 stars — it has not been touched since and was never meant to be used outside the class. No header comments, no API documentation, no way to use this as a library rather than a standalone simulator. The parity strategy (additive vs. subtractive) is left as a choice per the spec rather than being optimal per operation, which means the disk-access stats won't reflect real-world tuning. RAID 1 is listed in the description but is not one of the supported -level values in the actual spec.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →