OS/2 and hardware... For more than a decade, OS/2 has been misjudged to have
very limited hardware support. But in fact, if you big some further, you'll
notice that OS/2 Warp and eComStation offer extreme large and powerful hardware
RAID (Redundant Array of Inexpensive (or independent) Disks) is an architectural concept developed to turn relatively slow and inexpensive hard disk drives into fast, large-capacity, and more reliable storage systems. The RAID concept was introduced by a team of researchers at the University of California Berkeley in 1987 by Patterson, Gibson and Katz. RAID systems derive their speed from striping data across multiple disks, placing successive pieces of a file on different disks, thus allowing parallel data access. Reliability is generally achieved through replication (called mirroring) or by using error detection and correction schemes across the disk array. (Mirroring is, in fact a technique that predates RAID, being used, for example, in the IBM AS/400 minicomputer.) There are many levels of RAID, which differ in the way they provide for speed and/or reliability. The original Berkeley work has specified RAID levels 0 through 5. Slight modifications to these levels have recently resulted in the specifications of levels 6 and 7, and even other newer RAID levels has been put as proprietary standards.
we can start discussing RAID implementations on the OS/2 Warp platform family,
we need to know the difference between a logical drive and a physical drive.
1.2.1. No RAID
There are some terms invented to indicate use of non-RAID systems.
NRAID stands for Non-RAID. The capacity of all the drives is combined to become one logical drive (no block striping). In other words, the capacity of the logical drive is the total capacity of the physical drives. NRAID does not provide data redundancy. You could see LVM's disk spanning as NRAID, but it can provide RAID too, of course. Click here to get an image representing NRAID.
JBOD stands for Just a Bunch of Drives. The RAID controller treats each drive as a stand-alone disk, therefore each drive is an independent logical drive. JBOD does not provide data redundancy. Click here to get an image representing NRAID.
1.2.2. RAID-0: Striping (no fault tolerance)
RAID-0 only stripes (splits) the data across the array disks, which achieves speed through parallelism. However, access time remains the same. Data is written alternating to all disks. RAID-0, however, does NOT improve reliability. As indicated in the image at the right, each data object us striped across all disks in the array. Danger of data loss is greater than a single disk as with a loss of a single disk the whole subsystem is worthless. Thus, should one disk become unusable, then all data is lost, and a specific file cannot be retrieved from the drives left, since some binary parts of the files are lost. Should never be used in mission critical environments. Recommended Applications are video/image production and editing, pre-press applications and other applications requiring high bandwidth.
1.2.3. RAID-1 Variants
188.8.131.52. RAID-1: Mirroring.
Unlike RAID-0, RAID-1 focuses on reliability through redundancy, and it does not offer speed. In this configuration two (or more) sets of disks are used, primary and secondary, where the secondary disks maintain an identical image of the primary disk data, which is striped across multiple disks in RAID-0. Thus, if a disk in one set fails, one in the other set can replace it, since all disks contain exactly the same data. This is clearly an expensive arrangement, as disk usage drops to 50% or more. Furthermore, while reads can be faster since they can be done using both disks simultaneously (and each from each disk reading different blocks), writes are slow, as there is always the need to write two copies. One problem occurs when both disks report different data (write error): which disk is correct? Some vendors name disk mirroring as disk duplexing of two or more controllers. Even in case a controller fails there is redundancy. To increase data security RAID 1 is often combined with some other RAID level. RAID 1 can only be performed with two hard drives. If there are more than two hard drives, RAID (0+1) will be performed automatically. Recommended Applications are accounting, payroll, financial apps, and other applications requiring very high availability.
184.108.40.206. RAID (0+1): Disk Striping with Mirroring.
RAID (0+1) combines RAID 0 and RAID 1 - Mirroring and Striping. RAID (0+1) allows multiple drive failure because of the full redundancy of the hard drives. If there are more than two hard drives assigned to perform RAID-1, RAID (0+1) will be performed automatically. RAID (0+1) allows multiple drive failure and concurrent multiple drive rebuild. RAID (0+1) mostly will not appear in the list of RAID levels supported by the RAID controller; If you wish to perform RAID-1, the RAID controller will determine whether to perform RAID 1 or RAID (0+1). This will depend on the drive number that has been selected for the logical drive. Recommended application domains are imaging applications and low-end fileservers.
220.127.116.11: RAID-10: Mirroring and Striping.
In fact nearly the same as RAID (0+1), but with that difference that the system will first mirror and then strip the data (in contrast to 0+1). Recommended for database server requiring high performance and fault tolerance.
1.2.4. RAID-2: Stripe Set.
In RAID-2, each block of data is striped across data disks by a stripe unit of either a bit or a byte to allow parallel accesses, as in RAID-0. In RAID-2, all the drive spindles have to be synchronized using a single actuator or multiple coupled actuators, as the data bits must be read in parallel. Error detection and correction is provided using additional disks, whose data in created using a Hamming error-correcting code, to allow recovery from a single disk failure. Because a separate disk is used to store the hamming code RAID 2 is slow. RAID-2 performs best for large transfers in which the seek time is rapidly amortized. It would deliver a performance close to that of a single disk for a short transaction, and would perform poorly, compared with independent disks, in doing a number of concurrent short transactions. Modern disks use another kind of error correction code by themselves, and RAID-2 is now obsolete: no commercial implementations exist / not commercially viable.
1.2.5. RAID-3: Bit/Byte Stripe Set.
RAID-3 is a performance-optimized alternative to RAID-2, except that a single
parity bit is used instead of the Hamming code, thus reducing the number of
error detection / correction disks to one. The difference is that a XOR-operations
is used as the error correcting code. If the parity bit indicates an error,
disk controllers can then identify the fault disk on their own without the need
of an error-correcting code to locate the problem. The faulty disk can be then
replaced and its data can be reconstructed using the remaining good disks and
the parity disk. RAID3 is fast but it's speed is reduced by transferring small,
non-continuous blocks. Good for large transfer sizes.
1.2.6. RAID-4: Block/Sector Striping, Dedicated Parity Drive.
RAID-4 is similar in configuration of that of RAID-3, except that the unit used for data striping is the block (sector) rather than the bit or the byte. With the large stripe unit, independent disk drive actuators are used and multiple small transactions can proceed concurrently, speeding up read transactions. However, multiple small independent writes must update the parity disk separately, which creates a sequential bottleneck. There is also a separate disk with checksum calculated by XOR-operations. Because this separate disk is a bottle-neck, RAID-4 isn't as fast as expected, at least when writing or in case of a disk failure (you don't need the XOR-values when reading).
1.2.7. RAID-5: Sector Striping, Distributed Checksums (Striping with Interspersed Parity)
This RAID level combines features from RAID-0, RAID-3 and RAID-4, but it spreads
the parity information. Data is striped in sector-sized units on several (at
least three) disks. Error correction is achieved by using XOR-operations. The
calculated checksum for parity isn't saved on a separate disk but distributed
along with the data sectors (each of the data disks contains one of the parity
blocks). Therefore there is no single disk acting as a bottle-neck. RAID-5 combines
high security and good performance and is used for this reasons. Because the
XOR-operation over large amounts of data is still something to take it's time
RAID-5 is often implemented as hardware RAID with a special controller using
a separate unit to calculate it.
18.104.22.168. RAID-53: High I/O Rates and Data Transfer Performance.
RAID level 53 should actually be referred to as RAID level 03, since it is an implementation as a striped (RAID-0) array of disks with RAID-3 segments. RAID 53 uses the same fault tolerance as RAID-3. High data transfer rates are achieved with RAID-3's beneficious array segments, and high I/O speeds are typical because of RAID-0's striping.
1.2.8. RAID-6 and RAID-7
RAID-5 is the last level in the Berkeley-defined RAID architecture. Some modifications introduced by various implementations resulted in defining more levels. RAID-6 is an extension of level 5 in which the disks are arranged in a two-dimensional array, and the parity is determined in each dimension separately. RAID-7, in addition, uses dynamic mapping where each block of data does not always have to be stored in the same physical sector of a disk.
22.214.171.124. RAID-6: Independent Data disks with two independent distributed parity schemes.
RAID-6 is essentially an extension of RAID level 5 which allows for additional fault tolerance by using a second independent distributed parity scheme (two-dimensional parity). Data is striped on a block level across a set of drives, just like in RAID 5, and a second set of parity is calculated and written across all the drives; RAID 6 provides for an extremely high data fault tolerance and can sustain multiple simultaneous drive failures. Perfect solution for mission critical applications
126.96.36.199. RAID-7: Optimized Asynchrony for High I/O Rates as well as High Data Transfer Rates.
Overall write performance is 25% to 90% better than single spindle
performance and 1.5 to 6 times better than other array levels. Host interfaces
are scalable for connectivity or increased host transfer bandwidth and small
reads in multi-user environments have very high cache hit rate resulting in
near zero access times. The write performance improves with an increase in the
number of drives in the array; access times decrease with each increase in the
number of actuators in the array.
RAID is a set of hard disk drives that are being seen by the operating system
as one logical drive. RAID-3 and RAID-5 are the two most popular levels of RAID.
Which is better depends upon the application. RAID-5 is more suitable for database
applications where small concurrent transactions can be supported efficiently.
RAID-3, however, is most suited for large data accesses such as those found
in scientific computing applications.
Besides allowing to continue working with a failed disk, RAID features some additional techniques to restructure redundancy after a failure:
Hot Swapping: Change a disk while keeping the machine up to replace a failed device. The failed device is stopped, changed and a replacement is automatically setup and filled to contain the data once stored on the failed device. There is no need to shutdown a running server. Be aware that hot swapping needs special connectors to avoid electrical damage.
All I/O controllers must perform a number of functions to complete an I/O
transaction. It is the way in which these necessary functions are performed
that separates the competition. There are two fundamental design differences:
hardware RAID and software RAID.
The hardware based system manages the RAID storage subsystem independently
from the host operating system and presents to the host as a single disk . This
way the host doesn't have to be aware of the RAID storage subsystems, since
the intelligent controller manages the RAID storage subsystem independently
from the host. Some manufacturers also point out a difference of internal and
external RAID controllers. However, since their working is the same, we shan't
discuss that here.
Software RAID utilizes the host CPU (the processor on the motherboard) for
any necessary processing functions. This method involves more interrupts to
the host CPU, and many more CPU cycles. Software RAID indicates that the processing
is NOT performed on the controller itself; in fact, there is often no controller
present: everything can be emulated on the operating system by replacing the
RAID controller by one or more device drivers. While this may save a small amount
of cost, it is not desirable from an overall system performance standpoint.
The performance characteristics of software RAID controllers can be somewhat
deceiving. A software RAID controller may in fact appear to provide adequate
performance when only one user is logged in to the console and is simply running
a benchmark. However, the performance of these controllers in a real world environment
often is inadequate. As the number of users on a sever increases, so does the
load on the server CPU.
Last modified: 2004/08/30, 14:42 | This site is sponsored by Mensys B.V.