SnapRAID is a recent 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 redundancy solution the redundancy data is updated in realtime, without an explicit action of the user. Just like RAID. In snapshot redundancy solutions the redundancy data is updated only upon explicit requests from the user. Just like a Backup.
Other important factors are the support of some form of integrity checksum to avoid silent data corruption, 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.
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. File level integrity checksum is supported.
- disParity - Proprietary .NET application for Windows supporting snapshot redundancy. File level integrity checksum is supported.
- ZFS - OpenSource filesystem (but GPL incompatible) with realtime redundancy. Block level integrity checksum is supported.
- Btrfs - OpenSource filesystem GPL2 with realtime redundancy. Rumors say here and here that it will support RAID5/6 redundancy. Block level integrity checksum is supported.
- 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!
| SnapRAID | unRAID | FlexRAID | disParity | ZFS | Storage Spaces | |
|---|---|---|---|---|---|---|
| Redundancy model Realtime computes parity at realtime like a RAID, snapshot at request time, like a Backup. |
Snapshot | Realtime | Both | Snapshot | Realtime | Realtime |
| Integrity A checksum at File or Block level is done to ensure that silent errors are detected when recovering. Block has finer error detection than File. |
Block Murmur3 128bit | No | File | File | Block fletcher2 fletcher4 SHA256 | No |
| License/Price Software license and price. |
Open Source GPL3 Free | Open Source GPL2 69$/119$ | Proprietary 40$/60$ | Proprietary Free | Open Source CDDL Free | Proprietary Windows 8 |
| Filled disk Can you start using it with already filled disk? |
Yes | No | Yes | Yes | No | No |
| Number of failures How many disk failures are supported? 1 is for RAID5, 2 for RAID6. |
1 2 | 1 | 1 2 3 | 1 | 1 2 3 | 1 |
| Other failures If more disks fail than the supported redundancy model, is it possible to recover the data in the not failed disks? |
Yes | Yes | Yes | Yes | No | No |
| Power/Noise How many disks are spinning when reading a single file? |
One | One | One | One | All | All |
| Operating system Which OS is supported? |
Linux Windows Mac OS X OpenIndiana Solaris BSD | Linux | Windows Linux | Windows | Mac OS X Solaris BSD | Windows |
| Age The year of the first official release of the solution. |
2011 | 2005 | 2008 | 2009 | 2006 | 2012 |
| Interface Which interface is provided? GUI or command line? |
command line or Elucidate | GUI | GUI | command line | command line | GUI |
If you think that some information reported is incorrect or simply unfair, please report it in the Forum.
