본문 바로가기
컴퓨터

[데이터베이스] RAID

by skyjwoo 2020. 6. 17.
728x90
반응형

 

RAID(Redundant Array of Inexpensive Disks): 보조기억장치의 성능과 신뢰성을 향상시키기 위한 디스크 구성 방법이다. 성능 향상을 위해 디스크를 병렬적으로 구성하며, 조합 패턴에 따라 레벨 0, 1, 5로 구분되고 이 패턴들을 한 번 더 조합하여 10, 0+1 등으로 디스크를 구성할 수 있다.

 

RAID 구성 별 특징

 

RAID level 0

Striping을 한다. 이는 여러 개의 디스크를 하나의 디스크처럼 동작하도록 한다는 것이다. 데이터를 디스크의 개수만큼 분할하여 저장하거나 불러온다. 예를 들어 File A를 5개의 disk에 분할하여 저장한다면, $A_1$, $A_2$, $A_3$, $A_4$, $A_5$로 나뉘어져 5개의 disk에 저장될 것이다. 이 데이터를 읽어들일 땐, $A_1$~$A_5$를 각각의 disk에서 불러와 하나로 합한 후(즉, A가 된다.) 읽어들인다. [각주:1] 여기서 다른 건 몰라도 block transfer time은 5배 빨라질 수 있음을 예상해 볼 수 있다. 

또 level 1, level 5에 비해 추가적인 데이터 쓰기가 없으므로, 쓰기 속도가 가장 빠르다고 볼 수 있다. 이렇게 다른 구성에 비해 성능이 좋기에 신뢰성 보단 성능이 많이 요구되는, 읽기, 쓰기가 자주 일어나지만, 그리 중요하진 않은 파일을 관리할 때 자주 쓰인다.

 

 

RAID level 1

단순하게 디스크를 복사하는 방법이다. shadowing, mirroring이라고도 한다. 이렇게 구성하면, 디스크 하나가 깨지더라도 다른 하나로 서비스가 가능하다. 즉, reliability를 보장한다.  쓰기 시에 두 디스크에 모두 작성이 완료되어야 작업이 완료된 것으로 쓰기 성능은 떨어지나, 읽을 때에는 둘 중 빨리 읽은 데이터를 전송하면 되기에 읽기 시에 어느 정도 이득을 취할 수 있다. Log같은 매우 중요한 데이터를 저장할 때 쓰인다.

 

 

RAID level 5

이 방식은 성능과 신뢰성 두 가지를 보장하고자 했다. level 0이 쓴 스트라이핑 방식과 , 디스크 오류를 검출할 수 있는 추가 정보를 기록해 신뢰성을 보장하고자 했다. 이 추가 정보의 예로는 패리티 비트(parity bit)가 있다. 한 디스크에 많은 부하가 가해지는 것을 방지 하기 위해 여러 디스크에 돌아가며 추가 정보를 기록한다. table data처럼, 신뢰도와 성능이 어느 정도 보장된 저장 장치가 필요할 때 쓰인다.

 

RAID level5, p가 붙은건 parity bit이다.

여러 결합 방식이 중첩적으로 쓰인 nested RAID 방식은 10, 0+1, 50 등의 방식이 있으며, 이를 통해 각각의 구성 방식의 한계를 어느 정도 보완할 수 있다. 주로 10, 50 방식이 자주 쓰인다. 

 

RAID 10

RAID 1이 먼저 구성 된 후 이를 RAID 0으로 합한 형태이다. RAID 1 중 하나가 통째로 날라가지 않는 이상 서비스가 가능하다. RAID 1의 신뢰성과 RAID 0의 성능 향상을 어느 정도 얻어낼 수 있다.

RAID 50

RAID 5가 먼저 구성 된 후 이를 RAID 0으로 합한 형태이다. parity bit가 양 쪽에서 병렬적으로 작동 가능하기에 신뢰도가 더 높아졌고, 복구 속도 또한 빨라졌다. 만일 RAID 5만으로 구성했다면, 5개의 디스크에 대한 parity를 구해야 하지만, 여기선 각각 3개의 디스크에서만 구하면 된다. 

 

  1. 데이터를 나누고 합하는 건 RAID controller에 의해 이뤄진다. [본문으로]
728x90
반응형

댓글