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

Reply via email to