|
|
This article may require cleanup to meet Wikipedia's quality standards. Please improve this article if you can. (January 2007) |
|
|
This article is missing citations or needs footnotes. Please help add inline citations to guard against copyright violations and factual inaccuracies. (January 2007) |
Although all implementations of RAID differ from the idealized specification to some extent, some companies have developed non-standard RAID implementations that differ substantially from the rest of the crowd. Most of these are proprietary. Below is a detailed description of the most common specialized arrays that have been claimed by various organizations.
In addition to these, there are non-RAID drive architectures—configurations of multiple hard drives which are not referred to by RAID acronyms.
Contents |
Types
Double parity
One common addition to the existing RAID levels is double parity, sometimes implemented and known as row diagonal parity[1]. As in traditional RAID 6, there are two sets of parity check information created. Unlike traditional RAID 6, the second set is not another set of points in the over-defined polynomial which characterizes the data. Rather, double parity calculates the extra parity against a different group of blocks. Recently SNIA[2] updated the RAID6 definition, and double parity can now be considered RAID6. For example, in our graph both RAID 5 and RAID 6 calculate against all A-lettered blocks to produce one or more parity blocks. However, as it is fairly easy to calculate parity against multiple groups of blocks, instead of just A-lettered blocks, one can calculate all A-lettered blocks and a permuted group of blocks.
This is more easily illustrated using RAID 4, Twin Syndrome RAID 4 (RAID 6 with a RAID 4 layout which is not actually implemented), and double parity RAID 4.
Traditional Twin Syndrome Double parity
RAID 4 RAID 4 RAID 4
A1 A2 A3 Ap A1 A2 A3 Ap Aq A1 A2 A3 Ap 1n
B1 B2 B3 Bp B1 B2 B3 Bp Bq B1 B2 B3 Bp 2n
C1 C2 C3 Cp C1 C2 C3 Cp Cq C1 C2 C3 Cp 3n
D1 D2 D3 Dp D1 D2 D3 Dp Dq D1 D2 D3 Dp 4n
Note: A1, B1, et cetera each represent one data block; each column represents one disk.
The n blocks are the double parity blocks. The block 2n would be calculated as A2 xor B3 xor Cp, while 3n would be calculated as A3 xor Bp xor C1 and 1n would be calculated as A1 xor B2 xor C3. Because the double parity blocks are correctly distributed it is possible to reconstruct two lost data disks through iterative recovery. For example, B2 could be recovered without the use of any x1 or x2 blocks by computing B3 xor Cp xor 2n = A2, and then A1 can be recovered by A2 xor A3 xor Ap. Finally, B2 = A1 xor C3 xor 1n.
Running in degraded mode with a double parity system is not advised.
RAID-DP
| This section may require copy-editing for grammar, style, cohesion, tone, or spelling. You can assist by editing it.. |
RAID-DP[3]is the NetApp implementation of RAID double parity for data protection and falls within SNIA’s definition of RAID 6[4]. Unlike many RAID 6 implementations which can suffer a performance hit of over 30%,[5]the performance impact of RAID-DP is typically under 2% [6] when compared to RAID 4 of NetApp (which is also a variant of RAID 4 and doesn't suffer from performance impact like a RAID 5) due to the behavior of the storage kernel[7]. All file system requests are first written to the battery backed NVRAM to ensure there is no data loss should the system lose power. Blocks are never updated in place, so when incoming write operations are performed, writes are aggregated and the storage controller tries to write only complete stripes including both parity blocks. RAID-DP provides better protection than RAID 1/0[clarification needed], and performance is equal to or better than RAID 1/0 in most cases as it doesn't suffer from traditional RAID 6 challenges of in-place updating of blocks and provides more disks to read/write from, when compared to a RAID Group of same size. It even enables disk firmware updates to occur in real-time without any outage. [8]
RAID 1.5
RAID 1.5 is a proprietary RAID by HighPoint and is sometimes incorrectly called RAID 15. RAID 1.5 performs data striping and mirroring simultaneously using only two hard drives. When reading, the data is read from both disks simultaneously and most of the work is done in hardware instead of the driver.
Certain operating system implementations (such as Linux's and Solaris's) read from both disks in a RAID 1 implementation simultaneously, so RAID 1.5 offers no extra benefit over traditional RAID 1.
RAID 5E, RAID 5EE and RAID 6E
RAID 5E, RAID 5EE and RAID 6E (with the added E standing for Enhanced) generally refer to variants of RAID 5 or RAID 6 with an integrated hot-spare drive, where the spare drive is an active part of the block rotation scheme. This allows the I/O to be spread across all drives, including the spare, thus reducing the I/O bandwidth per drive, allowing for higher performance. It does, however, mean that a spare drive cannot be shared among multiple arrays, which is occasionally desirable. The scheme was introduced by IBM ServeRAID around 2001.[1]
In RAID 5E, RAID 5EE and RAID 6E, there is actually no dedicated "spare drive", just like there is no dedicated "parity drive" in RAID 5 or RAID 6. Instead, the spare blocks are distributed across all the drives, so that in a 10-disk RAID 5E with one spare, each and every disk is 80% data, 10% parity, and 10% spare. The spare blocks in RAID 5E and RAID 6E are at the end of the array, while in RAID 5EE the spare blocks are integrated into the array. RAID 5EE level can sustain a single drive failure. RAID 5EE requires at least four disks and can expand up to 16 disks. If one drive fails in a RAID 5E/5EE array then the array is 'compressed' and re-built (re-striped) into a standard RAID 5 array. This process can be very intensive on the drive I/O and the process may take several hours or days depending on the speed, size and number of the drives. Only after the compression completes can a second drive fail without data loss. The replacement and rebuild of the second failed drive works the same as a standard RAID 5 . Once the original failed drive is replaced and the compression has completed, the array is this time 'decompressed' and re-built (re-striped) back into a RAID 5E/5EE array. The process may take several hours or days depending on the speed, size and number of the drives. During the 'compressing' and 'decompressing' stages the array is at risk of a second disk failure as the array is not protected by redundancy during those stages. Due to the length of time and intense I/O activity of both the compression and decompression, a practical limit of between 4 to 8 drives is recommended. The performance boost of incorporating the hot spare drive into the data array diminishes after 8 drives and the benefit is severely reduced by the length of the rebuild of a failed drive and the risk of data loss incurred by a second drive failure during the compression.
RAID S or Parity RAID
RAID S is EMC Corporation's proprietary striped parity RAID system used in their Symmetrix storage systems. Each volume exists on a single physical disk, and multiple volumes are arbitrarily combined for parity purposes. EMC originally referred to this capability as RAID S, and then renamed it Parity RAID for the Symmetrix DMX platform. EMC now offers standard striped RAID 5 on the Symmetrix DMX as well. RAID-S is not used anymore in EMC products (except for products already sold).
Traditional EMC
RAID 5 RAID S
A1 A2 A3 Ap A1 B1 C1 1p
B1 B2 Bp B3 A2 B2 C2 2p
C1 Cp C2 C3 A3 B3 C3 3p
Dp D1 D2 D3 A4 B4 C4 4p
Note: A1, B1, et cetera each represent one data block; each column represents one disk.
A, B, et cetera are entire volumes.
Intel Matrix RAID
Intel Matrix RAID is a feature (not a RAID level) present in the ICH6R and subsequent Southbridge chipsets from Intel, accessible via the RAID BIOS. Matrix RAID utilizes as few as two physical disks or as many as the controller supports. The distinguishing feature of Matrix RAID is that it allows any assortment of RAID 0, 1, 5, and/or 10 volumes in the array, to which a specified (and identical) portion of each disk is allocated. As such, a Matrix RAID can be leveraged for performance and data integrity. A practical instance of this would use a small RAID 0 (stripe) for the operating system, program and paging files; and the larger RAID 1 (mirror) to store critical data as well as any personal files, such as a mass of multimedia content that may be considered too much to lose. Linux MD RAID is also capable of this.
Linux MD RAID 10
The Linux kernel software RAID driver (called md, for "multiple device") can be used to build a classic RAID 1+0 array, but also (since version 2.6.9) as a single level[2] with some interesting extensions[3].
The standard "near" layout, where each chunk is repeated n times in a k-way stripe array, is equivalent to the standard RAID-10 arrangement, but it does not require that n divide k. For example an n2 layout on 2, 3 and 4 drives would look like:
2 drives 3 drives 4 drives -------- ---------- -------------- A1 A1 A1 A1 A2 A1 A1 A2 A2 A2 A2 A2 A3 A3 A3 A3 A4 A4 A3 A3 A4 A4 A5 A5 A5 A6 A6 A4 A4 A5 A6 A6 A7 A7 A8 A8 .. .. .. .. .. .. .. .. ..
The 4-drive example is identical to a standard RAID-1+0 array, while the 3-drive example is a software implementation of RAID-1E. The 2-drive example is equivalent RAID 1.
The driver also supports a "far" layout where all the drives are divided into f sections. All the chunks are repeated in each section but offset by one device. For example, f2 layouts on 2- and 3-drive arrays would look like:
2 drives 3 drives -------- -------------- A1 A2 A1 A2 A3 A3 A4 A4 A5 A6 A5 A6 A7 A8 A9 .. .. .. .. .. A2 A1 A3 A1 A2 A4 A3 A6 A4 A5 A6 A5 A9 A7 A8 .. .. .. .. ..
This is designed for striping performance of a mirrored array; sequential reads can be striped, as in RAID-0, random reads are somewhat faster (maybe 10-20 % due to using the faster outer sectors of the disks, and smaller average seek times), and sequential and random writes are about equal performance to other mirrored raids. The layout performs well for systems where reads are more frequent that writes, which is a very common situation on many systems. The first 1/f of each drive is a standard RAID-0 array. Thus you can get striping performance on a mirrored set of only 2 drives.
The near and far options can both be used at the same time. The chunks in each section are offset by n device(s). For example n2 f2 layout stores 2×2 = 4 copies of each sector, so requires at least 4 drives:
A1 A1 A2 A2 A1 A1 A2 A2 A3 A3 A3 A4 A4 A3 A4 A4 A5 A5 A5 A5 A6 A6 A6 A6 A7 A7 A8 A7 A7 A8 A8 A8 A9 A9 A10 A10 .. .. .. .. .. .. .. .. .. A2 A2 A1 A1 A2 A3 A1 A1 A2 A4 A4 A3 A3 A5 A5 A3 A4 A4 A6 A6 A5 A5 A7 A8 A6 A6 A7 A8 A8 A7 A7 A10 A10 A8 A9 A9 .. .. .. .. .. .. .. .. ..
As of Linux 2.6.18 the driver also supports an offset layout where each stripe is repeated o times. For example, o2 layouts on 2- and 3-drive arrays are laid out as:
2 drives 3 drives -------- -------- A1 A2 A1 A2 A3 A2 A1 A3 A1 A2 A3 A4 A4 A5 A6 A4 A3 A6 A4 A5 A5 A6 A7 A8 A9 A6 A5 A9 A7 A8 .. .. .. .. ..
Note: k is the number of drives, n#, f# and o# are parameters in the mdadm --layout option.
Linux can also create other standard RAID configurations using the md driver (0, 1, 4, 5, 6) as well as non-raid uses like multipath and LVM2. This md driver should not be confused with the dm driver, which is for IDE/ATA chipset based software raid (i.e., fakeraid).
IBM ServeRAID 1E
The IBM ServeRAID adapter series supports 2-way mirroring on an arbitrary number of drives.
This configuration is tolerant of non-adjacent drives failing. Other storage systems including Sun's StorEdge T3 support this mode as well.
RAID-K
Kaleidescape's KSERVER-5000 and KSERVER-1500 use a proprietary RAID-K in their media storage units. RAID-K is similar to RAID 4 in using double parity, but RAID-K also uses another, proprietary method of maintaining fault tolerance.[clarification needed] The system is easily modified, as users can expand the array simply by inserting additional hard disks. Additionally, if any hard disk is inserted with data already on it, the data is automatically added to the array instead of deleting the data, as many other RAID methods would require.
RAID-Z
Sun's ZFS implements an integrated redundancy scheme similar to RAID 5 which it calls RAID-Z. RAID-Z avoids the RAID 5 "write hole"[4] by its copy-on-write policy: rather than overwriting old data with new data, it writes new data to a new location and then atomically overwrites the pointer to the old data. It avoids the need for read-modify-write operations for small writes by only ever performing full-stripe writes; small blocks are mirrored instead of parity protected, which is possible because the file system is aware of the underlying storage structure and can allocate extra space if necessary. There is also RAID-Z2 which uses two forms of parity to achieve results similar to RAID 6: the ability to sustain up to two drive failures without losing data.[5] In July 2009, triple-parity RAID was added to OpenSolaris.[6][7]
Tahoe Distributed File System
This is a file system that stores pieces of files out to various Tahoe clients. These clients can be located at remotely diverse locations being strangers or friendnets. Friendnets provide you to setup say 10 separate tahoe clients (computers) of family or friends, that each agree to store some part of each users data. You can set the ratio of how many clients can go down before the data is lost. You trade storage efficiency for data reliability. Default is to put the data on 10 machines, where only 3 have to be up to get at your data. This means that a 1GB file would need up to 3.33GB of storage space across all clients. This makes your data very fault tolerant, and even disaster proof, but is wasteful on space compared to other RAID levels.
Drive Extender
Windows Home Server Drive Extender is a specialized case of JBOD RAID 1 implemented at the file system level, separate from what is offered in Windows' Logical Disk Manager. When a file is stored that is to be duplicated, a special pointer called a tombstone is created on the main storage drive's NTFS partition that points to data residing on other disk(s). When the system is idle, the OS re-balances the storage to provide the required redundancy while maximizing the storage capacity in each drive. Although not as robust as true RAID, it provides many of the benefits that RAID offers, including a single hierarchical view of the file system regardless of which physical disk the data is stored on, the ability to swap out failed disk without losing redundant data, and the system seamlessly duplicating the data on the replacement disk in the background.
It is also possible to tell Windows Home Server to not duplicate data on a per-share basis. In this case, Driver Extender will store files on different disks and use tombstones to point to them, providing faster read access when the end-user requests multiple files located on different disks, similar to the speed benefit provided by RAID 0.
Drobo BeyondRAID
Data Robotics, Inc. implements a storage technology that they call BeyondRAID in their Drobo storage device. While not a true RAID extension, it does provide for using up to 8 SATA hard drives in the device and consolidating them into one big pool of storage. It has the advantage of being able to use multiple disk sizes at once, much like a JBOD unit, while providing redundancy for all disks and allowing a hot-swap upgrade at any time. Internally it uses a mix of techniques similar to RAID 1 and RAID 5. Depending on the amount of data stored on the unit in relation to the installed capacity, it may be able to survive up to three drive failures, if the "array" can be restored onto the remaining good disks before another drive fails. The amount of usable storage in a Drobo unit can be approximated by adding up the capacities of all the disks and subtracting the capacity of the largest disk. For example, if a 500, 400, 200, and 100 GB drive were installed, the approximate usable capacity would be 500+400+200+100-(500)=700 GB of usable space. Internally the data would be distributed in two RAID 5-like arrays and one RAID 1-like set:
Drives
| 100 GB | 200 GB | 400 GB | 500 GB |
----------
| x | unusable space (100 GB)
----------
-------------------
| A1 | A1 | RAID 1 set (2× 100 GB)
-------------------
-------------------
| B1 | B1 | RAID 1 set (2× 100 GB)
-------------------
----------------------------
| C1 | C2 | Cp | RAID 5 array (3× 100 GB)
----------------------------
-------------------------------------
| D1 | D2 | D3 | Dp | RAID 5 array (4× 100 GB)
-------------------------------------
With the introduction of the DroboPro, a RAID6 like feature was also introduced.
See also
Notes
- ^ http://www5.pc.ibm.com/us/me.nsf/US-webdocs/E0123DAFB77ED40E85256C3F006E6388/$FILE/X-Architecture_2001.pdf
- ^ http://neil.brown.name/blog/20040827225440 RAID 10 driver
- ^ Main Page - Linux-raid
- ^ RAID-Z : Jeff Bonwick's Blog
- ^ Adam Leventhal's Weblog
- ^ Leventhal, Adam. "Bug ID: 6854612 triple-parity RAID-Z". Sun Microsystems. http://bugs.opensolaris.org/bugdatabase/view_bug.do?bug_id=6854612. Retrieved 2009-07-17.
- ^ Leventhal, Adam (2009-07-16). "6854612 triple-parity RAID-Z". zfs-discuss mailing list. http://mail.opensolaris.org/pipermail/onnv-notify/2009-July/009872.html. Retrieved 2009-07-17.
This entry is from Wikipedia, the leading user-contributed encyclopedia. It may not have been reviewed by professional editors (see full disclaimer)




