출처 :  http://blog.naver.com/ldbina/120047918516



RAID란 무엇인가



 

RAID의 정의와 종류

RAID는 'Redundant Array of Inexpensive Disks'의 약어로, 여러 디스크를 한 디스크처럼 사용하도록 함으로써 비용을 절감하면서도
신뢰성을 높이고, 또한 성능을 향상시키기 위한 저장 장치를 의미한다.

RAID의 종류는 크게 하드웨어 RAID와 소프트웨어 RAID로 나눌 수 있다.


1) 하드웨어 RAID
하드웨어 RAID는 하드웨어 제조업체에서 여러 하드디스크를 이용해서 장비를 만들고 그 자체를 공급하는 것이다.
하드뒈어 RAID는 좀 더 안정적이고, 기술 지원을 각 제조업체에서 받을 수 있어서 많이 선호하는 방법이다. 단점은 가격이 꽤 비싸다. 수억 원대를 호가하기도 하며, 저렴해도 몇 천만원대를 하는 게 보통이다. 대부분의 하드웨어 RAID는 SCSI 하드디스크를 사용하지만, 최근 저렴한 IDE 하드디스크를 이용하여 만들어진 장치도 종종 있다.


2) 소프트웨어 RAID
고가의 하드웨어 RAID 대안으로, 하드디스크만 있으면 운영체제에서 지원하는 방식으로 RAID를 구성하는 방법을 말한다. 하드웨어 RAID에 비해서 신뢰성이나 속도 등이 떨어질 수 있지만, 아주 저렴한 비용으로 좀더 안전한 데이터의 저장이 가능하다는 점에서 적극 고려해 볼 수 있는 방식이다.

앞으로 소개하는 방식은 모두 소프트웨어 RAID 방식이지만, 하드웨어 RAID도 같은 개념으로 하드웨어에 구현했다는 것일 뿐 별반 다르지 않다.





RAID 레벨

RAID는 구성 방식에 따라 기본적으로 0,1,2,3,4,5 까지 6개로 분류할 수 있다.
실무에서 주로 사용되는 방식은 RAID 0, 1, 5와 RAID 5의 변경인 5+1, 6 그리고 RAID 0과 1의 혼합인 RAID 0+1, RAID 10 등이다.


1) 단순 볼륨
하나의 하드디스크를 하나의 볼륨으로 사용하는 방법으로, RAID 방식에는 포함되지 않는다. 앞 전에 설명했던 "하드디스크 한 개 추가"가 이에 해당한다.



2) LVM과 RAID 0
LVM은 RAID 방식에는 포함되지 않지만, 비슷한 개념으로 사용된다. 하드디스크가 최소 2개 필요하다. LVM을 사용자 기준으로 본다면 RAID 0과 별반 차이가 없어 보인다. 2개 이상의 하드디스크를 1개의 볼륨으로 사용한다는 점은 비슷해 보이지만 가장 큰 차이점은 저장되는 방식이다.

LVM 방식은 2개의 하드디스크를 1개의 볼륨으로 사용하며, 파일이 저장되는 방식은 앞 하드디스크에 데이터가 완전히 저장된 후에 다음 하드디스크에 데이터가 저장된다. 즉, 앞 하드디스크에 데이터가 완전 저장되지 않는다면 다음 하드디스크는 전혀 사용되지 않는 것이다. 반면, RAID 0 방식은 모든 디스크를 동시에 사용한다.

즉,
LVM은 첫 번째 하드디스크가 모두 채워진 후에 두 번째 하드디스크를 사용하기 시작한다. RAID 0은 첫 번째, 두 번째, 세 번째 하드디스크에 동시에 저장된다.

예를 들어 "안녕하세요? 반갑습니다"라는 내용이 저장될 때 다음의 모습과 같다.

RAID 0 에는 "안세반니"
RAID 1 에는 "녕요갑다"
RAID 2 에는  "하?습"


여기서 "동시에"라는 말은 중요한 의미를 지닌다. LVM에서 "안녕하세요?반갑습니다"가 저장되는 시간이 한 글자당 1초라고 가정하면
LVM의 경우에는 총 11초의 시간이 저장되는 데에 소요된다. RAID 0의 경우에는 동시에 3개를 사용하므로 각 하드디스크당 4글자가 저장되어 4초면 저장이 완료된다. 이렇게 여러 하드디스크에  동시에 저장되는 방식을 '스트라이핑(Stripping)' 방식이라고 부른다. 이렇게 RAID 0 방식은 저장되는 시간 또는 속도적인 측면에서 RAID 방식 중 성능이 가장 뛰어나다고 할 수 있다. 또한, 디스크의 개수만큼 용량을 모두 사용하므로 공간 효율이 아주 좋다.

단점을 살펴보자. RAID 0의 경우 세 하드디스크 중 하나가 고장 날 경우에는 모든 데이터를 잃어버리게 된다. 두 번째 하드디스크가 고장
났다고 생각하고 글자를 읽으면 "안X하X요X반X습X다"가 될 것이다. 이를 가지고 원래의 데이터가 무엇이였는지 예측할 수는 없다. 즉, 전혀 쓸모 없는 데이터가 되는 것이다. 그러므로, RAID 0 방식을 사용하는 데이터는 '빠른 성능을 요구하되, 혹시 전부 잃어버려도 큰 문제가 되지 않는 자료'를 저장하는 데 적절한 방식이라고 생각할 수 있겠다.



3) RAID 1
RAID 1의 핵심은 미러링(Mirroring) 이라고 할 수 있다. 즉, 똑같은 데이터의 거울을 만들어 놓는다는 것이다. 예를 들어, 2개를 RAID 1 방식으로 "안녕하세요?반갑습니다"를 저장하면 11Byte를 저장하는 데 그 두 배인 24Byte가 소요된다. 즉, 데이터를 저장하는 데 두 배의 용량이 필요하다. (총 용량의 절반밖에 사용하지 못한다는 말이다)

장점은, 두 디스크 중 하나가 고장나더라도 데이터는 손상되지 않는다는 것이다.
이것을 "결함 허용(Fault-tolerance)을 제공하다"라고
표현하기도 한다.

단점은 두 배의 저장 공간이 필요하다는 것이다. 즉 비용이 두 배로 든다.
(또는 공간 효율이 떨어진다고 표현한다)
RAID 1 방식을 사용하기에 적당한 경우는 '하드디스크가 고장나도 없어져서는 안 될 중요한 데이터'가 있을 때라고 생각하면 된다. 즉, 비용이 많이 들더라도 중요도가 높은 데이터들을 저장하면 될 것이다.

이번에는 저장되는 속도를 생각해 보자. 똑 같은 데이터를 두 번 저장하므로, 두 배의 시간이 걸린다고 생각할 수도 있겠지만,
똑같은 데이터가 다른 하드 디스크에 동시에 저장되는 것이므로, 저장되는 속도는 빠르지도 느리지도 않는다고 말할 수 있다.위의 예에서 11Byte가 11초 걸린다면, 각각 저장되는 것이므로 총 11초의 시간이 걸린다고 할 수 있겠다.


   RAID 0  RAID 1 
 성능 (속도)  뛰어남   변화 없음 
 데이터 안정성 (결함 허용)  보장 못함 (결함 허용 안 함)  보장함(결함 허용함)
 공간 효율성   좋음   안 좋음

 



4) RAID 5
RAID 1 처럼 데이터의 안전성이 어느 정도 보장되면서 RAID 0 처럼 공간 효율성도 좋은 장점을 어느 정도 포용하는 방식이다. RAID 5는 최소한 3 개 이상의 하드디스크가 있어야만 구성이 가능하며 대개는 5개 이상의 하드디스크로 구성된다. 하드디스크에 오류가 발생했을 때에는 패리티(Parity)를 이용해서 데이터를 복구할 수 있다.

예를 들어 "000 111 010 011"(12bit) 라는 데이터를 하드디스크 4개로 구성된 RAID 5에 저장해 보도록 하자.

짝수 Parity면 각 행은 짝수가 되어야 한다.

       sda   sdb   sdc    sdd
        0       0       0       (0) ===> 0+0+0+Parity는 짝수가 되어야 하므로 Parity는 0이 입력된다.
        1       1      (1)       1  ===> 1+1+Parity+1도 짝수가 되어야 하므로 Parity는 1이 된다.
        0      (1)      1        0
       (0)      0       1        1


이렇게 저장이 완료된 RAID 5 는 어느 정도의 결함을 허용한다. 4개의 디스크 중 1개가 고장 나더라도 원래 데이터를 추출할 수 있다.
두 번째 디스크인 sdb가 고장났다면 "0+알수없음+0+0=짝수" 이어야 하므로 sdb의 값은 '0' 이 되는 것을 예측할 수 있다. 나머지도 마찬가지로 유추해 낼 수 있으므로 원래의 데이터를 손실 없이 사용할 수 있다.

RAID 5 의 장점은
어느 정도의 결함 허용을 해주며 저장 공간의 효율도 좋다는 것이다. 만약, 4 개의 디스크를 각각 4GB라고 한다면 총 사용할 수 있는 공간은 3GB이다. 전체 용량의 75%를 사용할 수 있다. 예를 들어 RAID 5를 1GB 디스크 10개로 구성했다면, 전체 10GB 중 1개의 패리티로 사용하는 1GB를 제외한 나머지 9GB를 사용할 수 있으므로 전체 용량의 90%를 사용할 수 있는 것이다. (디스크의 개수가 N개라고 하면, N-1 만큼의 공간을 사용할 수 있다.)



5) RAID 6
RAID 5 방식을 사용하다 디스크 1개가 고장나더라도, 데이터에는 이상이 없는 것을 확인했다. 하지만, 디스크 10개를 RAID 5로 구성 했을 때 디스크 2개가 동시에 고장난다면 어떻게 될까?? 모든 데이터는 전혀 복구될 수 없다. RAID 6 방식은 RAID 4 방식의 개선으로, RAID 5 는 패리티를 사용하지만, RAID 6는 2개의 패리티를 사용함으로써 공간 효율은 RAID 5 보다 약간 떨어지지만, 2개의 디스크가 동시에 고장나도 데이터에는 이상이 없도록 하는 방식이다. 디스크 10개로 구성한다면 1개당 1GB라고 했을 때, '디스크 개수-2' 인 8GB 의 용량을 사용할 수 있다.

RAID 6 은 최소 네 개로 구성해야 한다.
즉, 장점은 RAID 6 은 RAID 5 보다 공간 효율은 떨어지지만 데이터에 대한 신뢰도는 좀 더 높아지는 효과를 갖는다.

단점은, RAID 5 는 패리티를 1개만 생성하면 되지만, RAID 6 은 패리티를 2개 생성해야 하므로, 내부적인 쓰기(Write) 알고리즘이 복잡해져서 성능(속도)은 RAID 5에 비해 약간 떨어진다는 것이다.



6) RAID 0+1 방식
이름에서 알 수 있듯이 RAID 0(Stripping) 한 데이터를 RAID 1(Mirroring)하는 방식이다. 공간 효율성은 RAID 1과 마찬가지로 50% 밖에 안되므로 비용이 많이 든다. "안녕하세요?반갑습니다"를 저장하면 2개의 디스크에 빠른 속도로 저장되고, 동시에 그 복사본이 다른 디스크 2개에 생성된다. 신뢰도는 RAID 5 와 같은 수준이다. 즉, 두 개가 동시에 고장나면 복구할 수 없다.



7) RAID 10 방식
RAID 0 한 데이터를 다시 RAID 0 하는 방식이다. 신뢰성(안전성)과 성능(속도)가 0+1 에 비해서 더욱 뛰어나다.




': H/W' 카테고리의 다른 글

ReadyNAS Pro  (0) 2010.08.24
온습도 데이터 기록 로거  (0) 2010.06.09
스토리지 RAID 종류 및 특징  (0) 2009.10.29
IBM System p570  (0) 2009.08.13
[Nas] "System Corrupted No USB flash module has been found"  (0) 2009.02.13

+ Recent posts