RAID Redundant Array of Inexpensive (Independent) Disks

Slides:



Advertisements
Similar presentations
What is RAID Redundant Array of Independent Disks.
Advertisements

IT 344: Operating Systems Winter 2007 Module 18 Redundant Arrays of Inexpensive Disks (RAID) Chia-Chi Teng CTB 265.
CS 346 – April 4 Mass storage –Disk formatting –Managing swap space –RAID Commitment –Please finish chapter 12.
Faculty of Information Technology Department of Computer Science Computer Organization Chapter 7 External Memory Mohammad Sharaf.
CSE 451: Operating Systems Spring 2012 Module 20 Redundant Arrays of Inexpensive Disks (RAID) Ed Lazowska Allen Center 570 ©
RAID (Redundant Arrays of Independent Disks). Disk organization technique that manages a large number of disks, providing a view of a single disk of High.
I/O Errors 1 Computer Organization II © McQuain RAID Redundant Array of Inexpensive (Independent) Disks – Use multiple smaller disks (c.f.
RAID Oh yes Whats RAID? Redundant Array (of) Independent Disks. A scheme involving multiple disks which replicates data across multiple drives. Methods.
RAID Redundant Array of Independent Disks
parity bit is 1: data should have an odd number of 1's
Enhanced Availability With RAID CC5493/7493. RAID Redundant Array of Independent Disks RAID is implemented to improve: –IO throughput (speed) and –Availability.
RAID- Redundant Array of Inexpensive Drives. Purpose Provide faster data access and larger storage Provide data redundancy.
RAID Redundant Arrays of Inexpensive Disks –Using lots of disk drives improves: Performance Reliability –Alternative: Specialized, high-performance hardware.
R.A.I.D. Copyright © 2005 by James Hug Redundant Array of Independent (or Inexpensive) Disks.
Lecture 36: Chapter 6 Today’s topic –RAID 1. RAID Redundant Array of Inexpensive (Independent) Disks –Use multiple smaller disks (c.f. one large disk)
REDUNDANT ARRAY OF INEXPENSIVE DISCS RAID. What is RAID ? RAID is an acronym for Redundant Array of Independent Drives (or Disks), also known as Redundant.
Other Disk Details. 2 Disk Formatting After manufacturing disk has no information –Is stack of platters coated with magnetizable metal oxide Before use,
I/O Systems and Storage Systems May 22, 2000 Instructor: Gary Kimura.
RAID Systems CS Introduction to Operating Systems.
CSE 451: Operating Systems Winter 2010 Module 13 Redundant Arrays of Inexpensive Disks (RAID) and OS structure Mark Zbikowski Gary Kimura.
By : Nabeel Ahmed Superior University Grw Campus.
ICOM 6005 – Database Management Systems Design Dr. Manuel Rodríguez-Martínez Electrical and Computer Engineering Department Lecture 6 – RAID ©Manuel Rodriguez.
Computer Organization CS224 Fall 2012 Lesson 51. Measuring I/O Performance  I/O performance depends on l Hardware: CPU, memory, controllers, buses l.
Chapter 6 RAID. Chapter 6 — Storage and Other I/O Topics — 2 RAID Redundant Array of Inexpensive (Independent) Disks Use multiple smaller disks (c.f.
CS 352 : Computer Organization and Design University of Wisconsin-Eau Claire Dan Ernst Storage Systems.
CSE 321b Computer Organization (2) تنظيم الحاسب (2) 3 rd year, Computer Engineering Winter 2015 Lecture #4 Dr. Hazem Ibrahim Shehata Dept. of Computer.
N-Tier Client/Server Architectures Chapter 4 Server - RAID Copyright 2002, Dr. Ken Hoganson All rights reserved. OS Kernel Concept RAID – Redundant Array.
RAID COP 5611 Advanced Operating Systems Adapted from Andy Wang’s slides at FSU.
Redundant Array of Inexpensive Disks aka Redundant Array of Independent Disks (RAID) Modified from CCT slides.
Memory Intro Computer Organization 1 Computer Science Dept Va Tech March 2006 ©2006 McQuain & Ribbens Built using D flip-flops: 4-Bit Register Clock input.
Redundant Array of Independent Disks.  Many systems today need to store many terabytes of data.  Don’t want to use single, large disk  too expensive.
RAID Disk Arrays Hank Levy. 212/5/2015 Basic Problems Disks are improving, but much less fast than CPUs We can use multiple disks for improving performance.
Cloud Computing Vs RAID Group 21 Fangfei Li John Soh Course: CSCI4707.
I/O Errors 1 Computer Organization II © McQuain RAID Redundant Array of Inexpensive (Independent) Disks – Use multiple smaller disks (c.f.
CSE 451: Operating Systems Spring 2010 Module 18 Redundant Arrays of Inexpensive Disks (RAID) John Zahorjan Allen Center 534.
CS Introduction to Operating Systems
RAID.
parity bit is 1: data should have an odd number of 1's
Multiple Platters.
RAID Redundant Arrays of Independent Disks
RAID, Programmed I/O, Interrupt Driven I/O, DMA, Operating System
RAID Non-Redundant (RAID Level 0) has the lowest cost of any RAID
I/O System Chapter 5 Designed by .VAS.
… General Decoder for a Linear Block Code … …
Vladimir Stojanovic & Nicholas Weaver
Error Correcting Code.
Chapter 10 Mass-Storage Structure
CSE 451: Operating Systems Spring 2006 Module 18 Redundant Arrays of Inexpensive Disks (RAID) John Zahorjan Allen Center.
RAID Disk Arrays Hank Levy 1.
RAID RAID Mukesh N Tekwani
ICOM 6005 – Database Management Systems Design
RAID Disk Arrays Hank Levy 1.
CSE 451: Operating Systems Spring 2005 Module 17 Redundant Arrays of Inexpensive Disks (RAID) Ed Lazowska Allen Center 570.
CSE 451: Operating Systems Autumn 2010 Module 19 Redundant Arrays of Inexpensive Disks (RAID) Ed Lazowska Allen Center 570.
CSE 451: Operating Systems Winter 2009 Module 13 Redundant Arrays of Inexpensive Disks (RAID) and OS structure Mark Zbikowski Gary Kimura 1.
TECHNICAL SEMINAR PRESENTATION
UNIT IV RAID.
Mark Zbikowski and Gary Kimura
CSE 451: Operating Systems Autumn 2004 Redundant Arrays of Inexpensive Disks (RAID) Hank Levy 1.
CSE 451: Operating Systems Winter 2012 Redundant Arrays of Inexpensive Disks (RAID) and OS structure Mark Zbikowski Gary Kimura 1.
CSE 451: Operating Systems Winter 2007 Module 18 Redundant Arrays of Inexpensive Disks (RAID) Ed Lazowska Allen Center 570.
CSE 451: Operating Systems Autumn 2009 Module 19 Redundant Arrays of Inexpensive Disks (RAID) Ed Lazowska Allen Center 570.
RAID Disk Arrays Hank Levy 1.
CS 325: CS Hardware and Software Organization and Architecture
RAID RAID Mukesh N Tekwani April 23, 2019
CSE 451: Operating Systems Winter 2004 Module 17 Redundant Arrays of Inexpensive Disks (RAID) Ed Lazowska Allen Center 570.
IT 344: Operating Systems Winter 2007 Module 18 Redundant Arrays of Inexpensive Disks (RAID) Chia-Chi Teng CTB
parity bit is 1: data should have an odd number of 1's
CSE 451: Operating Systems Winter 2006 Module 18 Redundant Arrays of Inexpensive Disks (RAID) Ed Lazowska Allen Center 570.
4-Bit Register Built using D flip-flops:
Presentation transcript:

RAID Redundant Array of Inexpensive (Independent) Disks Use multiple smaller disks (c.f. one large disk) Parallelism improves performance Plus extra disk(s) for redundant data storage Provides fault tolerant storage system Especially if failed disks can be “hot swapped” RAID 0 No redundancy (“AID”?) Just stripe data over multiple disks But it does improve performance "allocation of logically sequential data blocks to separate disks to allow higher performance than a single disk can deliver"

RAID 1 & 2 RAID 1: Mirroring RAID 2: Error correcting code (ECC) N + N disks, replicate data Write data to both data disk and mirror disk On disk failure, read from mirror RAID 2: Error correcting code (ECC) N + E disks (e.g., 10 + 4) Split data at bit level across N disks Generate E-bit ECC Too complex, not used in practice (for disks, but…)

RAID 3: Bit-Interleaved Parity N + 1 disks Data striped across N disks at byte level Redundant disk stores parity Read access Read all disks Write access Generate new parity and update all disks On failure Use parity to reconstruct missing data Not widely used

RAID 4: Block-Interleaved Parity N + 1 disks Data striped across N disks at block level Redundant disk stores parity for a group of blocks Read access Read only the disk holding the required block Write access Just read disk containing modified block, and parity disk Calculate new parity, update data disk and parity disk On failure Use parity to reconstruct missing data Not widely used

RAID 3 vs RAID 4

RAID 5: Distributed Parity N + 1 disks Like RAID 4, but parity blocks distributed across disks Avoids parity disk being a bottleneck Widely used

RAID 6: P + Q Redundancy N + 2 disks Like RAID 5, but two lots of parity Greater fault tolerance through more redundancy

RAID Summary RAID can improve performance and availability High availability requires hot swapping Assumes independent disk failures Too bad if the building burns down! See “Hard Disk Performance, Quality and Reliability” http://www.pcguide.com/ref/hdd/perf/index.htm

parity bit is 1: data should have an odd number of 1's Error Detection Error detecting codes enable the detection of errors in data, but do not determine the precise location of the error. - store a few extra state bits per data word to indicate a necessary condition for the data to be correct - if data state does not conform to the state bits, then something is wrong - e.g., represent the correct parity (# of 1’s) of the data word - 1-bit parity codes fail if 2 bits are wrong… 1011 1101 0001 0000 1101 0000 1111 0010 1 parity bit is 1: data should have an odd number of 1's A 1-bit parity code is a distance-2 code, in the sense that at least 2 bits must be changed (among the data and parity bits) produce an incorrect but legal pattern. In other words, any two legal patterns are separated by a distance of at least 2.

Parity Bits Two common schemes (for single parity bits): - even parity 0 parity bit if data contains an even number of 1's - odd parity 0 parity bit if data contains an odd number of 1's We will apply an even-parity scheme. 1011 1101 0001 0000 1101 0000 1111 0010 1 The parity bit could be stored at any fixed location with respect to the corresponding data bits. Upon receipt of data and parity bit(s), a check is made to see whether or not they correspond. Cannot detect errors involving two bit-flips (or any even number of bit-flips).

Error Correction Error correcting codes provide sufficient information to locate and correct some data errors. - must use more bits for state representation, e.g. 6 bits for every 32-bit data word - may indicate the existence of errors if up to k bits are wrong - may indicate how to correct the error if up to l bits are wrong, where l < k - c code bits and n data bits  2c >= n + c + 1 We must have at least a distance-3 code to accomplish this. Given such a code, if we have a data word + error code sequence X that has 1 incorrect bit, then there will be a unique valid data word + error code sequence Y that is a distance of 1 from X, and we can correct the error by replacing X with Y.

Error Correction A distance-3 code is also knows as a single-error correcting, double-error detecting or SECDED code. If X has 2 incorrect bits, then we will replace X with an incorrect (but valid) sequence. We cannot both detect 2-bit errors and correct 1-bit errors with a distance-3 code. But, hopefully flipped bits will be a rare occurrence and so sequences with two or more flipped bits will have a negligible probability.

Hamming Codes Richard Hamming described a method for generating minimum-length error-correcting codes. Here is the (7,4) Hamming code for 4-bit words: Data bits Check bits 0000 000 0001 011 0010 101 0011 110 0100 0101 0110 0111 1000 111 1001 100 1010 010 1011 001 1100 1101 1110 1111 Say we had the data word 0100 and check bits 011. The two valid data words that match that check bit pattern would be 0001 and 0110. The latter would correspond to a single-bit error in the data word, so we would choose that as the correction. Note that if the error was in the check bits, we'd have to assume the data word was correct (or else we have an uncorrectable 2-bit error or worse). In that case, the check bits would have to be 1 bit distance from 110, which they are not.

Hamming Code Details Hamming codes use extra parity bits, each reflecting the correct parity for a different subset of the bits of the code word. Parity bits are stored in positions corresponding to powers of 2 (positions 1, 2, 4, 8, etc.). The encoded data bits are stored in the remaining positions. The parity bits are defined as follows: - position 1: check 1 bit, skip 1 bit, check 1 bit, skip 1 bit, … - position 2: check 2 bits, skip 2 bits, … … - position 2k: check 2k bits, skip 2k bits, … Consider the data byte: 10011010 Expand to allow room for the parity bits: _ _ 1 _ 001_1010 Now compute the parity bits as defined above…

Hamming Code Details We have the expanded sequence: _ _ 1 _ 0 0 1 _ 1 0 1 0 The parity bit in position 1 (first bit) would depend on the parity of the bits in positions 1, 3, 5, 7, etc: _ _ 1 _ 0 0 1 _ 1 0 1 0 Those bits have even parity, so we have: 0 _ 1 _ 0 0 1 _ 1 0 1 0 The parity bit in position 2 would depend on bits in positions 2, 3, 6, 7, etc: 0 _ 1 _ 0 0 1 _ 1 0 1 0 Those bits have odd parity, so we have: 0 1 1 _ 0 0 1 _ 1 0 1 0 Continuing, we obtain the encoded string: 0 1 1 1 0 0 1 0 1 0 1 0

Hamming Code Correction Suppose we receive the string: 0 1 1 1 0 0 1 0 1 1 1 0 How can we determine whether it's correct? Check the parity bits and see which, if any are incorrect. If they are all correct, we must assume the string is correct. Of course, it might contain so many errors that we can't even detect their occurrence, but in that case we have a communication channel that's so noisy that we cannot use it reliably. Checking the parity bits above: 0 1 1 1 0 0 1 0 1 1 1 0 OK WRONG OK WRONG So, what does that tell us, aside from that the string is incorrect? Well, if we assume there's no more than one incorrect bit, we can say that because the incorrect parity bits are in positions 2 and 8, the incorrect bit must be in position 10.