본문 바로가기

Hardware

RAID ( Redundant Array of Independent DIsks )

초기에는 보다 저렴하며 용량이 적고, 성능이 낮은 하드디스크를 묶어 중복 구성함으로써, 성능이 좋은 고가의 대용량 하드 디스크 장비와 겨루어 손색이 없도록 하는 것이 주목적이었다.
하지만 기술의 발전에 따라 가격적인 면보다는 데이터의 안정성과 에러 보정, 그리고 하드디스크의 장애에 의한 데이터의 손실을 막기위한 측면이 강조되었고, RAID의 의미도 'Inexpensive'에서 'Independent'로 의미가 바뀌게 되었다.

RAID 시스템은 동일한 데이터를 여러 개의 디스크에 중복 저장하면서도, 운영체계에는 하나의 단일 디스크로 인식시킴으로써, 내고장성의 증가와 데이터 접근 효율성을 높여주는 장점이 있다.
즉, 한마디로 'RAID는 여러개의 물리적 드라이브를 하나의 논리적 드라이브로 묶는 방식' 이라 할 수 있다.


RAID Level 0 - 필요드라이브 최소 2개 이상
RAID의 가장 기본적인 구성으로 Striping (스트라이핑) 이라고 한다.
하나의 데이터를 여러 드라이브에 분산 저장함으로써 바른 입출력을 가능하게 한다.

하나의 데이터를 Stripe기술을 이용하여 여러개의 같은, 일정한 크기의 유닛으로 나뉘어 지는데 이를 Stripe Unit이라 한다. 이 데이터를 여러 드라이브에 분산 저장하는 방식인 것이다.
RAID Level 0의 경우 분산 저장에만 초점이 맞추어져 있어 하드디스크의 속도 향상에는 무척 도움이되지만 Striping되는 하드 디스크 중 1개만 장애를 일으키더라도 데이터를 모두 유실할 수 있는 위험성이 있다.


RAID Level 1 - 필요 드라이브 2개 이상
RAID Level 1은 2개의 하드 디스크가 사용되며, 하나의 하드 디스크에 기록되는 모든 데이터가 나머지 하나의 하드디스크에 고스란히 복사되는 방법으로 저장.
두 개의 하드디스크는 한치의 오차도 없이 똑같이 저장되기 때문에 Mirroring이라고 한다.
이 경우 2개의 하드디스크 중 1개가 장애를 일으키더라도 남은 1개의 데이터는 장애를 일으킨 하드디스크의 데이터와 똑같기 때문에 안정성 측면에서 상당히 우수한 구성이다.
읽기에는 성느으이 향상이 있으나, 쓰기에서의 속도 향상은 별반 차이가 없고, 전체 공간의 50%만 이용할 수 있다
때문에 매우 중요한 파일을 백업 받을 일이 없는 개인 사용자의 경우 하드디스크 두개로 한 개의 용량만을 사용한다


RAID Level 2
기록용 드라이브와 데이터 복구용 드라이브를 별도로 사용
4개의 하드 디스크를 기록하기 위해서는 3개의 부가 데이터를 기록해야 하기 때문에 효율성면에서 거의 사용하지 않는다.
RAID2 는 RAID0와 같이 스트라이핑 방식이지만 에러 체크와 수정을 할 수 있도록 Hamming Code를 사용한다.



RAID Level 3, 4 - 필요 드라이브 최소 3개 이상
RAID Level 3, 4는 각각 RAID Level 0, 1의 문제점을 보완하기 위한 방식
RAID Level 0과 같은 Striping 구성을 하고 있어 성능을 보완하고 디스크 용량을 온전히 사용할 수 있다.
추가로 에러 체크 및 수정을 위해서 패리티 (Parity) 정보를 별도의 디스크에 따로 저장

RAID 3은 Byte 단위로 데이터를 저장하는 반면, RAID 4는 Block 단위로 저장한다.
Block 단위로 데이터를 저장할 경우 작은 파일의 경우는 한번의 작업으로 데이터를 읽을 수 있기 때문에 성능상 장점이 있다.
Level3  은 동기화를 거쳐야 하기 때문에 Level 4를 많이 이용한다.
데이터가 저장되어 있는 드라이브에 장애가 발생되었을 경우 패리티 정보를 이용하여 복구 할 수 있으나, 정작 패리티 정보가 저장되어 있는 하드디스크에 장애가 발생하면 복구가 불가능하다.
패리티 하드디스크에 병목현상이 생겨 속도가 저하 될 수 있다.


RAID Level 5 - 필요 드라이브 최소 3개 이상
Level 3, 4의 단점을 보완한 방식
패리티 정보의 저장을 전담하는 하드디스크 대신 모든 하드디스크에 패리티 정보를 분산 저장한다.
Write의 경우 패리티 정보가 분산되어 저장되기 때문에 Level 3,4의 병목현상을 줄여주지만, Read의 경우 사방에 흩어져 있는 패리티 정보를 갱신하며 읽게 되기 때문에 성능저하가 생길 수 있다.
이러한 단점 역시 컨트롤러에 지능형 캐쉬를 내장하여 속도 저하를 최소화시키는 역활을 하고 있다.
성능면에서 RAID 0보다 떨어지지만 성능, 안정성, 용량 3부분을 고려한 형태이다.
하나의 드라이브가 고장날 경우 다른 드라이브에 별도로 저장된 패리티 (Parity) 정보를 통하여 복구하고 손상된 드라이브의 피리티 정보는 나머지 하드에 있는 데이터를 토대로 다시 작성 가능하다.
그러나 별도의 패리티 정보를 저장하는 작업을 해야 하기 때문에 RAID Level 1보다 쓰기 성능이 떨어진다.
RAID 3,4 와 달리 패리티 정보가 저장된 디스크가 따로 없어서 패리티 디스크 고장과 같은 문제에서 자유롭다.


RAID Level 6 - 필요 드라이브 최소 4개 이상
RAID Level 6은 RAID 5와 같은 개념이지만 다른 드라이브들 간에 분포되어 있는 2차 패리티 정보를 넣어 2개의 하드에 문제가 생겨도 데이터를 복구 할 수 있다.
RAID 5보다 더욱 더 데이터의 안정성을 고려한 시스템에서 사용
하드를 스트라이핑으로 묶었기 때문에 RAID 0+1이나 RAID 10 (1+0)보다 성능은 더 높고 신뢰성도 우수하지만 패리티 정보를 2중으로 저장하면서 읽기 성능은 RAID 5와 비슷하지만 쓰기 작업 구현이 아주 복잡하다.


RAID Level 0+1 / 1+0 - 필요 드라이브 최소 4개
RAID 0와 1의 복합 구성
RAID 0의 Striping과 RAID 1의 Mirroring의 기능을 합친 것으로, 분산 저장을 통한 성능 향상을 꾀할 수 있으면서 데이터의 안정성 또한 보장받을 수 있다.
전체 용량의 50%만 사용하고, 비용이 많이 든다는 단점이 있다.
01과 10의 차이는 어느 쪽을 먼저 구성하느냐의 차이이다.
4개의 드라이브로 구성할 경우 위의 이미지 처럼 차이가 없다.
하지만 6개의 드라이브로 구성을 항 경우 아래의 이미지처럼 01은 3:3, 10은 2:2:2로 구서오딘다.
드라이버가 6개일 때, RAID 0+1의 경우 1개의 하드만 고장나서 복구해도 다른 RAID 0 구성에서 나머지 하드 까지 데이터 전체를 복구해야 하지만, RAID 1+0의 경우 미러링으로 묶인 하드를 통해 데이터만 복구하면되므로 실제로 운용하는데 있어서는 RAID 1+0이 유리하다.


RAID50, RAID51, RAID 60, RAID 100의 구성



RAID Level에 따른 정리 표