728x90

RAID란

RAID는 Redundant Array of Inexpensive Disks의 약자로 디스크를 병렬로 연결하여 사용하는 기법으로 

각 레벨에 따라 신뢰성을 높이거나 속도를 향상하기 위해 사용한다. 


RAID를 이해하기 위해 "스트라이핑(Striping)"과 "미러링(Mirring)"에 대해서 먼저 알고 있어야 한다. 

스트라이핑은 논리적으로 연속된 데이터 세그먼트들이 물리적으로 여러 개의 디스크 드라이브에 라운드로빈 방식으로 나누어 저장하는 것이다. 

쉼게 말해 데이터를 여러 개의 디스크에 일정 크기의 바이트나 섹터 단위로 나뉘어 저장한다. 

스트라이핑을 사용하면 빠르게 데이터를 읽고 쓸 수 있다. 


미러링은 말 그대로 데이터를 그대로 복제하는 것으로 신뢰성 확보를 위해 사용한다.  

기본적으로 RAID는 스트라이핑과 미러링을 활용해서 여러 개의 디스크를 효율적으로 활용하려는 것이다. 


RAID 0: Striped disk array without fault tolerance

빠른 데이터 입출력을 위해 스트라이핑을 사용하는 방식으로 디스크 용량도 모두 활용할 수 있다. 

다만 하나의 디스크가 잘못되면 데이터를 읽어버릴 수 있는 위험이 있다. 



RAID 1: Mirroring and duplexing

두 개 이상의 디스크를 미러링을 통해 하나의 디스크 처럼 사용하는 것이다. 

완전히 동일하게 데이터를 복제하기 때문에 가용량이 절반 밖에 되지 않는다. 

그러나 하나의 디스크에서 에러가 발생하면 미러링된 디스크를 통해 복구가 가능하다. 



RAID 2: Hamming code ECC

오류 정정을 위한 해밍 코드를 사용하는 방식으로 

최근 디스크 드라이브가 기본적으로 에러 검출 기능이 있기 때문에  거의 사용되지 않는다. 



RAID 3: Parallel transfer with parity

하나의 디스크를 패러티(Parity) 정보를 위해 사용하고 나머지 디스크에 데이터를 균등하게 분산 저장하는 방식이다.  

읽기 성능은 RAID 0과 비슷하나 쓰기는 패러티 처리로 인해 일부 성능 저하가 있다. 

하나의 디스크에서 에러가 발생하면 패러티 디스크를 통해 복구할 수 있다. 



RAID 4: Independent data disks with shared parity disk

RAID 3와 같이 패러티 정보를 독립된 디스크에 저장한다.

다만 블락(Block) 단위로 분산 저장하는 차이가 있으며 모든 블락이 각 디스크에 균등하게 저장되지는 않는다. 

병목 현상이 발생하면 성능 저하가 발생할 수 있다. 




 


RAID 5: Independent data disks with distributed parity blocks

3개 이상의 디스크를 붙여서 하나의 디스크처럼 사용하고 각각의 디스크에 패러티 정보를 가지고 있는 방식이다. 

하나의 디스크에 에러가 발생해도 다른 두 개의 디스크를 통해 복구할 수 있게 된다. 

패러티 디스크를 별도로 사용하지 않음으로써 병목 현상이 발생하지 않는다. 



RAID 6: Independent data disks with two independent distributed parity schemas

하나의 패러티를 두 개의 디스크에 분산 저장하는 방식이다. 

패러티를 이중으로 저장하기 때문에 두 개의 디스크에 에러가 발생해도 정상적으로 복구할 수 있다. 

쓰기 속도는 패러티를 여러번 써야 하기 때문에 나빠질 수 있지만 안정성이 높아지는 장점이 있다. 



RAID 0+1 

RAID 0와 RAID 1을 결합하는 방식이다. 

최소 4개 이상의 디스크에서 먼저 2개씩 RAID 0(스트라이핑)으로 묶고 이어 RAID 1(미러링)으로 결합하는 것이다. 

RAID 0의 복구 못하는 문제를 해결하면서 RAID 1의 단점이 성능을 개선할 수 있다. 

다만 안정성과 성능을 보장하는 대신 비용이 많이 들어간다는 단점이 있다. 



RAID 10 (RAID 1+0)

RAID 0+1과 비슷하지만 먼저 2개를 미러링으로 묶고 이후에 스트라이핑으로 결합하는 방식이다. 

4개의 디스크를 사용할 경우 RAID 0+1과 비슷해 보인다. 

그러나 만약 6개의 디스크를 사용하면 RAID 0+1은 3개의 디스크를 먼저 스트라이핑으로 묶고 미러링을 하기 때문에 2개의 그룹으로 나누어진다. 

RAID 10은 2개 디스크씩 미러링 한 후, 스트라이핑을 하기 때문에 3개의 그룹으로 나누어지게 된다. 

복구시에도 RAID 0+1은 다른 그룹에서 전체 복사를 해야 하지만, RAID 10은 하나의 디스크만 복제해도 된다는 차이가 있다. 


 

출처 : http://blog.acronym.co.kr/487

 

728x90

'OS' 카테고리의 다른 글

문맥교환  (0) 2014.11.13
스레드 동기화  (0) 2014.11.13
모놀리식 커널  (0) 2014.10.17
가상메모리 사용 이유  (0) 2014.10.17
프로세스 데드라인 스케쥴링  (0) 2014.10.17

+ Recent posts