본문 바로가기

카테고리 없음

RAID

1. Raid의 사전적 의미

- RAID

란 Redundant Array of Inexpensive Disk의 약자. '값싼 디스크의 중복 배열법'

- 여러개의 디스크를 하나의 디스크 처럼 사용할 수 있게 하는 기술.

- 예시 : NAS

 

2. Raid 분류

- 소프트웨어 RAID : raid를 버스에 직접 부착하여 운영체제/raid 소프트웨어가 이를 직접 이용하게끔 한다.(상대적으로 저렴한 비용)

- 하드웨어 RAID : raid controller의 하위에 raid가 있어서, 하드웨어적으로 raid를 제어한다.(상대적으로 좋은 신뢰도와 성능, 속도)

 

 

[하드웨어 Raid 예시 그림]

 

3. RAID의 목적

 1) 신뢰성 : 데이터를 유지하는 데 목적 

  1-1)  미러링 Mirroring : 디스크의 갯수만큼 백업디스크를 두는 것.

  1-2)  패리티 디스크 Parity Disk : 디스크 레이드 4개 중 하나를 백업 디스크로 두는 것. 1개의 디스크 고장까지는 대처가 가능하다.

  1-3) 에러 코렉팅 코드 ECC : 미러링과 패러티 디스크 사이의 절충안, 패러티디스크 보다 백업디스크를 더 두고, 이를 해밍코드 방식으로 동작하게 함으로써 커버한다. <- 이제는 잘 사용되지 않음.

 2) 성능 : 스트라이핑(Striping) 방식을 사용

  2-1) Bit 스트라이핑 : 디스크블록을 여러개의 ‘비트’로 쪼개어서 raid에 배분하여 저장하고, 읽어들이는 방식. 비트를 작은 단위로 쪼개어 읽기 때문에 그렇게 성능 향상이 크지는 않다.

  2-2) Block 스트라이핑 ; 디스크블록을 여러개의 ‘블록’으로 쪼개어서 배분하여 저장하고 읽어들이는 방식. 장점 동일.

 

4. RAID Level <<<

 

- 위에서 말한 신뢰도와 성능을 위한 RAID 조합.

 1) RAID 0 : Block Striping만 도입한 모델

 - 이러한 스트라이핑 기술로 RAID 0은 빠른 입출력 속도를 제공합니다.

 - 데이터 중복이나 패리티 없이 디스크에 분산하여 기록합니다.

 - 처리속도는 빠르나 구성된 디스크 중에 하나라도 오류가 발생하면 데이터 복구가 불가합니다.

- 빠른 성능, 데이터 중요도 낮은 서비스에 적합 (스트리밍)

 

 2) RAID 1 : 미러링만 도입

- 신뢰도만 중요한 서비스에 적합- 데이터가 비트 단위로 분산 저장되기 때문에 읽기 및 쓰기 동작이 수행될 때 배열 내의 모든 데이터 디스크들이 참여하게 된다.

- 쓰기 동작마다 패리티 비트들을 갱신해야 한다는 문제가 있다 (RAID4도 겹치는 문제이므로 RAID4에서 좀 더 자세히 설명하도록 할게요)

- ECC보다 디스크를 적게 차지하니 레벨2 RAID보다는 스토리지 오버헤드가 적겠죠?

 

3) RAID 2 : Bit Striping + EGC의 조합

4) RAID 3 : Bit Striping + Parity code

5) RAID 4: Block Striping + Parity Code

-블록 형태의 스트라이핑 기술을 사용하여 디스크를 구성하는데, 이는 단일 디스크로부터 레코드를 읽을 수 있고 데이터를 읽을 때 중첩 입출력의 장점이 있다. 쓰기 작업은 패리티 연산을 해야 하고 패리티 디스크에 저장해야 하기 때문에 입출력의 중첩이 불가능하고 시스템에 병목현상이 발생할 수 있다

6) RAID 5 : Block Striping + 각 디스크가 패리티 비트를 가지고 있다.

RAID5는 최소한 3개 이상의 하드디스크가 있어야만 구성이 가능하며 대게는 5개 이상의 하드디스크로 구성한다.

- 어느 정도 결함을 허용하며 저장 공간의 효율 또한 좋다.

- 하드디스크의 개수를 N개라 하면 N-1만큼 공간을 사용할 수 있다.

- 사방에 흩어져 있는 패리티 정보를 갱신하는데 생기는 성능 저하는 최근 '지능형 cache'를 내장하여 속도 저하 최소화를 수행시키는 것으로 극복하고 있다.

- 디스크 1개는 커버 되지만 2개 이상 오류가 나면 데이터가 유실될 수 있다.

- RAID 0보다 안전하다는 인식과는 달리 오히려 많은 량(보통 8개 이상)의 디스크를 스토리지로 묶으면, 패리티 연산 오류 발생 확률이 높아져서 RIAD0으로 묶은거보다 깨질 확률이 높아진다고 한다. 그러므로 대단위로 만드려면 RAID 6 또는 RAID10을 권장한다.

- 깨진 걸 복구하려고 디스크를 뽑았는데, 하필 정상이었던 하드를 잘못 뽑아서 깨지는 경우도 심심치 않게 발생하니 주의하도록 하자.

RAID 5 요약:

RAID4와 동일하나 패리티를 분산저장한 것이 RAID5이다.

패리티 정보는 별도의 디스크를 사용하지 않고 구성된 디스크에 분산하여 기록하지만 데이터를 중복 저장하지는 않아 가장 보편적으로 사용된다. 디스크에 쓰기 제한 주소를 지정하므로 모든 읽기 및 쓰기가 중첩될 수 있다.

작고 랜덤한 입출력이 많은 경우에 더 나은 성능을 발휘한다.