Kbase P17617: RAID descriptions, definitions and recommendations
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  7/1/2008 |
|
Status: Verified
GOAL:
RAID descriptions, definitions and recommendations
GOAL:
What are the differences between the different levels of RAID
GOAL:
RAID Levels explained.
GOAL:
What are the different storage type algorithms?
FACT(s) (Environment):
All Supported Operating Systems
Progress/OpenEdge Versions
FIX:
RAID is an acronym applied to disk technology. It originally stood for Redundant Arrays of Inexpensive Disks, but its current usage is accepted as Redundant Arrays of Independent Disks.
RAID is typically implemented to provide:
- Data reliability by replicating data so that is it not destroyed or inaccessible if the disk on which it is stored fails.
- Improved I/O performance by balancing the I/O load across disks.
- Simplify storage management by treating several physical disks as one virtual unit.
DEFINITIONS:
The following definitions will to help understand the RAID concept.
Array: A collection of disks combined with some array management software which presents these disks as one virtual disk.
Mirrored Array: Two or more member disks containing identical images of data. Its I/O performance properties typically include high reliability and availability. Its aggregate capacity is equal to that of its smallest member. Its performance is usually measurably better than that of a single member for reads and slightly lower for writes.
Striped Array: Two or more member disks on which data is interleaved across all the members of the array. Its I/O performance properties typically include high read and write performance, but is less reliable that its least reliable member.
EXAMPLES:
Mirrored Disk Array Striped Disk Array
(_VDSK1_) (_VDSK2_)
/ \ \ \ \ ________
/ \ \ \ (_SDSK2a_)
________ ________ \ \ ________
(_MDSK1a_) (_MDSK1b_) \ -(_SDSK2b_)
. \ ________
--(_SDSK2c_)
In the mirror example above, (sometimes called a 'shadow' set) when a write operation is performed to VDSK1, it is actually made to both MDSK1a and MDSK1b. However, since both disks contain the same data, when a read operation is performed, it can be done from either disk. If either MDSK1a or b fails, then the other disk still contains accessible data.
In the striped example above, when a write operation is performed to VDSK2, then the 1st piece of that data is written to SDSK2a, then the next piece is written to 2b, then to 2c, and if there is more data, then it gets written to 2a, etc. When the stripe set is created, the size of these pieces is specified. Since potentially every disk must be accessed to either read or write data, there is no performance gain on read I/O. If any disk fails in the stripe set, then the data will not be accessible.
Many systems combine both concepts and have mirrored striped disks, to obtain both high read and write performance along with data reliability.
RAID LEVELS:
A RAID array is a disk array in which part of the storage capacity is used to store redundant information about the data stored on the remainder of the storage capacity. This redundant information enables the 'regeneration' of data in the even that one of the arrays member disks or the access path to that disk fails.
There are many RAID levels or types. The numbering labels are in no way meant to indicate any hierarchical relationship. In other words, RAID 5 is not 5 times better than RAID 1. Nor is it necessarily better than RAID 1. Each RAID level has its own unique operational and performance characteristics. Three of these levels have proven to be commercially attractive. These are 1,3 and 5.
RAID level 0
Although the term RAID 0 is often used to refer to disk striping (because its striping concept is similar to that used in RAID strategies) it is not technically a true RAID level, because it does not provide for data redundancy.
RAID level 1 is disk mirroring. Data is written in blocks to two separate drives simultaneously. It is considered very reliable, but more expensive than other RAID levels, due to the inherent cost (must have at least 2 of every disk.)
RAID level 2 provides data striping at the bit level over all drives in the array. Additional drives are used to store Hamming codes. Error-correction algorithm reconstructs data from the codes, so mirrored drives are not necessary.
RAID level 3 uses a parity disk to store redundant information about the data stored on other disks in the array. This parity disk is a separate dedicated disk. If this disk fails, then you no longer have data redundancy.
RAID level 4 is similar to RAID level 3, except that data is striped in disk sector units rather than as bits or bytes. Parity information is also generated.
RAID level 5 uses level 3's storage algorithm, however it stores the parity information across all members .of the array. Level 5 offers the data reliability approaching that of mirroring, with the read I/O performance of striping. However, there is a substantial performance penalty when write I/O operations are done.
Because of this substantial performance impact that write operations have in a RAID level 5 implementation, this level is not recommended for use with Progress databases. It is especially not recommended for disks where the .bi file (or .ai file if after imaging is enabled.) is located.
RAID level 6 is esentially RAID 5 with double parity information is written across all the drives and provides protection against double disk failures and failures while a single disk is rebuilding. For databases, that's going to mean a performance penalty on write operations due to the overhead associated with the additional parity calculations along with the overhead implicit in RAID 5. This level is not recommended for use with Progress databases due to the performance impact associated with it.
RAID level 10 is a combination of RAID level 1+0, where striping is applied across multiple RAID 1 pairs. Its I/O performance properties typically provides the best performance and data reliability for use with PROGRESS.
RAID level 15 is RAID level 1+5, where two complete RAID 5 systems are mirrored for added fault tolerance. This level is not recommended for use with Progress databases due to the performance impact associated with it.
RAID level 50 combines the straight block-level striping of RAID 0 with the distributed parity of RAID 5. This is a RAID 0 array striped across RAID 5 elements. Minimum number of drives is six. This level is not recommended for use with Progress databases due to the performance impact associated with it.
RAID level 60 combines the straight block-level striping of RAID 0 with the distributed double parity of RAID 6. That is, a RAID 0 array striped across RAID 6 elements. Minimum number of drives is eight. This level is not recommended for use with Progress databases due to the performance impact associated with it.
See Solution, 21152 "Does the Progress RDBMS work with RAID?"
.