달력

09

« 2017/09 »

  •  
  •  
  •  
  •  
  •  
  • 1
  • 2
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
2010.06.16 15:44

RAID 종류와 특징 서버운영(Server)2010.06.16 15:44



RAID 종류와 특징

작성자 : 기술지원부 조정현 karura@nextline.net

☞ RAID란?
1987년 캘리포니아 대학 버클리 분교의 패터슨, 깁슨, 카츠에 의해 발표되어 논문 ‘A Case
for Redundant Arrays of Inexpensive Disks’에서 등장한 기술입니다. 1~5단계로 제안된 자
기기억장치의 새로운 기술과 SLED(single large expensive disk)를 비교하여 설명하였습니다.
그 후로 여러 업체에서 제안한 0, 6, 10수준 등이 있습니다. 여러 디스크를 병렬로 연결하
여 사용하는 기법으로서 접근(access) 속도와 데이터 보존 신뢰가 우수할수록 높은 등급을
받는 5단계로 구분됩니다.
간단하게 말해서, 하드디스크 여러 개를 가지고 하나처럼 사용하는 모드, 데이터 보관의 안
전성을 위해서 미러링을 하는 모드, 위의 두 가지를 합한 모드, 속도를 빠르게 하기 위해서
병렬적으로 데이터를 저장하는 모드 등 다양하게 있습니다. 보통 RAID는 여러 개의 하드디
스크에 동시에 데이터를 분할해서 저장하기 때문에 빠른 속도로 읽기/쓰기가 가능합니다.


⊙ RAID 0 (Striped Disk Array without Fault Tolerance)

최소 드라이브 개수 : 2
최대 용량 : 디스크의 수 x 디스크의 용량

빠른 데이텅 입출력을 위해 데이터 스트립(데이타를 여러 디스크 드라이브에 분산 저장)을
제공하긴 하지만, 데이터를 중복해서 기록하지는 않습니다. RAID 0는 수행의 향상을 가져오
긴 하지만, 잘못된 수행을 막지는 못합니다. 그래서 만약 하나의 드라이브가 잘못된다면 모
든 데이터들을 잃어버릴 수도 있습니다.
1+1=2
간단하게 말해서 위에 숫자처럼 1과 1이 더하면 2가 되는 형식입니다.

두 개 이상의 디스크가 필요하고 준비된 디스크의 모든 용량을 사용하는 방식 입니다.
퍼포먼스는 높으나 안정성은 심하게 불안정한 편입니다.
불안정한 것은 백업되는 디스크가 없기 때문입니다. 그렇기 때문에 실제로는 잘 쓰지 않습
니다.


⊙ RAID 1 (Mirroring and Duplexing)
최소 드라이브 개수 : 2
최대 용량 : (디스크의 수/2) x 디스크의 용량

두 개 이상의 디스크를 붙여서 하나의 디스크처럼 사용하는 건 위의 RAID 0과 같지만
RAID 0과는 다르게 두 개의 디스크 중에 절반의 용량을 실제 가용용량으로 정하고 나머지
절반의 용량은 백업에 쓰인다는 점이 틀립니다.
1+1=1
쉽게 설명하면, 두 개의 디스크 중 하나는 실제 사용하는 디스크이고 다른 하나는 백업용
디스크라고 생각하면 됩니다. 동일 파일이 2개가 존재합니다.
입/출력 퍼포먼스는 RAID 0 보다 상당히 떨어지고 안정성은 높습니다.
하나의 디스크에서 에러가 발생할 경우 복사된 데이터 파일을 이용해서 복구가 가능합니다.
따라서, 빠른 기록 속도와 함께 장애 복구 능력이 요구되는 경우 사용됩니다.


⊙ RAID 2

ECC 기능이 없는 드라이브를 위해 해밍(hamming) 오류 정정 코드를 사용합니다.
SCSI 디스크 드라이브는 기복적으로 에러검출 능력을 갖고 있기 때문에 RAID2는 사용하지
않습니다. RAID 3에 비해 장점이 없어 거의 사용하지 않습니다.


⊙ RAID 3

최소 드라이브 개수 : 3
최대 용량 : (디스크의 수 - 1) x 각 디스크의 용량

Parity정보를 위한 전용 디스크를 사용하고, 나머지 디스크 드라이브에 Byte 단위로 데이터
를 균등하게 분산 저장합니다. Read의 성능은 RAID 0과 동일하나 Write 성능은 Parity 계산
으로 인해 성능 저하가 있습니다. 1개의 디스크 드라이브가 오류가 나는 것을 허용합니다.
장애 발생시 컨트롤러가 전용 패리티 드라이브로부터 장애가 생긴 드라이브의 손실된 데이
터를 가져와 복구/재생 합니다.
RAID 4와 유사하나 분산 저장을 경제적으로 수행하기 위해 하드웨어적인 지원이 요구되며
효율적인 동작을 위해 동기 가능한(synchronized-spindle)드라이브 사용합니다.


⊙ RAID 4

최소 드라이브 개수 : 3
최소 드라이브 개수 : 3

모든 데이터를 Block 단위로 분산 처리합니다. 이때 모든 Block들은 각 디스크에 균등하게
저장되진 않습니다. 또한, RAID 3처럼 Parity 정보를 독립된 디스크에 저장합니다..
데이터를 읽을때는 RAID 0에 필적하는 우수한 성능을 보이나, 저장할 때는 매번 Parity 정
보를 갱신하기 때문에 속도가 떨어집니다.
RAID 3처럼 1개의 디스크 드라이브가 오류가 나는 것을 허용하며, 하나의 디스크 장애에
대해서는 완벽하게 대처하고, 두 개 이상 장애 발생에는 데이타 손실이 발생합니다.
병목 현상이 발생하면 전체 스토리지의 성능 저하가 발생합니다.


⊙ RAID 5

최소 드라이브 개수 : 3
최대 용량 : (디스크의 수 - 1) x 디스크의 용량

1+1+1=2
세 개 이상의 디스크를 붙여서 하나의 디스크처럼 사용하고 각각의 디스크는 패리티 정보를
가지고 있어 하나의 디스크가 깨져도 다른 두 개의 디스크를 이용해서 깨진 디스크를 복구
시킬 수 있습니다.
패리티를 담당하는 디스크가 병목 현상을 발생시키지 않아서, 멀티프로세스 시스템과 같이
작은 데이터가 기록이 수시로 발생할 경우 더 빠른 속도를 냅니다.
읽기 작업일 경우 각 드라이브에서 패리티 정보를 건너뛰어야 하기 때문에 RAID 4보다 속
도가 느립니다.
장애 발생시 데이터 복구에 대하여는 아래 그림을 참고하여 설명 드리겠습니다.

일단 disk 1 의 Data가 깨져서 Disk1을 사용하지 못하게 된다고 가정하겠습니다.
그럼 가용 Data중의 A, D 부분을 못쓰게 됩니다.
소실된 내용은 Disk2 와 Disk3 의 Parity에서 가지고 옵니다.
그럼 이제 Disk1을 복구시키거나 대체하여 새로운 Disk1을 생성하고 나머지 Disk2와 Disk3
의 Parity 부분의 A와 D를 복사하면 문제가 해결됩니다.
이 방법은 우리나라에서 가장 많이 사용하는 것이기도 하고 입/출력 퍼포먼스나 안정성면에
서 적당한 수준에 있어 많이 사용합니다.
단점은 세 개의 디스크로 RAID 5를 구성 시에 두 개 이상의 디스크가 깨지면 복구할 수 없
다는 것입니다.


⊙ RAID (6 Stripe set with dual distributed parity)

최소 드라이브 개수 : 3
최대 용량 : (디스크의 수 - 2) x 디스크의 용량

하나의 Parity를 두 개의 Disk에 dual로 분산 저장하는 방법으로 두 개의 drive에 오류가 발
생하여도 정상적으로 동작합니다.
Storage가 많은 큰 시스템에서는 rebuild time이 증가하게 되는데 이 시간이 증가할수록
rebuild 중간에 다른 dirve에 오류가 발생하여 시스템 전체에 오류가 생길 수 있습니다. 따
라서 큰 시스템에서 Raid 6를 사용하면 Disk 두 개에 오류가 생겨도 정상 동작을 하기 때문
에 rebuild time에 여유가 있어 risk가 줄어듭니다.
단, 쓰기속도는 Parity를 여러 번 갱신해야 하기 때문에 RAID 5보다 떨어집니다. 디스크를
재구성하는 동안 성능이 나빠질 수 있습니다.


⊙ RAID 1+0 (Striping & Mirroring)
최소 드라이브 개수 : 4

1+1+1+1=2
말 그대로 RAID 0 기술과 RAID 1기술의 복합체입니다.
네 개 이상의 디스크를 2개씩 RAID 1 로 묶고, 묶은 것을 다시 RAID 0 으로 묶습니다.

내용은 위에 언급했던 RAID 기술과 다를게 없습니다.
하지만 mirroring 에서 끝나는게 아니라 mirroring 된 두 개의 디스크를 다시 striping 시켜
서 퍼포먼스를 향상 시킨다는 점이 다릅니다.
이 방법으로 RAID 0 (stripe)의 중요한 단점인 안정성의 불안을 없앨 수 있고,
RAID 1(mirror)의 최대 단점인 퍼포먼스를 대폭 향상 시킬 수 있습니다.
최고의 안정성과 높은 퍼포먼스를 보장하지만 RAID를 이용하는데 많은 비용이 소모된다는
단점이 있습니다.


⊙ RAID 0+1

최소 드라이브 개수 : 4

1+1+1+1=2
말 그대로 RAID 0 기술과 RAID 1기술의 복합체입니다.
네 개 이상의 디스크를 2개씩 RAID 1로 묶고, 묶은 것을 다시 RAID 0로 묶습니다.
내용은 위에 설명했던 RAID 1+0과 동일합니다.
역시 동일하게 RAID 0 (stripe)의 중요한 단점인 안정성의 불안을 없앨 수 있고,
RAID 1(mirror)의 최대 단점인 퍼포먼스를 대폭 향상 시킬 수 있습니다.
여기서 중요한건 0+1 이라고 해서 stripe 된 다음 mirroring 되는게 아니라
mirroring 된 다음 stripe 된다는 것이 중요합니다.
최고의 안정성과 높은 퍼포먼스를 보장하지만 RAID를 이용하는데 많은 비용이 소모된다는
단점이 있습니다.
RAID 1+0 과 RAID 0+1 은 비슷해 보이나 RAID 1+0을 선호하는 편입니다.



※ Raid 10과 Raid 0+1의 차이점

⊙ RAID 0+1

RAID 0+1로 10개의 HDD를 묶는다고 하면, 먼저 RAID 0로 묶고나서 RAID 1로 묶는 것을
말합니다.
1) RAID0으로 5개씩 묶습니다.
RAID 0 [1,2,3,4,5], RAID0 [6,7,8,9,10] 이렇게 2개의 묶음이 생깁니다.
각각을 R0, R1 이라하면,
2) RAID1으로 2개를 묶습니다.
RAID 1 [R0,R1]
RAID 1 [RAID0[1,2,3,4,5], RAID0[6,7,8,9,10]] 이렇게 묶입니다.

⊙ RAID10
RAID10으로 10개의 HDD를 묶는다고 하면, 먼저 RAID 1로 묶고나서 RAID 0로 묶는 것을
말합니다.
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]
RAID 0 [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]는 깨집니다. RAID 0는 하나라도 문제가 생기면 전체가 중지되어
버립니다.
그러나, 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의 경우 시간이 엄청나게 단축됩니다.
신고
Posted by YearningSoul

댓글을 달아 주세요