RAID (Redundant Array of Inexpensive Disks)

RAID란?

여러 개의 디스크를 묶어 하나의 디스크처럼 사용하는 기술이다.

 

과거에는 주로 용량이 작은 디스크들을 연결해 디스크 용량을 높이기 위해 사용했다. 오늘날에는 디스크 성능 향상에서 나아가 디스크 오류나 데이터 손실 등 장애에 대비하기 위한 용도로도 사용되고 있다. 서버에 저장되는 데이터의 경우, 손실 또는 유출에 대비해야 한다. 그래서 많은 서버 관리자는 RAID 구성을 통해 디스크의 가용성을 높이거나 서버 데이터의 안정성을 확보할 수 있다.

 

RAID의 장점

  1. 운용 가용성, 데이터 안정성 증대
  2. 디스크 용량 증설의 용이성
  3. 디스크 I/O 병렬화로 인한 성능 향상

 

앞으로 패리티(Parity)라는 단어가 자주 등장할 것인데, 패리티란 무엇일까?

디스크에 장애가 발생했을 때 데이터 복원을 위해 사용되는 부호이다.

RAID에 데이터를 쓸 때 자동적으로 생성되는데, 장애가 발생했을 때 남아있는 데이터와 패리티를 조합하여 데이터를 복구할 수 있다.

 

구성방식

자주 사용되는 RAID 구성방식별 특징을 알아보고자 한다.

 

RAID 0

Striping이라고도 부르는 방식이다.

최소 2개의 용량이 같은 디스크가 필요하며 RAID를 구성하는 모든 디스크에 데이터를 분할하여 저장한다.

전체 디스크를 동시에 사용하기 때문에 성능은 단일 디스크의 n배이며 용량도 n배이다.

하지만 하나의 디스크라도 문제가 발생할 경우 전체 RAID가 깨지는 일이 발생하기 때문에 안정성은 1/n로 줄어든다.

 

 

RAID 1

Mirroring이라고도 부르는 방식이다.

최소 2개의 디스크가 필요하며 모든 디스크에 데이터를 복제하여 기록한다. 즉, 동일한 데이터를 n개의 각 디스크로 복제하여 저장하는 방식이다.

여러 개의 디스크로 RAID를 구성해도 실제 사용 가능한 용량은 단일 디스크의 용량과 동일하다.

신뢰성이 높지만, 공간 효율이 좋지 않고, 비용 문제로 인해 거의 사용하지 않는다.

 

 

RAID 5

블록 단위로 striping을 하고 ECC를 위해 패리티를 1개의 디스크에 저장한다.

단, 패리티 저장은 고정된 디스크에 하지 않고, 매번 다른 디스크에 저장한다. (RAID 4의 단점을 개선한 것)

용량 및 성능이 단일 디스크 대비 n-1배 증가하며 최소 3개의 디스크가 필요하다.

 

 

RAID 6

RAID 5에서 성능과 용량을 줄이고, 안정성을 높은 방식이다.

블록 단위로 striping을 하고 ECC를 위해 패리티를 2개의 디스크에 저장한다.

단, 패리티 저장은 고정된 디스크에 하지 않고, 매번 다른 디스크에 저장한다.

용량 및 성능이 단일 디스크 대비 n-2배 증가하며 최소 4개의 디스크가 필요하다.

 

 

Nested RAID

Nested RAID는 Standard RAID를 여러개 중첩하여 사용하는 방식이다.

 

RAID 0+1

mirroring 전에 striping을 진행해 디스크가 불량이 나면 그룹핑된 RAID 0의 데이터 전체를 복구한다.

Disk0과 Dist2가 다운되면 모든 볼륨이 다운되어 사용할 수 없게 된다.

 

 

RAID 1+0

mirroring 후에 striping을 진행해 미러링으로 묶인 디스크를 통하여 손실된 데이터만을 복구한다.

Disk0과 Disk2가 다운되어도 복구하면 된다.

 

 

 

 

참고링크

+ Recent posts