RAID란?
과거 대용량 디스크가 고가였던 시절, 여러개의 디스크를 하나로 묶어 대용량처럼 사용하는 기술
100GB이상의 대용량 디스크가 가정에서도 쉽게 사용되고 있지만, 스토리지에서 흔히 사용되는
TB단위의 대용량의 데이터가 필요로 하는 현대사회에서 꼭 필요한 기술이다.
예전에는 대용량 HDD 와 RAID 장비가 고가여서 기업용 서버에서 주로 사용되었지만 요즘은 가격이 많이내려 사설 서버나 개인용 서버에도 많이 쓰인다.
RAID의 사용
1. 여러개의 디스크를 하나의 대용량 디스크처럼 사용.
2. 여러개의 디스크 데이터를 나누어 한꺼번에 쓰고 한꺼번에 읽어 IO속도를 높임.
3. 하나의 디스크에 장애가 생기더라도 데이터를 살리기위한 미러링(백업) 역할.
RAID의 종류
- RAID0 (스트라이핑)
1개의 데이터를 여러개의 하드에 분산해서 저장하는 방식이다.
물론 1개의 하드에 저장했을때보다 빠르게 읽어 들일수 있지만
하나의 디스크에서 장애가 생기면, 이 모든 데이터를 잃는 위험부담.
- RAID1(미러링)
RAID0의 기법에 미러링(거울) 방식을 적용한 기법이다.
1개의 데이터를 여러개의 하드에 분산하여 저장하되, 한번 쓸 때 두개의 디스크에 같은내용을
기록 100GB 디스크 10개를 이용하여 500GB를 사용한다.
디스크에 장애가 생기면 미러링된 데이터를 읽어옴.
- RAID2(hamming)
RAID level 2는 에러검출능력이 없는 드라이브를 위해 hamming 오류정정코드를 사용한다.
모든 SCSI 드라이브는 에러검출능력을 갖고 있기 때문에 SCSI 드라이브를 사용할 경우 이
레벨은 별로 쓰이지 않는다.
※ 현재 사용되지 않음
- RAID3(패리티)
패리티 정보를 저장하고, 나머지 드라이브들 사이에 데이터를 바이트 단위로 분산한다.
이것은 level 4와 유사하나 바이트 단위의 분산 저장을 경제적으로 수행하기 위해선 하드웨
어적인 지원이 필요하다.
※ 현재 사용되지 않음
- RAID4 (패리티)
RAID1은 디스크의 용량을 절반밖에 활용할수 없어서 비싸다 그래서 고안된기술로
데이터를 분산 저장하고, 데이터들을 특정 연산후 결과값을 별도의 공간(페리티 디스크)에
저장한다.
그리하여 디스크에 장애가 생기면, 페리티디스크에 있는 데이터를 이용해 복구가 가능함.
하지만 두개이상의 디스크에 동시장애가 생기면, 복구 불가
동시에 많은양의 데이터가 연산될때, 병목현상이 생김.
- RAID5 (스트라이핑 + 패리티)
병목현상을 해결하기 위해서 나온 것으로 현재까지 세계적으로 가장 많이 사용된다.
별도의 패리티 디스크를 가지고 있지 않고, 모든 패리티 데이터를 데이터 디스크에 분산
저장한다.
하지만, 디스크를 추가할때 모든 데이터에 대한 패리티 데이터를 다시 연산해야함으로 확장이
어렵다.
- RAID6(스트라이핑 + 패리티)
RAID5와 비슷하지만, 페리티 정보를 모든 디스크에 저장. 두개의 디스크에 장애가 발생하여도
복구가 가능하며, 읽기 성능이 우수하지만, 패리티를 여러번 갱신해야 하기 때문에 속도가 느림.
디스크를 재구성하는 동안 성능 저하가 될수 있음.
- RAID7
Optimized Asynchrony for High I/O Rates as well as High Data Transfer Rates
이 형식은 컨트롤러로서 내장되어 있는 실시간 운영체계를 사용하며, 속도가 빠른 버스를
통한 캐시, 독자적인 컴퓨터의 여러 가지 특성들을 포함하고 있다
- RAID53
High I/O Rates and Data Transfer Performance
이 형식은 각 스트립은 RAID-3 디스크 에레이인 스트립 어레이를 제공한다.
이 방식은 RAID-3보다 높은 성능을 제공한다
- RAID10 (미러링+스트라이핑)
RAID1 로 묶은 쌍을 RAID0 로 합한 것이다. RAID 중 가장 좋은 방식이다.
RAID10 은 RAID1 로 묶인 HDD 2개가 동시에 Error 나지 않는한 데이타는 안전하다.
따라서 RAID0+1 보다 더욱 안전한 방식이다.
- RAID0+1(스트라이핑+미러링)
RAID0 로 합한 2쌍을 RAID1 로 묶은 것이다. RAID10 보다 안정성이 떨어진다.
RAID0+1 은 RAID1 로 묶인 2개의 RAID0 에서 동시에 Error 나면 전체 데이타를 읽어버린다.
RAID5 와 RAID6의 차이
내부적인 기술의 차이는 있지만 RAID6는 RAID5의 확장 개념으로 보아도 무방하다. RAID5가 5개의 HDD를 장착하고 하나의 HDD가 fail 나더라도 복구가 가능한 데이터 신뢰도를 제공하는데 반하여, RAID6는 6개의 HDD를 장착하고 두 개의 HDD가 동시에 fail 나더라고 복구가 가능해 우수한 데이터 신뢰도를 보장한다.
RAID5는 최소 3개의 HDD가 구성이 되어야 RAID5 레벨 설정이 가능하고, RAID6는 최소 4개의 HDD가 구성이 되면 RAID6 레벨 설정이 가능하다. 물론, RAID6 에 따른 데이터 신뢰도는 상승하는 반면, 구성 가능한 용량은 RAID5 보다 상대적으로 적을 수밖에 없다. 다만, 그 차이가 데이터 신뢰도를 생각하면 무시하여도 무방할 정도라 할 수 있다.
RAID 레벨 |
MAXTOR 250GB HDD 8개 ARC-1120 구성시 |
RAID0 |
2008 GB |
RAID5 |
1757 GB |
RAID6 |
1506 GB |
용량으로 따져본다면 8채널 구성의 경우 RAID0이 설치한 하드디스크를 모두 사용해 250GB 구성시 총 2008GB이 가능했으며, RAID5는 하나 분량의 용량을 패리티 체크 용도로 사용해 1757GB이 가능, RAID6는 두 개 분량의 용량을 패리티 체크 용도로 사용해 1506GB를 전체용량으로 사용할 수 있다.
RAID10과 0+1은 비슷하면서도 다릅니다. 비슷한면으로는
1. 용량이 같다.
2. 속도가 같다.
다른면으로는
1. 기술적으로 RAID10이 복잡한 반면 RAID0+1은 단순하다.
2. RAID10은 안정성이 높으나 RAID0+1은 상대적으로 낮다.
그 구조는 다음과 같다.
두 레이드는 기본적으로 RAID0 과 RAID1의 조합으로 이루어진다는것에는 차이가 없습니다.
즉, 속도의 향상과 안정성의 향상이라는 두가지를 합쳐둔것입니다. 그러나 그 사소한 차이가 큰 결과를 만들어내는것이 어느것이 먼저냐는것입니다.
먼저 RAID0+1에 대해서 설명드리면,
RAID0으로 구성한 다음 RAID1으로 미러링을 하는 구조입니다. 말로 설명하면 이해가 잘 안가니 그림 비슷한것을 그려서 설명 드리겠습니다.
RAID0+1로 10개의 HDD를 묶는다고 하면,
1) RAID0으로 5개씩 묶습니다.
RAID0[1,2,3,4,5], RAID0[6,7,8,9,10] 이렇게 2개의 묶음을 R0, R1이라고 이름짓습니다.
2) RAID1으로 2개를 묶습니다.
RAID1[R0,R1]
이것을 풀어서 보시면
RAID1[RAID0[1,2,3,4,5],RAID0[6,7,8,9,10]] 이렇게 들어가는것을 알수 있습니다.
일단 여기까지만 설명드리고 다음으로 넘어가겠습니다. 눈치 빠른 분들은 제가 무슨 이야기르할지 알고 계실겁니다.
그다음 RAID10에 대해서 말씀드리겠습니다.
RAID1로 구성한것을 RAID0로 묶는 구조입니다.
RAID10으로 10개의 HDD를 묶는다고 하면,
1) RAID1으로 2개씩 묶어서 5개의 RAID1볼륨을 만듭니다.
RAID1[1,2], RAID1[3,4], RAID1[5,6], RAID1[7,8], RAID1[9,10] 이렇게 5개가 나옵니다. 각각 R0, R1, R2, R3, R4라고 이름짓습니다.
2) RAID0로 5개를 묶습니다.
RAID0[R0,R1,R2,R3,R4]
이것을 풀어서 보면
RAID0[RAID1[1,2],RAID1[3,4],RAID1[5,6],RAID1[7,8],RAID1[9,10]] 이렇게 됩니다. 지금부터 본격적인 차이점을 설명드리겠습니다.
<첫번째 차이점. 안정성의 차이>
RAID0+1에서 RAID1[RAID0[1,2,3,4,5],RAID0[6,7,8,9,10]]가 있는데, 1번 하드가 고장 나버렸습니다.
그러면 RAID0[1,2,3,4,5]는 깨지겠죠? RAID0는 하나라도 문제가 생기면 전체가 중지되어버립니다.
반면에 RAID10은 RAID0[RAID1[1,2],RAID1[3,4],RAID1[5,6],RAID1[7,8],RAID1[9,10]]에서 1번하드가 고장나면, RAID1[1,2]가 RAID1이기 때문에 1,2가 동시에 문제가 생기지 않는한은 RAID1은 중지되지 않습니다.
이런 질문을 하실수 있습니다. 1,2가 같이 깨지는 경우는 RAID0+1이 낫겠네요...라고요.
그러나 확률을 보시면 아시겠지만, RAID0+1의 경우는 R0에 하나 R1에 하나만 문제가 생기면 완전히 끝입니다. 그러나 RAID10의 경우는 1,3,5,7,9 5개의 하드가 동시에 깨져도 문제 없이 동작합니다. 확률적으로 더 나은 안정성을 보장하죠.
<두번째 차이점. 복구의 차이>
RAID0+1의 경우 1번 하드가 깨진 경우, 1번 하드를 교체후에 REBUILD를 하게 되면 R1에서 R0을 통채로 복사하게 됩니다.
반면 RAID10의 경우 1번 하드가 깨진 경우, 1번 하드를 교체후 REBUILD를 하면 2번 하드에서 1번 하드로 복사를 하게 됩니다.
RAID10의 경우 시간이 엄청나게 단축되겠죠?