약간의 수정후 재포스팅합니다.
  레이드(RAID)
라고 
    누구나 한번쯤은 들어 봤을 듯합니다.

PC를 많이 접하지 않는 분이시라면 바퀴잡는 레이드가 떠오르실 것이고, 게임을 많이 하시는 분이라면 온라인 게임에서의 보스급 몬스터 사냥 레이드~!!

그러나 제가 약간 언급할것은
HDD 구성의 Riad입니다 .^^


PC 부품중에서 ODD (CD/DVD/Multi)를 제외하고
유일하게 아날로그적인 요소들어간게 HDD 이고
기계적인 동작 구조로 인해 급격한 성능 향상이 쉽지 않기 때문에 PC 부품중에서 가장 느린 부분으로 인식
되어 온 것도 어느정도 사실입니다.


  레이드는 이런 HDD의 성능을 유일하게 향상 시킬수 있는 방법이었으나 추가 적인 비용이 많이 들어서 일부 하이엔드 유저나 보다 빠른 게임을위한 몇몇 유저들만이 사용하는 시스템구성이었습니다.
 그러던것이 하드용량의 증가와 함께 HDD의 가격이 하락되는 시점에서 알려질듯 하다가... SSD의 출현이 그 앞을 가로 막고 있지 않나 합니다. 

 SSD의 레이드 구성~!!!
  HDD로 도미노 게임 해보는것 다음으로 꼭 구성해보고 보고 싶은 희망이 있지만... 주머니 사정상 내년을 기약해야 될듯 합니다. 일단 단일 SSD의 성능 만으로도 충분히 만족하니까요 ^^ (일단 케이스가 먼저~ ^^)



RAID Redundant Array of Inexpensive Disks 또는 Redundant Array of Independent Disks )

1988년 버클리 대학의 3명의 과학자가 제안한 이론으로 그 당시에는 하드디스크의 용량이 제한적이었고, 함부로 사용하는 이도 드물 정도로 값도 비쌌기 때문에 보다 저렴하며 용량이 적고, 성능이 낮은 하드디스크를 묶어 중복 구성함으로써, 성능이 좋은 고가의 대용량 하드디스크 장비와 겨뤄 손색이 없도록 하는 것이 주목적이었습니다.

그러나 그들이 열심히 RAID를 연구하는 동안 Storage 기술의 발전으로 용량대비 가격이 지속적으로 하락하였으므로 애초 주목적이었던 가격적인 면보다는 데이터의 안정성과 에러 보정, 그리고 하드디스크의 장애에 의한 데이터의 손실을 막기 위한 측면이 강조되었고, RAID의 의미는
'Inexpensive'에서 'Independent'로 의미가 바뀌게 되었습니다.  


단순히 구성으로만 보자면 지금 많이들 사용하는 partition의 반대 비슷한 개념정도 됩니다.

파티션이 하나의 물리적인 드라이브를 여러개의 논리적 드라이브로 분할한것 이라면..
레이드는 여러개의 물리적 드라이브하나의 논리적 드라이브로 묶는 방식 입니다.
 
보다 정확한 파티션의 반대 개념은 단순히 구성을 묶기만 하는 JBOD (Just a Bunch Of Disks 또는 Just a Bunch Of Drives) 가 더 가까울듯 합니다. 이것은 여러 개의 물리 드라이브를 논리적인 하나의 커다란 드라이브로 결합해주는 것일 뿐, 각각의 드라이브를 독립적으로 사용하는 것에 비해 어떠한 장점도 없으니까요.

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


레이드는 하드디스크가 묶이는 방식에 따라 레벨로 나뉘어지며 효율성과 안정성을 고려하여
레벨을 결정하게 됩니다.
초기 RAID는 6단계의 레벨로 나뉘어졌으나,
현재에는 보다 많은 RAID 레벨이 존재하고 있습니다.
레벨은 성능순이나 중요도순으로 숫자가 정해진 것은 아니므로, RAID 레벨 1이 RAID 레벨 0보다 우수하다거나 하는 등으로 단정지어서는 안됩니다.


RAID Level 0  ( 레이드 0 ) : 필요 드라이브 최소 2개이상
스트리핑 구성시 충족요건은..같은 모델의 하드디스크와 같은 용량이어야 한다는 전제 조건이 있습니다. 

레이드 0 구성시 중요데이터는 반드시 Back-up 하셔야 합니다.
레벨 0은 RAID의 가장 기본적인 구현방식으로 Striping(스트라이핑)이라고 합니다.
이것은 하나의 데이터를 여러 드라이브에 분산 저장을 함으로써 빠른 입출력을 가능하게 합니다. 

          1부터 100까지의 숫자로 이루어진 데이터가 있다면

          이것을 1부터 100까지 순서대로 읽게 되는 상황이 일반적인 하드디스크의 구성이고 
          2개의 하드 디스크로 레벨0 을 구성하면 하나는 1~50 까지만 읽고 
          다른 하나는 51부터 100까지만 읽고 저장하기 때문에 그 속도는 2배가 됩니다.
          즉 3개로 구성되면 속도는 3배가 되고 10개로 구성되면 그 속도는 1/10 로 줄어 들게 됩니다.
        

          제글의 부족한 부분을 댓글로 채워주신 분의 의견이라 첨부합니다.
          위에서 설명하셨듯이 하나의 데이터는 Stripe(스트라이프) 기술을 이용해서
          여러개의 같은, 일정한 크기로 쪼개집니다. 그리고 이 쪼개진 하나하나의 조각을 
          Stripe Unit(스트라이프 유닛)이라고 합니다.

          다시한번 말하자면, 1에서부터 100까지의 숫자로 이루어진 데이터가 있습니다.
          이 데이터는 스트라이핑에 따라 두 개의 스트라이프 유닛으로 나뉘는데
         1에서부터 50까지, 51부터 100까지 각각 두개의 스트라이프 유닛에 나뉘어 들어갑니다.

여기까지 이해하셨으면 그 다음부터는 Rapter님의 설명을 그대로 따라가셔도 좋습니다. 나뉜 두개의 스트라이프는 두개의 디스크에 차례로 들어가는 거죠.




 레벨 0은 분산 저장에만 초점이 맞춰져 있어 하드디스크의 속도 향상에는 무척 도움이 되지만,
Striping(스트라이핑) 되어 있는 하드디스크 중 1개만 장애를 일으키더라도 데이터를 모두 유실할
위험성이 있습니다.

               예 )  "어린이" 라는 단어를 2개의 드라이브(하드 디스크)로 구성된 Raid 0 에  저장한다면
                      한개의 드라이브는 "ㅇ , ㄹ, ㄴ, ㅇ" 라는 자음만 저장하고
                      다른 하나는 " ㅓ, ㅣ, ㅣ " 이런 모음만 저장합니다. 
                      따라서 저장하거나 불러오는 속도는 빠르지만 하나의 디스크에서 에러가 발생하면... 
                      완전한 데이터를  불러오지 못하게 되는 것입니다.

300GB 두개로 레이드0 을 구성하면 600GB의 단일 드라이브로 나타나고 성능 또한 2배이지만
하나의 디스크에서 손실이 발생하면 둘다 사용하지 못하게 됩니다. 안전성이 낮은 구성입니다.


RAID Level 1  ( 레이드 1 ) : 필요 드라이브 최소 2개이상

  레벨 1은 2개의 하드디스크가 사용되며, 하나의 하드디스크에 기록되는 모든 데이터가 나머지 하나의 하드디스크에 고스란히 복사되는 방법으로 저장하게 됩니다. 두 개의 하드디스크에는 한치의 오차도 없이 똑같은 데이터가 저장이 되기 때문에 Mirroring(미러링)이라고 합니다. 이 경우 2개의 하드디스크 중 1개가 장애를 일으키더라도 남은 1개의 데이터는 장애를 일으킨 하드디스크의 데이터와 똑같기 때문에 안정성 측면에서 상당히 우수한 구성입니다.


읽기에서는 성능의 향상이 있으나, 쓰기에서의 속도 향상은 별반 차이가 없고, 전체 공간의 50%만 이용할 수 있다는 문제점이 있습니다. 때문에 매우 중요한 파일을 백업 받을 일이 없는 개인 사용자의 경우 하드디스크 두 개로 한 개 용량만 사용해야 한다는 단점이 있습니다.

                                     두 레벨의 용량의 효율성을 비교하면...

                           레벨0은 속도와 용량의 효율성은 높으나 안정성이 떨어지고...
                           레벨1은 안전성은 뛰어나나 속도와 효율성이 떨어집니다.
                           그래서 나온것이 Raid 3과 4 인데...



RAID Level 2
는 기록용 드라이브와 테이터 복구용 드라이브를 별도로 두는데..
4개 하드 디스크에 기록하기 위해서는 3개의 부가 데이터를 기록해야 되기 때문에 효율성 측면에서 
거의 사용하지는 않습니다. RAID 2는 RAID 0처럼 스트라이핑 방식이지만 에러 체크와 수정을 할 수 있도록 Hamming Code를 사용하고 있는 것이 특징입니다. 레벨 4가 나오면거 거의 사용하지 않는 기술입니다. 레벨2의 설명은 요정도 패스 ^^




RAID Level 3, 4  ( 레이드 3, 4 ) : 필요 드라이브 최소 3개이상

  RAID 3, RAID 4RAID 0, 1의 문제점을 보완하기 위한 방식으로 3, 4로 나뉘긴 하지만 RAID 구성 방식은 거의 같습니다. RAID 3,4는 기본적으로 RAID 0과 같은 스트라이핑(Striping) 구성을 하고 있어 성능을 보완하고 디스크 용량을 온전히 사용할 수 있게 해주는데, 여기에 추가로 에러 체크 및 수정을 위해서 패리티(Parity) 정보를 별도의 디스크에 따로 저장하게 합니다. 

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



데이터가 저장되어 있는 드라이브에 장애가 발생되었을 경우에는 패리티 정보를 이용하여 복구할 수 있으나, 정작 패리티 정보가 저장되어 있는 하드디스크에 장애가 발생하면 복구가 불가능하다는 단점이 있습니다. 또한 패리티 하드디스크에 병목현상이 생겨 속도가 저하될 수 도 있습니다.
레이드 0의 구성에 백업용 드라이브 하나 더 달아서 안정성을 확보한 구성입니다.
그러나 레벨 3과 레벨 4의 단점을 보완한 레벨 5의 등장으로 저 역시 한번도 구성 해본적은 없습니다.


이쯤 보시면 이제 Raid에 대해서 대충 감이 오시죠? 

Raid Level 0
Striping(스트라이핑) : 데이터를 쪼개서 분산 저장 해서 속도향상
Raid Level 1Mirroring ( 미러링 )  : 안전성을 중요시 하지만 드라이브 용량 이용의 비효율성
Raid Level 3 의 Parity ( 패리티 )      : 데이터 오류 체크 기술로 레벨0읠 불안전성을 보완

이 3가지를 어떻게 구성하는냐에 따라서 Raid의 레벨이 결정됩니다.

이제 Raid 5 와 Raid 6 그리고
이들의 복합 구성인
Raid 0 +1 또는 1+0 ,  Raid 5 + 0, Raid 5 + 1 에 관해서는 다음편에... ^^  





                                    
 레이드 레벨 5, 레벨6, 또는 복합구성인 레이드01, 50 등에 관해 궁금하시면 아래 링크를  
     레이드( RAID ) 의 레벨과 구성 ( 2부 : Raid Level 5, 6, 10, 50, 60 )

Posted by Rapter
,