On 2/15/24 12:19, gene heskett wrote:
On 2/15/24 11:21, Andy Smith wrote:
... redundancy plans ...
Like which version of a raid is the best at tolerating a failed drive,
which give he best balance between redundancy and capacity.
Given a small number of disks, N (say, 4 to 8), the obvious choices are
RAID5, RAID6, and RAID10.
Regarding redundancy:
* RAID5 can tolerate the loss of any one disk.
* RAID6 can tolerate the loss of any two disks.
* RAID10 can tolerate the loss of any one disk. If you get lucky,
RAID10 can tolerate the loss of multiple disks if each lost disk is in a
different mirror.
Regarding capacity, if each disk stores B bytes:
* RAID5 gives you (N-1) * B capacity.
* RAID6 gives you (N-2) * B capacity.
* RAID10 gives you (N/2) * B capacity.
If each disk has performance P:
* RAID5 has performance ranging from P to (N-1) * P.
* RAID6 has performance ranging from P to (N-2) * P.
* RAID10 with M mirrors of D disks each has write performance M * P and
read performance M * D * P.
Other factors to consider:
* All of the above needs to be reconsidered when one or more disks fail
-- e.g. the array is operating in degraded mode.
* All of the above needs to be reconsidered when a failed disk has been
replaced -- e.g. the array is resilvering.
* All of the above needs to be reconsidered when disk(s) fail during
resilvering (!).
* RAID5 and RAID6 typically do not allow changes to topology -- e.g. the
number of disks in the array and the number of bytes used in each disk.
* RAID0, RAID1, and JBOD may allow some changes to topology. What is
allowed depends upon implementation.
* With more disks, you may be able to create hierarchies -- e.g. stripe
of mirrors (RAID10). Redundancy, capacity, and/or performance under
operational, degraded, resilvering, etc., modes all need to be reconsidered.
* Hot spares can be added. Again, reconsider everything.
* And more.
So, it's a multi-dimensional problem and there are many combinations and
permutations. The more disks you have, the more possibilities you have.
I suggest picking two or three, and exploring them using a dedicated
computer, a snapshot of your data, and your workload.
I am currently using ZFS and a stripe of 2 mirrors with 2 @ 3 TB HDD's
each and SSD read cache. I expect the same could be implemented with
mdadm(8), lvm(8), bcache, dm-cache, btrfs, and others.
David