Hi everyone,
We've been discussing RAID support for quite some time as a team, and I
wanted to extend a few questions to our existing user base to hopefully get
a better idea of what our users would prefer/expect from RAID support.
Just to do some level-setting, Stratis's goals have always been a little
bit different from LVM's and we aim to be an opinionated, easy to use
option with reasonable defaults for catching a large percentage of users
who have typical storage use cases. We do not aim to cover every feature or
configuration and would recommend something like LVM with a filesystem for
more complicated, advanced cases we do not support.
That being said, we have been discussing a few different options for RAID
support, and wanted to hear from our user base about what cases they would
ideally like to see supported.
The short list of options that we've generally considered are:
* RAID 1 only
* RAID 10 only
* RAID 1, RAID 10, and RAID 6 without supporting takeover between them
RAID 1 only
Pros:
* From a simplicity perspective, this is one of the simpler options. It's
mirroring across devices, so it would be very easy to understand from a
usage perspective.
* Easy to change the redundancy factor on a RAID array later (move from two
copies of data to three, etc.)
Cons:
* Number of disks would have to be a multiple of the redundancy factor
(redundancy factor of 2 means a multiple of 2 disks).
* Large storage overhead (minimum of 1/2 of the disk space is used for
replication)
RAID 10 only
Pros:
* This allows a lot of flexibility, particularly in terms of adding
devices. Adding a single device to an array is relatively easy because of
the mirroring/striping combination of RAID 10 so there is no requirement
that the number of disks is a multiple of the redundancy factor.
* Making a RAID array larger is very simple. Adding a single device adds
half of the device's capacity to the RAID array's capacity.
Cons:
* Redundancy factor can not easily be changed after creating a RAID array
so it's possible that a new pool would need to be created and data copied
over to change the redundancy factor.
* Large storage overhead (minimum of 1/2 of the disk space is used for
replication)
RAID 1, RAID 10, and RAID 6 without takeover support
(For those who are unfamiliar, RAID 6 is usually best suited to archival
storage as it has the least storage overhead of the options listed above
but write performance is much slower than with the other two. It also
allows failure of two disks in the array with no data loss.)
Pros:
* This would allow users to select the RAID level that best suits their use
case
Cons:
* This could be practically hard to implement if different RAID levels
require different amounts of metadata
* May be confusing to users unfamiliar with RAID if each option requires a
different number of disks or minimum number of disks.
With all of the tradeoffs outlined, which of these would be preferable?
Which ones would you likely use Stratis for? Any feedback you're willing to
share in the context of current usage would be appreciated.
Thanks!
--
John
he/him
Principal Software Engineer, Stratis team