RAID란

Redundant Array of Inexpensive Disks 또는 Redundant Array of Independent Disks의 약자로 여러개의 하드디스크를 하나의 논리적 가상 디스크로 구성하여 대용량 저장장치로 사용할 수 있는 기법입니다.

RAID 시스템은 동일한 데이터를 여러 개의 디스크에 중복 저장하면서도, 운영체계에는 하나의 단일 디스크로 인식시킴으로써, 내고장성의 증가와 데이터 접근 효율성을 높여주는 장점이 있습니다.

RAID 계층 - RAID Level

데이터를 나누는 다양한 방법이 존재하며, 이 방법들을 레벨이라 하는데, 레벨에 따라 저장장치의 신뢰성을 높이거나 전체적인 성능을 향상시키는 등의 다양한 목적을 만족시킬 수 있습니다.

최초에 제안되었을 때는 다섯가지의 레벨이 존재했는데, 이후에 중첩 레벨을 비롯한 여러 가지 다른 레벨들이 추가되었습니다.

RAID 0 - 스트라이핑

RAID의 가장 기본적인 구현방식으로 Striping(스트라이핑)이라고 하며, 하나의 데이터를 여러 디스크에 분산하여 저장합니다. 2개 이상의 디스크가 필요하며, 디스크가 연결되는 만큼 용량이 증가합니다.

장점

입출력 속도가 빠릅니다. 여러 개의 디스크에 분산하여 저장하고 각 디스크 마다 입출력을 병렬적으로 처리하기 때문에, 기본적으로 N개의 디스크를 사용한다면, 이론상 N배 빠릅니다.

단점

Striping(스트라이핑) 되어 있는 하드디스크 중 1개만 장애를 일으키더라도 데이터를 모두 유실할 위험성이 있습니다. 디스크의 수가 증가할 수록 위험은 더욱 증가합니다.

RAID 1 - 미러링

하나의 하드디스크에 기록되는 모든 데이터가 나머지 하나의 하드디스크에 똑같이 복사됩니다. 때문에 Mirroring(미러링)이라고도 하며 이 경우 2개의 하드디스크 중 1개가 장애를 일으키더라도 남은 1개의 데이터는 장애를 일으키지 않은 하드디스크의 데이터와 똑같기 때문에 안정성 측면에서 상당히 우수한 구성입니다.

장점

드라이브 하나가 고장 나면 똑같은 내용의 다른 드라이브가 하나 더 있기 때문에 매우 안전합니다. RAID 1은 읽기 성능이 단일 드라이브에서의 성능과 같거나 훨씬 좋습니다.

단점

각 드라이브는 미러링되기 때문에 전체 용량의 절반밖에 사용하지 못합니다. 드라이브 두 개에 동일한 데이터를 써야 하기 때문에 쓰기 성능이 나쁩니다. 하지만 다른 RAID 레벨의 쓰기 성능보다는 낫습니다.

RAID 3

데이터는 바이트 단위로 쪼개져서 모든 디스크에 균등하게 나뉘어 저장되고 패리티 정보는 별도의 전용 디스크에 저장됩니다.

패리티
Data의 오류검출 확인에 사용되는 개념. 정보 블록과 연결된 중복 정보. 패리티는 오류 후 데이터를 재구축하는 데 사용되는 계산된 값입니다.

장점

한 개의 드라이브가 고장 나는 것을 허용하며 순차적 쓰기(sequential write) 성능과 순차적 읽기(sequential read) 성능이 우수합니다.

단점

RAID 3은 보통 효율적이지만 임의 쓰기(random write) 성능이 나쁘고 임의 읽기(random read) 성능은 준수합니다. 또한 패리티 정보가 저장되어 있는 하드디스크에 장애가 발생하면 복구가 불가능하다는 단점이 있습니다. 또한 패리티 하드디스크에 병목현상이 생겨 속도가 저하될 수 도 있습니다.

RAID 4

모든 파일은 블럭으로 쪼개지고 각 블럭은 여러 디스크에 저장되지만 균등하진 않습니다. RAID 3처럼 패리티를 처리하기 위해 별도의 디스크를 사용합니다. 동시 트랜잭션 사용량이 많은 시스템에서 읽기 속도는 매우 중요한데 이런 시스템에 적합합니다.

장점

드라이브 하나가 고장 나는 것을 허용하고 읽기 성능이 매우 좋습니다.

단점

쓰기 성능이 나쁘지만 블럭 읽기(block read) 성능은 괜찮습니다. RAID 3와 마찬가지로 패리티 디스크 장애에 대한 문제가 있습니다.

RAID 3와 RAID 4의 차이

RAID 3은 Byte단위로 데이터를 저장하는 반면 RAID 4는 Block단위로 저장합니다.
Block단위로 저장을 할 경우 작은 파일의 경우는 한번의 작업으로 데이터를 읽을 수 있기 때문에 성능상의 장점이 있습니다. 레벨 3은 동기화를 거쳐야 하기 때문에 3보다는 레벨 4를 많이 사용합니다.

RAID 5

RAID 3RAID 4의 단점을 보완한 방식으로, 패리티 정보의 저장을 전담하는 하드디스크 대신 모든 하드디스크에 패리티 정보를 분산 저장합니다.

장점

지원하는 회사가 많고 한 개의 드라이브가 고장 나는 것을 허용합니다.

RAID 3RAID 4의 단점을 해결한 형태이며 고급 RAID Controller에서 현재 많이 쓰이고 있는 형태입니다. 이는 별도의 오류정정부호(ECC) 드라이브를 두지 않고, 각 드라이브에 분산되어 ECC 드라이브에 대한 병목현상을 막아주며 ECC를 위한 알고리즘 때문에 성능 면에서는 여전히 RAID 0 보다 떨어지지만 성능, 안정성, 용량의 세 부분을 고려한 형태입니다.

단점

디스크 재구성(rebuild)이 매우 느리고 방식은 쓰기(Write)에는 패리티 정보가 분산되어 저장되기 때문에 병목을 줄여주지만, 읽기(Read)에서는 사방에 흩어져 있는 패리티 정보를 갱신하며 읽게 되기 때문에 성능 저하가 생길 수밖에 없습니다.

RAID 6

RAID 5와 비슷하지만, 다른 드라이브들 간에 분포되어 있는 2차 패리티 구성을 포함함으로써 매우 높은 장애대비 능력을 제공합니다.

장점

두 개의 드라이브까지 고장 나는 것을 허용하고,하드를 스트라이핑으로 묶었기 때문에 RAID 0+1이나 RAID 10보다 성능은 더 높고 신뢰성도 우수 합니다.

단점

패리티 정보를 2중으로 저장하면서 읽기 성능은 RAID 5와 비슷하지만 쓰기 작업 구현이 아주 복잡해서 일반적으로 잘 사용하지 않습니다.

RAID 0+1

RAID 0으로 먼저 묶고, 그 다음 RAID 1로 묶는 방법입니다. 디스크 N개를 A개씩 RAID 0로 묶고, 이렇게 스트라이핑 된 볼륨 N/A개를 RAID 1로 미러링합니다.

장점

RAID 0의 속도와 RAID 1의 안정성이라는 각 장점을 합쳤습니다. RAID 10에 비해 기술적으로 단순합니다.

단점

RAID 10에 비해 확률적으로 안정성이 떨어집니다. 복구 시간이 오래 걸립니다.

RAID 10

RAID 1으로 먼저 묶고, 그 다음 RAID 0으로 묶는 방법입니다. 디스크 N개를 A개씩 RAID 1로 묶고, 이렇게 미러링 된 볼륨 N/A개를 RAID 0으로 스트라이핑 합니다.

장점

RAID 0의 속도와 RAID 1의 안정성이라는 각 장점을 합쳤습니다. RAID 0+1에 비해 디스크 장애 발생시 복구가 수월합니다.

단점

기술적으로 복잡합니다.

RADE 10과 RAID 0+1의 차이

  1. 안정성
  • RAID 10의 경우에는 HDD1이 나면 HDD 1, 2까지만 사용이 불가능합니다.
  • 하지만 RAID 0+1의 경우에는 HDD 1, 2, 3이 사용할 수 없게 됩니다.
  1. 복구에 걸리는 시간
  • RAID 0+1의 경우에는 만약 HDD1이 고장 났을 때, HDD 4, 5, 6의 내용을 HDD 1,2,3에 통째로 붙여 넣어야 하기 때문에 REBUILD 시간이 오래 걸립니다.
  • 하지만 RAID 10의 경우에는 HDD1이 고장나도 HDD2의 내용만 붙여넣으면 되기 때문에 REBUILD 시간이 RAID 0+1에 비해 덜 걸립니다.

Reference