From Fedora Project Wiki
mNo edit summary
mNo edit summary
Line 15: Line 15:
**  Redundancy Based Fault Tolerance (These arrays provide the highest performance of the fault tolerant array types, but do so at the cost of disk space as they have the lowest capacity of all the RAID types)
**  Redundancy Based Fault Tolerance (These arrays provide the highest performance of the fault tolerant array types, but do so at the cost of disk space as they have the lowest capacity of all the RAID types)
***  Drive Mirroring (RAID1.  Commonly used to make two identical copies of data so if one drive fails, the other drive keeps going.  Your available disk capacity will be roughly the capacity of a single drive minus some space for overhead.  This array type can suffer the loss of one of the drives and keep going.  This is a very fast array type)
***  Drive Mirroring (RAID1.  Commonly used to make two identical copies of data so if one drive fails, the other drive keeps going.  Your available disk capacity will be roughly the capacity of a single drive minus some space for overhead.  This array type can suffer the loss of one of the drives and keep going.  This is a very fast array type)
***  Drive Striping with Redundant Copies (RAID10.  This raid level tries to combine the benefits of the Non-Fault Tolerant raid0 array type with the fault tolerance of Drive Mirroring.  In order to get the full benefits of this raid level, you need at least 4 identical drives to be part of the array.  Your available disk capacity will be roughly half the size of all the disks you put into this array (eg. if you add 4 1TB drives, for a total of 4TB, the array capacity will be just under half of that, so a little under 2TB).  This array type can suffer the loss of any one drive, and if you are lucky, can suffer the loss of a second drive.  However, whether or not a second drive loss will take this array
***  Drive Striping with Redundant Copies (RAID10.  This raid level tries to combine the benefits of the Non-Fault Tolerant raid0 array type with the fault tolerance of Drive Mirroring.  In order to get the full benefits of this raid level, you need at least 4 identical drives to be part of the array.  Your available disk capacity will be roughly half the size of all the disks you put into this array (eg. if you add 4 1TB drives, for a total of 4TB, the array capacity will be just under half of that, so a little under 2TB).  This array type can suffer the loss of any one drive, and if you are lucky, can suffer the loss of a second drive.  However, whether or not a second drive loss will take this array type down depends on which drive it is.  If you're unlucky, a second drive loss will render this array inoperable.  This is a very fast array type)  
type down depends on which drive it is.  If you're unlucky, a second drive loss will render this array inoperable.  This is a very fast array type)
** Parity Based Fault Tolerance (These arrays provide the most efficient use of space on your drives while still providing fault tolerance, but they do so at the cost of performance.  It takes CPU resources to calculate the parity for the arrays, and in the event of a disk failure, more CPU resources are used to reconstruct your missing data from the parity.)
** Parity Based Fault Tolerance (These arrays provide the most efficient use of space on your drives while still providing fault tolerance, but they do so at the cost of performance.  It takes CPU resources to calculate the parity for the arrays, and in the event of a disk failure, more CPU resources are used to reconstruct your missing data from the parity.)
***  Single Disk Failure Tolerance (RAID4 or RAID5.  This raid level uses simple parity to enable fault tolerance.  It requires a minimum of 3 drives, but can use more.  The more drives it uses, the more efficient it is at storing your data, but the slower it also becomes for hard drive access and parity calculation reasons.  A 5 or 6 disk raid5 array is a common compromise between space efficiency and performance.  This array can suffer the loss of any one drive.  In the event of a drive loss, performance will degrade until the drive is replaced and the data rebuilt on the new drive.  Your drive capacity depends on how many drives you add to the array.  The final capacity is determined by subtracting one from the number of drives you added to the array and multiplying be each drives size.  Eg, if you added 4 1TB drives to the array, your final capacity would be 3 * 1TB = 3TB.  This is a fast array type for hard disk reads, but can be much slower than the other array types for writes and modifications.  This type of array is well suited for being a fileserver where the files are read very frequently, but only rarely written too.)
***  Single Disk Failure Tolerance (RAID4 or RAID5.  This raid level uses simple parity to enable fault tolerance.  It requires a minimum of 3 drives, but can use more.  The more drives it uses, the more efficient it is at storing your data, but the slower it also becomes for hard drive access and parity calculation reasons.  A 5 or 6 disk raid5 array is a common compromise between space efficiency and performance.  This array can suffer the loss of any one drive.  In the event of a drive loss, performance will degrade until the drive is replaced and the data rebuilt on the new drive.  Your drive capacity depends on how many drives you add to the array.  The final capacity is determined by subtracting one from the number of drives you added to the array and multiplying be each drives size.  Eg, if you added 4 1TB drives to the array, your final capacity would be 3 * 1TB = 3TB.  This is a fast array type for hard disk reads, but can be much slower than the other array types for writes and modifications.  This type of array is well suited for being a fileserver where the files are read very frequently, but only rarely written too.)

Revision as of 20:12, 7 March 2013

  • RAID can apply to standard partitions, LVM volume groups, and BTRFS volumes. It does not apply to individual LV's.
  • While it's technically possible to use LVM mirror and redundancy features on individual LVs on md RAID VG's on hw or fw RAID disks (!), we do not want to support LVM mirror & redundancy on top of VG's that are md RAID. You must pick either md RAID for the entire VG, or LVM mirror / redundancy for individual LVs in the VG.
  • We do allow users to specify array name already
  • Need entry for VG reserved space and checkbox for encrypting VG in VG editor screen. Not sure if VG-specific RAID UI belongs here as well - if it's in the VG edit box then we'd have to grey it out if any LV's had LVM-provided mirror/redundancy, and if none do we'd have to grey out the LV's from doing LVM mirror/redundancy if md RAID is turned on for VG.
  • Disable spare as an option for RAID 1 [dledford]
  • Same partition numbers on all partitions involved in an array [dledford] - seems like a hack, better served by making it more apparent post-install which disks are RAID and which aren't
  • RAID warnings propagated up in anaconda UI? [dledford]
  • What's the difference between redundancy and redundant? [dledford]
  • "here are two boxes, one labeled Optimized Performance and the other Error Detection. But if you *ever* enable Error Detection (parity), then Optimized Performance (stripe) is a given, you can not select one without the other. However, this may be hugely misleading to a user when they enable parity, get optimized performance, and then find that their raid array, under pathological conditions, may be up to 600 *TIMES* slower than a redundant array" [dledford]
  • "[current ui] Options that apply to multiple levels are limited to only one level, options that apply to only one level are at the top as though they apply to multiple, etc." [dledford]

Suggested Tree Structure for UI:

  • Fault Tolerant Array (These arrays trade performance for a reduced risk of data loss)
    • Redundancy Based Fault Tolerance (These arrays provide the highest performance of the fault tolerant array types, but do so at the cost of disk space as they have the lowest capacity of all the RAID types)
      • Drive Mirroring (RAID1. Commonly used to make two identical copies of data so if one drive fails, the other drive keeps going. Your available disk capacity will be roughly the capacity of a single drive minus some space for overhead. This array type can suffer the loss of one of the drives and keep going. This is a very fast array type)
      • Drive Striping with Redundant Copies (RAID10. This raid level tries to combine the benefits of the Non-Fault Tolerant raid0 array type with the fault tolerance of Drive Mirroring. In order to get the full benefits of this raid level, you need at least 4 identical drives to be part of the array. Your available disk capacity will be roughly half the size of all the disks you put into this array (eg. if you add 4 1TB drives, for a total of 4TB, the array capacity will be just under half of that, so a little under 2TB). This array type can suffer the loss of any one drive, and if you are lucky, can suffer the loss of a second drive. However, whether or not a second drive loss will take this array type down depends on which drive it is. If you're unlucky, a second drive loss will render this array inoperable. This is a very fast array type)
    • Parity Based Fault Tolerance (These arrays provide the most efficient use of space on your drives while still providing fault tolerance, but they do so at the cost of performance. It takes CPU resources to calculate the parity for the arrays, and in the event of a disk failure, more CPU resources are used to reconstruct your missing data from the parity.)
      • Single Disk Failure Tolerance (RAID4 or RAID5. This raid level uses simple parity to enable fault tolerance. It requires a minimum of 3 drives, but can use more. The more drives it uses, the more efficient it is at storing your data, but the slower it also becomes for hard drive access and parity calculation reasons. A 5 or 6 disk raid5 array is a common compromise between space efficiency and performance. This array can suffer the loss of any one drive. In the event of a drive loss, performance will degrade until the drive is replaced and the data rebuilt on the new drive. Your drive capacity depends on how many drives you add to the array. The final capacity is determined by subtracting one from the number of drives you added to the array and multiplying be each drives size. Eg, if you added 4 1TB drives to the array, your final capacity would be 3 * 1TB = 3TB. This is a fast array type for hard disk reads, but can be much slower than the other array types for writes and modifications. This type of array is well suited for being a fileserver where the files are read very frequently, but only rarely written too.)
      • Two Disk Failure Tolerance (RAID6. This raid level uses the same simple parity to deal with a single disk failure as RAID5 does, but in the event of a second disk failure will add in a second type of complex parity to allow it to reconstruct the data. It requires a minimum of 3 drives, but like RAID5 needs more to get the benefits of the efficient use of storage space. In the event of a two disk failure, this array type is *very* slow. However, given how important the data is, *very* slow may be better than restoring from backup. Your drive capacity depends on how many drives you add to the array, similar to RAID5, but instead of loosing one drive to parity, you loose two. As a result, the formula is number of drives in the array minus two times the capacity of the drives. Eg, if you add 6 1TB drives, then it would be (6 - 2) * 1TB = 4TB capacity for the array. This type of array is mainly of use when you must make the most of the drive space you have, but your system must stay online and running even in the event of two separate drive failures. This is a highly resilient RAID level, not a highly performant RAID level.)
  • Non-Fault Tolerant Array (RAID0, or striping. This is the highest performance array type and is really only intended to be used where a single hard drive is not fast enough to keep up with the workload placed

up on. It has the highest risk of data loss. The risk of data loss with this array type is actually higher than if you have no raid array at all, so please keep regular backups of your data.)

Notice how neatly that's organized. How it presents the options in a way that someone who is not familiar with raid levels can find what they want, but someone who is familiar with levels can also go straight to what they want? If you do something like this, you can just kill off the "select by raid level" option because you've combined both into one much more readable and accurate screen.