RAID SEMINAR REPORT /09/2004 Asha.P.M NO: 612 S7 ECE

Similar documents
Definition of RAID Levels

SYSTEM UPGRADE, INC Making Good Computers Better. System Upgrade Teaches RAID

The term "physical drive" refers to a single hard disk module. Figure 1. Physical Drive

I/O CANNOT BE IGNORED

Mladen Stefanov F48235 R.A.I.D

I/O CANNOT BE IGNORED

5.11 Parallelism and Memory Hierarchy: Redundant Arrays of Inexpensive Disks 485.e1

RAID (Redundant Array of Inexpensive Disks)

Modern RAID Technology. RAID Primer A Configuration Guide

In the late 1980s, rapid adoption of computers

Database Management Systems, 2nd edition, Raghu Ramakrishnan, Johannes Gehrke, McGraw-Hill


Associate Professor Dr. Raed Ibraheem Hamed

ECE Enterprise Storage Architecture. Fall 2018

Address Accessible Memories. A.R. Hurson Department of Computer Science Missouri University of Science & Technology

CSE 380 Computer Operating Systems

hot plug RAID memory technology for fault tolerance and scalability

RAID: The Innovative Data Storage Manager

RAID. Redundant Array of Inexpensive Disks. Industry tends to use Independent Disks

Chapter 11: File System Implementation. Objectives

Storage Systems. Storage Systems

Physical Storage Media

Computer Organization and Technology External Memory

COSC 6385 Computer Architecture. Storage Systems

Lenovo RAID Introduction Reference Information

An Introduction to RAID

Mass-Storage. ICS332 - Fall 2017 Operating Systems. Henri Casanova

Storage Devices for Database Systems

1. Introduction. Traditionally, a high bandwidth file system comprises a supercomputer with disks connected

COMP283-Lecture 3 Applied Database Management

CS370: System Architecture & Software [Fall 2014] Dept. Of Computer Science, Colorado State University

Lecture 9. I/O Management and Disk Scheduling Algorithms

Some material adapted from Mohamed Younis, UMBC CMSC 611 Spr 2003 course slides Some material adapted from Hennessy & Patterson / 2003 Elsevier

CS5460: Operating Systems Lecture 20: File System Reliability

CSE380 - Operating Systems. Communicating with Devices

B.H.GARDI COLLEGE OF ENGINEERING & TECHNOLOGY (MCA Dept.) Parallel Database Database Management System - 2

COSC 6385 Computer Architecture Storage Systems

Administrivia. CMSC 411 Computer Systems Architecture Lecture 19 Storage Systems, cont. Disks (cont.) Disks - review

CSE380 - Operating Systems

COSC 6374 Parallel Computation. Parallel I/O (I) I/O basics. Concept of a clusters

College of Computer & Information Science Spring 2010 Northeastern University 12 March 2010

CSE 451: Operating Systems Winter Redundant Arrays of Inexpensive Disks (RAID) and OS structure. Gary Kimura

File systems CS 241. May 2, University of Illinois

CS370: Operating Systems [Spring 2017] Dept. Of Computer Science, Colorado State University

CSE325 Principles of Operating Systems. Mass-Storage Systems. David P. Duggan. April 19, 2011

Input/Output. Today. Next. Principles of I/O hardware & software I/O software layers Disks. Protection & Security

CSCI-GA Database Systems Lecture 8: Physical Schema: Storage

Page 1. Magnetic Disk Purpose Long term, nonvolatile storage Lowest level in the memory hierarchy. Typical Disk Access Time

Mass-Storage Structure

Storing Data: Disks and Files

Chapter 6 - External Memory

Reliable Computing I

Concepts Introduced. I/O Cannot Be Ignored. Typical Collection of I/O Devices. I/O Issues

Storage and File Structure. Classification of Physical Storage Media. Physical Storage Media. Physical Storage Media

Distributed Systems 23. Fault Tolerance

Ch 11: Storage and File Structure

Storage systems. Computer Systems Architecture CMSC 411 Unit 6 Storage Systems. (Hard) Disks. Disk and Tape Technologies. Disks (cont.

CISC 7310X. C11: Mass Storage. Hui Chen Department of Computer & Information Science CUNY Brooklyn College. 4/19/2018 CUNY Brooklyn College

Che-Wei Chang Department of Computer Science and Information Engineering, Chang Gung University

Mass-Storage. ICS332 Operating Systems

Lecture 23: Storage Systems. Topics: disk access, bus design, evaluation metrics, RAID (Sections )

I/O, Disks, and RAID Yi Shi Fall Xi an Jiaotong University

STORAGE MANAGEMENT USING OPENFILER II

CMSC 424 Database design Lecture 12 Storage. Mihai Pop

Redundancy in fault tolerant computing. D. P. Siewiorek R.S. Swarz, Reliable Computer Systems, Prentice Hall, 1992

Distributed Systems 24. Fault Tolerance

Database Systems. November 2, 2011 Lecture #7. topobo (mit)

- SLED: single large expensive disk - RAID: redundant array of (independent, inexpensive) disks

Chapter 6 Memory 11/3/2015. Chapter 6 Objectives. 6.2 Types of Memory. 6.1 Introduction

Raid: Who What Where When and Why. 3/23 Draft V1 David Arts 4/3 Draft V2 David Arts 4/10 First Release David Arts

CSE 120. Operating Systems. March 27, 2014 Lecture 17. Mass Storage. Instructor: Neil Rhodes. Wednesday, March 26, 14

Introduction Disks RAID Tertiary storage. Mass Storage. CMSC 420, York College. November 21, 2006

3.3 Understanding Disk Fault Tolerance Windows May 15th, 2007

Frequently asked questions from the previous class survey

Table 6.1 Physical Characteristics of Disk Systems

Chapter 13: Mass-Storage Systems. Disk Scheduling. Disk Scheduling (Cont.) Disk Structure FCFS. Moving-Head Disk Mechanism

Chapter 13: Mass-Storage Systems. Disk Structure

RAID Technology White Paper

Chapter 13 Disk Storage, Basic File Structures, and Hashing.

I/O Management and Disk Scheduling. Chapter 11

Implementing Software RAID

Virtual Memory. Reading. Sections 5.4, 5.5, 5.6, 5.8, 5.10 (2) Lecture notes from MKP and S. Yalamanchili

V. Mass Storage Systems

OS and Hardware Tuning

I/O Hardwares. Some typical device, network, and data base rates

RAID5 versus RAID10. First let's get on the same page so we're all talking about apples.

Extreme Storage Performance with exflash DIMM and AMPS

Eastern Mediterranean University School of Computing and Technology CACHE MEMORY. Computer memory is organized into a hierarchy.

OS and HW Tuning Considerations!

DELL EMC DATA DOMAIN SISL SCALING ARCHITECTURE

HP AutoRAID (Lecture 5, cs262a)

Chapter 9: Peripheral Devices: Magnetic Disks

Chapter 9: Peripheral Devices. By: Derek Hildreth Chad Davis

Introduction to I/O. April 30, Howard Huang 1

RACS: Extended Version in Java Gary Zibrat gdz4

NAS System. User s Manual. Revision 1.0

UNIT I (Two Marks Questions & Answers)

Part IV I/O System. Chapter 12: Mass Storage Structure

Distributed Systems. 19. Fault Tolerance Paul Krzyzanowski. Rutgers University. Fall 2013

A+ Guide to Hardware: Managing, Maintaining, and Troubleshooting, 5e. Chapter 6 Supporting Hard Drives

Transcription:

RAID SEMINAR REPORT 2004 Submitted on: Submitted by: 24/09/2004 Asha.P.M NO: 612 S7 ECE

CONTENTS 1. Introduction 1 2. The array and RAID controller concept 2 2.1. Mirroring 3 2.2. Parity 5 2.3. Error correcting code 6 2.4. Exclusive OR 7 2.5. Striping 9 3. RAID levels 10 3.1. RAID 0 10 3.2. RAID 1 12 3.3. RAID 2 14 3.4. RAID 3 16 3.5. RAID 4 18 3.6. RAID 5 20 3.7. RAID 6 23 3.8. RAID 10 24 3.9. RAID 50 25 4. RAID implementation 27 5. Conclusion 28 6. Bibliography 29

1. INTRODUCTION: Information has become a commodity in today s world, and protecting that information has become mission critical. The Internet has helped push this information age forward. Popular websites process so much information, that any type of slowdown or downtime can mean the loss of millions of dollars. Clearly, just a bunch of hard disks won t be able to cut it anymore. So Redundant Array of Independent (or Inexpensive) Disks (RAID) was developed to increase the performance and reliability of data storage by spreading data across multiple drives. RAID technology has grown and evolved throughout the years to meet these ever-growing demands for speed and data security. What is RAID? A technique was developed to provide speed, reliability, and increased storage capacity using multiple disks, rather than single disk solutions. RAID takes multiple hard drives and allows them to be used as one large hard drive with benefits depending on the scheme or level of RAID being used. The better the RAID implementation, the more expensive it is. There is no one best RAID implementation. Some implementations are better than others depending upon the actual application. It used to be that RAID was only available in expensive server systems. However, with the advent of inexpensive RAID controllers, it seems it has pretty much reached the mainstream market.

2. THE ARRAY AND RAID CONTROLLER CONCEPT: A drive array is a collection of hard disk drives that are grouped together. When we talk about RAID, there is often a distinction between physical drives and arrays and logical drives and arrays. Physical arrays can be divided or grouped together to form one or more logical arrays. These logical arrays can be divided into logical drives that the operating system sees. The logical drives are treated as single hard drives and can be partitioned and formatted accordingly. The RAID controller is what manages how the data is stored and accessed across the physical and logical arrays. It ensures that the operating system sees the logical drives only and need not worry about managing the underlying schema. As far as the system is concerned, it is dealing with regular hard drives. A RAID controller s functions can be implemented in hardware or software. Hardware implementations are better for RAID levels that require large amounts of calculations. With today s incredibly fast processors, software RAID implementations are more feasible, but the CPU still gets bogged-down with large amounts of I/O. The basic concepts made use of in RAID are: Mirroring Parity ECC Exclusive OR Striping

2.1 Mirroring: Mirroring involves having two copies of the same data on separate hard drives or drive arrays. So the data is effectively mirrored on another drive. The system writes data simultaneously to both hard drives. This is one of the two data redundancy methods used in RAID to protect from data loss. The benefit is that when one hard drive or array fails, the system can still continue to operate since there are two copies of data. Downtime is minimal and data recovery is relatively simple. All you need to do is rebuild the data from good copy. A raid controller writes the same data blocks to each mirrored drive. This means that each drive or array has the same information in it. We can add another level of complexity by introducing yet another technique called striping. If we have one striped array we can mirror the array at the same time on the second striped array. To set up mirroring the number of drives will have to be in the power of two.

The drawback here is that both drives are tied up during the writing process, which limits parallelism and can hurt performance. In contrast, mirroring has a performance increase when dealing with reads. A good RAID controller will read from one of the drives since the data on both are the same. While the other is used to read, the free drive can be used for other requests. This increases parallelism, which is pretty much the concept behind the performance increase in RAID. Mirroring may seem like a good solution to ensure the safety of data. However, the trade off here is the cost and wasted space involved with having two copies of the same data. We need twice as much storage space to mirror the data. It may be cost effective for some applications where downtime can mean the downfall of a company or even loss of human life. The alternative to mirroring is parity.

2.2 Parity: This is the method by which a check bit is added to data so that errors can be detected. In a computer, data is organized into bytes, which consist of a series of eight bits. These bits are transmitted as a series of on or off signals that represent the binary values of 1 or 0. A series of 0 s or 1 s can represent an alphanumeric character or some other type of data. When the simplest form of parity is used it is usually referred to as Even Parity or Odd Parity. These two methods add an additional bit to each byte that indicates whether the number of 1 s in the byte is even or odd. If it does not match the parity indicator, an error has occurred. Simple parity can only detect errors and not rectify them. In addition only odd-bit errors can be detected; even bit errors cancel out and remain undetected. Also, the system has no way to know what bit has changed. The only way to correct the data is to retransmit the information.

2.3 Error Correcting Code: It is a process of generating parity values that can be used to both detect errors in data and reconstruct the correct data. ECC allows data that is being transmitted to be checked for errors and corrected without retransmitting the data. For cache memory, ECC is used as follows: When a unit of data is stored in RAM or peripheral storage, a code that describes the bit sequence in the word is calculated and stored along with the unit of data. Each 32-bit word needs extra 7 bits to ensure single bit error correction. Each 64-bit word requires eight additional bits. When a unit of data is requested, a code for the stored, and about-to-be-read, data word is again calculated using the original algorithm. The newly generated code is compared with the code generated when the word was stored. If the codes match, the missing or erroneous bits are determined by comparing the codes, which then allows the erroneous or missing bits to be corrected. No attempt is made to correct the data that is still in storage because it will be overlaid by new data, and, if the errors were transient, the incorrect bits will be overwritten. An error that occurs again at the same place in storage after the system has been turned off and on again, indicates a permanent error.

2.4 Exclusive OR: XOR is a logical operation used to generate a unique value for each pair of bits in a data word. XOR is used to calculate RAID-5 parity for data and also which can reconstruct the data using the previously calculated parity value. Bit 1 Bit 2 Resul t 0 0 0 0 1 1 1 0 1 1 1 0 Where simple parity compares all of the bits in a byte, XOR compares every two bit. If the two bits are the same then an even XOR parity bit (0) is generated. If the bits are different then an odd parity bit (1) is created. XOR operation is true if and only if one of its operands is true; unless both operands are true then the output is false. For example: 10101010 XOR 11111111 = 01010101 11111111 XOR 01010101 = 10101010 10101010 XOR 01010101 = 11111111

Thus, we get any of the three values as long as we have the other two. The operation works on any number of bits and so we can apply this to the whole hard disk. The benefit of XOR parity is that in addition to error detection, XOR provides error correction and data reconstruction. By comparing the remaining values in a data string and XORing the previously written parity values, the missing data can be reconstructed. This is possible because when the XOR operation is run twice on the data parity value, the result is the original value of data. However, there is substantial performance cost when using XOR parity. XOR parity calculations are more intensive than simple parity calculations. As a result, XOR parity can have a significant impact upon the performance of host system. Any RAID, which uses XOR parity, should only be used on a controller that provides for hardware-based XOR through a processor or coprocessor that handles the XOR calculations in place of the host CPU.

2.5 Striping: A block of data can be broken down to smaller pieces and simultaneously written to multiple locations by this method. By writing the data to multiple locations, in smaller increments, performance can be increased substantially. Reading the data is also substantially faster, especially in parallel disk access RAID configurations. With parallel access, the transfer rate is the aggregate transfer rate of all the drives participating in the I/O request. Mirrored disks can also deliver increased read performance, although they are not striped, by simultaneously responding to read requests from both disks. Suppose there are four drives. Data is broken into block size increments. Each block is then written to a separate drive. Because each of the four drives can write one block at the same time, the entire operation takes one-fourth of the time it would for a single drive to perform the same operation.

3. RAID LEVELS: The concepts described above are made use of in implementing the different levels of RAID. These single RAID levels can be combined together in different ways to provide more functionality. 3.1 RAID 0: This is the simplest level of RAID. It just involves striping. Data redundancy is not even present in this level, so it is not recommended for applications where data is critical. This level offers the highest level of performance out of any single RAID level. It also offers the lowest cost since no extra storage is involved. At least two hard drives are required, preferably identical, and the maximum depends upon the RAID controller. None of the space is wasted as long as the hard drives used are identical. This level has become popular in the mainstream market for its relatively low cost and high performance gain. This level is good for most people that do not need any data redundancy. The data being used is broken down into several smaller equally sized pieces. Each piece is then written to or read from multiple drives. This process increases I/O bandwidth by simultaneously accessing multiple data paths. If any of the hard disks in the array fails, we lose all information. For this reason, RAID-0 should never be used in mission critical environments and frequent data backups are recommended.

This is applicable for high bandwidth applications, such as video production, editing, pre-press applications or any environment where read/write performance is paramount, but data protection is less of concern.

3.2 RAID 1: This level is usually implemented as mirroring. Two identical copies of data are stored on two drives. When one drive fails, the other drive still has the data to keep the system going. Rebuilding a lost drive is very simple since we have the second copy. This adds data redundancy to the system and provides some safety from failures. Some implementations add an extra raid controller to increase the fault tolerance even more. It is ideal for applications that use critical data. Even though the performance benefits are not great, some might be just concerned with preserving their data. The relative simplicity and low cost of implementing this level has increased its popularity in mainstream RAID controllers. Most RAID controllers nowadays implement some form of RAID 1. Because data can be retrieved from either drive, RAID 1 provides enhanced read performance. If the controller can perform two simultaneous reads per mirrored pair, some enhancement in read performance can be obtained. However, the write performance is slightly less than a single disk because each data write generates two write commands that are directed to separate devices. RAID 1 provides full fault tolerance for a single drive failure. Because it is not necessary to rebuild data when a drive fails, there is no significant performance degradation when accessing the remaining drive. However, the remaining drive operates without any fault tolerance until the failed drive is replaced and the mirror set is rebuilt.

Additional fault tolerance can be achieved using two controllers. This is known as duplexing. The difference between mirroring and duplexing is the number of controllers used. Duplexing uses a separate controller for each drive and the controllers must support having the drives on separate controllers. This adds additional fault tolerance in the event that the failure is on the controller rather than on the drive. If the data path of the disk subsystem is heavily saturated, then duplexing can provide for a moderate performance gain over mirroring. By moving the mirrored data stream to a second bus, the available bandwidth on the first bus is increased. The most prominent objection to RAID 1 is that it is one of the most expensive methods of using RAID. This is because twice the amount of storage is required for each piece of data that is written. For this reason, RAID 1 is typically used only for configurations where overall capacity is not of primary concern. It is ideal for applications, such as payroll, where data availability and performance are critical. It is also frequently used for the boot device in servers. It should be used where cost and overall capacity are not as important as overall performance and fault tolerance.

3.3 RAID 2: This level uses bit level striping with Hamming code ECC. The technique used is somewhat similar to striping with parity but not really. The data is split at bit level and spread over a number of data and ECC disks. When the data is read from the array, Hamming codes are used to check whether errors have occurred since the data was written to the array. Single bit errors can be detected and corrected immediately. This is the only level that really deviates from the RAID concepts talked about earlier. It requires complicated and expensive RAID controller hardware and minimum number of hard drives. This makes this level less used these days. In this level, bytes or words of data are striped across an array of disks. This use of byte striping makes it possible for extremely high data transfer rates when accessing large amount of data, the read/write of smaller data blocks provides unacceptable performance. This RAID level also requires one check disk for each data disk to detect and correct any errors. For these reasons, RAID 2 is almost never used. Hamming code

error correction was used for early model drives without built-in error detection. However, it has a high CPU overhead for the host system and SCSI drives now include built-in error detection and correction, which eliminates any benefits of this feature. For multiple disks error correction more ECC disks are required. Actually using RAID 2 would typically require at least 14 disks, 10 for data and 4 for ECC.

3.4 RAID 3: This level uses byte level striping with dedicated parity. In other words, data is striped across the array at byte level with one dedicated parity drive holding the redundancy information. The idea behind this level is that striping the data increases performance and using dedicated parity takes care of redundancy. Three hard drives are required, two for striping and one as dedicated parity drive. Although the performance is good, the added parity does slow down writes. The parity information has to be written to the parity drive whenever a write occurs. This increased computation calls for a hardware controller, so software implementations are not practical. RAID 3 is good for applications that deal with large files since the stripe size is small.

RAID 3 is essentially a fault tolerant version of RAID 0 that trades some capacity, for the same number of drives, to provide a high level of fault tolerance. It takes advantage of data striping, except that one drive is reserved to store parity information. This parity data is used to maintain data integrity across all drives in the subsystem. The parity drive itself is divided up into stripes, and each parity stripe is used to store parity information for the corresponding data stripes across the array. RAID 3 achieves very high data transfer rates by reading from or writing to all of the drives in parallel while adding the ability to reconstruct data if a single drive fails. This is the most efficient for moving large sequential files. The stripes of parity information stored on the dedicated parity drive are calculated using an XOR function. If a data drive fails, the data can be reconstructed using the parity information and data from the remaining drives. If the parity drive fails, the parity is recalculated and written to the replacement drive. This level is not commonly used because its optimum performance depends on having synchronous data access to all disks, which requires the use of a technique called spindle synchronization, where all the disks are spinning so that any data request can be satisfied by a single read operation of all disks simultaneously. This feature is not generally available on most disk drives. Also, because the parity is on a separate disk, write operations face a performance bottleneck because parity must always be calculated.

3.5 RAID 4: This level is very similar to RAID 3. The only difference is that it uses block level striping instead of byte level striping. The advantage is that we can change the stripe the size to suit application needs. This level is often seen as intermediate of RAID 3 and RAID 5, having the dedicated parity of RAID 3 and the block level striping of RAID 5. A hardware RAID controller is needed for this level. The dedicated parity drive slows down the performance in this level as well. RAID 4 performs better for smaller file access, such as database transaction processing, rather than large sequential files. RAID management software accesses the disks independently rather than being optimized for simultaneous, parallel access. This essentially replaces the high data throughput capability of RAID 3 with faster data access in applications that primarily issue multiple requests to read small blocks of data. Since sector interleaving is used in place of byte interleaving it is more efficient than RAID 3.

In addition, as it uses block level data striping instead of bit level, it is more efficient than RAID 2. As data is written to the array, parity encoding is part of each write operations. This relegates RAID 4 to applications that primarily read data. Consequently, this RAID level is rarely implemented.

3.6 RAID 5: RAID 5 uses block level striping and distributed parity. This level tries to remove the bottleneck of the dedicated parity drive. With the use of a distributed parity algorithm, this level writes the data and parity data across all the drives. Basically, the blocks of data are used to create the parity blocks, which are then stored across the array. This removes the bottleneck of writing to just one parity drive. However, the parity information still has to be calculated and written whenever a write occurs, so the slowdown involved with that still applies. The fault tolerance is maintained by separating the parity information for a block from the actual data block. This way when one drive fails, all the data on that drive can be rebuilt from the data on the other drives. Recovery is more complicated than usual because of the distributed nature of the parity. Just as in RAID 4, the stripe size can be changed to suit the needs of the application. In addition, using a hardware controller is a more practical solution. RAID 5 is one of the most popular RAID levels being used today.

For large data read/write functions, the performance is the same as RAID 4, but because the parity disk is not a bottleneck, smaller I/O functions did not affect performance. However, because of the parity striping there is significant overhead in doing data rebuilds or reading data from an array with a failed disk. Due to trade off between performance, fault tolerance, and cost, RAID 5 is probably the most common RAID implementation. This level is a good choice for file and application servers. It is also commonly used for Internet and intranet servers. When data is written to a RAID 5 array, the parity information must be updated. This is accomplished by finding out which data bits where changed by the write operation and then changing the corresponding parity bits in the following process: Read the old data. Write the new data. XOR the old data with the new data. The result is a bit mask, which has a one in the position of every bit, which has changed. Read old parity from the array. XOR the bit mask with the old parity information. This results in the corresponding bits being changed in the parity information. Write the updated parity back to the array. Therefore, for every application write request, a RAID 5 array must perform two reads, two writes and two XOR operations to complete the original write operation.

The cost of calculating and storing parity, rather than redundant data, is extra time taken during write operations to generate the parity information. This additional time results in a degradation of write performance of RAID 5 arrays over RAID 1 arrays. A RAID 5write operation is 33% to 60% slower than a RAID 1write operation. Because of this, RAID 5 arrays are not recommended for applications in which write performance is critically important or is the dominant type of I/O operation. Overall number of drives in the array also affects performance, where a larger number of drives can result in lower performance. This is especially noticeable when the array is degraded, because all the remaining drives must be read and the XOR parity used to reconstruct the missing data. Therefore, both read and write operations will be significantly affected when an array is operating in degraded mode.

3.7 RAID 6: This is the same as RAID 5 except that it uses a second level of independently calculated and distributed parity information for additional fault tolerance. This extra fault tolerance provides data security in the event two drives fail before a drive can be replaced. While this RAID level does provide greater fault tolerance than level 5, there is a significant loss in write performance due to the requirement for storing parity twice for each write operation. A RAID 6 configuration also requires N+2 drives to accommodate the additional parity data, which makes it less cost effective than RAID 5 for an equivalent storage capacity.

3.8 RAID 10: RAID 10 (also called RAID 0/1) is a combination of RAID levels 0 and 1. In this type of implementation a RAID 0 stripe set of the data is created across a 2-disk array for performance benefits. A duplicate of the first stripe set is then mirrored on another 2-disk array for fault tolerance. While this configuration provides all of the performance benefits of RAID 0 and the redundancy of RAID 1, this level is very costly to implement because a minimum of four disks are necessary to create a RAID 10 configuration. This configuration can continue operations even when two disks have failed, provided the two disks are not part of the same RAID 1 mirror set.

3.9 RAID 50: This level (also called RAID 0/5) is a combination of RAID levels 0 and 5. Multiple RAID 5 arrays are striped together using RAID 0. Parity is maintained separately for each RAID 5 group in the striped array. This level provides the same advantages of RAID 5 for small data transfers with the added performance of striping for disk read/write operations. Also, because parity is calculated independently for each RAID 5 component, if one array is degraded the effect on overall operations is not as significant as for a single RAID 5 array. However, the overhead incurred by RAID 5 parity generation is still present. Normally this does not cause noticeable degradation unless we are dependent on software-based XOR functionality or have a large number of disks in the array. RAID subsystems that support hardware-based XOR should provide performance nearly equal to a RAID 0 configuration with the added protection of data parity information in the

event of a disk failure. A minimum of six disks is required for this configuration. This configuration can continue operations even when two disks have failed, provided the two disks are not part of the same RAID 5 parity group.

4. RAID IMPLEMENTATION: Disk storage subsystems can be created through several different methods. These include a software based implementation, a bus-based model, and an external controller system. Each of these methods has its own unique advantages and disadvantages. The goals of the individual installation, including network size, cost, and performance needs, will determine which disk subsystem should be used. Hardware-based RAID is implemented directly on a specialized RAID controller. Embedded processors and specialized ASICs and firmware on the controller manage all array functions and processes. Hardware RAID can use either SCSI or IDE/ATA RAID controllers to interface with the system and hard drives. These implementations are basically divided into internal and external RAID controllers. The internal RAID controllers are usually controller cards that have installed in the bus system of the computer. Some motherboards have these RAID controllers built-in. Depending on the controller and levels available, a certain amount of cache memory is present. The more memory we have the better and the more expensive the controller is. External RAID controllers involve moving the actual controller to a case of its own with the hard drives. The controller handles all the RAID functions and presents all the logical drives to the system. An external controller is usually more complex and has more memory than an internal one. This is because of the large number of hard drives and complex RAID levels it needs to work with. Software based RAID is implemented by the server s operating system or through a special software driver. All array functions are implemented in this software running on the server CPU. Just like any other application, software-based arrays occupy system memory; consume host CPU cycles and system bus bandwidth. Software-based arrays generally degrade overall server performance because of the additional demands on system resources.

5. CONCLUSION: RAID is a good solution for companies or individuals craving more transfer performance, redundancy, and storage capacity in their data storage systems. There are many levels of RAID, which range from very simple and cheap to extremely complex and expensive. The benefits of having RAID in our system are obvious; however, the price tag of the RAID implementations is still a hurdle to overcome.

6. BIBLIOGRAPHY: www.google.com An In-Depth Guide to RAID Technology - SLCentral Fundamentals of Database systems by Elmarsi & Navathe