SnapRAID is only one entry in the well populated set of not standard RAID solutions for disk arrays.
The main factor to categorize the existing solutions is when the redundancy information is updated. In realtime solutions the parity data is updated in realtime, without an explicit action from the user. Like RAID. In snapshot solutions the parity data is updated only upon an explicit request from the user. Like Backup.
Other important factors are the support of an integrity checksum to identify silent data corruption and the possibility to fix it, if you can use already filled disk, if you can recover your data from not broken disks when you get too many failures to have a full recover, and if all your disks are spinning when reading one file.
The main solutions available are:
- unRAID - Commercial and OpenSource GPL2 solution. A modified version of the Linux Reiserfs filesystem with realtime redundancy. No integrity checksum is supported.
- FlexRAID - Commercial and proprietary C++/Java application for Windows, with some limited support for Linux. It supports both snapshot redundancy and realtime redundancy, with integrity checksum.
- disParity - Proprietary .NET application for Windows supporting snapshot redundancy and integrity checksum.
- ZFS - OpenSource filesystem (but GPL incompatible) with realtime redundancy and integrity checksum.
- Btrfs - OpenSource filesystem GPL2 with realtime redundancy. From Linux 3.9 it supports RAID5/6 redundancy and integrity checksums.
- Storage Spaces - The last contender from Microsoft, and integrated into Windows 8. Proprietary with realtime redundancy. Checksumming is not supported, but it could be provided by ReFS. But with some limitations.
None of them fulfilled my needs of reliability, integrity and licensing for a backup solution for my disk array. So, SnapRAID is born!
Realtime computes parity at realtime like RAID, snapshot at request time, like Backup.
If data is validated with some kind of checksum, and which one is the default.
|Fix silent errors|
If silent errors are detected and fixed before they can propagate into the parity.
|Yes||No ||No ||No||Yes||Yes||No|
|Number of failures
How many disk failures are supported? 1 is for RAID5, 2 for RAID6.
|1 2 3 4 5 6||1||1 2 3 4 5 6+||1||1 2 3||1 2||1|
If more disks fail than the supported redundancy model, is it possible to recover the data in the not failed disks?
How many disks are spinning when reading a single file?
Can you start using it with already filled disk?
Which OS is supported?
Mac OS X
|Windows||Mac OS X|
The year of the first official release supporting at least RAID5 redundancy.
Software license and price.
|Open Source GPL3|
|Open Source GPL2|
|Open Source CDDL|
|Open Source GPL2|
Which interface is provided? GUI or command line?
|GUI||GUI||command line||command line||command line||GUI|
 - unRAID doesn't have any kind of checksum, and it just ignores silent errors. Even worse, if a parity error is detected as result of a silent error in the data, the parity is automatically recomputed, making impossible to recover the silent error, even manually.
 - Flexraid uses checksums to validate files, but such checksums
are not verified when data is read to update the parity.
This means that any silent error present will propagate into the parity,
making impossible to fix it later, even if it can be still detected comparing the file checksum.
You can get in a state where the "Validate" operation reports errors, but the "Verify" one reports no problem in the parity, making impossible to fix the errors.
If you think that some information reported is incorrect or simply unfair, please report it in the Forum.