본문 바로가기
㏈ª By β┖υΕJini/서버보안

RAID 가 도대체 뭘까?

by ㏈ª ☞ β┖υΕJini.κR 2008. 11. 12.

사용자 삽입 이미지



왜 난 맨날 레이드들이 헷깔릴까... 첨에 읽을때는 이해가 되는데 설명 할려면 맨날 헷깔리는 나...

머리가 너무 나쁜것 같다.

많은 서버들이 레이드로 구성하여 사용 되고 있다.

이번 에는 RAID 대해서 정리해 보도록 하자.



RAID란?

 RAID는 Redundant Array of Inexpensive (or Independant) Disks의 약어이다
 RAID 시스템은 여러 드라이브의 집합을 하나의 저장장치처럼 다룰 수 있게 하고, 장애가 발생했을 때
 데이터를 잃어버리지 않게 하며 각각에 대해 독립적으로 동작할 수 있도록 한다
 1988년 버클리의 David Patterson, Garth Gibson, Randy Katz가 SIGMOD에서
 "A Case for Redundant Arrays of Inexpensive Disks (RAID)"라는 논문을 발표했다
 이 논문은 데이터와 패리티 정보를 디스크에 배치하는 방법에 따라 디스크 어레이를 분류하고 있는
 데, 이것이 이후 RAID level이라고 불리게 된다 절대적이지도 않고 가능한 모든 아키텍처를
 수용하고 있는 것도 아니다
 기본적인 RAID의 개념은 작고 값싼 드라이브들을 연결해서 크고 비싼 드라이브 하나
 (SLED: Single Large Expansive Disk)를 대체하자는 것이다
 
 기본정의
  장애 발생요인을 최대로 제거한 고성능의 무정지 대용량 저장장치
  여러 개의 HDD를 하나의 Virtual Disk로 구성하므로 대용량 저장 창치 구축가능 
  다수의 HDD에 Data를 분할하여 병렬 전송함으로써 전송 속도 향상 
  시스템 가동 중 Disk Module 고장 시에도 시스템 정지 없이 새 Disk 로 교체하면서
  원래의 Data 를 자동복구
  기원
  1986년 미국UCBerkely 컴퓨터 공학과
  발표지 : “ A Case for RAID ” 
  연구자
  David a Patterson
  Garth Gibson
  Randyh Kats 공동발표 

목적및 이론의 근거
소량이면서 저가인 PC Type의 Disk Error 에 대한 연구  
중복 구성된 Disk Group에 Data를 Byte, Block, Segment 단위로 나누어 병렬로 동시에 기록  
Disk의 일부용량에 Data가 아닌 Parity정보를 처리하고 기록  
Fail Disk 교체 시 RAID내에서 Parity정보를 이용하여 Data복구기능을 수행  
Data Disk가 파손되어도 Host에 서는 RAID내의 Parity 정보를 이용하여 Read/Write 작업을
지속적으로 수행 

RAID의 장점

 고 가용성 / 데이터 보호 
 시스템에 있는 디스크의 수가 증가함에 따라 그중 한 디스크가 장애를 일으킬 가능성도 함께
 함께 증가한다 그러므로 디스크 어레이는 어느 한 디스크의 장애에 면역성을 가져야 한다 
 미러링은 간결하지만 실 저장용량의 두배에 해당하는 디스크를 필요로 한다
 인코딩 기법은 요구되는 여분의 디스크 용량을 감소시키기 위해 사용된다 
  드라이브 접속성의 증대
 운영체제에게 여러개의 물리적 드라이브가 하나의 논리적 드라이브로 보임으로서 논리적 
 드라이브 수의 제한을 피할 수 있다 
  저렴한 비용과 작은 체적으로 대용량 구현
 여러개의 소용량 드라이브로 대용량 드라이브를 대체할 수 있다 
  지능형 콘트롤러에 의한 유연성 
  특정 상황에서의 효율성 증가 
 효율성은 하나의 디스크 입출력 요구에 대하여 여러 디스크에 데이터를 분산시키고 병렬적으로
 입출력을 처리함으로서 증가될 수 있다 
  데이터 분산에 의한 효율성의 재고
 디스크 어레이 (RAID) 의 목적은 데이터 가용성과 총 저장 용량을 증가시키며 여러 물리적
 디스크에 데이터를 적절히 분산시킴으로서 효율성을 재고시키는 것이다 

RAID 의 LEVEL

현재 가장 많이 사용 되는 RAID 는 0+1 , 0 , 1 ,5 에 대해서 알아 보았으면 한다.

RAID 0

RAID level 0은 장애 발생에 대비한 여분의 저장공간을 갖지 않는다. 그러므로 엄밀히 이야기하자면 RAID의 정의에 부합된다고 볼 수 없다. Level 0에서 데이터는 빠른 입출력이 가능하도록 여러 드라이브에 분산된다.
여분의 정보를 기록하지 않기 때문에 성능은 매우 뛰어나지만, 어느 한 드라이브에서 장애가 발생하게 되면 데이터는 손실된다. 이 레벨은 striping이라고 부른다.

RAID 1

RAID level 1은 한 드라이브에 기록되는 모든 데이터를 다른 드라이브에 복사해 놓는 방법으로 복구능력을 제공한다. Level 1 array는 하나의 드라이브를 사용하는 것에 비해 약간 나은 정도의 성능을 제공한다. (읽을때 더 빠르며, 쓸때는 약간 느리다. 하지만 ECC를 계산하지 않기 때문에 RAID4나 5보다는 빠르다.)
이 경우 어느 드라이브가 고장나더라도 데이터의 손상은 일어나지 않는다.
이것은 단 두대의 드라이브만으로 시작할 수 있기 때문에 RAID 시스템을 처음 구축하는 사람에게 입문용으로 적합하다. 하지만 전체 용량의 절반이 여분의 데이터를 기록하기 위해 사용되기 때문에 저장용량당 단가가 비싸다. 이 레벨은 mirroring이라고 부른다.

RAID 5

RAID level 5는 패리티 정보를 모든 드라이브에 나누어 기록한다. 패리티를 담당하는 디스크가 병목현상을 일으키지 않기 때문에, level 5는 멀티프로세스 시스템에서와 같이 작고 잦은 데이터 기록이 있을 경우 더 빠르다. 하지만 읽어들이기만 할 경우 각 드라이브에서 패리티 정보를 건너뛰어야 하기 때문에 level 4 array보다 상당히 느리다. 용량당 비용은 level 4와 같다.

RAID 1+0



..High Data Transfer Performance