Would SnapRAID as a RAID option benefit Rockstore?

Hi! I’m a non-expert that’s looking for a NAS OS. Right now I’m using unRAID but I hate it sooo much. During my search I found Rockstor and SnapRAID. Looking at them I couldn’t help thinking that they would work extremely well together.

Rockstor would gain:

A raid option that allows for different size drives with parity (not JBOD)
Data accessible on drives removed from array
Ability to control when parity happens
Only spin up drives being used

Basically unRAID without the mold.

1 Like

I’m not too familiar with snapraid, but on quick look, I don’t see how it’s complementary to BTRFS. Rockstor is a BTRFS-based NAS solution, for better or worse.

napp-it has some snapraid integration, might be worth looking at if you’re trying to find a snapraid gui. I agree with @bdarcus though, snapraid isn’t a complement to btrfs, it’s a completely different thing.

I appreciate your out-of-the-box thinking @spore!

Why do you hate unRAID so much?

I have not used SnapRAID before, but from what you wrote, it seems like there’s more control available wrt parity. I am curious to learn about the benefits in more detail. Could you please explain?

BTRFS and hence Rockstor allows usage of different size drives. How is it different in SnapRAID?
On your other proposed gains, could you elaborate how you see them being useful at a higher level?

I’m very mutch not an expert on BTRFS, SnapRAID and NAS’ but here’s how I see it working:

You currently have four drives: 2 x 1TB, 1x 2TB, 1 x 3TB

You format the individual drives with BTFS. With SnapRAID
you set the 3TB drive to act as parity for the 2 x 1TB and 1x 2TB. You then use
BTRFS to pool space of the 2 x 1TB, 1x 2TB into a 4TB pool.

Later you get another 2TB drive. If you server has capacity
for more drives, add it to the pool and have 6TB available. If you can’t fit
more drives swap out one of the 1TB’s and have 5TBs.

Why do you hate unRAID so much?

Unintuitive, unstable (for me at least) GUI with missing features that needs user made plugins and command line intervention to be functional.

Resource intensive (just formatting drives near maxes out my CPU)

Slow network file transfer speed. They recommend adding cache drive but that takes a slot form you license and even with cache drive is still slow.

I have not used SnapRAID before, but from what you wrote, it seems like there’s more control available wrt parity. I am curious to learn about the benefits in more detail. Could you please explain?

As I understand it parity operations in SnapRAID aren’t real-time but on a user defined schedule.

SnapRAID allows for as many parity drives as you want, I think BTRFS is limited 2.

BTRFS and hence Rockstor allows usage of different size drives. How is it different in SnapRAID?

As I understand it BTRFS will treat all drive as if their capacity were that of the smallest drive. SnapRAID would give you the combined capacity excluding parity drive.

On your other proposed gains, could you elaborate how you see them being useful at a higher level?

A raid option that allows for different size drives with parity (not JBOD)

Lower entry cost

Flexible expansion options

Data accessible on drives removed from array

Emergency data access in the event of server failure

Ability to control when parity happens

Parity operations are not free, schedule sync operation for when you can afford the CPU time cost.

Would eliminate write amplification that occur in RAID5 and RAID6 arrays.

Allow for the reset of data to the state of when the last sync job was run.

Only spin up drives being used

Reduced power consumption

Extended drive live

2 Likes

Thanks for your detailed response, it’s very helpful as we plan future development. In the current phase of development, however, we are focusing on work that is complementary to BTRFS. And that itself is a tall order. So while your suggestions make sense(perhaps more for some use cases than others), we can only defer taking any real action at this point.

Drive and system power optimization has come up before and we may work on that at some point independent from any SnapRAID integration. I am also hopeful that some other features like more parity and elimination of write amplification will make it into BTRFS with or without our involvement.

Your feedback, however, is educational to say the least and will serve as a reference here in our KB. I thank you for that.

On a different note, it would indeed be wonderful if SnapRAID developer(s) get involved, either with Rockstor or BTRFS.

FWIW btrfs does gracefully handle different sized drives and you’ll get full capacity where possible*. ZFS is limited to n_disks*smallest_disk per vdev, but vdevs can be different sizes without wasted space.

*It’s all about raid level and stripe width. With your example drives in raid5 you would use all of the 1T drives, all of the 2T drive, and 66% of the 3T drive. You’d have batch of stripes across all 4, 1T each, and another batch of stripes across the 2t and 3t drive also 1t each.

The same drives in raid6 however couldn’t use beyond the 1st batch of stripes so you’d lose 3t of raw (1t from the 2t drive, 2t from the 3t drive).

The same drives in Raid1 (mirror) would use all of the available drive space because there are no stripes. This is the equivalent of your snapraid configured for 1 parity copy and it happens automatically. btrfs does not yet have n-way mirroring, but it’s coming.

The true benefit of snapraid is that it’s divorced from the filesystem. You can pull any drive and read whatever is on that drive. If more disks fail than parity can recover, the data on the remaining drives is still OK. It’s suitable for write once read many use-case, like media storage.

The downsides are performance (for any one file it’s always single-disk performance), and for many use-cases deferred or delayed parity is exposure to risk because any changes between parity calculations are unprotected.

1 Like

Not tried but SnapRAID is available in the repos. So it can be installed on a Rockstor NAS. Only it’s not configurable via the webui.