학교 공부/스마트 운영체제

운영체제 10 입출력 시스템과 저장장치

_빌런 2022. 5. 24. 10:22

1. 입출력 시스템

    1.1. 입출력장치와 채널

    1.2. 입출력 버스의 구조

    1.3. 직접 메모리 접근

    1.4. 인터럽트

    1.5. 버퍼링

2. 디스크 장치

    2.1. 디스크 장치의 종류

    2.2. 디스크 장치의 데이터 전송 시간

    2.3. 디스크 장치 관리

    2.4. 네트워크 저장장치

3. 디스크 스케줄링

    3.1. FCFS 디스크 스케줄링

    3.2. SSTF 디스크 스케줄링

    3.3. 블록 SSTF 디스크 스케줄링

    3.4. SCAN 디스크 스케줄링

    3.5. C-SCAN 디스크 스케줄링

    3.6. LOOK 디스크 스케줄링

    3.7. C-LOOK 디스크 스케줄링

    3.8. SLTF 디스크 스케줄링

4. RAID

    4.1. RAID의 개요

    4.2. RAID 0(스트라이핑)

    4.3. RAID 1(미러링)

    4.4. RAID 2

    4.5. RAID 3

    4.6. RAID 4

    4.7. RAID 5

    4.8. RAID 6

    4.9. RAID 10

    4.10 RAID 50과 RAID 60

5. [심화학습] 하드웨어의 규격과 발전

    5.1. 포트의 규격

    5.2. CD의 규격

    5.3. 그래픽카드의 발전


1. 입출력 시스템

    1.1. 입출력장치와 채널

주변장치(peripherals)는 컴퓨터에 연결하여 정보를 입력하거나 가져 오는 장치이다.

주변장치의 속도에 따라서 저속과 고속으로 구분할 수 있다.

 

저속 주변장치 : 메모리와 주변장치 사이에 오고 가는 데이터의 양이 적어 데이터 전송률이 낮은 장치를 말한다.

 └ Ex. 키보드, 마우스, 프린터 등

고속 주변장치 : 메모리와 주변장치 사이에 대용량의 데이터가 오고 가므로 데이터 전송률이 높은 장치를 말한다.

 └ Ex. USB 메모리, 하드디스크, 그래픽카드 등

 

이때 데이터가 오고 가는 통로를 버스(채널)이라고 한다.

버스는 컴퓨터 내부 부품들 간 데이터와 정보를 전송하는 통로로 물리적인 개념이다.

채널은 넓은 대역폭(버스)을 여러 개의 작은 대역폭(채널)으로 나누어 통신 효율을 높인 통로로 추상적인 개념이다.

 

채널 공유 : 속도에 상관없이 어떤 장치든 어떤 채널을 할당할 수 있는 방법

채널 분리 : 속도가 비슷한 장치끼리 묶어서 장치별로 채널을 할당하는 방법

 

    1.2. 입출력 버스의 구조

초기의 구조

초기에는 주변장치가 적고, CPU와 메모리도 속도가 느렸다.

모든 장치를 하나의 버스로 연결하고, CPU가 직접 입출력장치에서 데이터를 가져오는 '폴링(Polling)' 방식이었다.

 

입출력 제어기를 사용한 구조

CPU와 메모리의 성능이 향상하고, 주변장치의 종류도 다양해져서 더 이상 CPU만으로는 관리가 힘들어졌다.

 └ 주변장치 : 키보드, 마우스, 그래픽카드, 하드디스크, 사운드 카드, 랜카드, USB 장치, 블루투스 등

CPU 대신 입출력 제어기(I/O Controller)가 모든 입출력을 제어한다.

 

입출력 버스의 분리 구조

입출력 장치에도 속도 차이가 존재하여 고속 입출력 장치와 저속 입출력 장치고 구분한다.

채널 선택기(Channel Selector)를 두어 두 버스 사이의 데이터 전송을 맡는다.

그래픽카드의 경우 GPU를 부착하며 연산이 많아져 AGP(Accelerated Graphics Port)에 따로 꽂는다.

 

    1.3. 직접 메모리 접근

입출력 제어기의 DMA

입출력 제어기가 CPU의 도움없이 메모리에 접근할 수 있는 권한을 DMA(Direct Memory Access)라고 한다.

입출력 제어기가 DMA 제어기를 거쳐 메모리에 데이터를 보내거나 받아온다.

 

메모리 공간 분할

CPU와 DMA 제어기가 모두 메모리에 접근한다면 메모리 작업 공간이 겹쳐 오류가 발생한다.

원래 입출력 메모리라는 메모리를 따로 두어 작업했지만, 다시 메인메모리로 데이터를 옮기는 낭비가 발생한다.

따라서 메모리를 CPU 접근 공간과 DMA 제어기 접근 공간으로 나누는 메모리 공간 분할을 한다.

이런 방식을 Memory Mapped I/O(메모리 맵 입출력)라고 한다.

 

    1.4. 인터럽트

인터럽트(Interrupt)는 주변장치의 입출력 요구나 하드웨어의 오류를 CPU에 알려주는 신호이다.

이 인터럽트는 외부 인터럽트, 내부 인터럽트, 시그널의 세 종류로 나뉜다.

 └ 외부 인터럽트(External Interrupt) : 입출력 및 하드웨어 관련 인터럽트

 └ 내부 인터럽트(Internal Interrupt) : 프로세스의 오류로 발생하는 인터럽트, Exception Interrupt라고 한다.

 └ 시그널(Signal) : 사용자의 요청으로 발생하는 인터럽트

 

인터럽트의 종류와 개수가 많아 인터럽트를 관리하기 위한 자료구조이다.

인터럽트 벡터가 1이면 인터럽트가 발생했다는 의미이다. 인터럽트가 발생한 핸들러를 호출하여 작업을 진행한다.

벡터에는 핸들러가 저장된 메모리 주소가 포인터로 저장되어있어 호출할 수 있다.

 

    1.5. 버퍼링

버퍼(Buffer)는 속도가 다른 두 장치의 속도 차이를 완화하는 역할을 하는 저장 장치이다.

단일 버퍼(Single Buffer)를 사용하면 데이터를 버퍼에 저장하는 작업과 가져오는 작업을 동시에 하기 어렵다. 

이중 버퍼(Double Buffer)를 사용하면 하나는 저장하는 용도, 하나는 가져오는 용도로 사용할 수 있다.

 

하드웨어 안전 제거

버퍼의 문제점은 버퍼가 가득 차야지만 데이터를 전송하도록 설계되어있다.

만약 버퍼에 데이터가 가득 차 있지 않으면 일정 시간이 흘러야 데이터를 전송한다.

이런 특성 때문에 Windows에서는 외부 저장장치를 제거할 때 '하드웨어 안전 제거' 기능을 제공한다.

하드웨어 안전 제거는 버퍼가 다 차지 않아도 강제로 버퍼의 내용을 저장장치로 옮긴다. 이를 Flush라고 한다.

 

프로그래밍에서 print("1 ")을 반복적으로 사용하면 가끔 들쑥날쑥하게 출력을 한다.

이때 print("1 \n")처럼 줄바꿈 문자를 사용하면 버퍼의 내용을 강제로 출력하라는 의미로 정돈하게 출력한다.

 

2. 디스크 장치

    2.1. 디스크 장치의 종류

HDD 구조

플래터(Flatter)

HDD는 스핀들(Spindle)이라는 원퉁 축에 여러 개의 플래터가 달려있는 것이 기본 구조이다.

플래터 표면에는 자성체가 발려 있어 자기를 이용하여 0(N극)과 1(S극)의 데이터를 저장할 수 있다.

HDD 사양이 7500RPM(Rotation Per Minute)이라면 1분에 7500 바퀴를 일정하게 회전한다는 뜻이다.

 

섹터(Sector)와 블록(Block)

섹터는 물리적인 개념으로 HDD의 가장 작은 단위이다. 

블록은 논리적인 개념으로 HDD와 컴퓨터 사이에 데이터를 전송하는 가장 작은 단위이다.

블록은 여러 개의 섹터로 구성하며 Windows에서는 Cluster(클러스터)라는 표현을 사용한다. 

HDD 입장에서는 섹터가 최소 단위이지만, OS 입장에서는 블록이 최소 단위이다.

따라서 1Byte마다가 아니라 1블록마다 주소 배정이 이루어진다.

 

트랙(Track)과 실린더(Cylinder)

트랙은 스핀들을 중심으로 같은 거리에 있는 섹터의 집합을 말한다.

실린더는 여러 개의 플래터에 있는 같은 트랙의 집합을 말한다.

 

헤드(Head)와 플래터

HDD에서 데이터를 읽거나 쓸 때 헤드를 사용한다. 헤드의 수는 플래터의 표면 수와 동일하다

헤드는 디스크 암(Disk Arm)에 고정되어 있기에 모든 헤드가 항상 같이 움직인다.

헤드는 아주 가볍게 만들어져 플래터가 회전하면 부는 바람에 의해 살짝 떠 있는 형태로 작동한다.

뜨지 않으면 플래터 표면에 상처가 생기면 데이터를 저장할 수 없는 Bad Sector가 된다.

 

컴퓨터를 종료할 때 헤드가 플래터 표면에 흠집을 내지 않게 주의해야 한다.

데이터를 저장하지 않는 플래터의 맨 바깥쪽으로 헤드를 이동하는데 이를 파킹(Parking)이라고 한다.

 

CD 표면

CD 표면에 미세한 홈이 파여있어 레이저가 홈에 들어가면 0, 반사되면 1로 인식한다.

데이터를 저장할 때 레이저로 표면을 태워 미세한 홈을 만드는 방식으로 데이터를 저장해 '굽는다'는 표현을 쓴다.

CD는 640MB, DVD는 4.7GB, Blue-ray DVD는 25GB를 저장할 수 있다.

DVD와 Blue-ray DVD는 한 디스크에 2개의 층을 만들어 데이터를 저장하는 '듀얼 레이어(Dual Layer)' 방식이 있다.

 └ 이 경우에 각각 저장 용량은 2배가 된다.

 

HDD는 RPM이라는 단위를 사용하고, CD는 배속이라는 단위를 사용한다.

 

각속도 일정(CAV; Constant Angular Velocity) 방식

HDD 플래터는 항상 일정한 속도로 회전하여 바깥쪽 트랙의 속도가 안쪽 트랙보다 빠르다.

이런 이유로 바깥쪽 트랙의 섹터가 안쪽 트랙의 섹터보다 더 크다.

 

CAV 방식의 섹터

모든 트랙의 섹터 수가 같고, 바깥쪽 섹터가 안쪽 섹터보다 크다.

바깥쪽 트랙으로 갈수록 낭비되는 공간이 많아진다는 것이 단점이다.

 

선속도 일정(CLV; Constant Linear Velocity) 방식

CD에서는 어느 트랙이나 단위 시간 당 디스크의 이동 거리가 동일하다.

헤드가 안쪽 트랙에 있을 때는 디스크가 빠르게 회전하고, 바깥쪽 트랙에 있을 때는 디스크가 느리게 회전한다.

 

CLV 방식의 섹터

모든 섹터의 크기가 같꼬, 바깥쪽 섹터에 더 많은 섹터가 존재한다.

한정된 공간에 많은 데이터를 담을 수 있지만, 모터 제어가 복잡하고 소음이 발생한다는 것이 단점이다.

 

    2.2. 디스크 장치의 데이터 전송 시간

HDD 데이터 전송 과정

1. 특정 섹터에 데이터를 읽거나 쓰기 위해서 헤드가 이동한다. 현위치에서 트랙까지 가는 시간을 탐색시간이라고 한다.

2. 특정 트랙까지 이동한 헤드는 플래터가 회전하여 원하는 섹터를 만날 때까지 기다리는데 이것이 회전 지연 시간이다.

3. 헤드를 원하는 섹터에 있는 데이터를 읽어 전송하는데 이때 걸리는 시간이 전송 시간이다.

 

데이터 전송시간 = 탐색 시간(Seek Time) + 회전 지연 시간(Rotational Latency Time) + 전송 시간(Transmission Time)

 

    2.3. 디스크 장치 관리

파티션(Partition)

디스크를 논리적으로 분할하는 작업이다. 파티션 하나에 하나의 파일 시스템이 탑재된다.

대용량 하드디스크의 경우 여러 개로 나누어 사용하면 관리하기가 편해 파티션을 한다.

반대로 여러 개의 파티션을 하나로 통합하는 기능을 '마운트(Mount)'라고 한다.

 

포매팅(Formating)

디스크에 파일 시스템 탑재하고 디스크 표면을 초기화하여 사용할 수 있는 형태로 만드는 작업을 말한다.

디스크에 저장된 파일의 위치와 크기 정보를 담고 있는 파일 테이블을 사용한다.

 

OS는 고유의 파일 테이블 양식이 있다.

Windows에는 FAT(File Allocation Table)나 NTFS(New Tchnology File System) 등이 있다.

 

포매팅에는 빠른 포매팅과 느린 포매팅과 Low Level 포매팅이 있다.

빠른 포매팅은 데이터는 그대로 둔 채 파일 테이블을 초기화하는 방식이다.

느린 포매팅은 위의 방법처럼 디스크 전체를 초기화하는 방식이다.

Low Level 포매팅은 파일 시스템, 파티션, 섹터, 트랙 등 모든 정보를 지워 HDD를 공장 출하 상태로 되돌리는 방식이다.

 

조각 모음

데이터를 처음 저장할 때는 앞에서부터 차곡차곡 쌓이지만 파일을 지울 경우 중간중간 빈 공간이 생기게 된다.

이를 조각화(Fragmentation) 또는 단편화라고 한다.

이런 조각들이 많아지면 성능이 저하하기 때문에 조각을 모아주는 작업을 해줘야 한다.

헤드를 사용하지 않고 반도체를 사용하는 USB나 SSD는 조각 모음을 하지 않아도 상관없다.

 

    2.4. 네트워크 저장장치

DAS(Direct Attached Storage)

서버처럼 컴퓨터에 직접 연결된 저장장치를 말하며 HAS(Host Attached Stroage)라고도 한다.

Windows의 파일 공유처럼 컴퓨터 하나를 파일 공유 서버로 지정하고 다른 데에서 접근하여 파일을 이용하는 식이다.

컴퓨터에 직접 연결된 저장장치를 사용하기 때문에 다른 OS가 쓰는 파일 시스템은 사용할 수 없다.

또한 데이터의 관리나 백업을 사용자가 수동으로 해야 한다는 단점이 있다.

 

DAS는 컴퓨터 메인보드에 있는 입출력 버스와 연결한다.

이 방식은 IDE, E-IDE, SATA 순서를 거쳐 편의성과 속도가 향상되었다.

 └ IDE(Integrated Drive Electronics)

 └ E-IDE(Enhanced IDE)

 └ SATA(Serial Advanced Technology Attachment)

 

NAS(Network Attached Storage)

기존 저장장치를 LAN이나 WAN에 붙여서 사용하는 방식이다.

NAS 전용 OS를 가진 독립적인 장치로 운영하기에 HDD를 자유롭게 추가하거나 뺄 수 있다.

저장장치를 네트워크상에 두고 여러 사용자가 네트워크롤 통해 접근해 공유 데이터의 관리와 중복 회피가 가능하다.

저장장치 외에 무선 공유기에 USB를 연결하거나, 프린터같은 주변 장치도 NAS 형태로 구현할 수 있다.

 

SAN(Storage Area Network)

데이터 서버와 백업 서버, RAID 등의 장치를 네트워크로 묶어 데이터 접근을 위한 서버를 두는 방식이다.

저장장치에 필요한 장치를 네트워크로 묶어 하나의 시스템을 구성하기에 다양한 서비스를 제공한다. 

데이터의 공유, 백업, 보안 등이 서버를 통해 자동으로 이루어져 사용자가 파일 관리에 신경쓰지 않아도 된다.

 

편리하다는 장점이 있지만, 데이터 서버와 백업 서버를 구축해야 하기에 구축 비용이 많이 든다.

대용량 데이터를 전송하기 위해 광 채널(Fiber Channel)을 이용해 구성하는데 이를 FC-SAN이라고 한다.

광 채널 대신 TCP/IP를 이용해 구성하는 경우 IP-SAN이라고 한다.

 

3. 디스크 스케줄링

디스크 스케줄링(Disk Scheduling)은 트랙의 이동을 최소화하여 탐색 시간을 줄이는 것이 목표이다.

후술할 모든 스케줄링은 위에 적힌 접근 순서에 따라 접근한다고 가정한다.

 

    3.1. FCFS 디스크 스케줄링

First Come, First Service Disk Scheduling은 가장 단순한 스케줄링 방식이다.

접근 순서가 먼저 들어온 순서대로 탐색을 진행한다. 총 이동거리는 7 + 9 + 6 + 8 + 20 + 4 + 5 + 6으로 65이다.

 

    3.2. SSTF 디스크 스케줄링

Shortest Seek Time First Disk Scheduling은 현재 헤드 위치에서 가장 가까운 트랙부터 탐색한다.

하지만 거리가 가까운 요청이 계속해서 들어오면 거리가 먼 트랙의 요청은 아사 현상이 일어날 수 있다.

거리가 같은 두 트랙이 있다면 먼저 요청받은 트랙을 탐색한다. 총 이동거리는 1 + 3 + 3 + 1 + 3 + 12 + 3 + 5로 31이다.

 

    3.3. 블록 SSTF 디스크 스케줄링

Block SSTF Disk Scheduling는 입력을 블록으로 묶어서, 블록 내부에서 가장 가까운 순으로 탐색한다.

위의 예시에서는 블록의 크기를 3으로 설정해 (15 8 17) (11 3 23) (19 14 20)으로 묶었다.

(15 8 17)에서 SSTF하면 (15 17 8)이고, 8에서 가장 가까운 다음 블록 트랙은 11이다.

다음은 11부터 시작해 (11 3 23) 순으로, 23에서 가까운 다음 트랙은 20이라 (20 19 14) 순으로 탐색한다.

총 이동거리는 2 + 9 + 3 + 8  20 + 3 + 1 + 5로 51이다.

 

    3.4. SCAN 디스크 스케줄링

SCAN Disk Scheduling은 SSTF의 공평성 위배를 완화하기 위해 만든 방식이다.

헤드가 한 방향으로만 움직이면서 탐색을 진행한다. 엘리베이터 기법이라고도 부른다.

헤드가 0에 도착하면 방향을 바꾸어 반대편 트랙으로 진행하면서 탐색한다.

동일한 트랙이나 실린더 요청이 연속적으로 발생하면 헤드가 더 이상 움직이지 않아 트랙이 아사 현상을 겪는다.

총 이동거리는 1 + 3 + 3 + 5 + 3 + 17 + 2 + 1 + 3로 38이다.

 

    3.5. C-SCAN 디스크 스케줄링

Circular SCAN Disk Scheduling은 SCAN 방법에서 한쪽 방향으로만 이동하는 방식이다.

SCNA 방식처럼 아사 현상이 일어나기도 하며, 작업없이 헤드만 이동하는 것은 비효율적이라 잘 사용하지 않는다.

총 이동거리는 1 + 3 + 3 + 5 + 3 + 24 + 1 + 3 + 1 + 2로 46이다.

 

    3.6. LOOK 디스크 스케줄링

LOOK Disk Scheduling은 SCAN에서 불필요한 부분을 제거한 방식이다.

SCAN에서는 무조건 트랙의 끝까지 진행했지만 LOOK에서는 요청받은 마지막 트랙까지만 진행한다.

총 이동거리는 1 + 3 + 3 + 5 + 17 + 2 + 1 + 3으로 35이다.

 

    3.7. C-LOOK 디스크 스케줄링

C-LOOK Disk Scheduling은 LOOK에서 한 방향으로만 이동하는 방식이다.

총 이동거리는 1 + 3 + 3 + 5 + 20 + 3 + 1 + 2로 38이다.

 

    3.8. SLTF 디스크 스케줄링

Shortest latency Time First Disk Scheduling은 헤드 지지대를 고정하는 방식이다.

모든 트랙을 읽을 수 있는 여러 개의 헤드를 지지대에 고정하여 헤드를 움직이는 시간을 없앤다.

작업 요청이 들어온 섹터를 디스크가 회전하는 방향에 맞춰 재정렬하고 순서대로 섹터를 읽는다.

매우 빠른 속도를 자랑하지만 매우 고가라 많이 사용하지 않는다.

 

4. RAID

    4.1. RAID의 개요

Redundant Array of Independent Disks의 줄임말로 자동으로 백업을 하고 장애가 발생하면 복구하는 시스템이다.

RAID는 동일한 규격의 2개의 디스크에 거울처럼 똑같은 내용을 저장한다. 이를 '미러링(MIrroring)'이라고 한다.

여러 디스크에 데이터를 동시 저장해 입출력 속도를 높인다. 데이터를 여러 개로 나눠서  '스트라이핑(Striping)'이라 한다.

 

RAID는 0, 1, 10, 2, 3, 4, 50 등의 다양한 방식이 있다. 50은 RAID 5를 RAID 0으로 묶은 방식이다.

RAID 2, 3, 6, 50, 60 등의 방식은 오류 교정 코드(허밍코드), 오류 검출 코드(패리티 비트)를 이용해 디스크 양을 줄인다.

 └ 오류 교정 코드(ECC; Error Correcting Code) : 오류가 발생했는지 확인하는 동시에 오류를 교정하는 코드

 └ 허밍 코드(Hamming Code) : 기존 데이터 비트에 오류 확인을 위해 추가한 몇 개의 체크 비트

 └ 오류 검출 코드(EDC; Error Detecting Code) : 오류가 발생했는지 확인하는 코드

 └ 패리티 비트(Parity Bit) : 오류 발생 여부를 검사하기 위해 추가한 비트

 

    4.2. RAID 0(스트라이핑)

RAID 0 구조

같은 규격의 디스크를 병렬로 연결하여 여러 개의 데이터를 여러 디스크에 동시에 저장하는 RAID이다.

4개의 디스크로 구성하는 RAID 0은 1개의 디스크로 구성하는 일반 시스템보다 이론적으로 입출력 속도가 4배 빠르다.

백업 기능은 없이 순수하게 스트라이핑만을 지원하는 구조이다.

 

    4.3. RAID 1(미러링)

RAID 1 구조

하나의 데이터를 2개의 디스크(원본 디스크와 백업 디스크)에 나누어 저장한다

데이터를 똑같이 여러 디스크에 복사하기 때문에 미러링(Mirroring)이라고도 부른다.

같은 크기의 디스크를 최소 2개 이상 필요로 하기에 짝수 개의 디스크로 구성한다.

디스크가 하나 더 필요하고(비용이 증가한다) 같은 내용을 두 번 저장한다(속도가 느려진다)는 단점이 있다.

 

    4.4. RAID 2

RAID 2 구조

오류를 검출하는 기능이 없는 디스크에 대해 ECC를 따로 관리한다.

비트 단위로 만든 ECC를 별도의 디스크에 저장하여 오류 발생 시  데이터를 복구하는데 사용한다.

 └ 비트 단위로 복구하기 위해서 비트 단위로 ECC를 구성하여 저장한다.

N개의 디스크에 대해 ECC를 저장하기 위해 N - 1개의 추가 디스크를 필요로 한다.

 

    4.5. RAID 3

RAID 3 구조

데이터를 섹터 단위로 나누어 디스크에 저장한다.

디스크는 일반적으로 섹터 단위로 데이터를 읽어 어느 섹터에 오류가 있는지 알 수 있다.

패리티 비트를 여러 섹터끼리 묶어서 구성하면 오류가 없는 섹터로부터 있는 섹터의 데이터를 복원할 수 있다.

이런 방식을 N-way Parity Bit라고 한다. 

 

RAID 3에서 N-way 패리티 비트를 별도의 디스크에 보관하여 장애 발생 시 복구하는데 사용한다.

보통 4개의 데이터 디스크당 1개의 패리티 비트 디스크가 필요하다. 

데이터를 읽거나 쓸 때 패리티 비트 구성을 위해 모든 디스크가 동시에 동작해야 하는 단점이 있다.

 

    4.6. RAID 4

RAID 4 구조

데이터를 블록 단위로 나누어 디스크에 저장한다.

RAID 3과 비슷하게 동작하지만 블록 단위 저장이라 패리티 비트 구성 시 한 디스크만 동작해도 된다.

RAID 3처럼 패리티 비트를 추가하기 위한 계산이 필요하지만 4개의 데이터 디스크당 1개의 추가 디스크만 필요하다.

 

    4.7. RAID 5

RAID 5 구조

RAID 3과 4는 입출력이 있을 때마다 패리티 비트 디스크에 데이터를 저장해야 해서 병목 현상이 발생한다.

또한, 데이터 디스크와 패리티 비트 디스크가 동시에 오류가 발생하면 데이터를 복구할 수 없다.

 

RAID 5에서는 패리티 비트를 여러 디스크에 분산하여 보관한다.

이때 패리티 비트를 해당 데이터가 없는 디스크에 보관한다(Ex. A의 데이터각 5번 디스크에 없으므로 5번에 저장한다).

 

    4.8. RAID 6

RAID 6 구조

RAID 5와 비슷하지만 패리티 비트 디스크를 2개 둔다는 점이 다르다.

디스크 2개가 동시에 오류가 발생했을 때 복구가 가능하지만, 추가 연산과 추가 디스크가 필요하다는 점이 있다.

 

    4.9. RAID 10

RAID 0+1 구조(왼쪽), RAID 10 구조(오른쪽)

미러링(백업) 기능을 가진 RAID 1과 빠른 데이터 전송이 가능 RAID 0을 결합한 형태

RAID 0으로 먼저 묶으면 RAID 0+1, RAID 1로 먼저 묶으면 RAID 10이다.

오류가 발생하면 복구하기 위해, RAID 0+1는 모든 디스크를 RAID 10은 일부 디스크를 중단해야 한다.

RAID 10를 복구의 효율성 문제 때문에 RAID 0+1보다 많이 사용한다. 

 

    4.10 RAID 50과 RAID 60

RAID 60 구조

RAID 10처럼 RAID 5(혹은 RAID 6)를 RAID 0으로 묶어서 사용하는 RAID 방법이다.

RAID 1, 5, 6의 장점을 그대로 가져오지만 입출력 계산량이 증가한다는 단점이 있다.